test/tint: Fix e2e test generation for vec / mat

Where the intrinsic uses the fixed-dimension form of the types.

Change-Id: I1709382f762fe7394bbd88f428f09b15a1a8a643
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/108642
Reviewed-by: Antonio Maiorano <amaiorano@google.com>
Commit-Queue: Ben Clayton <bclayton@google.com>
Kokoro: Ben Clayton <bclayton@google.com>
diff --git a/test/tint/builtins/gen/gen.wgsl.tmpl b/test/tint/builtins/gen/gen.wgsl.tmpl
index f0cbd4a..0dfe879 100644
--- a/test/tint/builtins/gen/gen.wgsl.tmpl
+++ b/test/tint/builtins/gen/gen.wgsl.tmpl
@@ -270,17 +270,17 @@
 {{-   $float_value := $value }}
 {{-   if not (Contains $value ".") }}{{$float_value = printf "%v." $value}}{{end}}
 {{- /* emit the value with any necessary suffixes */ -}}
-{{-   if      eq $ty.Target.Name "i32"  -}}{{$value}}i
-{{-   else if eq $ty.Target.Name "u32"  -}}{{$value}}u
-{{-   else if eq $ty.Target.Name "f32"  -}}{{$float_value}}f
-{{-   else if eq $ty.Target.Name "fa"   -}}{{$float_value}}
-{{-   else if eq $ty.Target.Name "ia"   -}}{{$value}}
-{{-   else if eq $ty.Target.Name "bool" -}}true
-{{-   else if eq $ty.Target.Name "vec"  -}}
-{{-     $el := Eval "ArgumentValue" "Type" (ElementType .Type) "Name" "" "TestValue" .TestValue }}
+{{-        if eq        $ty.Target.Name "i32"  -}}{{$value}}i
+{{-   else if eq        $ty.Target.Name "u32"  -}}{{$value}}u
+{{-   else if eq        $ty.Target.Name "f32"  -}}{{$float_value}}f
+{{-   else if eq        $ty.Target.Name "fa"   -}}{{$float_value}}
+{{-   else if eq        $ty.Target.Name "ia"   -}}{{$value}}
+{{-   else if eq        $ty.Target.Name "bool" -}}true
+{{-   else if HasPrefix $ty.Target.Name "vec"  -}}
+{{-     $el := Eval "ArgumentValue" "Type" (ElementType .Type) "TestValue" .TestValue }}
 {{-     template "Type" $ty}}({{$el}})
-{{-   else if eq $ty.Target.Name "mat"   -}}{{template "Type" $ty}}(
-{{-     $el := Eval "ArgumentValue" "Type" (ElementType .Type) "Name" "" "TestValue" .TestValue }}
+{{-   else if HasPrefix $ty.Target.Name "mat"  -}}{{template "Type" $ty}}(
+{{-     $el := Eval "ArgumentValue" "Type" (ElementType .Type) "TestValue" .TestValue }}
 {{-     range $col := Iterate (index $ty.TemplateArguments 0)     }}
 {{-       range $row := Iterate (index $ty.TemplateArguments 1)   }}
 {{-         if or $col $row -}}, {{end}}{{$el}}
@@ -297,18 +297,27 @@
 {{- /* ------------------------------------------------------------------ */ -}}
 {{-   if IsType .Target -}}
 {{-     if DeepestElementType . | IsAbstract -}}
-{{-              if eq .Target.Name "vec" -}}vec{{index .TemplateArguments 0}}
-{{-         else if eq .Target.Name "mat" -}}mat{{index .TemplateArguments 0}}x{{index .TemplateArguments 1}}
-{{-         else                          -}}
-{{-         end                           -}}
-{{-     else if eq .Target.Name "vec" -}}vec{{index .TemplateArguments 0}}<{{template "Type" (ElementType .)}}>
-{{-     else if eq .Target.Name "mat" -}}mat{{index .TemplateArguments 0}}x{{index .TemplateArguments 1}}<{{template "Type" (ElementType .)}}>
-{{-     else                          -}}{{.Target.Name}}{{template "TemplateArguments" .TemplateArguments}}
-{{-     end                           -}}
-{{-   else if IsEnumEntry   .Target   -}}{{.Target.Name}}
-{{-   else if IsEnumMatcher .Target   -}}{{(index .Target.Options 0).Name}}
-{{-   else                            -}}<unhandled-fully-qualified-name-target={{- printf "%T" .Target -}}>
-{{-   end                             -}}
+{{-              if eq        .Target.Name "vec"  -}}vec{{index .TemplateArguments 0}}
+{{-         else if eq        .Target.Name "vec2" -}}vec2
+{{-         else if eq        .Target.Name "vec3" -}}vec3
+{{-         else if eq        .Target.Name "vec4" -}}vec4
+{{-         else if eq        .Target.Name "mat"  -}}mat{{index .TemplateArguments 0}}x{{index .TemplateArguments 1}}
+{{-         else if HasPrefix .Target.Name "mat"  -}}mat{{.Target.Name}}
+{{-         else                                  -}}
+{{-         end                                   -}}
+{{- /* note: intrinsics.def has different type definitions for 'vec<N: num, T>',
+       'vec2<T>', 'vec3<T>'. Because of this we need to check whether the type
+       name is exactly 'vec' and 'mat' and if not, then look for the prefix. */ -}}
+{{-     else if eq .Target.Name "vec"        -}}vec{{index .TemplateArguments 0}}<{{template "Type" (ElementType .)}}>
+{{-     else if eq .Target.Name "mat"        -}}mat{{index .TemplateArguments 0}}x{{index .TemplateArguments 1}}<{{template "Type" (ElementType .)}}>
+{{-     else if HasPrefix .Target.Name "vec" -}}{{.Target.Name}}<{{template "Type" (ElementType .)}}>
+{{-     else if HasPrefix .Target.Name "mat" -}}{{.Target.Name}}<{{template "Type" (ElementType .)}}>
+{{-     else                             -}}{{.Target.Name}}{{template "TemplateArguments" .TemplateArguments}}
+{{-     end                              -}}
+{{-   else if IsEnumEntry   .Target -}}{{.Target.Name}}
+{{-   else if IsEnumMatcher .Target -}}{{(index .Target.Options 0).Name}}
+{{-   else                          -}}<unhandled-fully-qualified-name-target={{- printf "%T" .Target -}}>
+{{-   end                           -}}
 {{- end -}}
 
 
diff --git a/test/tint/builtins/gen/literal/cross/041cb0.wgsl b/test/tint/builtins/gen/literal/cross/041cb0.wgsl
index d99f749..7e13aab 100644
--- a/test/tint/builtins/gen/literal/cross/041cb0.wgsl
+++ b/test/tint/builtins/gen/literal/cross/041cb0.wgsl
@@ -23,7 +23,7 @@
 
 // fn cross(vec3<f32>, vec3<f32>) -> vec3<f32>
 fn cross_041cb0() {
-  var res: vec3<f32> = cross(vec3<f32>(), vec3<f32>());
+  var res: vec3<f32> = cross(vec3<f32>(1.f), vec3<f32>(1.f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/cross/041cb0.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/cross/041cb0.wgsl.expected.dxc.hlsl
index 36e4194..b055c81 100644
--- a/test/tint/builtins/gen/literal/cross/041cb0.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/cross/041cb0.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 void cross_041cb0() {
-  float3 res = cross((0.0f).xxx, (0.0f).xxx);
+  float3 res = cross((1.0f).xxx, (1.0f).xxx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/cross/041cb0.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/cross/041cb0.wgsl.expected.fxc.hlsl
index 36e4194..b055c81 100644
--- a/test/tint/builtins/gen/literal/cross/041cb0.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/cross/041cb0.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 void cross_041cb0() {
-  float3 res = cross((0.0f).xxx, (0.0f).xxx);
+  float3 res = cross((1.0f).xxx, (1.0f).xxx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/cross/041cb0.wgsl.expected.glsl b/test/tint/builtins/gen/literal/cross/041cb0.wgsl.expected.glsl
index b0e727f..e7b0ce3 100644
--- a/test/tint/builtins/gen/literal/cross/041cb0.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/cross/041cb0.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void cross_041cb0() {
-  vec3 res = cross(vec3(0.0f), vec3(0.0f));
+  vec3 res = cross(vec3(1.0f), vec3(1.0f));
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void cross_041cb0() {
-  vec3 res = cross(vec3(0.0f), vec3(0.0f));
+  vec3 res = cross(vec3(1.0f), vec3(1.0f));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void cross_041cb0() {
-  vec3 res = cross(vec3(0.0f), vec3(0.0f));
+  vec3 res = cross(vec3(1.0f), vec3(1.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/cross/041cb0.wgsl.expected.msl b/test/tint/builtins/gen/literal/cross/041cb0.wgsl.expected.msl
index 01500bb..be5675f 100644
--- a/test/tint/builtins/gen/literal/cross/041cb0.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/cross/041cb0.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void cross_041cb0() {
-  float3 res = cross(float3(0.0f), float3(0.0f));
+  float3 res = cross(float3(1.0f), float3(1.0f));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/cross/041cb0.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/cross/041cb0.wgsl.expected.spvasm
index bad958c..07b9592 100644
--- a/test/tint/builtins/gen/literal/cross/041cb0.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/cross/041cb0.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 33
+; Bound: 34
 ; Schema: 0
                OpCapability Shader
          %15 = OpExtInstImport "GLSL.std.450"
@@ -32,36 +32,37 @@
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
     %v3float = OpTypeVector %float 3
-         %16 = OpConstantNull %v3float
-%_ptr_Function_v3float = OpTypePointer Function %v3float
-         %19 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
+         %17 = OpConstantComposite %v3float %float_1 %float_1 %float_1
+%_ptr_Function_v3float = OpTypePointer Function %v3float
+         %20 = OpConstantNull %v3float
+         %21 = OpTypeFunction %v4float
 %cross_041cb0 = OpFunction %void None %9
          %12 = OpLabel
-        %res = OpVariable %_ptr_Function_v3float Function %16
-         %13 = OpExtInst %v3float %15 Cross %16 %16
+        %res = OpVariable %_ptr_Function_v3float Function %20
+         %13 = OpExtInst %v3float %15 Cross %17 %17
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %19
-         %21 = OpLabel
-         %22 = OpFunctionCall %void %cross_041cb0
+%vertex_main_inner = OpFunction %v4float None %21
+         %23 = OpLabel
+         %24 = OpFunctionCall %void %cross_041cb0
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
-         %24 = OpLabel
-         %25 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %25
+         %26 = OpLabel
+         %27 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %27
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %28 = OpLabel
-         %29 = OpFunctionCall %void %cross_041cb0
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %cross_041cb0
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %cross_041cb0
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %cross_041cb0
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/cross/041cb0.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/cross/041cb0.wgsl.expected.wgsl
index b4f3b74..6928bca 100644
--- a/test/tint/builtins/gen/literal/cross/041cb0.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/cross/041cb0.wgsl.expected.wgsl
@@ -1,5 +1,5 @@
 fn cross_041cb0() {
-  var res : vec3<f32> = cross(vec3<f32>(), vec3<f32>());
+  var res : vec3<f32> = cross(vec3<f32>(1.0f), vec3<f32>(1.0f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/cross/9857cb.wgsl b/test/tint/builtins/gen/literal/cross/9857cb.wgsl
index ba13074..aaae266 100644
--- a/test/tint/builtins/gen/literal/cross/9857cb.wgsl
+++ b/test/tint/builtins/gen/literal/cross/9857cb.wgsl
@@ -25,7 +25,7 @@
 
 // fn cross(vec3<f16>, vec3<f16>) -> vec3<f16>
 fn cross_9857cb() {
-  var res: vec3<f16> = cross(vec3<f16>(), vec3<f16>());
+  var res: vec3<f16> = cross(vec3<f16>(f16()), vec3<f16>(f16()));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/cross/9857cb.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/cross/9857cb.wgsl.expected.wgsl
index 2d151e8..f991031 100644
--- a/test/tint/builtins/gen/literal/cross/9857cb.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/cross/9857cb.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 enable f16;
 
 fn cross_9857cb() {
-  var res : vec3<f16> = cross(vec3<f16>(), vec3<f16>());
+  var res : vec3<f16> = cross(vec3<f16>(f16()), vec3<f16>(f16()));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/pack2x16float/0e97b3.wgsl b/test/tint/builtins/gen/literal/pack2x16float/0e97b3.wgsl
index 2b0e8d9..6786f51 100644
--- a/test/tint/builtins/gen/literal/pack2x16float/0e97b3.wgsl
+++ b/test/tint/builtins/gen/literal/pack2x16float/0e97b3.wgsl
@@ -23,7 +23,7 @@
 
 // fn pack2x16float(vec2<f32>) -> u32
 fn pack2x16float_0e97b3() {
-  var res: u32 = pack2x16float(vec2<f32>());
+  var res: u32 = pack2x16float(vec2<f32>(1.f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/pack2x16float/0e97b3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/pack2x16float/0e97b3.wgsl.expected.dxc.hlsl
index f142fb8..c3960d7 100644
--- a/test/tint/builtins/gen/literal/pack2x16float/0e97b3.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/pack2x16float/0e97b3.wgsl.expected.dxc.hlsl
@@ -4,7 +4,7 @@
 }
 
 void pack2x16float_0e97b3() {
-  uint res = tint_pack2x16float((0.0f).xx);
+  uint res = tint_pack2x16float((1.0f).xx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/pack2x16float/0e97b3.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/pack2x16float/0e97b3.wgsl.expected.fxc.hlsl
index f142fb8..c3960d7 100644
--- a/test/tint/builtins/gen/literal/pack2x16float/0e97b3.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/pack2x16float/0e97b3.wgsl.expected.fxc.hlsl
@@ -4,7 +4,7 @@
 }
 
 void pack2x16float_0e97b3() {
-  uint res = tint_pack2x16float((0.0f).xx);
+  uint res = tint_pack2x16float((1.0f).xx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/pack2x16float/0e97b3.wgsl.expected.glsl b/test/tint/builtins/gen/literal/pack2x16float/0e97b3.wgsl.expected.glsl
index bedec15..56f778f 100644
--- a/test/tint/builtins/gen/literal/pack2x16float/0e97b3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/pack2x16float/0e97b3.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void pack2x16float_0e97b3() {
-  uint res = packHalf2x16(vec2(0.0f));
+  uint res = packHalf2x16(vec2(1.0f));
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void pack2x16float_0e97b3() {
-  uint res = packHalf2x16(vec2(0.0f));
+  uint res = packHalf2x16(vec2(1.0f));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void pack2x16float_0e97b3() {
-  uint res = packHalf2x16(vec2(0.0f));
+  uint res = packHalf2x16(vec2(1.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/pack2x16float/0e97b3.wgsl.expected.msl b/test/tint/builtins/gen/literal/pack2x16float/0e97b3.wgsl.expected.msl
index d3c14f8..5c528a2 100644
--- a/test/tint/builtins/gen/literal/pack2x16float/0e97b3.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/pack2x16float/0e97b3.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void pack2x16float_0e97b3() {
-  uint res = as_type<uint>(half2(float2(0.0f)));
+  uint res = as_type<uint>(half2(float2(1.0f)));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/pack2x16float/0e97b3.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/pack2x16float/0e97b3.wgsl.expected.spvasm
index 257789a..8a0cd46 100644
--- a/test/tint/builtins/gen/literal/pack2x16float/0e97b3.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/pack2x16float/0e97b3.wgsl.expected.spvasm
@@ -33,27 +33,27 @@
           %9 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
     %v2float = OpTypeVector %float 2
-         %17 = OpConstantNull %v2float
-%_ptr_Function_uint = OpTypePointer Function %uint
-         %20 = OpConstantNull %uint
-         %21 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
+         %18 = OpConstantComposite %v2float %float_1 %float_1
+%_ptr_Function_uint = OpTypePointer Function %uint
+         %21 = OpConstantNull %uint
+         %22 = OpTypeFunction %v4float
 %pack2x16float_0e97b3 = OpFunction %void None %9
          %12 = OpLabel
-        %res = OpVariable %_ptr_Function_uint Function %20
-         %13 = OpExtInst %uint %15 PackHalf2x16 %17
+        %res = OpVariable %_ptr_Function_uint Function %21
+         %13 = OpExtInst %uint %15 PackHalf2x16 %18
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %21
-         %23 = OpLabel
-         %24 = OpFunctionCall %void %pack2x16float_0e97b3
+%vertex_main_inner = OpFunction %v4float None %22
+         %24 = OpLabel
+         %25 = OpFunctionCall %void %pack2x16float_0e97b3
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
-         %26 = OpLabel
-         %27 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %27
+         %27 = OpLabel
+         %28 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %28
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/pack2x16float/0e97b3.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/pack2x16float/0e97b3.wgsl.expected.wgsl
index fca0987..966d268 100644
--- a/test/tint/builtins/gen/literal/pack2x16float/0e97b3.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/pack2x16float/0e97b3.wgsl.expected.wgsl
@@ -1,5 +1,5 @@
 fn pack2x16float_0e97b3() {
-  var res : u32 = pack2x16float(vec2<f32>());
+  var res : u32 = pack2x16float(vec2<f32>(1.0f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/pack2x16snorm/6c169b.wgsl b/test/tint/builtins/gen/literal/pack2x16snorm/6c169b.wgsl
index ba71668..2fd8fa0 100644
--- a/test/tint/builtins/gen/literal/pack2x16snorm/6c169b.wgsl
+++ b/test/tint/builtins/gen/literal/pack2x16snorm/6c169b.wgsl
@@ -23,7 +23,7 @@
 
 // fn pack2x16snorm(vec2<f32>) -> u32
 fn pack2x16snorm_6c169b() {
-  var res: u32 = pack2x16snorm(vec2<f32>());
+  var res: u32 = pack2x16snorm(vec2<f32>(1.f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/pack2x16snorm/6c169b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/pack2x16snorm/6c169b.wgsl.expected.dxc.hlsl
index cb5ec97..97b0f20 100644
--- a/test/tint/builtins/gen/literal/pack2x16snorm/6c169b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/pack2x16snorm/6c169b.wgsl.expected.dxc.hlsl
@@ -4,7 +4,7 @@
 }
 
 void pack2x16snorm_6c169b() {
-  uint res = tint_pack2x16snorm((0.0f).xx);
+  uint res = tint_pack2x16snorm((1.0f).xx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/pack2x16snorm/6c169b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/pack2x16snorm/6c169b.wgsl.expected.fxc.hlsl
index cb5ec97..97b0f20 100644
--- a/test/tint/builtins/gen/literal/pack2x16snorm/6c169b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/pack2x16snorm/6c169b.wgsl.expected.fxc.hlsl
@@ -4,7 +4,7 @@
 }
 
 void pack2x16snorm_6c169b() {
-  uint res = tint_pack2x16snorm((0.0f).xx);
+  uint res = tint_pack2x16snorm((1.0f).xx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/pack2x16snorm/6c169b.wgsl.expected.glsl b/test/tint/builtins/gen/literal/pack2x16snorm/6c169b.wgsl.expected.glsl
index 489de97..b7a10f9 100644
--- a/test/tint/builtins/gen/literal/pack2x16snorm/6c169b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/pack2x16snorm/6c169b.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void pack2x16snorm_6c169b() {
-  uint res = packSnorm2x16(vec2(0.0f));
+  uint res = packSnorm2x16(vec2(1.0f));
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void pack2x16snorm_6c169b() {
-  uint res = packSnorm2x16(vec2(0.0f));
+  uint res = packSnorm2x16(vec2(1.0f));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void pack2x16snorm_6c169b() {
-  uint res = packSnorm2x16(vec2(0.0f));
+  uint res = packSnorm2x16(vec2(1.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/pack2x16snorm/6c169b.wgsl.expected.msl b/test/tint/builtins/gen/literal/pack2x16snorm/6c169b.wgsl.expected.msl
index 7c11475..87aa18e 100644
--- a/test/tint/builtins/gen/literal/pack2x16snorm/6c169b.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/pack2x16snorm/6c169b.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void pack2x16snorm_6c169b() {
-  uint res = pack_float_to_snorm2x16(float2(0.0f));
+  uint res = pack_float_to_snorm2x16(float2(1.0f));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/pack2x16snorm/6c169b.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/pack2x16snorm/6c169b.wgsl.expected.spvasm
index c7b4a14..05e4bea 100644
--- a/test/tint/builtins/gen/literal/pack2x16snorm/6c169b.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/pack2x16snorm/6c169b.wgsl.expected.spvasm
@@ -33,27 +33,27 @@
           %9 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
     %v2float = OpTypeVector %float 2
-         %17 = OpConstantNull %v2float
-%_ptr_Function_uint = OpTypePointer Function %uint
-         %20 = OpConstantNull %uint
-         %21 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
+         %18 = OpConstantComposite %v2float %float_1 %float_1
+%_ptr_Function_uint = OpTypePointer Function %uint
+         %21 = OpConstantNull %uint
+         %22 = OpTypeFunction %v4float
 %pack2x16snorm_6c169b = OpFunction %void None %9
          %12 = OpLabel
-        %res = OpVariable %_ptr_Function_uint Function %20
-         %13 = OpExtInst %uint %15 PackSnorm2x16 %17
+        %res = OpVariable %_ptr_Function_uint Function %21
+         %13 = OpExtInst %uint %15 PackSnorm2x16 %18
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %21
-         %23 = OpLabel
-         %24 = OpFunctionCall %void %pack2x16snorm_6c169b
+%vertex_main_inner = OpFunction %v4float None %22
+         %24 = OpLabel
+         %25 = OpFunctionCall %void %pack2x16snorm_6c169b
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
-         %26 = OpLabel
-         %27 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %27
+         %27 = OpLabel
+         %28 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %28
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/pack2x16snorm/6c169b.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/pack2x16snorm/6c169b.wgsl.expected.wgsl
index 0d9fafc..6878ce5 100644
--- a/test/tint/builtins/gen/literal/pack2x16snorm/6c169b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/pack2x16snorm/6c169b.wgsl.expected.wgsl
@@ -1,5 +1,5 @@
 fn pack2x16snorm_6c169b() {
-  var res : u32 = pack2x16snorm(vec2<f32>());
+  var res : u32 = pack2x16snorm(vec2<f32>(1.0f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/pack2x16unorm/0f08e4.wgsl b/test/tint/builtins/gen/literal/pack2x16unorm/0f08e4.wgsl
index 6a1bb6a..4850d21 100644
--- a/test/tint/builtins/gen/literal/pack2x16unorm/0f08e4.wgsl
+++ b/test/tint/builtins/gen/literal/pack2x16unorm/0f08e4.wgsl
@@ -23,7 +23,7 @@
 
 // fn pack2x16unorm(vec2<f32>) -> u32
 fn pack2x16unorm_0f08e4() {
-  var res: u32 = pack2x16unorm(vec2<f32>());
+  var res: u32 = pack2x16unorm(vec2<f32>(1.f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/pack2x16unorm/0f08e4.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/pack2x16unorm/0f08e4.wgsl.expected.dxc.hlsl
index 69b0a5f..400d4ed 100644
--- a/test/tint/builtins/gen/literal/pack2x16unorm/0f08e4.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/pack2x16unorm/0f08e4.wgsl.expected.dxc.hlsl
@@ -4,7 +4,7 @@
 }
 
 void pack2x16unorm_0f08e4() {
-  uint res = tint_pack2x16unorm((0.0f).xx);
+  uint res = tint_pack2x16unorm((1.0f).xx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/pack2x16unorm/0f08e4.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/pack2x16unorm/0f08e4.wgsl.expected.fxc.hlsl
index 69b0a5f..400d4ed 100644
--- a/test/tint/builtins/gen/literal/pack2x16unorm/0f08e4.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/pack2x16unorm/0f08e4.wgsl.expected.fxc.hlsl
@@ -4,7 +4,7 @@
 }
 
 void pack2x16unorm_0f08e4() {
-  uint res = tint_pack2x16unorm((0.0f).xx);
+  uint res = tint_pack2x16unorm((1.0f).xx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/pack2x16unorm/0f08e4.wgsl.expected.glsl b/test/tint/builtins/gen/literal/pack2x16unorm/0f08e4.wgsl.expected.glsl
index ee5df00..c1d22aa 100644
--- a/test/tint/builtins/gen/literal/pack2x16unorm/0f08e4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/pack2x16unorm/0f08e4.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void pack2x16unorm_0f08e4() {
-  uint res = packUnorm2x16(vec2(0.0f));
+  uint res = packUnorm2x16(vec2(1.0f));
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void pack2x16unorm_0f08e4() {
-  uint res = packUnorm2x16(vec2(0.0f));
+  uint res = packUnorm2x16(vec2(1.0f));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void pack2x16unorm_0f08e4() {
-  uint res = packUnorm2x16(vec2(0.0f));
+  uint res = packUnorm2x16(vec2(1.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/pack2x16unorm/0f08e4.wgsl.expected.msl b/test/tint/builtins/gen/literal/pack2x16unorm/0f08e4.wgsl.expected.msl
index 5661b98..1d2e143 100644
--- a/test/tint/builtins/gen/literal/pack2x16unorm/0f08e4.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/pack2x16unorm/0f08e4.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void pack2x16unorm_0f08e4() {
-  uint res = pack_float_to_unorm2x16(float2(0.0f));
+  uint res = pack_float_to_unorm2x16(float2(1.0f));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/pack2x16unorm/0f08e4.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/pack2x16unorm/0f08e4.wgsl.expected.spvasm
index ca7368c..cd23181 100644
--- a/test/tint/builtins/gen/literal/pack2x16unorm/0f08e4.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/pack2x16unorm/0f08e4.wgsl.expected.spvasm
@@ -33,27 +33,27 @@
           %9 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
     %v2float = OpTypeVector %float 2
-         %17 = OpConstantNull %v2float
-%_ptr_Function_uint = OpTypePointer Function %uint
-         %20 = OpConstantNull %uint
-         %21 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
+         %18 = OpConstantComposite %v2float %float_1 %float_1
+%_ptr_Function_uint = OpTypePointer Function %uint
+         %21 = OpConstantNull %uint
+         %22 = OpTypeFunction %v4float
 %pack2x16unorm_0f08e4 = OpFunction %void None %9
          %12 = OpLabel
-        %res = OpVariable %_ptr_Function_uint Function %20
-         %13 = OpExtInst %uint %15 PackUnorm2x16 %17
+        %res = OpVariable %_ptr_Function_uint Function %21
+         %13 = OpExtInst %uint %15 PackUnorm2x16 %18
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %21
-         %23 = OpLabel
-         %24 = OpFunctionCall %void %pack2x16unorm_0f08e4
+%vertex_main_inner = OpFunction %v4float None %22
+         %24 = OpLabel
+         %25 = OpFunctionCall %void %pack2x16unorm_0f08e4
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
-         %26 = OpLabel
-         %27 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %27
+         %27 = OpLabel
+         %28 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %28
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/pack2x16unorm/0f08e4.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/pack2x16unorm/0f08e4.wgsl.expected.wgsl
index 0ddd089..dbec285 100644
--- a/test/tint/builtins/gen/literal/pack2x16unorm/0f08e4.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/pack2x16unorm/0f08e4.wgsl.expected.wgsl
@@ -1,5 +1,5 @@
 fn pack2x16unorm_0f08e4() {
-  var res : u32 = pack2x16unorm(vec2<f32>());
+  var res : u32 = pack2x16unorm(vec2<f32>(1.0f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/pack4x8snorm/4d22e7.wgsl b/test/tint/builtins/gen/literal/pack4x8snorm/4d22e7.wgsl
index 11e2e1f..085bb2d 100644
--- a/test/tint/builtins/gen/literal/pack4x8snorm/4d22e7.wgsl
+++ b/test/tint/builtins/gen/literal/pack4x8snorm/4d22e7.wgsl
@@ -23,7 +23,7 @@
 
 // fn pack4x8snorm(vec4<f32>) -> u32
 fn pack4x8snorm_4d22e7() {
-  var res: u32 = pack4x8snorm(vec4<f32>());
+  var res: u32 = pack4x8snorm(vec4<f32>(1.f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/pack4x8snorm/4d22e7.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/pack4x8snorm/4d22e7.wgsl.expected.dxc.hlsl
index 073431c..c1480e7 100644
--- a/test/tint/builtins/gen/literal/pack4x8snorm/4d22e7.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/pack4x8snorm/4d22e7.wgsl.expected.dxc.hlsl
@@ -4,7 +4,7 @@
 }
 
 void pack4x8snorm_4d22e7() {
-  uint res = tint_pack4x8snorm((0.0f).xxxx);
+  uint res = tint_pack4x8snorm((1.0f).xxxx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/pack4x8snorm/4d22e7.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/pack4x8snorm/4d22e7.wgsl.expected.fxc.hlsl
index 073431c..c1480e7 100644
--- a/test/tint/builtins/gen/literal/pack4x8snorm/4d22e7.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/pack4x8snorm/4d22e7.wgsl.expected.fxc.hlsl
@@ -4,7 +4,7 @@
 }
 
 void pack4x8snorm_4d22e7() {
-  uint res = tint_pack4x8snorm((0.0f).xxxx);
+  uint res = tint_pack4x8snorm((1.0f).xxxx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/pack4x8snorm/4d22e7.wgsl.expected.glsl b/test/tint/builtins/gen/literal/pack4x8snorm/4d22e7.wgsl.expected.glsl
index a61b9cb..30deb26 100644
--- a/test/tint/builtins/gen/literal/pack4x8snorm/4d22e7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/pack4x8snorm/4d22e7.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void pack4x8snorm_4d22e7() {
-  uint res = packSnorm4x8(vec4(0.0f));
+  uint res = packSnorm4x8(vec4(1.0f));
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void pack4x8snorm_4d22e7() {
-  uint res = packSnorm4x8(vec4(0.0f));
+  uint res = packSnorm4x8(vec4(1.0f));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void pack4x8snorm_4d22e7() {
-  uint res = packSnorm4x8(vec4(0.0f));
+  uint res = packSnorm4x8(vec4(1.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/pack4x8snorm/4d22e7.wgsl.expected.msl b/test/tint/builtins/gen/literal/pack4x8snorm/4d22e7.wgsl.expected.msl
index 5af9d4b..fb2a04b 100644
--- a/test/tint/builtins/gen/literal/pack4x8snorm/4d22e7.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/pack4x8snorm/4d22e7.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void pack4x8snorm_4d22e7() {
-  uint res = pack_float_to_snorm4x8(float4(0.0f));
+  uint res = pack_float_to_snorm4x8(float4(1.0f));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/pack4x8snorm/4d22e7.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/pack4x8snorm/4d22e7.wgsl.expected.spvasm
index 34bcbe2..cae0cc4 100644
--- a/test/tint/builtins/gen/literal/pack4x8snorm/4d22e7.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/pack4x8snorm/4d22e7.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 33
+; Bound: 34
 ; Schema: 0
                OpCapability Shader
          %15 = OpExtInstImport "GLSL.std.450"
@@ -32,36 +32,37 @@
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
-%_ptr_Function_uint = OpTypePointer Function %uint
-         %18 = OpConstantNull %uint
-         %19 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
+         %17 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%_ptr_Function_uint = OpTypePointer Function %uint
+         %20 = OpConstantNull %uint
+         %21 = OpTypeFunction %v4float
 %pack4x8snorm_4d22e7 = OpFunction %void None %9
          %12 = OpLabel
-        %res = OpVariable %_ptr_Function_uint Function %18
-         %13 = OpExtInst %uint %15 PackSnorm4x8 %5
+        %res = OpVariable %_ptr_Function_uint Function %20
+         %13 = OpExtInst %uint %15 PackSnorm4x8 %17
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %19
-         %21 = OpLabel
-         %22 = OpFunctionCall %void %pack4x8snorm_4d22e7
+%vertex_main_inner = OpFunction %v4float None %21
+         %23 = OpLabel
+         %24 = OpFunctionCall %void %pack4x8snorm_4d22e7
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
-         %24 = OpLabel
-         %25 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %25
+         %26 = OpLabel
+         %27 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %27
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %28 = OpLabel
-         %29 = OpFunctionCall %void %pack4x8snorm_4d22e7
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %pack4x8snorm_4d22e7
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %pack4x8snorm_4d22e7
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %pack4x8snorm_4d22e7
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/pack4x8snorm/4d22e7.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/pack4x8snorm/4d22e7.wgsl.expected.wgsl
index bb4d5a2..1ff4946 100644
--- a/test/tint/builtins/gen/literal/pack4x8snorm/4d22e7.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/pack4x8snorm/4d22e7.wgsl.expected.wgsl
@@ -1,5 +1,5 @@
 fn pack4x8snorm_4d22e7() {
-  var res : u32 = pack4x8snorm(vec4<f32>());
+  var res : u32 = pack4x8snorm(vec4<f32>(1.0f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/pack4x8unorm/95c456.wgsl b/test/tint/builtins/gen/literal/pack4x8unorm/95c456.wgsl
index ed9074a..d130a03 100644
--- a/test/tint/builtins/gen/literal/pack4x8unorm/95c456.wgsl
+++ b/test/tint/builtins/gen/literal/pack4x8unorm/95c456.wgsl
@@ -23,7 +23,7 @@
 
 // fn pack4x8unorm(vec4<f32>) -> u32
 fn pack4x8unorm_95c456() {
-  var res: u32 = pack4x8unorm(vec4<f32>());
+  var res: u32 = pack4x8unorm(vec4<f32>(1.f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/pack4x8unorm/95c456.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/pack4x8unorm/95c456.wgsl.expected.dxc.hlsl
index a4e6e76..34537aa 100644
--- a/test/tint/builtins/gen/literal/pack4x8unorm/95c456.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/pack4x8unorm/95c456.wgsl.expected.dxc.hlsl
@@ -4,7 +4,7 @@
 }
 
 void pack4x8unorm_95c456() {
-  uint res = tint_pack4x8unorm((0.0f).xxxx);
+  uint res = tint_pack4x8unorm((1.0f).xxxx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/pack4x8unorm/95c456.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/pack4x8unorm/95c456.wgsl.expected.fxc.hlsl
index a4e6e76..34537aa 100644
--- a/test/tint/builtins/gen/literal/pack4x8unorm/95c456.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/pack4x8unorm/95c456.wgsl.expected.fxc.hlsl
@@ -4,7 +4,7 @@
 }
 
 void pack4x8unorm_95c456() {
-  uint res = tint_pack4x8unorm((0.0f).xxxx);
+  uint res = tint_pack4x8unorm((1.0f).xxxx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/pack4x8unorm/95c456.wgsl.expected.glsl b/test/tint/builtins/gen/literal/pack4x8unorm/95c456.wgsl.expected.glsl
index 29d5585..826c904 100644
--- a/test/tint/builtins/gen/literal/pack4x8unorm/95c456.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/pack4x8unorm/95c456.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void pack4x8unorm_95c456() {
-  uint res = packUnorm4x8(vec4(0.0f));
+  uint res = packUnorm4x8(vec4(1.0f));
 }
 
 vec4 vertex_main() {
@@ -21,7 +21,7 @@
 precision mediump float;
 
 void pack4x8unorm_95c456() {
-  uint res = packUnorm4x8(vec4(0.0f));
+  uint res = packUnorm4x8(vec4(1.0f));
 }
 
 void fragment_main() {
@@ -35,7 +35,7 @@
 #version 310 es
 
 void pack4x8unorm_95c456() {
-  uint res = packUnorm4x8(vec4(0.0f));
+  uint res = packUnorm4x8(vec4(1.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/pack4x8unorm/95c456.wgsl.expected.msl b/test/tint/builtins/gen/literal/pack4x8unorm/95c456.wgsl.expected.msl
index be93a80..96f61ca 100644
--- a/test/tint/builtins/gen/literal/pack4x8unorm/95c456.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/pack4x8unorm/95c456.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void pack4x8unorm_95c456() {
-  uint res = pack_float_to_unorm4x8(float4(0.0f));
+  uint res = pack_float_to_unorm4x8(float4(1.0f));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/pack4x8unorm/95c456.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/pack4x8unorm/95c456.wgsl.expected.spvasm
index 69e8a3f..410e72e 100644
--- a/test/tint/builtins/gen/literal/pack4x8unorm/95c456.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/pack4x8unorm/95c456.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 33
+; Bound: 34
 ; Schema: 0
                OpCapability Shader
          %15 = OpExtInstImport "GLSL.std.450"
@@ -32,36 +32,37 @@
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
-%_ptr_Function_uint = OpTypePointer Function %uint
-         %18 = OpConstantNull %uint
-         %19 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
+         %17 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%_ptr_Function_uint = OpTypePointer Function %uint
+         %20 = OpConstantNull %uint
+         %21 = OpTypeFunction %v4float
 %pack4x8unorm_95c456 = OpFunction %void None %9
          %12 = OpLabel
-        %res = OpVariable %_ptr_Function_uint Function %18
-         %13 = OpExtInst %uint %15 PackUnorm4x8 %5
+        %res = OpVariable %_ptr_Function_uint Function %20
+         %13 = OpExtInst %uint %15 PackUnorm4x8 %17
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %19
-         %21 = OpLabel
-         %22 = OpFunctionCall %void %pack4x8unorm_95c456
+%vertex_main_inner = OpFunction %v4float None %21
+         %23 = OpLabel
+         %24 = OpFunctionCall %void %pack4x8unorm_95c456
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
-         %24 = OpLabel
-         %25 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %25
+         %26 = OpLabel
+         %27 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %27
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %28 = OpLabel
-         %29 = OpFunctionCall %void %pack4x8unorm_95c456
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %pack4x8unorm_95c456
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %pack4x8unorm_95c456
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %pack4x8unorm_95c456
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/pack4x8unorm/95c456.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/pack4x8unorm/95c456.wgsl.expected.wgsl
index 1aca6f3..9b6adee 100644
--- a/test/tint/builtins/gen/literal/pack4x8unorm/95c456.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/pack4x8unorm/95c456.wgsl.expected.wgsl
@@ -1,5 +1,5 @@
 fn pack4x8unorm_95c456() {
-  var res : u32 = pack4x8unorm(vec4<f32>());
+  var res : u32 = pack4x8unorm(vec4<f32>(1.0f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureGather/0166ec.wgsl b/test/tint/builtins/gen/literal/textureGather/0166ec.wgsl
index 43f2d69..3641e75 100644
--- a/test/tint/builtins/gen/literal/textureGather/0166ec.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/0166ec.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureGather(@const component: u32, texture: texture_cube<i32>, sampler: sampler, coords: vec3<f32>) -> vec4<i32>
 fn textureGather_0166ec() {
-  var res: vec4<i32> = textureGather(1u, arg_1, arg_2, vec3<f32>());
+  var res: vec4<i32> = textureGather(1u, arg_1, arg_2, vec3<f32>(1.f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureGather/0166ec.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/0166ec.wgsl.expected.dxc.hlsl
index d830838..6d68bcb 100644
--- a/test/tint/builtins/gen/literal/textureGather/0166ec.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/0166ec.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_0166ec() {
-  int4 res = arg_1.GatherGreen(arg_2, (0.0f).xxx);
+  int4 res = arg_1.GatherGreen(arg_2, (1.0f).xxx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/0166ec.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/0166ec.wgsl.expected.fxc.hlsl
index d830838..6d68bcb 100644
--- a/test/tint/builtins/gen/literal/textureGather/0166ec.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/0166ec.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_0166ec() {
-  int4 res = arg_1.GatherGreen(arg_2, (0.0f).xxx);
+  int4 res = arg_1.GatherGreen(arg_2, (1.0f).xxx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/0166ec.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureGather/0166ec.wgsl.expected.glsl
index 4c7cbf8..51c3ece 100644
--- a/test/tint/builtins/gen/literal/textureGather/0166ec.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureGather/0166ec.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 uniform highp isamplerCube arg_1_arg_2;
 
 void textureGather_0166ec() {
-  ivec4 res = textureGather(arg_1_arg_2, vec3(0.0f), int(1u));
+  ivec4 res = textureGather(arg_1_arg_2, vec3(1.0f), int(1u));
 }
 
 vec4 vertex_main() {
@@ -25,7 +25,7 @@
 uniform highp isamplerCube arg_1_arg_2;
 
 void textureGather_0166ec() {
-  ivec4 res = textureGather(arg_1_arg_2, vec3(0.0f), int(1u));
+  ivec4 res = textureGather(arg_1_arg_2, vec3(1.0f), int(1u));
 }
 
 void fragment_main() {
@@ -41,7 +41,7 @@
 uniform highp isamplerCube arg_1_arg_2;
 
 void textureGather_0166ec() {
-  ivec4 res = textureGather(arg_1_arg_2, vec3(0.0f), int(1u));
+  ivec4 res = textureGather(arg_1_arg_2, vec3(1.0f), int(1u));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureGather/0166ec.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureGather/0166ec.wgsl.expected.msl
index 71d1318..1c68ab7 100644
--- a/test/tint/builtins/gen/literal/textureGather/0166ec.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureGather/0166ec.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureGather_0166ec(texturecube<int, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  int4 res = tint_symbol_1.gather(tint_symbol_2, float3(0.0f), component::y);
+  int4 res = tint_symbol_1.gather(tint_symbol_2, float3(1.0f), component::y);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/0166ec.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureGather/0166ec.wgsl.expected.spvasm
index 0604de6..783c096 100644
--- a/test/tint/builtins/gen/literal/textureGather/0166ec.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureGather/0166ec.wgsl.expected.spvasm
@@ -46,32 +46,32 @@
       %v4int = OpTypeVector %int 4
          %24 = OpTypeSampledImage %11
     %v3float = OpTypeVector %float 3
-         %27 = OpConstantNull %v3float
+    %float_1 = OpConstant %float 1
+         %28 = OpConstantComposite %v3float %float_1 %float_1 %float_1
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %32 = OpConstantNull %v4int
-         %33 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %33 = OpConstantNull %v4int
+         %34 = OpTypeFunction %v4float
 %textureGather_0166ec = OpFunction %void None %16
          %19 = OpLabel
-        %res = OpVariable %_ptr_Function_v4int Function %32
+        %res = OpVariable %_ptr_Function_v4int Function %33
          %22 = OpLoad %15 %arg_2
          %23 = OpLoad %11 %arg_1
          %25 = OpSampledImage %24 %23 %22
-         %20 = OpImageGather %v4int %25 %27 %uint_1
+         %20 = OpImageGather %v4int %25 %28 %uint_1
                OpStore %res %20
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %33
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureGather_0166ec
+%vertex_main_inner = OpFunction %v4float None %34
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureGather_0166ec
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %16
-         %38 = OpLabel
-         %39 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %39
+         %39 = OpLabel
+         %40 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %40
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureGather/0166ec.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureGather/0166ec.wgsl.expected.wgsl
index 0ed3403..8e2b64c 100644
--- a/test/tint/builtins/gen/literal/textureGather/0166ec.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/0166ec.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(2) var arg_2 : sampler;
 
 fn textureGather_0166ec() {
-  var res : vec4<i32> = textureGather(1u, arg_1, arg_2, vec3<f32>());
+  var res : vec4<i32> = textureGather(1u, arg_1, arg_2, vec3<f32>(1.0f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureGather/04fa78.wgsl b/test/tint/builtins/gen/literal/textureGather/04fa78.wgsl
index fa8bb16..ed3f46c 100644
--- a/test/tint/builtins/gen/literal/textureGather/04fa78.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/04fa78.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureGather(@const component: u32, texture: texture_cube_array<i32>, sampler: sampler, coords: vec3<f32>, array_index: u32) -> vec4<i32>
 fn textureGather_04fa78() {
-  var res: vec4<i32> = textureGather(1u, arg_1, arg_2, vec3<f32>(), 1u);
+  var res: vec4<i32> = textureGather(1u, arg_1, arg_2, vec3<f32>(1.f), 1u);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureGather/04fa78.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/04fa78.wgsl.expected.dxc.hlsl
index ab6b555..74e06a3 100644
--- a/test/tint/builtins/gen/literal/textureGather/04fa78.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/04fa78.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_04fa78() {
-  int4 res = arg_1.GatherGreen(arg_2, float4(0.0f, 0.0f, 0.0f, float(1u)));
+  int4 res = arg_1.GatherGreen(arg_2, float4((1.0f).xxx, float(1u)));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/04fa78.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/04fa78.wgsl.expected.fxc.hlsl
index ab6b555..74e06a3 100644
--- a/test/tint/builtins/gen/literal/textureGather/04fa78.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/04fa78.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_04fa78() {
-  int4 res = arg_1.GatherGreen(arg_2, float4(0.0f, 0.0f, 0.0f, float(1u)));
+  int4 res = arg_1.GatherGreen(arg_2, float4((1.0f).xxx, float(1u)));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/04fa78.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureGather/04fa78.wgsl.expected.msl
index 567f692..e2de24c 100644
--- a/test/tint/builtins/gen/literal/textureGather/04fa78.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureGather/04fa78.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureGather_04fa78(texturecube_array<int, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  int4 res = tint_symbol_1.gather(tint_symbol_2, float3(0.0f), 1u, component::y);
+  int4 res = tint_symbol_1.gather(tint_symbol_2, float3(1.0f), 1u, component::y);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/04fa78.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureGather/04fa78.wgsl.expected.spvasm
index ea71a5e..e22ebf7 100644
--- a/test/tint/builtins/gen/literal/textureGather/04fa78.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureGather/04fa78.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 48
+; Bound: 52
 ; Schema: 0
                OpCapability Shader
                OpCapability SampledCubeArray
@@ -46,44 +46,48 @@
          %16 = OpTypeFunction %void
       %v4int = OpTypeVector %int 4
          %24 = OpTypeSampledImage %11
-    %float_0 = OpConstant %float 0
+    %v3float = OpTypeVector %float 3
+    %float_1 = OpConstant %float 1
+         %28 = OpConstantComposite %v3float %float_1 %float_1 %float_1
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %33 = OpConstantNull %v4int
-         %34 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %38 = OpConstantNull %v4int
+         %39 = OpTypeFunction %v4float
 %textureGather_04fa78 = OpFunction %void None %16
          %19 = OpLabel
-        %res = OpVariable %_ptr_Function_v4int Function %33
+        %res = OpVariable %_ptr_Function_v4int Function %38
          %22 = OpLoad %15 %arg_2
          %23 = OpLoad %11 %arg_1
          %25 = OpSampledImage %24 %23 %22
-         %27 = OpConvertUToF %float %uint_1
-         %30 = OpCompositeConstruct %v4float %float_0 %float_0 %float_0 %27
-         %20 = OpImageGather %v4int %25 %30 %uint_1
+         %29 = OpCompositeExtract %float %28 0
+         %30 = OpCompositeExtract %float %28 1
+         %31 = OpCompositeExtract %float %28 2
+         %32 = OpConvertUToF %float %uint_1
+         %35 = OpCompositeConstruct %v4float %29 %30 %31 %32
+         %20 = OpImageGather %v4int %25 %35 %uint_1
                OpStore %res %20
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %34
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureGather_04fa78
+%vertex_main_inner = OpFunction %v4float None %39
+         %41 = OpLabel
+         %42 = OpFunctionCall %void %textureGather_04fa78
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %16
-         %39 = OpLabel
-         %40 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %40
+         %44 = OpLabel
+         %45 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %45
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %16
-         %43 = OpLabel
-         %44 = OpFunctionCall %void %textureGather_04fa78
+         %47 = OpLabel
+         %48 = OpFunctionCall %void %textureGather_04fa78
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %16
-         %46 = OpLabel
-         %47 = OpFunctionCall %void %textureGather_04fa78
+         %50 = OpLabel
+         %51 = OpFunctionCall %void %textureGather_04fa78
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureGather/04fa78.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureGather/04fa78.wgsl.expected.wgsl
index 4d93ff5..0e53955 100644
--- a/test/tint/builtins/gen/literal/textureGather/04fa78.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/04fa78.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(2) var arg_2 : sampler;
 
 fn textureGather_04fa78() {
-  var res : vec4<i32> = textureGather(1u, arg_1, arg_2, vec3<f32>(), 1u);
+  var res : vec4<i32> = textureGather(1u, arg_1, arg_2, vec3<f32>(1.0f), 1u);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureGather/10c554.wgsl b/test/tint/builtins/gen/literal/textureGather/10c554.wgsl
index ab254c7..d913365 100644
--- a/test/tint/builtins/gen/literal/textureGather/10c554.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/10c554.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureGather(texture: texture_depth_cube, sampler: sampler, coords: vec3<f32>) -> vec4<f32>
 fn textureGather_10c554() {
-  var res: vec4<f32> = textureGather(arg_0, arg_1, vec3<f32>());
+  var res: vec4<f32> = textureGather(arg_0, arg_1, vec3<f32>(1.f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureGather/10c554.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/10c554.wgsl.expected.dxc.hlsl
index 2507fce..961fbcd 100644
--- a/test/tint/builtins/gen/literal/textureGather/10c554.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/10c554.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureGather_10c554() {
-  float4 res = arg_0.Gather(arg_1, (0.0f).xxx);
+  float4 res = arg_0.Gather(arg_1, (1.0f).xxx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/10c554.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/10c554.wgsl.expected.fxc.hlsl
index 2507fce..961fbcd 100644
--- a/test/tint/builtins/gen/literal/textureGather/10c554.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/10c554.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureGather_10c554() {
-  float4 res = arg_0.Gather(arg_1, (0.0f).xxx);
+  float4 res = arg_0.Gather(arg_1, (1.0f).xxx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/10c554.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureGather/10c554.wgsl.expected.glsl
index 47d056b..8efbbef 100644
--- a/test/tint/builtins/gen/literal/textureGather/10c554.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureGather/10c554.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 uniform highp samplerCubeShadow arg_0_arg_1;
 
 void textureGather_10c554() {
-  vec4 res = textureGather(arg_0_arg_1, vec3(0.0f), 0.0);
+  vec4 res = textureGather(arg_0_arg_1, vec3(1.0f), 0.0);
 }
 
 vec4 vertex_main() {
@@ -25,7 +25,7 @@
 uniform highp samplerCubeShadow arg_0_arg_1;
 
 void textureGather_10c554() {
-  vec4 res = textureGather(arg_0_arg_1, vec3(0.0f), 0.0);
+  vec4 res = textureGather(arg_0_arg_1, vec3(1.0f), 0.0);
 }
 
 void fragment_main() {
@@ -41,7 +41,7 @@
 uniform highp samplerCubeShadow arg_0_arg_1;
 
 void textureGather_10c554() {
-  vec4 res = textureGather(arg_0_arg_1, vec3(0.0f), 0.0);
+  vec4 res = textureGather(arg_0_arg_1, vec3(1.0f), 0.0);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureGather/10c554.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureGather/10c554.wgsl.expected.msl
index c3f13c1..1c70a63 100644
--- a/test/tint/builtins/gen/literal/textureGather/10c554.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureGather/10c554.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureGather_10c554(depthcube<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float4 res = tint_symbol_1.gather(tint_symbol_2, float3(0.0f));
+  float4 res = tint_symbol_1.gather(tint_symbol_2, float3(1.0f));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/10c554.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureGather/10c554.wgsl.expected.spvasm
index 44cf7b1..1054b44 100644
--- a/test/tint/builtins/gen/literal/textureGather/10c554.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureGather/10c554.wgsl.expected.spvasm
@@ -44,31 +44,31 @@
          %15 = OpTypeFunction %void
          %22 = OpTypeSampledImage %11
     %v3float = OpTypeVector %float 3
-         %25 = OpConstantNull %v3float
+    %float_1 = OpConstant %float 1
+         %26 = OpConstantComposite %v3float %float_1 %float_1 %float_1
         %int = OpTypeInt 32 1
       %int_0 = OpConstant %int 0
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %30 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %31 = OpTypeFunction %v4float
 %textureGather_10c554 = OpFunction %void None %15
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
          %20 = OpLoad %14 %arg_1
          %21 = OpLoad %11 %arg_0
          %23 = OpSampledImage %22 %21 %20
-         %19 = OpImageGather %v4float %23 %25 %int_0
+         %19 = OpImageGather %v4float %23 %26 %int_0
                OpStore %res %19
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %30
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureGather_10c554
+%vertex_main_inner = OpFunction %v4float None %31
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureGather_10c554
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
-         %35 = OpLabel
-         %36 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %36
+         %36 = OpLabel
+         %37 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %37
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureGather/10c554.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureGather/10c554.wgsl.expected.wgsl
index a4a17cb..b4c068d 100644
--- a/test/tint/builtins/gen/literal/textureGather/10c554.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/10c554.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(1) var arg_1 : sampler;
 
 fn textureGather_10c554() {
-  var res : vec4<f32> = textureGather(arg_0, arg_1, vec3<f32>());
+  var res : vec4<f32> = textureGather(arg_0, arg_1, vec3<f32>(1.0f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureGather/11b2db.wgsl b/test/tint/builtins/gen/literal/textureGather/11b2db.wgsl
index 91d42e6..27c181d 100644
--- a/test/tint/builtins/gen/literal/textureGather/11b2db.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/11b2db.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureGather(@const component: u32, texture: texture_cube<f32>, sampler: sampler, coords: vec3<f32>) -> vec4<f32>
 fn textureGather_11b2db() {
-  var res: vec4<f32> = textureGather(1u, arg_1, arg_2, vec3<f32>());
+  var res: vec4<f32> = textureGather(1u, arg_1, arg_2, vec3<f32>(1.f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureGather/11b2db.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/11b2db.wgsl.expected.dxc.hlsl
index 2a83a5c..7f5a764 100644
--- a/test/tint/builtins/gen/literal/textureGather/11b2db.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/11b2db.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_11b2db() {
-  float4 res = arg_1.GatherGreen(arg_2, (0.0f).xxx);
+  float4 res = arg_1.GatherGreen(arg_2, (1.0f).xxx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/11b2db.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/11b2db.wgsl.expected.fxc.hlsl
index 2a83a5c..7f5a764 100644
--- a/test/tint/builtins/gen/literal/textureGather/11b2db.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/11b2db.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_11b2db() {
-  float4 res = arg_1.GatherGreen(arg_2, (0.0f).xxx);
+  float4 res = arg_1.GatherGreen(arg_2, (1.0f).xxx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/11b2db.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureGather/11b2db.wgsl.expected.glsl
index 9e24c71..a3ee0b8 100644
--- a/test/tint/builtins/gen/literal/textureGather/11b2db.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureGather/11b2db.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 uniform highp samplerCube arg_1_arg_2;
 
 void textureGather_11b2db() {
-  vec4 res = textureGather(arg_1_arg_2, vec3(0.0f), int(1u));
+  vec4 res = textureGather(arg_1_arg_2, vec3(1.0f), int(1u));
 }
 
 vec4 vertex_main() {
@@ -25,7 +25,7 @@
 uniform highp samplerCube arg_1_arg_2;
 
 void textureGather_11b2db() {
-  vec4 res = textureGather(arg_1_arg_2, vec3(0.0f), int(1u));
+  vec4 res = textureGather(arg_1_arg_2, vec3(1.0f), int(1u));
 }
 
 void fragment_main() {
@@ -41,7 +41,7 @@
 uniform highp samplerCube arg_1_arg_2;
 
 void textureGather_11b2db() {
-  vec4 res = textureGather(arg_1_arg_2, vec3(0.0f), int(1u));
+  vec4 res = textureGather(arg_1_arg_2, vec3(1.0f), int(1u));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureGather/11b2db.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureGather/11b2db.wgsl.expected.msl
index 759ae4a..900c473 100644
--- a/test/tint/builtins/gen/literal/textureGather/11b2db.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureGather/11b2db.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureGather_11b2db(texturecube<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float4 res = tint_symbol_1.gather(tint_symbol_2, float3(0.0f), component::y);
+  float4 res = tint_symbol_1.gather(tint_symbol_2, float3(1.0f), component::y);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/11b2db.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureGather/11b2db.wgsl.expected.spvasm
index 2a4f5dd..d86eceb 100644
--- a/test/tint/builtins/gen/literal/textureGather/11b2db.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureGather/11b2db.wgsl.expected.spvasm
@@ -44,31 +44,31 @@
          %15 = OpTypeFunction %void
          %22 = OpTypeSampledImage %11
     %v3float = OpTypeVector %float 3
-         %25 = OpConstantNull %v3float
+    %float_1 = OpConstant %float 1
+         %26 = OpConstantComposite %v3float %float_1 %float_1 %float_1
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %30 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %31 = OpTypeFunction %v4float
 %textureGather_11b2db = OpFunction %void None %15
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
          %20 = OpLoad %14 %arg_2
          %21 = OpLoad %11 %arg_1
          %23 = OpSampledImage %22 %21 %20
-         %19 = OpImageGather %v4float %23 %25 %uint_1
+         %19 = OpImageGather %v4float %23 %26 %uint_1
                OpStore %res %19
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %30
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureGather_11b2db
+%vertex_main_inner = OpFunction %v4float None %31
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureGather_11b2db
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
-         %35 = OpLabel
-         %36 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %36
+         %36 = OpLabel
+         %37 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %37
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureGather/11b2db.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureGather/11b2db.wgsl.expected.wgsl
index f4c60b3..4598046 100644
--- a/test/tint/builtins/gen/literal/textureGather/11b2db.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/11b2db.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(2) var arg_2 : sampler;
 
 fn textureGather_11b2db() {
-  var res : vec4<f32> = textureGather(1u, arg_1, arg_2, vec3<f32>());
+  var res : vec4<f32> = textureGather(1u, arg_1, arg_2, vec3<f32>(1.0f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureGather/17baac.wgsl b/test/tint/builtins/gen/literal/textureGather/17baac.wgsl
index 0f6d84c..b98fda0 100644
--- a/test/tint/builtins/gen/literal/textureGather/17baac.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/17baac.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureGather(@const component: i32, texture: texture_2d_array<f32>, sampler: sampler, coords: vec2<f32>, array_index: u32) -> vec4<f32>
 fn textureGather_17baac() {
-  var res: vec4<f32> = textureGather(1i, arg_1, arg_2, vec2<f32>(), 1u);
+  var res: vec4<f32> = textureGather(1i, arg_1, arg_2, vec2<f32>(1.f), 1u);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureGather/17baac.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/17baac.wgsl.expected.dxc.hlsl
index d61645c..686fcae 100644
--- a/test/tint/builtins/gen/literal/textureGather/17baac.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/17baac.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_17baac() {
-  float4 res = arg_1.GatherGreen(arg_2, float3(0.0f, 0.0f, float(1u)));
+  float4 res = arg_1.GatherGreen(arg_2, float3((1.0f).xx, float(1u)));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/17baac.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/17baac.wgsl.expected.fxc.hlsl
index d61645c..686fcae 100644
--- a/test/tint/builtins/gen/literal/textureGather/17baac.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/17baac.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_17baac() {
-  float4 res = arg_1.GatherGreen(arg_2, float3(0.0f, 0.0f, float(1u)));
+  float4 res = arg_1.GatherGreen(arg_2, float3((1.0f).xx, float(1u)));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/17baac.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureGather/17baac.wgsl.expected.glsl
index e180946..1546cc1 100644
--- a/test/tint/builtins/gen/literal/textureGather/17baac.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureGather/17baac.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 uniform highp sampler2DArray arg_1_arg_2;
 
 void textureGather_17baac() {
-  vec4 res = textureGather(arg_1_arg_2, vec3(0.0f, 0.0f, float(1u)), 1);
+  vec4 res = textureGather(arg_1_arg_2, vec3(vec2(1.0f), float(1u)), 1);
 }
 
 vec4 vertex_main() {
@@ -25,7 +25,7 @@
 uniform highp sampler2DArray arg_1_arg_2;
 
 void textureGather_17baac() {
-  vec4 res = textureGather(arg_1_arg_2, vec3(0.0f, 0.0f, float(1u)), 1);
+  vec4 res = textureGather(arg_1_arg_2, vec3(vec2(1.0f), float(1u)), 1);
 }
 
 void fragment_main() {
@@ -41,7 +41,7 @@
 uniform highp sampler2DArray arg_1_arg_2;
 
 void textureGather_17baac() {
-  vec4 res = textureGather(arg_1_arg_2, vec3(0.0f, 0.0f, float(1u)), 1);
+  vec4 res = textureGather(arg_1_arg_2, vec3(vec2(1.0f), float(1u)), 1);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureGather/17baac.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureGather/17baac.wgsl.expected.msl
index 5741331..bf7e8af 100644
--- a/test/tint/builtins/gen/literal/textureGather/17baac.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureGather/17baac.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureGather_17baac(texture2d_array<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float4 res = tint_symbol_1.gather(tint_symbol_2, float2(0.0f), 1u, int2(0), component::y);
+  float4 res = tint_symbol_1.gather(tint_symbol_2, float2(1.0f), 1u, int2(0), component::y);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/17baac.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureGather/17baac.wgsl.expected.spvasm
index 7734fec..b909cdb 100644
--- a/test/tint/builtins/gen/literal/textureGather/17baac.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureGather/17baac.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 48
+; Bound: 51
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -44,45 +44,48 @@
          %15 = OpTypeFunction %void
          %22 = OpTypeSampledImage %11
     %v3float = OpTypeVector %float 3
-    %float_0 = OpConstant %float 0
+    %v2float = OpTypeVector %float 2
+    %float_1 = OpConstant %float 1
+         %27 = OpConstantComposite %v2float %float_1 %float_1
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %34 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %38 = OpTypeFunction %v4float
 %textureGather_17baac = OpFunction %void None %15
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
          %20 = OpLoad %14 %arg_2
          %21 = OpLoad %11 %arg_1
          %23 = OpSampledImage %22 %21 %20
-         %26 = OpConvertUToF %float %uint_1
-         %29 = OpCompositeConstruct %v3float %float_0 %float_0 %26
-         %19 = OpImageGather %v4float %23 %29 %int_1
+         %28 = OpCompositeExtract %float %27 0
+         %29 = OpCompositeExtract %float %27 1
+         %30 = OpConvertUToF %float %uint_1
+         %33 = OpCompositeConstruct %v3float %28 %29 %30
+         %19 = OpImageGather %v4float %23 %33 %int_1
                OpStore %res %19
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %34
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureGather_17baac
+%vertex_main_inner = OpFunction %v4float None %38
+         %40 = OpLabel
+         %41 = OpFunctionCall %void %textureGather_17baac
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
-         %39 = OpLabel
-         %40 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %40
+         %43 = OpLabel
+         %44 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %44
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %15
-         %43 = OpLabel
-         %44 = OpFunctionCall %void %textureGather_17baac
+         %46 = OpLabel
+         %47 = OpFunctionCall %void %textureGather_17baac
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %15
-         %46 = OpLabel
-         %47 = OpFunctionCall %void %textureGather_17baac
+         %49 = OpLabel
+         %50 = OpFunctionCall %void %textureGather_17baac
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureGather/17baac.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureGather/17baac.wgsl.expected.wgsl
index 9735392..a50cddd 100644
--- a/test/tint/builtins/gen/literal/textureGather/17baac.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/17baac.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(2) var arg_2 : sampler;
 
 fn textureGather_17baac() {
-  var res : vec4<f32> = textureGather(1i, arg_1, arg_2, vec2<f32>(), 1u);
+  var res : vec4<f32> = textureGather(1i, arg_1, arg_2, vec2<f32>(1.0f), 1u);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureGather/1bf0ab.wgsl b/test/tint/builtins/gen/literal/textureGather/1bf0ab.wgsl
index f4d677f..6c58f77 100644
--- a/test/tint/builtins/gen/literal/textureGather/1bf0ab.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/1bf0ab.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureGather(@const component: u32, texture: texture_2d_array<u32>, sampler: sampler, coords: vec2<f32>, array_index: u32) -> vec4<u32>
 fn textureGather_1bf0ab() {
-  var res: vec4<u32> = textureGather(1u, arg_1, arg_2, vec2<f32>(), 1u);
+  var res: vec4<u32> = textureGather(1u, arg_1, arg_2, vec2<f32>(1.f), 1u);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureGather/1bf0ab.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/1bf0ab.wgsl.expected.dxc.hlsl
index 07ebb25..e5ae6c4 100644
--- a/test/tint/builtins/gen/literal/textureGather/1bf0ab.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/1bf0ab.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_1bf0ab() {
-  uint4 res = arg_1.GatherGreen(arg_2, float3(0.0f, 0.0f, float(1u)));
+  uint4 res = arg_1.GatherGreen(arg_2, float3((1.0f).xx, float(1u)));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/1bf0ab.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/1bf0ab.wgsl.expected.fxc.hlsl
index 07ebb25..e5ae6c4 100644
--- a/test/tint/builtins/gen/literal/textureGather/1bf0ab.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/1bf0ab.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_1bf0ab() {
-  uint4 res = arg_1.GatherGreen(arg_2, float3(0.0f, 0.0f, float(1u)));
+  uint4 res = arg_1.GatherGreen(arg_2, float3((1.0f).xx, float(1u)));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/1bf0ab.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureGather/1bf0ab.wgsl.expected.glsl
index fa40fb1..bd3941d 100644
--- a/test/tint/builtins/gen/literal/textureGather/1bf0ab.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureGather/1bf0ab.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 uniform highp usampler2DArray arg_1_arg_2;
 
 void textureGather_1bf0ab() {
-  uvec4 res = textureGather(arg_1_arg_2, vec3(0.0f, 0.0f, float(1u)), int(1u));
+  uvec4 res = textureGather(arg_1_arg_2, vec3(vec2(1.0f), float(1u)), int(1u));
 }
 
 vec4 vertex_main() {
@@ -25,7 +25,7 @@
 uniform highp usampler2DArray arg_1_arg_2;
 
 void textureGather_1bf0ab() {
-  uvec4 res = textureGather(arg_1_arg_2, vec3(0.0f, 0.0f, float(1u)), int(1u));
+  uvec4 res = textureGather(arg_1_arg_2, vec3(vec2(1.0f), float(1u)), int(1u));
 }
 
 void fragment_main() {
@@ -41,7 +41,7 @@
 uniform highp usampler2DArray arg_1_arg_2;
 
 void textureGather_1bf0ab() {
-  uvec4 res = textureGather(arg_1_arg_2, vec3(0.0f, 0.0f, float(1u)), int(1u));
+  uvec4 res = textureGather(arg_1_arg_2, vec3(vec2(1.0f), float(1u)), int(1u));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureGather/1bf0ab.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureGather/1bf0ab.wgsl.expected.msl
index 8d68cea..b498c16 100644
--- a/test/tint/builtins/gen/literal/textureGather/1bf0ab.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureGather/1bf0ab.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureGather_1bf0ab(texture2d_array<uint, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  uint4 res = tint_symbol_1.gather(tint_symbol_2, float2(0.0f), 1u, int2(0), component::y);
+  uint4 res = tint_symbol_1.gather(tint_symbol_2, float2(1.0f), 1u, int2(0), component::y);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/1bf0ab.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureGather/1bf0ab.wgsl.expected.spvasm
index c3a739e..bf4b03f 100644
--- a/test/tint/builtins/gen/literal/textureGather/1bf0ab.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureGather/1bf0ab.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 48
+; Bound: 51
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -46,43 +46,46 @@
      %v4uint = OpTypeVector %uint 4
          %24 = OpTypeSampledImage %11
     %v3float = OpTypeVector %float 3
-    %float_0 = OpConstant %float 0
+    %v2float = OpTypeVector %float 2
+    %float_1 = OpConstant %float 1
+         %29 = OpConstantComposite %v2float %float_1 %float_1
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %33 = OpConstantNull %v4uint
-         %34 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %37 = OpConstantNull %v4uint
+         %38 = OpTypeFunction %v4float
 %textureGather_1bf0ab = OpFunction %void None %16
          %19 = OpLabel
-        %res = OpVariable %_ptr_Function_v4uint Function %33
+        %res = OpVariable %_ptr_Function_v4uint Function %37
          %22 = OpLoad %15 %arg_2
          %23 = OpLoad %11 %arg_1
          %25 = OpSampledImage %24 %23 %22
-         %28 = OpConvertUToF %float %uint_1
-         %30 = OpCompositeConstruct %v3float %float_0 %float_0 %28
-         %20 = OpImageGather %v4uint %25 %30 %uint_1
+         %30 = OpCompositeExtract %float %29 0
+         %31 = OpCompositeExtract %float %29 1
+         %32 = OpConvertUToF %float %uint_1
+         %34 = OpCompositeConstruct %v3float %30 %31 %32
+         %20 = OpImageGather %v4uint %25 %34 %uint_1
                OpStore %res %20
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %34
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureGather_1bf0ab
+%vertex_main_inner = OpFunction %v4float None %38
+         %40 = OpLabel
+         %41 = OpFunctionCall %void %textureGather_1bf0ab
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %16
-         %39 = OpLabel
-         %40 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %40
+         %43 = OpLabel
+         %44 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %44
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %16
-         %43 = OpLabel
-         %44 = OpFunctionCall %void %textureGather_1bf0ab
+         %46 = OpLabel
+         %47 = OpFunctionCall %void %textureGather_1bf0ab
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %16
-         %46 = OpLabel
-         %47 = OpFunctionCall %void %textureGather_1bf0ab
+         %49 = OpLabel
+         %50 = OpFunctionCall %void %textureGather_1bf0ab
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureGather/1bf0ab.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureGather/1bf0ab.wgsl.expected.wgsl
index a909ade..1f2011a 100644
--- a/test/tint/builtins/gen/literal/textureGather/1bf0ab.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/1bf0ab.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(2) var arg_2 : sampler;
 
 fn textureGather_1bf0ab() {
-  var res : vec4<u32> = textureGather(1u, arg_1, arg_2, vec2<f32>(), 1u);
+  var res : vec4<u32> = textureGather(1u, arg_1, arg_2, vec2<f32>(1.0f), 1u);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureGather/1f7f6b.wgsl b/test/tint/builtins/gen/literal/textureGather/1f7f6b.wgsl
index c577b44..1a5f70d 100644
--- a/test/tint/builtins/gen/literal/textureGather/1f7f6b.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/1f7f6b.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureGather(texture: texture_depth_2d, sampler: sampler, coords: vec2<f32>, @const offset: vec2<i32>) -> vec4<f32>
 fn textureGather_1f7f6b() {
-  var res: vec4<f32> = textureGather(arg_0, arg_1, vec2<f32>(), vec2<i32>());
+  var res: vec4<f32> = textureGather(arg_0, arg_1, vec2<f32>(1.f), vec2<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureGather/1f7f6b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/1f7f6b.wgsl.expected.dxc.hlsl
index 287fd65..6ca6ff8 100644
--- a/test/tint/builtins/gen/literal/textureGather/1f7f6b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/1f7f6b.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureGather_1f7f6b() {
-  float4 res = arg_0.Gather(arg_1, (0.0f).xx, (0).xx);
+  float4 res = arg_0.Gather(arg_1, (1.0f).xx, (1).xx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/1f7f6b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/1f7f6b.wgsl.expected.fxc.hlsl
index 287fd65..6ca6ff8 100644
--- a/test/tint/builtins/gen/literal/textureGather/1f7f6b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/1f7f6b.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureGather_1f7f6b() {
-  float4 res = arg_0.Gather(arg_1, (0.0f).xx, (0).xx);
+  float4 res = arg_0.Gather(arg_1, (1.0f).xx, (1).xx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/1f7f6b.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureGather/1f7f6b.wgsl.expected.glsl
index e76e728..3ca8a15 100644
--- a/test/tint/builtins/gen/literal/textureGather/1f7f6b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureGather/1f7f6b.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 uniform highp sampler2DShadow arg_0_arg_1;
 
 void textureGather_1f7f6b() {
-  vec4 res = textureGatherOffset(arg_0_arg_1, vec2(0.0f), 0.0, ivec2(0));
+  vec4 res = textureGatherOffset(arg_0_arg_1, vec2(1.0f), 0.0, ivec2(1));
 }
 
 vec4 vertex_main() {
@@ -25,7 +25,7 @@
 uniform highp sampler2DShadow arg_0_arg_1;
 
 void textureGather_1f7f6b() {
-  vec4 res = textureGatherOffset(arg_0_arg_1, vec2(0.0f), 0.0, ivec2(0));
+  vec4 res = textureGatherOffset(arg_0_arg_1, vec2(1.0f), 0.0, ivec2(1));
 }
 
 void fragment_main() {
@@ -41,7 +41,7 @@
 uniform highp sampler2DShadow arg_0_arg_1;
 
 void textureGather_1f7f6b() {
-  vec4 res = textureGatherOffset(arg_0_arg_1, vec2(0.0f), 0.0, ivec2(0));
+  vec4 res = textureGatherOffset(arg_0_arg_1, vec2(1.0f), 0.0, ivec2(1));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureGather/1f7f6b.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureGather/1f7f6b.wgsl.expected.msl
index a861581..0ad58f0 100644
--- a/test/tint/builtins/gen/literal/textureGather/1f7f6b.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureGather/1f7f6b.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureGather_1f7f6b(depth2d<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float4 res = tint_symbol_1.gather(tint_symbol_2, float2(0.0f), int2(0));
+  float4 res = tint_symbol_1.gather(tint_symbol_2, float2(1.0f), int2(1));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/1f7f6b.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureGather/1f7f6b.wgsl.expected.spvasm
index e4a034c..874d548 100644
--- a/test/tint/builtins/gen/literal/textureGather/1f7f6b.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureGather/1f7f6b.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 46
+; Bound: 47
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -44,43 +44,44 @@
          %15 = OpTypeFunction %void
          %22 = OpTypeSampledImage %11
     %v2float = OpTypeVector %float 2
-         %25 = OpConstantNull %v2float
+    %float_1 = OpConstant %float 1
+         %26 = OpConstantComposite %v2float %float_1 %float_1
         %int = OpTypeInt 32 1
       %int_0 = OpConstant %int 0
       %v2int = OpTypeVector %int 2
-         %29 = OpConstantNull %v2int
+      %int_1 = OpConstant %int 1
+         %31 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %32 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %34 = OpTypeFunction %v4float
 %textureGather_1f7f6b = OpFunction %void None %15
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
          %20 = OpLoad %14 %arg_1
          %21 = OpLoad %11 %arg_0
          %23 = OpSampledImage %22 %21 %20
-         %19 = OpImageGather %v4float %23 %25 %int_0 ConstOffset %29
+         %19 = OpImageGather %v4float %23 %26 %int_0 ConstOffset %31
                OpStore %res %19
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %32
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureGather_1f7f6b
+%vertex_main_inner = OpFunction %v4float None %34
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureGather_1f7f6b
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
-         %37 = OpLabel
-         %38 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %38
+         %39 = OpLabel
+         %40 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %40
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %15
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureGather_1f7f6b
+         %42 = OpLabel
+         %43 = OpFunctionCall %void %textureGather_1f7f6b
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %15
-         %44 = OpLabel
-         %45 = OpFunctionCall %void %textureGather_1f7f6b
+         %45 = OpLabel
+         %46 = OpFunctionCall %void %textureGather_1f7f6b
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureGather/1f7f6b.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureGather/1f7f6b.wgsl.expected.wgsl
index 0c466e9..3a3e2cf 100644
--- a/test/tint/builtins/gen/literal/textureGather/1f7f6b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/1f7f6b.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(1) var arg_1 : sampler;
 
 fn textureGather_1f7f6b() {
-  var res : vec4<f32> = textureGather(arg_0, arg_1, vec2<f32>(), vec2<i32>());
+  var res : vec4<f32> = textureGather(arg_0, arg_1, vec2<f32>(1.0f), vec2<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureGather/22e930.wgsl b/test/tint/builtins/gen/literal/textureGather/22e930.wgsl
index ba2383e..0e2c97a 100644
--- a/test/tint/builtins/gen/literal/textureGather/22e930.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/22e930.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureGather(@const component: i32, texture: texture_2d_array<f32>, sampler: sampler, coords: vec2<f32>, array_index: i32) -> vec4<f32>
 fn textureGather_22e930() {
-  var res: vec4<f32> = textureGather(1i, arg_1, arg_2, vec2<f32>(), 1i);
+  var res: vec4<f32> = textureGather(1i, arg_1, arg_2, vec2<f32>(1.f), 1i);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureGather/22e930.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/22e930.wgsl.expected.dxc.hlsl
index ad22881..dadcc9e 100644
--- a/test/tint/builtins/gen/literal/textureGather/22e930.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/22e930.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_22e930() {
-  float4 res = arg_1.GatherGreen(arg_2, float3(0.0f, 0.0f, float(1)));
+  float4 res = arg_1.GatherGreen(arg_2, float3((1.0f).xx, float(1)));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/22e930.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/22e930.wgsl.expected.fxc.hlsl
index ad22881..dadcc9e 100644
--- a/test/tint/builtins/gen/literal/textureGather/22e930.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/22e930.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_22e930() {
-  float4 res = arg_1.GatherGreen(arg_2, float3(0.0f, 0.0f, float(1)));
+  float4 res = arg_1.GatherGreen(arg_2, float3((1.0f).xx, float(1)));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/22e930.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureGather/22e930.wgsl.expected.glsl
index 79022b7..56ebbfc 100644
--- a/test/tint/builtins/gen/literal/textureGather/22e930.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureGather/22e930.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 uniform highp sampler2DArray arg_1_arg_2;
 
 void textureGather_22e930() {
-  vec4 res = textureGather(arg_1_arg_2, vec3(0.0f, 0.0f, float(1)), 1);
+  vec4 res = textureGather(arg_1_arg_2, vec3(vec2(1.0f), float(1)), 1);
 }
 
 vec4 vertex_main() {
@@ -25,7 +25,7 @@
 uniform highp sampler2DArray arg_1_arg_2;
 
 void textureGather_22e930() {
-  vec4 res = textureGather(arg_1_arg_2, vec3(0.0f, 0.0f, float(1)), 1);
+  vec4 res = textureGather(arg_1_arg_2, vec3(vec2(1.0f), float(1)), 1);
 }
 
 void fragment_main() {
@@ -41,7 +41,7 @@
 uniform highp sampler2DArray arg_1_arg_2;
 
 void textureGather_22e930() {
-  vec4 res = textureGather(arg_1_arg_2, vec3(0.0f, 0.0f, float(1)), 1);
+  vec4 res = textureGather(arg_1_arg_2, vec3(vec2(1.0f), float(1)), 1);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureGather/22e930.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureGather/22e930.wgsl.expected.msl
index b432609..11278d6 100644
--- a/test/tint/builtins/gen/literal/textureGather/22e930.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureGather/22e930.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureGather_22e930(texture2d_array<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float4 res = tint_symbol_1.gather(tint_symbol_2, float2(0.0f), 1, int2(0), component::y);
+  float4 res = tint_symbol_1.gather(tint_symbol_2, float2(1.0f), 1, int2(0), component::y);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/22e930.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureGather/22e930.wgsl.expected.spvasm
index 327eac5..4e541a1 100644
--- a/test/tint/builtins/gen/literal/textureGather/22e930.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureGather/22e930.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 46
+; Bound: 49
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -44,43 +44,46 @@
          %15 = OpTypeFunction %void
          %22 = OpTypeSampledImage %11
     %v3float = OpTypeVector %float 3
-    %float_0 = OpConstant %float 0
+    %v2float = OpTypeVector %float 2
+    %float_1 = OpConstant %float 1
+         %27 = OpConstantComposite %v2float %float_1 %float_1
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %32 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %36 = OpTypeFunction %v4float
 %textureGather_22e930 = OpFunction %void None %15
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
          %20 = OpLoad %14 %arg_2
          %21 = OpLoad %11 %arg_1
          %23 = OpSampledImage %22 %21 %20
-         %26 = OpConvertSToF %float %int_1
-         %29 = OpCompositeConstruct %v3float %float_0 %float_0 %26
-         %19 = OpImageGather %v4float %23 %29 %int_1
+         %28 = OpCompositeExtract %float %27 0
+         %29 = OpCompositeExtract %float %27 1
+         %30 = OpConvertSToF %float %int_1
+         %33 = OpCompositeConstruct %v3float %28 %29 %30
+         %19 = OpImageGather %v4float %23 %33 %int_1
                OpStore %res %19
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %32
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureGather_22e930
+%vertex_main_inner = OpFunction %v4float None %36
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %textureGather_22e930
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
-         %37 = OpLabel
-         %38 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %38
+         %41 = OpLabel
+         %42 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %42
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %15
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureGather_22e930
+         %44 = OpLabel
+         %45 = OpFunctionCall %void %textureGather_22e930
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %15
-         %44 = OpLabel
-         %45 = OpFunctionCall %void %textureGather_22e930
+         %47 = OpLabel
+         %48 = OpFunctionCall %void %textureGather_22e930
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureGather/22e930.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureGather/22e930.wgsl.expected.wgsl
index 41ad3bb..6e8f47d 100644
--- a/test/tint/builtins/gen/literal/textureGather/22e930.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/22e930.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(2) var arg_2 : sampler;
 
 fn textureGather_22e930() {
-  var res : vec4<f32> = textureGather(1i, arg_1, arg_2, vec2<f32>(), 1i);
+  var res : vec4<f32> = textureGather(1i, arg_1, arg_2, vec2<f32>(1.0f), 1i);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureGather/238ec4.wgsl b/test/tint/builtins/gen/literal/textureGather/238ec4.wgsl
index 8af9040..bdfac2c 100644
--- a/test/tint/builtins/gen/literal/textureGather/238ec4.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/238ec4.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureGather(@const component: u32, texture: texture_2d_array<f32>, sampler: sampler, coords: vec2<f32>, array_index: u32, @const offset: vec2<i32>) -> vec4<f32>
 fn textureGather_238ec4() {
-  var res: vec4<f32> = textureGather(1u, arg_1, arg_2, vec2<f32>(), 1u, vec2<i32>());
+  var res: vec4<f32> = textureGather(1u, arg_1, arg_2, vec2<f32>(1.f), 1u, vec2<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureGather/238ec4.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/238ec4.wgsl.expected.dxc.hlsl
index 5a96bad..e3fe82c 100644
--- a/test/tint/builtins/gen/literal/textureGather/238ec4.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/238ec4.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_238ec4() {
-  float4 res = arg_1.GatherGreen(arg_2, float3(0.0f, 0.0f, float(1u)), (0).xx);
+  float4 res = arg_1.GatherGreen(arg_2, float3((1.0f).xx, float(1u)), (1).xx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/238ec4.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/238ec4.wgsl.expected.fxc.hlsl
index 5a96bad..e3fe82c 100644
--- a/test/tint/builtins/gen/literal/textureGather/238ec4.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/238ec4.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_238ec4() {
-  float4 res = arg_1.GatherGreen(arg_2, float3(0.0f, 0.0f, float(1u)), (0).xx);
+  float4 res = arg_1.GatherGreen(arg_2, float3((1.0f).xx, float(1u)), (1).xx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/238ec4.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureGather/238ec4.wgsl.expected.glsl
index 43df0a4..b45b48a 100644
--- a/test/tint/builtins/gen/literal/textureGather/238ec4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureGather/238ec4.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 uniform highp sampler2DArray arg_1_arg_2;
 
 void textureGather_238ec4() {
-  vec4 res = textureGatherOffset(arg_1_arg_2, vec3(0.0f, 0.0f, float(1u)), ivec2(0), int(1u));
+  vec4 res = textureGatherOffset(arg_1_arg_2, vec3(vec2(1.0f), float(1u)), ivec2(1), int(1u));
 }
 
 vec4 vertex_main() {
@@ -25,7 +25,7 @@
 uniform highp sampler2DArray arg_1_arg_2;
 
 void textureGather_238ec4() {
-  vec4 res = textureGatherOffset(arg_1_arg_2, vec3(0.0f, 0.0f, float(1u)), ivec2(0), int(1u));
+  vec4 res = textureGatherOffset(arg_1_arg_2, vec3(vec2(1.0f), float(1u)), ivec2(1), int(1u));
 }
 
 void fragment_main() {
@@ -41,7 +41,7 @@
 uniform highp sampler2DArray arg_1_arg_2;
 
 void textureGather_238ec4() {
-  vec4 res = textureGatherOffset(arg_1_arg_2, vec3(0.0f, 0.0f, float(1u)), ivec2(0), int(1u));
+  vec4 res = textureGatherOffset(arg_1_arg_2, vec3(vec2(1.0f), float(1u)), ivec2(1), int(1u));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureGather/238ec4.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureGather/238ec4.wgsl.expected.msl
index 32e3b88..b1026d2 100644
--- a/test/tint/builtins/gen/literal/textureGather/238ec4.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureGather/238ec4.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureGather_238ec4(texture2d_array<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float4 res = tint_symbol_1.gather(tint_symbol_2, float2(0.0f), 1u, int2(0), component::y);
+  float4 res = tint_symbol_1.gather(tint_symbol_2, float2(1.0f), 1u, int2(1), component::y);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/238ec4.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureGather/238ec4.wgsl.expected.spvasm
index a637fed..f2bc0de 100644
--- a/test/tint/builtins/gen/literal/textureGather/238ec4.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureGather/238ec4.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 49
+; Bound: 53
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -44,46 +44,50 @@
          %15 = OpTypeFunction %void
          %22 = OpTypeSampledImage %11
     %v3float = OpTypeVector %float 3
-    %float_0 = OpConstant %float 0
+    %v2float = OpTypeVector %float 2
+    %float_1 = OpConstant %float 1
+         %27 = OpConstantComposite %v2float %float_1 %float_1
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
-         %32 = OpConstantNull %v2int
+      %int_1 = OpConstant %int 1
+         %37 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %35 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %40 = OpTypeFunction %v4float
 %textureGather_238ec4 = OpFunction %void None %15
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
          %20 = OpLoad %14 %arg_2
          %21 = OpLoad %11 %arg_1
          %23 = OpSampledImage %22 %21 %20
-         %26 = OpConvertUToF %float %uint_1
-         %29 = OpCompositeConstruct %v3float %float_0 %float_0 %26
-         %19 = OpImageGather %v4float %23 %29 %uint_1 ConstOffset %32
+         %28 = OpCompositeExtract %float %27 0
+         %29 = OpCompositeExtract %float %27 1
+         %30 = OpConvertUToF %float %uint_1
+         %33 = OpCompositeConstruct %v3float %28 %29 %30
+         %19 = OpImageGather %v4float %23 %33 %uint_1 ConstOffset %37
                OpStore %res %19
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %35
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureGather_238ec4
+%vertex_main_inner = OpFunction %v4float None %40
+         %42 = OpLabel
+         %43 = OpFunctionCall %void %textureGather_238ec4
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
-         %40 = OpLabel
-         %41 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %41
+         %45 = OpLabel
+         %46 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %46
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %15
-         %44 = OpLabel
-         %45 = OpFunctionCall %void %textureGather_238ec4
+         %48 = OpLabel
+         %49 = OpFunctionCall %void %textureGather_238ec4
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %15
-         %47 = OpLabel
-         %48 = OpFunctionCall %void %textureGather_238ec4
+         %51 = OpLabel
+         %52 = OpFunctionCall %void %textureGather_238ec4
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureGather/238ec4.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureGather/238ec4.wgsl.expected.wgsl
index 37d0344..e985158 100644
--- a/test/tint/builtins/gen/literal/textureGather/238ec4.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/238ec4.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(2) var arg_2 : sampler;
 
 fn textureGather_238ec4() {
-  var res : vec4<f32> = textureGather(1u, arg_1, arg_2, vec2<f32>(), 1u, vec2<i32>());
+  var res : vec4<f32> = textureGather(1u, arg_1, arg_2, vec2<f32>(1.0f), 1u, vec2<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureGather/24b0bd.wgsl b/test/tint/builtins/gen/literal/textureGather/24b0bd.wgsl
index 7d9468c..f922b9c 100644
--- a/test/tint/builtins/gen/literal/textureGather/24b0bd.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/24b0bd.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureGather(@const component: u32, texture: texture_2d_array<f32>, sampler: sampler, coords: vec2<f32>, array_index: i32) -> vec4<f32>
 fn textureGather_24b0bd() {
-  var res: vec4<f32> = textureGather(1u, arg_1, arg_2, vec2<f32>(), 1i);
+  var res: vec4<f32> = textureGather(1u, arg_1, arg_2, vec2<f32>(1.f), 1i);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureGather/24b0bd.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/24b0bd.wgsl.expected.dxc.hlsl
index 68596e1..c543616 100644
--- a/test/tint/builtins/gen/literal/textureGather/24b0bd.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/24b0bd.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_24b0bd() {
-  float4 res = arg_1.GatherGreen(arg_2, float3(0.0f, 0.0f, float(1)));
+  float4 res = arg_1.GatherGreen(arg_2, float3((1.0f).xx, float(1)));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/24b0bd.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/24b0bd.wgsl.expected.fxc.hlsl
index 68596e1..c543616 100644
--- a/test/tint/builtins/gen/literal/textureGather/24b0bd.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/24b0bd.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_24b0bd() {
-  float4 res = arg_1.GatherGreen(arg_2, float3(0.0f, 0.0f, float(1)));
+  float4 res = arg_1.GatherGreen(arg_2, float3((1.0f).xx, float(1)));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/24b0bd.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureGather/24b0bd.wgsl.expected.glsl
index ee71f66..3c0d2c4 100644
--- a/test/tint/builtins/gen/literal/textureGather/24b0bd.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureGather/24b0bd.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 uniform highp sampler2DArray arg_1_arg_2;
 
 void textureGather_24b0bd() {
-  vec4 res = textureGather(arg_1_arg_2, vec3(0.0f, 0.0f, float(1)), int(1u));
+  vec4 res = textureGather(arg_1_arg_2, vec3(vec2(1.0f), float(1)), int(1u));
 }
 
 vec4 vertex_main() {
@@ -25,7 +25,7 @@
 uniform highp sampler2DArray arg_1_arg_2;
 
 void textureGather_24b0bd() {
-  vec4 res = textureGather(arg_1_arg_2, vec3(0.0f, 0.0f, float(1)), int(1u));
+  vec4 res = textureGather(arg_1_arg_2, vec3(vec2(1.0f), float(1)), int(1u));
 }
 
 void fragment_main() {
@@ -41,7 +41,7 @@
 uniform highp sampler2DArray arg_1_arg_2;
 
 void textureGather_24b0bd() {
-  vec4 res = textureGather(arg_1_arg_2, vec3(0.0f, 0.0f, float(1)), int(1u));
+  vec4 res = textureGather(arg_1_arg_2, vec3(vec2(1.0f), float(1)), int(1u));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureGather/24b0bd.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureGather/24b0bd.wgsl.expected.msl
index 0cc11c3..17bd3dd 100644
--- a/test/tint/builtins/gen/literal/textureGather/24b0bd.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureGather/24b0bd.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureGather_24b0bd(texture2d_array<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float4 res = tint_symbol_1.gather(tint_symbol_2, float2(0.0f), 1, int2(0), component::y);
+  float4 res = tint_symbol_1.gather(tint_symbol_2, float2(1.0f), 1, int2(0), component::y);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/24b0bd.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureGather/24b0bd.wgsl.expected.spvasm
index a3a420b..2e9a562 100644
--- a/test/tint/builtins/gen/literal/textureGather/24b0bd.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureGather/24b0bd.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 48
+; Bound: 51
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -44,45 +44,48 @@
          %15 = OpTypeFunction %void
          %22 = OpTypeSampledImage %11
     %v3float = OpTypeVector %float 3
-    %float_0 = OpConstant %float 0
+    %v2float = OpTypeVector %float 2
+    %float_1 = OpConstant %float 1
+         %27 = OpConstantComposite %v2float %float_1 %float_1
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %34 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %38 = OpTypeFunction %v4float
 %textureGather_24b0bd = OpFunction %void None %15
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
          %20 = OpLoad %14 %arg_2
          %21 = OpLoad %11 %arg_1
          %23 = OpSampledImage %22 %21 %20
-         %26 = OpConvertSToF %float %int_1
-         %29 = OpCompositeConstruct %v3float %float_0 %float_0 %26
-         %19 = OpImageGather %v4float %23 %29 %uint_1
+         %28 = OpCompositeExtract %float %27 0
+         %29 = OpCompositeExtract %float %27 1
+         %30 = OpConvertSToF %float %int_1
+         %33 = OpCompositeConstruct %v3float %28 %29 %30
+         %19 = OpImageGather %v4float %23 %33 %uint_1
                OpStore %res %19
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %34
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureGather_24b0bd
+%vertex_main_inner = OpFunction %v4float None %38
+         %40 = OpLabel
+         %41 = OpFunctionCall %void %textureGather_24b0bd
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
-         %39 = OpLabel
-         %40 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %40
+         %43 = OpLabel
+         %44 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %44
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %15
-         %43 = OpLabel
-         %44 = OpFunctionCall %void %textureGather_24b0bd
+         %46 = OpLabel
+         %47 = OpFunctionCall %void %textureGather_24b0bd
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %15
-         %46 = OpLabel
-         %47 = OpFunctionCall %void %textureGather_24b0bd
+         %49 = OpLabel
+         %50 = OpFunctionCall %void %textureGather_24b0bd
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureGather/24b0bd.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureGather/24b0bd.wgsl.expected.wgsl
index 46c8b4d..2c74356 100644
--- a/test/tint/builtins/gen/literal/textureGather/24b0bd.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/24b0bd.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(2) var arg_2 : sampler;
 
 fn textureGather_24b0bd() {
-  var res : vec4<f32> = textureGather(1u, arg_1, arg_2, vec2<f32>(), 1i);
+  var res : vec4<f32> = textureGather(1u, arg_1, arg_2, vec2<f32>(1.0f), 1i);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureGather/269250.wgsl b/test/tint/builtins/gen/literal/textureGather/269250.wgsl
index 38fb051..430edb8 100644
--- a/test/tint/builtins/gen/literal/textureGather/269250.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/269250.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureGather(@const component: u32, texture: texture_2d_array<i32>, sampler: sampler, coords: vec2<f32>, array_index: u32) -> vec4<i32>
 fn textureGather_269250() {
-  var res: vec4<i32> = textureGather(1u, arg_1, arg_2, vec2<f32>(), 1u);
+  var res: vec4<i32> = textureGather(1u, arg_1, arg_2, vec2<f32>(1.f), 1u);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureGather/269250.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/269250.wgsl.expected.dxc.hlsl
index 844cf71..65a7bcc 100644
--- a/test/tint/builtins/gen/literal/textureGather/269250.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/269250.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_269250() {
-  int4 res = arg_1.GatherGreen(arg_2, float3(0.0f, 0.0f, float(1u)));
+  int4 res = arg_1.GatherGreen(arg_2, float3((1.0f).xx, float(1u)));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/269250.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/269250.wgsl.expected.fxc.hlsl
index 844cf71..65a7bcc 100644
--- a/test/tint/builtins/gen/literal/textureGather/269250.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/269250.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_269250() {
-  int4 res = arg_1.GatherGreen(arg_2, float3(0.0f, 0.0f, float(1u)));
+  int4 res = arg_1.GatherGreen(arg_2, float3((1.0f).xx, float(1u)));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/269250.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureGather/269250.wgsl.expected.glsl
index 73f7dc6..b22da1b 100644
--- a/test/tint/builtins/gen/literal/textureGather/269250.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureGather/269250.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 uniform highp isampler2DArray arg_1_arg_2;
 
 void textureGather_269250() {
-  ivec4 res = textureGather(arg_1_arg_2, vec3(0.0f, 0.0f, float(1u)), int(1u));
+  ivec4 res = textureGather(arg_1_arg_2, vec3(vec2(1.0f), float(1u)), int(1u));
 }
 
 vec4 vertex_main() {
@@ -25,7 +25,7 @@
 uniform highp isampler2DArray arg_1_arg_2;
 
 void textureGather_269250() {
-  ivec4 res = textureGather(arg_1_arg_2, vec3(0.0f, 0.0f, float(1u)), int(1u));
+  ivec4 res = textureGather(arg_1_arg_2, vec3(vec2(1.0f), float(1u)), int(1u));
 }
 
 void fragment_main() {
@@ -41,7 +41,7 @@
 uniform highp isampler2DArray arg_1_arg_2;
 
 void textureGather_269250() {
-  ivec4 res = textureGather(arg_1_arg_2, vec3(0.0f, 0.0f, float(1u)), int(1u));
+  ivec4 res = textureGather(arg_1_arg_2, vec3(vec2(1.0f), float(1u)), int(1u));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureGather/269250.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureGather/269250.wgsl.expected.msl
index d7c68bc..61afc23 100644
--- a/test/tint/builtins/gen/literal/textureGather/269250.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureGather/269250.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureGather_269250(texture2d_array<int, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  int4 res = tint_symbol_1.gather(tint_symbol_2, float2(0.0f), 1u, int2(0), component::y);
+  int4 res = tint_symbol_1.gather(tint_symbol_2, float2(1.0f), 1u, int2(0), component::y);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/269250.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureGather/269250.wgsl.expected.spvasm
index f88bf30..38906b3 100644
--- a/test/tint/builtins/gen/literal/textureGather/269250.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureGather/269250.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 49
+; Bound: 52
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -46,44 +46,47 @@
       %v4int = OpTypeVector %int 4
          %24 = OpTypeSampledImage %11
     %v3float = OpTypeVector %float 3
-    %float_0 = OpConstant %float 0
+    %v2float = OpTypeVector %float 2
+    %float_1 = OpConstant %float 1
+         %29 = OpConstantComposite %v2float %float_1 %float_1
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %34 = OpConstantNull %v4int
-         %35 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %38 = OpConstantNull %v4int
+         %39 = OpTypeFunction %v4float
 %textureGather_269250 = OpFunction %void None %16
          %19 = OpLabel
-        %res = OpVariable %_ptr_Function_v4int Function %34
+        %res = OpVariable %_ptr_Function_v4int Function %38
          %22 = OpLoad %15 %arg_2
          %23 = OpLoad %11 %arg_1
          %25 = OpSampledImage %24 %23 %22
-         %28 = OpConvertUToF %float %uint_1
-         %31 = OpCompositeConstruct %v3float %float_0 %float_0 %28
-         %20 = OpImageGather %v4int %25 %31 %uint_1
+         %30 = OpCompositeExtract %float %29 0
+         %31 = OpCompositeExtract %float %29 1
+         %32 = OpConvertUToF %float %uint_1
+         %35 = OpCompositeConstruct %v3float %30 %31 %32
+         %20 = OpImageGather %v4int %25 %35 %uint_1
                OpStore %res %20
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %35
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureGather_269250
+%vertex_main_inner = OpFunction %v4float None %39
+         %41 = OpLabel
+         %42 = OpFunctionCall %void %textureGather_269250
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %16
-         %40 = OpLabel
-         %41 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %41
+         %44 = OpLabel
+         %45 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %45
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %16
-         %44 = OpLabel
-         %45 = OpFunctionCall %void %textureGather_269250
+         %47 = OpLabel
+         %48 = OpFunctionCall %void %textureGather_269250
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %16
-         %47 = OpLabel
-         %48 = OpFunctionCall %void %textureGather_269250
+         %50 = OpLabel
+         %51 = OpFunctionCall %void %textureGather_269250
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureGather/269250.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureGather/269250.wgsl.expected.wgsl
index 7c75feb..c1431e4 100644
--- a/test/tint/builtins/gen/literal/textureGather/269250.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/269250.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(2) var arg_2 : sampler;
 
 fn textureGather_269250() {
-  var res : vec4<i32> = textureGather(1u, arg_1, arg_2, vec2<f32>(), 1u);
+  var res : vec4<i32> = textureGather(1u, arg_1, arg_2, vec2<f32>(1.0f), 1u);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureGather/2a4f40.wgsl b/test/tint/builtins/gen/literal/textureGather/2a4f40.wgsl
index 99474a2..f678a5b 100644
--- a/test/tint/builtins/gen/literal/textureGather/2a4f40.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/2a4f40.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureGather(texture: texture_depth_2d_array, sampler: sampler, coords: vec2<f32>, array_index: u32) -> vec4<f32>
 fn textureGather_2a4f40() {
-  var res: vec4<f32> = textureGather(arg_0, arg_1, vec2<f32>(), 1u);
+  var res: vec4<f32> = textureGather(arg_0, arg_1, vec2<f32>(1.f), 1u);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureGather/2a4f40.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/2a4f40.wgsl.expected.dxc.hlsl
index 334a85f..9db6f8f 100644
--- a/test/tint/builtins/gen/literal/textureGather/2a4f40.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/2a4f40.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureGather_2a4f40() {
-  float4 res = arg_0.Gather(arg_1, float3(0.0f, 0.0f, float(1u)));
+  float4 res = arg_0.Gather(arg_1, float3((1.0f).xx, float(1u)));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/2a4f40.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/2a4f40.wgsl.expected.fxc.hlsl
index 334a85f..9db6f8f 100644
--- a/test/tint/builtins/gen/literal/textureGather/2a4f40.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/2a4f40.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureGather_2a4f40() {
-  float4 res = arg_0.Gather(arg_1, float3(0.0f, 0.0f, float(1u)));
+  float4 res = arg_0.Gather(arg_1, float3((1.0f).xx, float(1u)));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/2a4f40.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureGather/2a4f40.wgsl.expected.glsl
index 5e67696..84872c9 100644
--- a/test/tint/builtins/gen/literal/textureGather/2a4f40.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureGather/2a4f40.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 uniform highp sampler2DArrayShadow arg_0_arg_1;
 
 void textureGather_2a4f40() {
-  vec4 res = textureGather(arg_0_arg_1, vec3(0.0f, 0.0f, float(1u)), 0.0);
+  vec4 res = textureGather(arg_0_arg_1, vec3(vec2(1.0f), float(1u)), 0.0);
 }
 
 vec4 vertex_main() {
@@ -25,7 +25,7 @@
 uniform highp sampler2DArrayShadow arg_0_arg_1;
 
 void textureGather_2a4f40() {
-  vec4 res = textureGather(arg_0_arg_1, vec3(0.0f, 0.0f, float(1u)), 0.0);
+  vec4 res = textureGather(arg_0_arg_1, vec3(vec2(1.0f), float(1u)), 0.0);
 }
 
 void fragment_main() {
@@ -41,7 +41,7 @@
 uniform highp sampler2DArrayShadow arg_0_arg_1;
 
 void textureGather_2a4f40() {
-  vec4 res = textureGather(arg_0_arg_1, vec3(0.0f, 0.0f, float(1u)), 0.0);
+  vec4 res = textureGather(arg_0_arg_1, vec3(vec2(1.0f), float(1u)), 0.0);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureGather/2a4f40.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureGather/2a4f40.wgsl.expected.msl
index ac60335..a647316 100644
--- a/test/tint/builtins/gen/literal/textureGather/2a4f40.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureGather/2a4f40.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureGather_2a4f40(depth2d_array<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float4 res = tint_symbol_1.gather(tint_symbol_2, float2(0.0f), 1u);
+  float4 res = tint_symbol_1.gather(tint_symbol_2, float2(1.0f), 1u);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/2a4f40.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureGather/2a4f40.wgsl.expected.spvasm
index a6f0405..ffc18d5 100644
--- a/test/tint/builtins/gen/literal/textureGather/2a4f40.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureGather/2a4f40.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 48
+; Bound: 51
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -44,45 +44,48 @@
          %15 = OpTypeFunction %void
          %22 = OpTypeSampledImage %11
     %v3float = OpTypeVector %float 3
-    %float_0 = OpConstant %float 0
+    %v2float = OpTypeVector %float 2
+    %float_1 = OpConstant %float 1
+         %27 = OpConstantComposite %v2float %float_1 %float_1
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
         %int = OpTypeInt 32 1
       %int_0 = OpConstant %int 0
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %34 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %38 = OpTypeFunction %v4float
 %textureGather_2a4f40 = OpFunction %void None %15
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
          %20 = OpLoad %14 %arg_1
          %21 = OpLoad %11 %arg_0
          %23 = OpSampledImage %22 %21 %20
-         %26 = OpConvertUToF %float %uint_1
-         %29 = OpCompositeConstruct %v3float %float_0 %float_0 %26
-         %19 = OpImageGather %v4float %23 %29 %int_0
+         %28 = OpCompositeExtract %float %27 0
+         %29 = OpCompositeExtract %float %27 1
+         %30 = OpConvertUToF %float %uint_1
+         %33 = OpCompositeConstruct %v3float %28 %29 %30
+         %19 = OpImageGather %v4float %23 %33 %int_0
                OpStore %res %19
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %34
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureGather_2a4f40
+%vertex_main_inner = OpFunction %v4float None %38
+         %40 = OpLabel
+         %41 = OpFunctionCall %void %textureGather_2a4f40
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
-         %39 = OpLabel
-         %40 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %40
+         %43 = OpLabel
+         %44 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %44
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %15
-         %43 = OpLabel
-         %44 = OpFunctionCall %void %textureGather_2a4f40
+         %46 = OpLabel
+         %47 = OpFunctionCall %void %textureGather_2a4f40
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %15
-         %46 = OpLabel
-         %47 = OpFunctionCall %void %textureGather_2a4f40
+         %49 = OpLabel
+         %50 = OpFunctionCall %void %textureGather_2a4f40
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureGather/2a4f40.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureGather/2a4f40.wgsl.expected.wgsl
index 89388ed..bc6a8c0 100644
--- a/test/tint/builtins/gen/literal/textureGather/2a4f40.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/2a4f40.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(1) var arg_1 : sampler;
 
 fn textureGather_2a4f40() {
-  var res : vec4<f32> = textureGather(arg_0, arg_1, vec2<f32>(), 1u);
+  var res : vec4<f32> = textureGather(arg_0, arg_1, vec2<f32>(1.0f), 1u);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureGather/2cc066.wgsl b/test/tint/builtins/gen/literal/textureGather/2cc066.wgsl
index fba78db..afa270a 100644
--- a/test/tint/builtins/gen/literal/textureGather/2cc066.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/2cc066.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureGather(@const component: i32, texture: texture_2d_array<u32>, sampler: sampler, coords: vec2<f32>, array_index: i32) -> vec4<u32>
 fn textureGather_2cc066() {
-  var res: vec4<u32> = textureGather(1i, arg_1, arg_2, vec2<f32>(), 1i);
+  var res: vec4<u32> = textureGather(1i, arg_1, arg_2, vec2<f32>(1.f), 1i);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureGather/2cc066.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/2cc066.wgsl.expected.dxc.hlsl
index 222acf5..01eef68 100644
--- a/test/tint/builtins/gen/literal/textureGather/2cc066.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/2cc066.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_2cc066() {
-  uint4 res = arg_1.GatherGreen(arg_2, float3(0.0f, 0.0f, float(1)));
+  uint4 res = arg_1.GatherGreen(arg_2, float3((1.0f).xx, float(1)));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/2cc066.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/2cc066.wgsl.expected.fxc.hlsl
index 222acf5..01eef68 100644
--- a/test/tint/builtins/gen/literal/textureGather/2cc066.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/2cc066.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_2cc066() {
-  uint4 res = arg_1.GatherGreen(arg_2, float3(0.0f, 0.0f, float(1)));
+  uint4 res = arg_1.GatherGreen(arg_2, float3((1.0f).xx, float(1)));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/2cc066.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureGather/2cc066.wgsl.expected.glsl
index 7c6c133..906dd13 100644
--- a/test/tint/builtins/gen/literal/textureGather/2cc066.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureGather/2cc066.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 uniform highp usampler2DArray arg_1_arg_2;
 
 void textureGather_2cc066() {
-  uvec4 res = textureGather(arg_1_arg_2, vec3(0.0f, 0.0f, float(1)), 1);
+  uvec4 res = textureGather(arg_1_arg_2, vec3(vec2(1.0f), float(1)), 1);
 }
 
 vec4 vertex_main() {
@@ -25,7 +25,7 @@
 uniform highp usampler2DArray arg_1_arg_2;
 
 void textureGather_2cc066() {
-  uvec4 res = textureGather(arg_1_arg_2, vec3(0.0f, 0.0f, float(1)), 1);
+  uvec4 res = textureGather(arg_1_arg_2, vec3(vec2(1.0f), float(1)), 1);
 }
 
 void fragment_main() {
@@ -41,7 +41,7 @@
 uniform highp usampler2DArray arg_1_arg_2;
 
 void textureGather_2cc066() {
-  uvec4 res = textureGather(arg_1_arg_2, vec3(0.0f, 0.0f, float(1)), 1);
+  uvec4 res = textureGather(arg_1_arg_2, vec3(vec2(1.0f), float(1)), 1);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureGather/2cc066.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureGather/2cc066.wgsl.expected.msl
index fa0531a..9c27e69 100644
--- a/test/tint/builtins/gen/literal/textureGather/2cc066.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureGather/2cc066.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureGather_2cc066(texture2d_array<uint, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  uint4 res = tint_symbol_1.gather(tint_symbol_2, float2(0.0f), 1, int2(0), component::y);
+  uint4 res = tint_symbol_1.gather(tint_symbol_2, float2(1.0f), 1, int2(0), component::y);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/2cc066.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureGather/2cc066.wgsl.expected.spvasm
index a931db1..b8f5938 100644
--- a/test/tint/builtins/gen/literal/textureGather/2cc066.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureGather/2cc066.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 49
+; Bound: 52
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -46,44 +46,47 @@
      %v4uint = OpTypeVector %uint 4
          %24 = OpTypeSampledImage %11
     %v3float = OpTypeVector %float 3
-    %float_0 = OpConstant %float 0
+    %v2float = OpTypeVector %float 2
+    %float_1 = OpConstant %float 1
+         %29 = OpConstantComposite %v2float %float_1 %float_1
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %34 = OpConstantNull %v4uint
-         %35 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %38 = OpConstantNull %v4uint
+         %39 = OpTypeFunction %v4float
 %textureGather_2cc066 = OpFunction %void None %16
          %19 = OpLabel
-        %res = OpVariable %_ptr_Function_v4uint Function %34
+        %res = OpVariable %_ptr_Function_v4uint Function %38
          %22 = OpLoad %15 %arg_2
          %23 = OpLoad %11 %arg_1
          %25 = OpSampledImage %24 %23 %22
-         %28 = OpConvertSToF %float %int_1
-         %31 = OpCompositeConstruct %v3float %float_0 %float_0 %28
-         %20 = OpImageGather %v4uint %25 %31 %int_1
+         %30 = OpCompositeExtract %float %29 0
+         %31 = OpCompositeExtract %float %29 1
+         %32 = OpConvertSToF %float %int_1
+         %35 = OpCompositeConstruct %v3float %30 %31 %32
+         %20 = OpImageGather %v4uint %25 %35 %int_1
                OpStore %res %20
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %35
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureGather_2cc066
+%vertex_main_inner = OpFunction %v4float None %39
+         %41 = OpLabel
+         %42 = OpFunctionCall %void %textureGather_2cc066
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %16
-         %40 = OpLabel
-         %41 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %41
+         %44 = OpLabel
+         %45 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %45
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %16
-         %44 = OpLabel
-         %45 = OpFunctionCall %void %textureGather_2cc066
+         %47 = OpLabel
+         %48 = OpFunctionCall %void %textureGather_2cc066
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %16
-         %47 = OpLabel
-         %48 = OpFunctionCall %void %textureGather_2cc066
+         %50 = OpLabel
+         %51 = OpFunctionCall %void %textureGather_2cc066
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureGather/2cc066.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureGather/2cc066.wgsl.expected.wgsl
index 318f910..9f71bf4 100644
--- a/test/tint/builtins/gen/literal/textureGather/2cc066.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/2cc066.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(2) var arg_2 : sampler;
 
 fn textureGather_2cc066() {
-  var res : vec4<u32> = textureGather(1i, arg_1, arg_2, vec2<f32>(), 1i);
+  var res : vec4<u32> = textureGather(1i, arg_1, arg_2, vec2<f32>(1.0f), 1i);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureGather/2e0ed5.wgsl b/test/tint/builtins/gen/literal/textureGather/2e0ed5.wgsl
index d73af28..410adfd 100644
--- a/test/tint/builtins/gen/literal/textureGather/2e0ed5.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/2e0ed5.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureGather(texture: texture_depth_2d, sampler: sampler, coords: vec2<f32>) -> vec4<f32>
 fn textureGather_2e0ed5() {
-  var res: vec4<f32> = textureGather(arg_0, arg_1, vec2<f32>());
+  var res: vec4<f32> = textureGather(arg_0, arg_1, vec2<f32>(1.f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureGather/2e0ed5.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/2e0ed5.wgsl.expected.dxc.hlsl
index e1a5741..1da303c 100644
--- a/test/tint/builtins/gen/literal/textureGather/2e0ed5.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/2e0ed5.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureGather_2e0ed5() {
-  float4 res = arg_0.Gather(arg_1, (0.0f).xx);
+  float4 res = arg_0.Gather(arg_1, (1.0f).xx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/2e0ed5.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/2e0ed5.wgsl.expected.fxc.hlsl
index e1a5741..1da303c 100644
--- a/test/tint/builtins/gen/literal/textureGather/2e0ed5.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/2e0ed5.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureGather_2e0ed5() {
-  float4 res = arg_0.Gather(arg_1, (0.0f).xx);
+  float4 res = arg_0.Gather(arg_1, (1.0f).xx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/2e0ed5.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureGather/2e0ed5.wgsl.expected.glsl
index 8eca46c..c4b7932 100644
--- a/test/tint/builtins/gen/literal/textureGather/2e0ed5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureGather/2e0ed5.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 uniform highp sampler2DShadow arg_0_arg_1;
 
 void textureGather_2e0ed5() {
-  vec4 res = textureGather(arg_0_arg_1, vec2(0.0f), 0.0);
+  vec4 res = textureGather(arg_0_arg_1, vec2(1.0f), 0.0);
 }
 
 vec4 vertex_main() {
@@ -25,7 +25,7 @@
 uniform highp sampler2DShadow arg_0_arg_1;
 
 void textureGather_2e0ed5() {
-  vec4 res = textureGather(arg_0_arg_1, vec2(0.0f), 0.0);
+  vec4 res = textureGather(arg_0_arg_1, vec2(1.0f), 0.0);
 }
 
 void fragment_main() {
@@ -41,7 +41,7 @@
 uniform highp sampler2DShadow arg_0_arg_1;
 
 void textureGather_2e0ed5() {
-  vec4 res = textureGather(arg_0_arg_1, vec2(0.0f), 0.0);
+  vec4 res = textureGather(arg_0_arg_1, vec2(1.0f), 0.0);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureGather/2e0ed5.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureGather/2e0ed5.wgsl.expected.msl
index 9ae7410..646efa0 100644
--- a/test/tint/builtins/gen/literal/textureGather/2e0ed5.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureGather/2e0ed5.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureGather_2e0ed5(depth2d<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float4 res = tint_symbol_1.gather(tint_symbol_2, float2(0.0f));
+  float4 res = tint_symbol_1.gather(tint_symbol_2, float2(1.0f));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/2e0ed5.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureGather/2e0ed5.wgsl.expected.spvasm
index 0170582..f787563 100644
--- a/test/tint/builtins/gen/literal/textureGather/2e0ed5.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureGather/2e0ed5.wgsl.expected.spvasm
@@ -44,31 +44,31 @@
          %15 = OpTypeFunction %void
          %22 = OpTypeSampledImage %11
     %v2float = OpTypeVector %float 2
-         %25 = OpConstantNull %v2float
+    %float_1 = OpConstant %float 1
+         %26 = OpConstantComposite %v2float %float_1 %float_1
         %int = OpTypeInt 32 1
       %int_0 = OpConstant %int 0
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %30 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %31 = OpTypeFunction %v4float
 %textureGather_2e0ed5 = OpFunction %void None %15
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
          %20 = OpLoad %14 %arg_1
          %21 = OpLoad %11 %arg_0
          %23 = OpSampledImage %22 %21 %20
-         %19 = OpImageGather %v4float %23 %25 %int_0
+         %19 = OpImageGather %v4float %23 %26 %int_0
                OpStore %res %19
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %30
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureGather_2e0ed5
+%vertex_main_inner = OpFunction %v4float None %31
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureGather_2e0ed5
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
-         %35 = OpLabel
-         %36 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %36
+         %36 = OpLabel
+         %37 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %37
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureGather/2e0ed5.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureGather/2e0ed5.wgsl.expected.wgsl
index 4b2a82c..94df481 100644
--- a/test/tint/builtins/gen/literal/textureGather/2e0ed5.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/2e0ed5.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(1) var arg_1 : sampler;
 
 fn textureGather_2e0ed5() {
-  var res : vec4<f32> = textureGather(arg_0, arg_1, vec2<f32>());
+  var res : vec4<f32> = textureGather(arg_0, arg_1, vec2<f32>(1.0f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureGather/32c4e8.wgsl b/test/tint/builtins/gen/literal/textureGather/32c4e8.wgsl
index 8bbf3b2..de80564 100644
--- a/test/tint/builtins/gen/literal/textureGather/32c4e8.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/32c4e8.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureGather(@const component: i32, texture: texture_cube<f32>, sampler: sampler, coords: vec3<f32>) -> vec4<f32>
 fn textureGather_32c4e8() {
-  var res: vec4<f32> = textureGather(1i, arg_1, arg_2, vec3<f32>());
+  var res: vec4<f32> = textureGather(1i, arg_1, arg_2, vec3<f32>(1.f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureGather/32c4e8.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/32c4e8.wgsl.expected.dxc.hlsl
index ce7b157..ce85f35 100644
--- a/test/tint/builtins/gen/literal/textureGather/32c4e8.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/32c4e8.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_32c4e8() {
-  float4 res = arg_1.GatherGreen(arg_2, (0.0f).xxx);
+  float4 res = arg_1.GatherGreen(arg_2, (1.0f).xxx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/32c4e8.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/32c4e8.wgsl.expected.fxc.hlsl
index ce7b157..ce85f35 100644
--- a/test/tint/builtins/gen/literal/textureGather/32c4e8.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/32c4e8.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_32c4e8() {
-  float4 res = arg_1.GatherGreen(arg_2, (0.0f).xxx);
+  float4 res = arg_1.GatherGreen(arg_2, (1.0f).xxx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/32c4e8.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureGather/32c4e8.wgsl.expected.glsl
index 3b5504b..bf84c6c 100644
--- a/test/tint/builtins/gen/literal/textureGather/32c4e8.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureGather/32c4e8.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 uniform highp samplerCube arg_1_arg_2;
 
 void textureGather_32c4e8() {
-  vec4 res = textureGather(arg_1_arg_2, vec3(0.0f), 1);
+  vec4 res = textureGather(arg_1_arg_2, vec3(1.0f), 1);
 }
 
 vec4 vertex_main() {
@@ -25,7 +25,7 @@
 uniform highp samplerCube arg_1_arg_2;
 
 void textureGather_32c4e8() {
-  vec4 res = textureGather(arg_1_arg_2, vec3(0.0f), 1);
+  vec4 res = textureGather(arg_1_arg_2, vec3(1.0f), 1);
 }
 
 void fragment_main() {
@@ -41,7 +41,7 @@
 uniform highp samplerCube arg_1_arg_2;
 
 void textureGather_32c4e8() {
-  vec4 res = textureGather(arg_1_arg_2, vec3(0.0f), 1);
+  vec4 res = textureGather(arg_1_arg_2, vec3(1.0f), 1);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureGather/32c4e8.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureGather/32c4e8.wgsl.expected.msl
index 4553861..7a9044f 100644
--- a/test/tint/builtins/gen/literal/textureGather/32c4e8.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureGather/32c4e8.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureGather_32c4e8(texturecube<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float4 res = tint_symbol_1.gather(tint_symbol_2, float3(0.0f), component::y);
+  float4 res = tint_symbol_1.gather(tint_symbol_2, float3(1.0f), component::y);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/32c4e8.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureGather/32c4e8.wgsl.expected.spvasm
index f2cc297..080c3f8 100644
--- a/test/tint/builtins/gen/literal/textureGather/32c4e8.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureGather/32c4e8.wgsl.expected.spvasm
@@ -44,31 +44,31 @@
          %15 = OpTypeFunction %void
          %22 = OpTypeSampledImage %11
     %v3float = OpTypeVector %float 3
-         %25 = OpConstantNull %v3float
+    %float_1 = OpConstant %float 1
+         %26 = OpConstantComposite %v3float %float_1 %float_1 %float_1
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %30 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %31 = OpTypeFunction %v4float
 %textureGather_32c4e8 = OpFunction %void None %15
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
          %20 = OpLoad %14 %arg_2
          %21 = OpLoad %11 %arg_1
          %23 = OpSampledImage %22 %21 %20
-         %19 = OpImageGather %v4float %23 %25 %int_1
+         %19 = OpImageGather %v4float %23 %26 %int_1
                OpStore %res %19
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %30
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureGather_32c4e8
+%vertex_main_inner = OpFunction %v4float None %31
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureGather_32c4e8
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
-         %35 = OpLabel
-         %36 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %36
+         %36 = OpLabel
+         %37 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %37
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureGather/32c4e8.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureGather/32c4e8.wgsl.expected.wgsl
index d67ff72..f32d23b 100644
--- a/test/tint/builtins/gen/literal/textureGather/32c4e8.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/32c4e8.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(2) var arg_2 : sampler;
 
 fn textureGather_32c4e8() {
-  var res : vec4<f32> = textureGather(1i, arg_1, arg_2, vec3<f32>());
+  var res : vec4<f32> = textureGather(1i, arg_1, arg_2, vec3<f32>(1.0f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureGather/3b32cc.wgsl b/test/tint/builtins/gen/literal/textureGather/3b32cc.wgsl
index 2abaafe..a03abf8 100644
--- a/test/tint/builtins/gen/literal/textureGather/3b32cc.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/3b32cc.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureGather(@const component: i32, texture: texture_cube<u32>, sampler: sampler, coords: vec3<f32>) -> vec4<u32>
 fn textureGather_3b32cc() {
-  var res: vec4<u32> = textureGather(1i, arg_1, arg_2, vec3<f32>());
+  var res: vec4<u32> = textureGather(1i, arg_1, arg_2, vec3<f32>(1.f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureGather/3b32cc.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/3b32cc.wgsl.expected.dxc.hlsl
index 4fe9dd1..b018cb7 100644
--- a/test/tint/builtins/gen/literal/textureGather/3b32cc.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/3b32cc.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_3b32cc() {
-  uint4 res = arg_1.GatherGreen(arg_2, (0.0f).xxx);
+  uint4 res = arg_1.GatherGreen(arg_2, (1.0f).xxx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/3b32cc.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/3b32cc.wgsl.expected.fxc.hlsl
index 4fe9dd1..b018cb7 100644
--- a/test/tint/builtins/gen/literal/textureGather/3b32cc.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/3b32cc.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_3b32cc() {
-  uint4 res = arg_1.GatherGreen(arg_2, (0.0f).xxx);
+  uint4 res = arg_1.GatherGreen(arg_2, (1.0f).xxx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/3b32cc.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureGather/3b32cc.wgsl.expected.glsl
index 38d1176..4860102 100644
--- a/test/tint/builtins/gen/literal/textureGather/3b32cc.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureGather/3b32cc.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 uniform highp usamplerCube arg_1_arg_2;
 
 void textureGather_3b32cc() {
-  uvec4 res = textureGather(arg_1_arg_2, vec3(0.0f), 1);
+  uvec4 res = textureGather(arg_1_arg_2, vec3(1.0f), 1);
 }
 
 vec4 vertex_main() {
@@ -25,7 +25,7 @@
 uniform highp usamplerCube arg_1_arg_2;
 
 void textureGather_3b32cc() {
-  uvec4 res = textureGather(arg_1_arg_2, vec3(0.0f), 1);
+  uvec4 res = textureGather(arg_1_arg_2, vec3(1.0f), 1);
 }
 
 void fragment_main() {
@@ -41,7 +41,7 @@
 uniform highp usamplerCube arg_1_arg_2;
 
 void textureGather_3b32cc() {
-  uvec4 res = textureGather(arg_1_arg_2, vec3(0.0f), 1);
+  uvec4 res = textureGather(arg_1_arg_2, vec3(1.0f), 1);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureGather/3b32cc.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureGather/3b32cc.wgsl.expected.msl
index 864d36c..5f4d892 100644
--- a/test/tint/builtins/gen/literal/textureGather/3b32cc.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureGather/3b32cc.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureGather_3b32cc(texturecube<uint, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  uint4 res = tint_symbol_1.gather(tint_symbol_2, float3(0.0f), component::y);
+  uint4 res = tint_symbol_1.gather(tint_symbol_2, float3(1.0f), component::y);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/3b32cc.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureGather/3b32cc.wgsl.expected.spvasm
index 829beb2..7144ab2 100644
--- a/test/tint/builtins/gen/literal/textureGather/3b32cc.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureGather/3b32cc.wgsl.expected.spvasm
@@ -46,32 +46,32 @@
      %v4uint = OpTypeVector %uint 4
          %24 = OpTypeSampledImage %11
     %v3float = OpTypeVector %float 3
-         %27 = OpConstantNull %v3float
+    %float_1 = OpConstant %float 1
+         %28 = OpConstantComposite %v3float %float_1 %float_1 %float_1
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %32 = OpConstantNull %v4uint
-         %33 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %33 = OpConstantNull %v4uint
+         %34 = OpTypeFunction %v4float
 %textureGather_3b32cc = OpFunction %void None %16
          %19 = OpLabel
-        %res = OpVariable %_ptr_Function_v4uint Function %32
+        %res = OpVariable %_ptr_Function_v4uint Function %33
          %22 = OpLoad %15 %arg_2
          %23 = OpLoad %11 %arg_1
          %25 = OpSampledImage %24 %23 %22
-         %20 = OpImageGather %v4uint %25 %27 %int_1
+         %20 = OpImageGather %v4uint %25 %28 %int_1
                OpStore %res %20
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %33
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureGather_3b32cc
+%vertex_main_inner = OpFunction %v4float None %34
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureGather_3b32cc
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %16
-         %38 = OpLabel
-         %39 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %39
+         %39 = OpLabel
+         %40 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %40
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureGather/3b32cc.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureGather/3b32cc.wgsl.expected.wgsl
index 0358d14..bcee7c0 100644
--- a/test/tint/builtins/gen/literal/textureGather/3b32cc.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/3b32cc.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(2) var arg_2 : sampler;
 
 fn textureGather_3b32cc() {
-  var res : vec4<u32> = textureGather(1i, arg_1, arg_2, vec3<f32>());
+  var res : vec4<u32> = textureGather(1i, arg_1, arg_2, vec3<f32>(1.0f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureGather/43025d.wgsl b/test/tint/builtins/gen/literal/textureGather/43025d.wgsl
index e8221d5..23b0ac9 100644
--- a/test/tint/builtins/gen/literal/textureGather/43025d.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/43025d.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureGather(texture: texture_depth_cube_array, sampler: sampler, coords: vec3<f32>, array_index: i32) -> vec4<f32>
 fn textureGather_43025d() {
-  var res: vec4<f32> = textureGather(arg_0, arg_1, vec3<f32>(), 1i);
+  var res: vec4<f32> = textureGather(arg_0, arg_1, vec3<f32>(1.f), 1i);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureGather/43025d.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/43025d.wgsl.expected.dxc.hlsl
index 703fd77..e38f9d9 100644
--- a/test/tint/builtins/gen/literal/textureGather/43025d.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/43025d.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureGather_43025d() {
-  float4 res = arg_0.Gather(arg_1, float4(0.0f, 0.0f, 0.0f, float(1)));
+  float4 res = arg_0.Gather(arg_1, float4((1.0f).xxx, float(1)));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/43025d.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/43025d.wgsl.expected.fxc.hlsl
index 703fd77..e38f9d9 100644
--- a/test/tint/builtins/gen/literal/textureGather/43025d.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/43025d.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureGather_43025d() {
-  float4 res = arg_0.Gather(arg_1, float4(0.0f, 0.0f, 0.0f, float(1)));
+  float4 res = arg_0.Gather(arg_1, float4((1.0f).xxx, float(1)));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/43025d.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureGather/43025d.wgsl.expected.msl
index 0867050..0ecacb7 100644
--- a/test/tint/builtins/gen/literal/textureGather/43025d.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureGather/43025d.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureGather_43025d(depthcube_array<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float4 res = tint_symbol_1.gather(tint_symbol_2, float3(0.0f), 1);
+  float4 res = tint_symbol_1.gather(tint_symbol_2, float3(1.0f), 1);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/43025d.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureGather/43025d.wgsl.expected.spvasm
index a8ef14e..d72e46f 100644
--- a/test/tint/builtins/gen/literal/textureGather/43025d.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureGather/43025d.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 46
+; Bound: 50
 ; Schema: 0
                OpCapability Shader
                OpCapability SampledCubeArray
@@ -44,44 +44,48 @@
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
          %22 = OpTypeSampledImage %11
-    %float_0 = OpConstant %float 0
+    %v3float = OpTypeVector %float 3
+    %float_1 = OpConstant %float 1
+         %26 = OpConstantComposite %v3float %float_1 %float_1 %float_1
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
       %int_0 = OpConstant %int 0
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %32 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %37 = OpTypeFunction %v4float
 %textureGather_43025d = OpFunction %void None %15
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
          %20 = OpLoad %14 %arg_1
          %21 = OpLoad %11 %arg_0
          %23 = OpSampledImage %22 %21 %20
-         %25 = OpConvertSToF %float %int_1
-         %28 = OpCompositeConstruct %v4float %float_0 %float_0 %float_0 %25
-         %19 = OpImageGather %v4float %23 %28 %int_0
+         %27 = OpCompositeExtract %float %26 0
+         %28 = OpCompositeExtract %float %26 1
+         %29 = OpCompositeExtract %float %26 2
+         %30 = OpConvertSToF %float %int_1
+         %33 = OpCompositeConstruct %v4float %27 %28 %29 %30
+         %19 = OpImageGather %v4float %23 %33 %int_0
                OpStore %res %19
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %32
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureGather_43025d
+%vertex_main_inner = OpFunction %v4float None %37
+         %39 = OpLabel
+         %40 = OpFunctionCall %void %textureGather_43025d
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
-         %37 = OpLabel
-         %38 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %38
+         %42 = OpLabel
+         %43 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %43
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %15
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureGather_43025d
+         %45 = OpLabel
+         %46 = OpFunctionCall %void %textureGather_43025d
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %15
-         %44 = OpLabel
-         %45 = OpFunctionCall %void %textureGather_43025d
+         %48 = OpLabel
+         %49 = OpFunctionCall %void %textureGather_43025d
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureGather/43025d.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureGather/43025d.wgsl.expected.wgsl
index 27be3fd..d249e2d 100644
--- a/test/tint/builtins/gen/literal/textureGather/43025d.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/43025d.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(1) var arg_1 : sampler;
 
 fn textureGather_43025d() {
-  var res : vec4<f32> = textureGather(arg_0, arg_1, vec3<f32>(), 1i);
+  var res : vec4<f32> = textureGather(arg_0, arg_1, vec3<f32>(1.0f), 1i);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureGather/445793.wgsl b/test/tint/builtins/gen/literal/textureGather/445793.wgsl
index 2ad1513..e8637bf 100644
--- a/test/tint/builtins/gen/literal/textureGather/445793.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/445793.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureGather(@const component: u32, texture: texture_2d_array<i32>, sampler: sampler, coords: vec2<f32>, array_index: i32) -> vec4<i32>
 fn textureGather_445793() {
-  var res: vec4<i32> = textureGather(1u, arg_1, arg_2, vec2<f32>(), 1i);
+  var res: vec4<i32> = textureGather(1u, arg_1, arg_2, vec2<f32>(1.f), 1i);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureGather/445793.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/445793.wgsl.expected.dxc.hlsl
index 286350f..d88812f 100644
--- a/test/tint/builtins/gen/literal/textureGather/445793.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/445793.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_445793() {
-  int4 res = arg_1.GatherGreen(arg_2, float3(0.0f, 0.0f, float(1)));
+  int4 res = arg_1.GatherGreen(arg_2, float3((1.0f).xx, float(1)));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/445793.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/445793.wgsl.expected.fxc.hlsl
index 286350f..d88812f 100644
--- a/test/tint/builtins/gen/literal/textureGather/445793.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/445793.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_445793() {
-  int4 res = arg_1.GatherGreen(arg_2, float3(0.0f, 0.0f, float(1)));
+  int4 res = arg_1.GatherGreen(arg_2, float3((1.0f).xx, float(1)));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/445793.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureGather/445793.wgsl.expected.glsl
index a39af11..5e342a1 100644
--- a/test/tint/builtins/gen/literal/textureGather/445793.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureGather/445793.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 uniform highp isampler2DArray arg_1_arg_2;
 
 void textureGather_445793() {
-  ivec4 res = textureGather(arg_1_arg_2, vec3(0.0f, 0.0f, float(1)), int(1u));
+  ivec4 res = textureGather(arg_1_arg_2, vec3(vec2(1.0f), float(1)), int(1u));
 }
 
 vec4 vertex_main() {
@@ -25,7 +25,7 @@
 uniform highp isampler2DArray arg_1_arg_2;
 
 void textureGather_445793() {
-  ivec4 res = textureGather(arg_1_arg_2, vec3(0.0f, 0.0f, float(1)), int(1u));
+  ivec4 res = textureGather(arg_1_arg_2, vec3(vec2(1.0f), float(1)), int(1u));
 }
 
 void fragment_main() {
@@ -41,7 +41,7 @@
 uniform highp isampler2DArray arg_1_arg_2;
 
 void textureGather_445793() {
-  ivec4 res = textureGather(arg_1_arg_2, vec3(0.0f, 0.0f, float(1)), int(1u));
+  ivec4 res = textureGather(arg_1_arg_2, vec3(vec2(1.0f), float(1)), int(1u));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureGather/445793.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureGather/445793.wgsl.expected.msl
index a194b15..234f3f1 100644
--- a/test/tint/builtins/gen/literal/textureGather/445793.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureGather/445793.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureGather_445793(texture2d_array<int, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  int4 res = tint_symbol_1.gather(tint_symbol_2, float2(0.0f), 1, int2(0), component::y);
+  int4 res = tint_symbol_1.gather(tint_symbol_2, float2(1.0f), 1, int2(0), component::y);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/445793.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureGather/445793.wgsl.expected.spvasm
index 4af17b3..5166bb9 100644
--- a/test/tint/builtins/gen/literal/textureGather/445793.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureGather/445793.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 50
+; Bound: 53
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -46,45 +46,48 @@
       %v4int = OpTypeVector %int 4
          %24 = OpTypeSampledImage %11
     %v3float = OpTypeVector %float 3
-    %float_0 = OpConstant %float 0
+    %v2float = OpTypeVector %float 2
+    %float_1 = OpConstant %float 1
+         %29 = OpConstantComposite %v2float %float_1 %float_1
       %int_1 = OpConstant %int 1
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %35 = OpConstantNull %v4int
-         %36 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %39 = OpConstantNull %v4int
+         %40 = OpTypeFunction %v4float
 %textureGather_445793 = OpFunction %void None %16
          %19 = OpLabel
-        %res = OpVariable %_ptr_Function_v4int Function %35
+        %res = OpVariable %_ptr_Function_v4int Function %39
          %22 = OpLoad %15 %arg_2
          %23 = OpLoad %11 %arg_1
          %25 = OpSampledImage %24 %23 %22
-         %28 = OpConvertSToF %float %int_1
-         %30 = OpCompositeConstruct %v3float %float_0 %float_0 %28
-         %20 = OpImageGather %v4int %25 %30 %uint_1
+         %30 = OpCompositeExtract %float %29 0
+         %31 = OpCompositeExtract %float %29 1
+         %32 = OpConvertSToF %float %int_1
+         %34 = OpCompositeConstruct %v3float %30 %31 %32
+         %20 = OpImageGather %v4int %25 %34 %uint_1
                OpStore %res %20
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %36
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureGather_445793
+%vertex_main_inner = OpFunction %v4float None %40
+         %42 = OpLabel
+         %43 = OpFunctionCall %void %textureGather_445793
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %16
-         %41 = OpLabel
-         %42 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %42
+         %45 = OpLabel
+         %46 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %46
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %16
-         %45 = OpLabel
-         %46 = OpFunctionCall %void %textureGather_445793
+         %48 = OpLabel
+         %49 = OpFunctionCall %void %textureGather_445793
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %16
-         %48 = OpLabel
-         %49 = OpFunctionCall %void %textureGather_445793
+         %51 = OpLabel
+         %52 = OpFunctionCall %void %textureGather_445793
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureGather/445793.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureGather/445793.wgsl.expected.wgsl
index 93e20ca..c677b36 100644
--- a/test/tint/builtins/gen/literal/textureGather/445793.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/445793.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(2) var arg_2 : sampler;
 
 fn textureGather_445793() {
-  var res : vec4<i32> = textureGather(1u, arg_1, arg_2, vec2<f32>(), 1i);
+  var res : vec4<i32> = textureGather(1u, arg_1, arg_2, vec2<f32>(1.0f), 1i);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureGather/49b07f.wgsl b/test/tint/builtins/gen/literal/textureGather/49b07f.wgsl
index 633899dc..56731ba 100644
--- a/test/tint/builtins/gen/literal/textureGather/49b07f.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/49b07f.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureGather(@const component: i32, texture: texture_2d<u32>, sampler: sampler, coords: vec2<f32>, @const offset: vec2<i32>) -> vec4<u32>
 fn textureGather_49b07f() {
-  var res: vec4<u32> = textureGather(1i, arg_1, arg_2, vec2<f32>(), vec2<i32>());
+  var res: vec4<u32> = textureGather(1i, arg_1, arg_2, vec2<f32>(1.f), vec2<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureGather/49b07f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/49b07f.wgsl.expected.dxc.hlsl
index b70c482..e0d34b9 100644
--- a/test/tint/builtins/gen/literal/textureGather/49b07f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/49b07f.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_49b07f() {
-  uint4 res = arg_1.GatherGreen(arg_2, (0.0f).xx, (0).xx);
+  uint4 res = arg_1.GatherGreen(arg_2, (1.0f).xx, (1).xx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/49b07f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/49b07f.wgsl.expected.fxc.hlsl
index b70c482..e0d34b9 100644
--- a/test/tint/builtins/gen/literal/textureGather/49b07f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/49b07f.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_49b07f() {
-  uint4 res = arg_1.GatherGreen(arg_2, (0.0f).xx, (0).xx);
+  uint4 res = arg_1.GatherGreen(arg_2, (1.0f).xx, (1).xx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/49b07f.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureGather/49b07f.wgsl.expected.glsl
index fbcc858..2c332d1 100644
--- a/test/tint/builtins/gen/literal/textureGather/49b07f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureGather/49b07f.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 uniform highp usampler2D arg_1_arg_2;
 
 void textureGather_49b07f() {
-  uvec4 res = textureGatherOffset(arg_1_arg_2, vec2(0.0f), ivec2(0), 1);
+  uvec4 res = textureGatherOffset(arg_1_arg_2, vec2(1.0f), ivec2(1), 1);
 }
 
 vec4 vertex_main() {
@@ -25,7 +25,7 @@
 uniform highp usampler2D arg_1_arg_2;
 
 void textureGather_49b07f() {
-  uvec4 res = textureGatherOffset(arg_1_arg_2, vec2(0.0f), ivec2(0), 1);
+  uvec4 res = textureGatherOffset(arg_1_arg_2, vec2(1.0f), ivec2(1), 1);
 }
 
 void fragment_main() {
@@ -41,7 +41,7 @@
 uniform highp usampler2D arg_1_arg_2;
 
 void textureGather_49b07f() {
-  uvec4 res = textureGatherOffset(arg_1_arg_2, vec2(0.0f), ivec2(0), 1);
+  uvec4 res = textureGatherOffset(arg_1_arg_2, vec2(1.0f), ivec2(1), 1);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureGather/49b07f.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureGather/49b07f.wgsl.expected.msl
index 3f485b4..771a89a 100644
--- a/test/tint/builtins/gen/literal/textureGather/49b07f.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureGather/49b07f.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureGather_49b07f(texture2d<uint, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  uint4 res = tint_symbol_1.gather(tint_symbol_2, float2(0.0f), int2(0), component::y);
+  uint4 res = tint_symbol_1.gather(tint_symbol_2, float2(1.0f), int2(1), component::y);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/49b07f.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureGather/49b07f.wgsl.expected.spvasm
index 7477820..f0b9b75 100644
--- a/test/tint/builtins/gen/literal/textureGather/49b07f.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureGather/49b07f.wgsl.expected.spvasm
@@ -46,34 +46,34 @@
      %v4uint = OpTypeVector %uint 4
          %24 = OpTypeSampledImage %11
     %v2float = OpTypeVector %float 2
-         %27 = OpConstantNull %v2float
+    %float_1 = OpConstant %float 1
+         %28 = OpConstantComposite %v2float %float_1 %float_1
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
       %v2int = OpTypeVector %int 2
-         %31 = OpConstantNull %v2int
+         %32 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %34 = OpConstantNull %v4uint
-         %35 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %35 = OpConstantNull %v4uint
+         %36 = OpTypeFunction %v4float
 %textureGather_49b07f = OpFunction %void None %16
          %19 = OpLabel
-        %res = OpVariable %_ptr_Function_v4uint Function %34
+        %res = OpVariable %_ptr_Function_v4uint Function %35
          %22 = OpLoad %15 %arg_2
          %23 = OpLoad %11 %arg_1
          %25 = OpSampledImage %24 %23 %22
-         %20 = OpImageGather %v4uint %25 %27 %int_1 ConstOffset %31
+         %20 = OpImageGather %v4uint %25 %28 %int_1 ConstOffset %32
                OpStore %res %20
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %35
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureGather_49b07f
+%vertex_main_inner = OpFunction %v4float None %36
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %textureGather_49b07f
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %16
-         %40 = OpLabel
-         %41 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %41
+         %41 = OpLabel
+         %42 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %42
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureGather/49b07f.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureGather/49b07f.wgsl.expected.wgsl
index 19cf11b..929e797 100644
--- a/test/tint/builtins/gen/literal/textureGather/49b07f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/49b07f.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(2) var arg_2 : sampler;
 
 fn textureGather_49b07f() {
-  var res : vec4<u32> = textureGather(1i, arg_1, arg_2, vec2<f32>(), vec2<i32>());
+  var res : vec4<u32> = textureGather(1i, arg_1, arg_2, vec2<f32>(1.0f), vec2<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureGather/4b8103.wgsl b/test/tint/builtins/gen/literal/textureGather/4b8103.wgsl
index b88180b..cbde492 100644
--- a/test/tint/builtins/gen/literal/textureGather/4b8103.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/4b8103.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureGather(@const component: i32, texture: texture_2d_array<f32>, sampler: sampler, coords: vec2<f32>, array_index: i32, @const offset: vec2<i32>) -> vec4<f32>
 fn textureGather_4b8103() {
-  var res: vec4<f32> = textureGather(1i, arg_1, arg_2, vec2<f32>(), 1i, vec2<i32>());
+  var res: vec4<f32> = textureGather(1i, arg_1, arg_2, vec2<f32>(1.f), 1i, vec2<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureGather/4b8103.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/4b8103.wgsl.expected.dxc.hlsl
index 3a7dca0..8baf1a6 100644
--- a/test/tint/builtins/gen/literal/textureGather/4b8103.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/4b8103.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_4b8103() {
-  float4 res = arg_1.GatherGreen(arg_2, float3(0.0f, 0.0f, float(1)), (0).xx);
+  float4 res = arg_1.GatherGreen(arg_2, float3((1.0f).xx, float(1)), (1).xx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/4b8103.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/4b8103.wgsl.expected.fxc.hlsl
index 3a7dca0..8baf1a6 100644
--- a/test/tint/builtins/gen/literal/textureGather/4b8103.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/4b8103.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_4b8103() {
-  float4 res = arg_1.GatherGreen(arg_2, float3(0.0f, 0.0f, float(1)), (0).xx);
+  float4 res = arg_1.GatherGreen(arg_2, float3((1.0f).xx, float(1)), (1).xx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/4b8103.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureGather/4b8103.wgsl.expected.glsl
index 2eeca6e..36dd831 100644
--- a/test/tint/builtins/gen/literal/textureGather/4b8103.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureGather/4b8103.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 uniform highp sampler2DArray arg_1_arg_2;
 
 void textureGather_4b8103() {
-  vec4 res = textureGatherOffset(arg_1_arg_2, vec3(0.0f, 0.0f, float(1)), ivec2(0), 1);
+  vec4 res = textureGatherOffset(arg_1_arg_2, vec3(vec2(1.0f), float(1)), ivec2(1), 1);
 }
 
 vec4 vertex_main() {
@@ -25,7 +25,7 @@
 uniform highp sampler2DArray arg_1_arg_2;
 
 void textureGather_4b8103() {
-  vec4 res = textureGatherOffset(arg_1_arg_2, vec3(0.0f, 0.0f, float(1)), ivec2(0), 1);
+  vec4 res = textureGatherOffset(arg_1_arg_2, vec3(vec2(1.0f), float(1)), ivec2(1), 1);
 }
 
 void fragment_main() {
@@ -41,7 +41,7 @@
 uniform highp sampler2DArray arg_1_arg_2;
 
 void textureGather_4b8103() {
-  vec4 res = textureGatherOffset(arg_1_arg_2, vec3(0.0f, 0.0f, float(1)), ivec2(0), 1);
+  vec4 res = textureGatherOffset(arg_1_arg_2, vec3(vec2(1.0f), float(1)), ivec2(1), 1);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureGather/4b8103.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureGather/4b8103.wgsl.expected.msl
index f1604b9..55dd24f 100644
--- a/test/tint/builtins/gen/literal/textureGather/4b8103.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureGather/4b8103.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureGather_4b8103(texture2d_array<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float4 res = tint_symbol_1.gather(tint_symbol_2, float2(0.0f), 1, int2(0), component::y);
+  float4 res = tint_symbol_1.gather(tint_symbol_2, float2(1.0f), 1, int2(1), component::y);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/4b8103.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureGather/4b8103.wgsl.expected.spvasm
index d995343..6c4365d 100644
--- a/test/tint/builtins/gen/literal/textureGather/4b8103.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureGather/4b8103.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 48
+; Bound: 51
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -44,45 +44,48 @@
          %15 = OpTypeFunction %void
          %22 = OpTypeSampledImage %11
     %v3float = OpTypeVector %float 3
-    %float_0 = OpConstant %float 0
+    %v2float = OpTypeVector %float 2
+    %float_1 = OpConstant %float 1
+         %27 = OpConstantComposite %v2float %float_1 %float_1
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
       %v2int = OpTypeVector %int 2
-         %31 = OpConstantNull %v2int
+         %35 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %34 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %38 = OpTypeFunction %v4float
 %textureGather_4b8103 = OpFunction %void None %15
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
          %20 = OpLoad %14 %arg_2
          %21 = OpLoad %11 %arg_1
          %23 = OpSampledImage %22 %21 %20
-         %26 = OpConvertSToF %float %int_1
-         %29 = OpCompositeConstruct %v3float %float_0 %float_0 %26
-         %19 = OpImageGather %v4float %23 %29 %int_1 ConstOffset %31
+         %28 = OpCompositeExtract %float %27 0
+         %29 = OpCompositeExtract %float %27 1
+         %30 = OpConvertSToF %float %int_1
+         %33 = OpCompositeConstruct %v3float %28 %29 %30
+         %19 = OpImageGather %v4float %23 %33 %int_1 ConstOffset %35
                OpStore %res %19
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %34
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureGather_4b8103
+%vertex_main_inner = OpFunction %v4float None %38
+         %40 = OpLabel
+         %41 = OpFunctionCall %void %textureGather_4b8103
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
-         %39 = OpLabel
-         %40 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %40
+         %43 = OpLabel
+         %44 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %44
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %15
-         %43 = OpLabel
-         %44 = OpFunctionCall %void %textureGather_4b8103
+         %46 = OpLabel
+         %47 = OpFunctionCall %void %textureGather_4b8103
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %15
-         %46 = OpLabel
-         %47 = OpFunctionCall %void %textureGather_4b8103
+         %49 = OpLabel
+         %50 = OpFunctionCall %void %textureGather_4b8103
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureGather/4b8103.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureGather/4b8103.wgsl.expected.wgsl
index ad5a5a3..9c9e1be 100644
--- a/test/tint/builtins/gen/literal/textureGather/4b8103.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/4b8103.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(2) var arg_2 : sampler;
 
 fn textureGather_4b8103() {
-  var res : vec4<f32> = textureGather(1i, arg_1, arg_2, vec2<f32>(), 1i, vec2<i32>());
+  var res : vec4<f32> = textureGather(1i, arg_1, arg_2, vec2<f32>(1.0f), 1i, vec2<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureGather/4e8ac5.wgsl b/test/tint/builtins/gen/literal/textureGather/4e8ac5.wgsl
index 974421c..135d996 100644
--- a/test/tint/builtins/gen/literal/textureGather/4e8ac5.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/4e8ac5.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureGather(@const component: i32, texture: texture_2d_array<i32>, sampler: sampler, coords: vec2<f32>, array_index: u32) -> vec4<i32>
 fn textureGather_4e8ac5() {
-  var res: vec4<i32> = textureGather(1i, arg_1, arg_2, vec2<f32>(), 1u);
+  var res: vec4<i32> = textureGather(1i, arg_1, arg_2, vec2<f32>(1.f), 1u);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureGather/4e8ac5.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/4e8ac5.wgsl.expected.dxc.hlsl
index 9c993bb..432c441 100644
--- a/test/tint/builtins/gen/literal/textureGather/4e8ac5.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/4e8ac5.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_4e8ac5() {
-  int4 res = arg_1.GatherGreen(arg_2, float3(0.0f, 0.0f, float(1u)));
+  int4 res = arg_1.GatherGreen(arg_2, float3((1.0f).xx, float(1u)));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/4e8ac5.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/4e8ac5.wgsl.expected.fxc.hlsl
index 9c993bb..432c441 100644
--- a/test/tint/builtins/gen/literal/textureGather/4e8ac5.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/4e8ac5.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_4e8ac5() {
-  int4 res = arg_1.GatherGreen(arg_2, float3(0.0f, 0.0f, float(1u)));
+  int4 res = arg_1.GatherGreen(arg_2, float3((1.0f).xx, float(1u)));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/4e8ac5.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureGather/4e8ac5.wgsl.expected.glsl
index 8495304..c655ed3 100644
--- a/test/tint/builtins/gen/literal/textureGather/4e8ac5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureGather/4e8ac5.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 uniform highp isampler2DArray arg_1_arg_2;
 
 void textureGather_4e8ac5() {
-  ivec4 res = textureGather(arg_1_arg_2, vec3(0.0f, 0.0f, float(1u)), 1);
+  ivec4 res = textureGather(arg_1_arg_2, vec3(vec2(1.0f), float(1u)), 1);
 }
 
 vec4 vertex_main() {
@@ -25,7 +25,7 @@
 uniform highp isampler2DArray arg_1_arg_2;
 
 void textureGather_4e8ac5() {
-  ivec4 res = textureGather(arg_1_arg_2, vec3(0.0f, 0.0f, float(1u)), 1);
+  ivec4 res = textureGather(arg_1_arg_2, vec3(vec2(1.0f), float(1u)), 1);
 }
 
 void fragment_main() {
@@ -41,7 +41,7 @@
 uniform highp isampler2DArray arg_1_arg_2;
 
 void textureGather_4e8ac5() {
-  ivec4 res = textureGather(arg_1_arg_2, vec3(0.0f, 0.0f, float(1u)), 1);
+  ivec4 res = textureGather(arg_1_arg_2, vec3(vec2(1.0f), float(1u)), 1);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureGather/4e8ac5.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureGather/4e8ac5.wgsl.expected.msl
index 41a55ca..897cfde 100644
--- a/test/tint/builtins/gen/literal/textureGather/4e8ac5.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureGather/4e8ac5.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureGather_4e8ac5(texture2d_array<int, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  int4 res = tint_symbol_1.gather(tint_symbol_2, float2(0.0f), 1u, int2(0), component::y);
+  int4 res = tint_symbol_1.gather(tint_symbol_2, float2(1.0f), 1u, int2(0), component::y);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/4e8ac5.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureGather/4e8ac5.wgsl.expected.spvasm
index c7ac20a..8f9858a 100644
--- a/test/tint/builtins/gen/literal/textureGather/4e8ac5.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureGather/4e8ac5.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 50
+; Bound: 53
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -46,45 +46,48 @@
       %v4int = OpTypeVector %int 4
          %24 = OpTypeSampledImage %11
     %v3float = OpTypeVector %float 3
-    %float_0 = OpConstant %float 0
+    %v2float = OpTypeVector %float 2
+    %float_1 = OpConstant %float 1
+         %29 = OpConstantComposite %v2float %float_1 %float_1
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %35 = OpConstantNull %v4int
-         %36 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %39 = OpConstantNull %v4int
+         %40 = OpTypeFunction %v4float
 %textureGather_4e8ac5 = OpFunction %void None %16
          %19 = OpLabel
-        %res = OpVariable %_ptr_Function_v4int Function %35
+        %res = OpVariable %_ptr_Function_v4int Function %39
          %22 = OpLoad %15 %arg_2
          %23 = OpLoad %11 %arg_1
          %25 = OpSampledImage %24 %23 %22
-         %28 = OpConvertUToF %float %uint_1
-         %31 = OpCompositeConstruct %v3float %float_0 %float_0 %28
-         %20 = OpImageGather %v4int %25 %31 %int_1
+         %30 = OpCompositeExtract %float %29 0
+         %31 = OpCompositeExtract %float %29 1
+         %32 = OpConvertUToF %float %uint_1
+         %35 = OpCompositeConstruct %v3float %30 %31 %32
+         %20 = OpImageGather %v4int %25 %35 %int_1
                OpStore %res %20
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %36
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureGather_4e8ac5
+%vertex_main_inner = OpFunction %v4float None %40
+         %42 = OpLabel
+         %43 = OpFunctionCall %void %textureGather_4e8ac5
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %16
-         %41 = OpLabel
-         %42 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %42
+         %45 = OpLabel
+         %46 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %46
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %16
-         %45 = OpLabel
-         %46 = OpFunctionCall %void %textureGather_4e8ac5
+         %48 = OpLabel
+         %49 = OpFunctionCall %void %textureGather_4e8ac5
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %16
-         %48 = OpLabel
-         %49 = OpFunctionCall %void %textureGather_4e8ac5
+         %51 = OpLabel
+         %52 = OpFunctionCall %void %textureGather_4e8ac5
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureGather/4e8ac5.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureGather/4e8ac5.wgsl.expected.wgsl
index 20cd25b..2743c6b 100644
--- a/test/tint/builtins/gen/literal/textureGather/4e8ac5.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/4e8ac5.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(2) var arg_2 : sampler;
 
 fn textureGather_4e8ac5() {
-  var res : vec4<i32> = textureGather(1i, arg_1, arg_2, vec2<f32>(), 1u);
+  var res : vec4<i32> = textureGather(1i, arg_1, arg_2, vec2<f32>(1.0f), 1u);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureGather/5266da.wgsl b/test/tint/builtins/gen/literal/textureGather/5266da.wgsl
index db02a44..1de19ec 100644
--- a/test/tint/builtins/gen/literal/textureGather/5266da.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/5266da.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureGather(@const component: i32, texture: texture_2d<f32>, sampler: sampler, coords: vec2<f32>) -> vec4<f32>
 fn textureGather_5266da() {
-  var res: vec4<f32> = textureGather(1i, arg_1, arg_2, vec2<f32>());
+  var res: vec4<f32> = textureGather(1i, arg_1, arg_2, vec2<f32>(1.f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureGather/5266da.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/5266da.wgsl.expected.dxc.hlsl
index a616ea7..751ee8f 100644
--- a/test/tint/builtins/gen/literal/textureGather/5266da.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/5266da.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_5266da() {
-  float4 res = arg_1.GatherGreen(arg_2, (0.0f).xx);
+  float4 res = arg_1.GatherGreen(arg_2, (1.0f).xx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/5266da.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/5266da.wgsl.expected.fxc.hlsl
index a616ea7..751ee8f 100644
--- a/test/tint/builtins/gen/literal/textureGather/5266da.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/5266da.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_5266da() {
-  float4 res = arg_1.GatherGreen(arg_2, (0.0f).xx);
+  float4 res = arg_1.GatherGreen(arg_2, (1.0f).xx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/5266da.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureGather/5266da.wgsl.expected.glsl
index 9bc3a28..a9d6fe2 100644
--- a/test/tint/builtins/gen/literal/textureGather/5266da.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureGather/5266da.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 uniform highp sampler2D arg_1_arg_2;
 
 void textureGather_5266da() {
-  vec4 res = textureGather(arg_1_arg_2, vec2(0.0f), 1);
+  vec4 res = textureGather(arg_1_arg_2, vec2(1.0f), 1);
 }
 
 vec4 vertex_main() {
@@ -25,7 +25,7 @@
 uniform highp sampler2D arg_1_arg_2;
 
 void textureGather_5266da() {
-  vec4 res = textureGather(arg_1_arg_2, vec2(0.0f), 1);
+  vec4 res = textureGather(arg_1_arg_2, vec2(1.0f), 1);
 }
 
 void fragment_main() {
@@ -41,7 +41,7 @@
 uniform highp sampler2D arg_1_arg_2;
 
 void textureGather_5266da() {
-  vec4 res = textureGather(arg_1_arg_2, vec2(0.0f), 1);
+  vec4 res = textureGather(arg_1_arg_2, vec2(1.0f), 1);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureGather/5266da.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureGather/5266da.wgsl.expected.msl
index 2082f6a..82d7886 100644
--- a/test/tint/builtins/gen/literal/textureGather/5266da.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureGather/5266da.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureGather_5266da(texture2d<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float4 res = tint_symbol_1.gather(tint_symbol_2, float2(0.0f), int2(0), component::y);
+  float4 res = tint_symbol_1.gather(tint_symbol_2, float2(1.0f), int2(0), component::y);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/5266da.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureGather/5266da.wgsl.expected.spvasm
index 51c672e..9679774 100644
--- a/test/tint/builtins/gen/literal/textureGather/5266da.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureGather/5266da.wgsl.expected.spvasm
@@ -44,31 +44,31 @@
          %15 = OpTypeFunction %void
          %22 = OpTypeSampledImage %11
     %v2float = OpTypeVector %float 2
-         %25 = OpConstantNull %v2float
+    %float_1 = OpConstant %float 1
+         %26 = OpConstantComposite %v2float %float_1 %float_1
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %30 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %31 = OpTypeFunction %v4float
 %textureGather_5266da = OpFunction %void None %15
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
          %20 = OpLoad %14 %arg_2
          %21 = OpLoad %11 %arg_1
          %23 = OpSampledImage %22 %21 %20
-         %19 = OpImageGather %v4float %23 %25 %int_1
+         %19 = OpImageGather %v4float %23 %26 %int_1
                OpStore %res %19
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %30
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureGather_5266da
+%vertex_main_inner = OpFunction %v4float None %31
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureGather_5266da
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
-         %35 = OpLabel
-         %36 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %36
+         %36 = OpLabel
+         %37 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %37
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureGather/5266da.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureGather/5266da.wgsl.expected.wgsl
index 8db0a99..e9724b2 100644
--- a/test/tint/builtins/gen/literal/textureGather/5266da.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/5266da.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(2) var arg_2 : sampler;
 
 fn textureGather_5266da() {
-  var res : vec4<f32> = textureGather(1i, arg_1, arg_2, vec2<f32>());
+  var res : vec4<f32> = textureGather(1i, arg_1, arg_2, vec2<f32>(1.0f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureGather/59372a.wgsl b/test/tint/builtins/gen/literal/textureGather/59372a.wgsl
index afea32f..8c5306c 100644
--- a/test/tint/builtins/gen/literal/textureGather/59372a.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/59372a.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureGather(@const component: i32, texture: texture_2d_array<f32>, sampler: sampler, coords: vec2<f32>, array_index: u32, @const offset: vec2<i32>) -> vec4<f32>
 fn textureGather_59372a() {
-  var res: vec4<f32> = textureGather(1i, arg_1, arg_2, vec2<f32>(), 1u, vec2<i32>());
+  var res: vec4<f32> = textureGather(1i, arg_1, arg_2, vec2<f32>(1.f), 1u, vec2<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureGather/59372a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/59372a.wgsl.expected.dxc.hlsl
index 677a356..2670088 100644
--- a/test/tint/builtins/gen/literal/textureGather/59372a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/59372a.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_59372a() {
-  float4 res = arg_1.GatherGreen(arg_2, float3(0.0f, 0.0f, float(1u)), (0).xx);
+  float4 res = arg_1.GatherGreen(arg_2, float3((1.0f).xx, float(1u)), (1).xx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/59372a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/59372a.wgsl.expected.fxc.hlsl
index 677a356..2670088 100644
--- a/test/tint/builtins/gen/literal/textureGather/59372a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/59372a.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_59372a() {
-  float4 res = arg_1.GatherGreen(arg_2, float3(0.0f, 0.0f, float(1u)), (0).xx);
+  float4 res = arg_1.GatherGreen(arg_2, float3((1.0f).xx, float(1u)), (1).xx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/59372a.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureGather/59372a.wgsl.expected.glsl
index dd6f659..dd7eeae 100644
--- a/test/tint/builtins/gen/literal/textureGather/59372a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureGather/59372a.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 uniform highp sampler2DArray arg_1_arg_2;
 
 void textureGather_59372a() {
-  vec4 res = textureGatherOffset(arg_1_arg_2, vec3(0.0f, 0.0f, float(1u)), ivec2(0), 1);
+  vec4 res = textureGatherOffset(arg_1_arg_2, vec3(vec2(1.0f), float(1u)), ivec2(1), 1);
 }
 
 vec4 vertex_main() {
@@ -25,7 +25,7 @@
 uniform highp sampler2DArray arg_1_arg_2;
 
 void textureGather_59372a() {
-  vec4 res = textureGatherOffset(arg_1_arg_2, vec3(0.0f, 0.0f, float(1u)), ivec2(0), 1);
+  vec4 res = textureGatherOffset(arg_1_arg_2, vec3(vec2(1.0f), float(1u)), ivec2(1), 1);
 }
 
 void fragment_main() {
@@ -41,7 +41,7 @@
 uniform highp sampler2DArray arg_1_arg_2;
 
 void textureGather_59372a() {
-  vec4 res = textureGatherOffset(arg_1_arg_2, vec3(0.0f, 0.0f, float(1u)), ivec2(0), 1);
+  vec4 res = textureGatherOffset(arg_1_arg_2, vec3(vec2(1.0f), float(1u)), ivec2(1), 1);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureGather/59372a.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureGather/59372a.wgsl.expected.msl
index 13183a8..b0498a8 100644
--- a/test/tint/builtins/gen/literal/textureGather/59372a.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureGather/59372a.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureGather_59372a(texture2d_array<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float4 res = tint_symbol_1.gather(tint_symbol_2, float2(0.0f), 1u, int2(0), component::y);
+  float4 res = tint_symbol_1.gather(tint_symbol_2, float2(1.0f), 1u, int2(1), component::y);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/59372a.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureGather/59372a.wgsl.expected.spvasm
index 5a520aa..2e92199 100644
--- a/test/tint/builtins/gen/literal/textureGather/59372a.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureGather/59372a.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 50
+; Bound: 53
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -44,47 +44,50 @@
          %15 = OpTypeFunction %void
          %22 = OpTypeSampledImage %11
     %v3float = OpTypeVector %float 3
-    %float_0 = OpConstant %float 0
+    %v2float = OpTypeVector %float 2
+    %float_1 = OpConstant %float 1
+         %27 = OpConstantComposite %v2float %float_1 %float_1
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
       %v2int = OpTypeVector %int 2
-         %33 = OpConstantNull %v2int
+         %37 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %36 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %40 = OpTypeFunction %v4float
 %textureGather_59372a = OpFunction %void None %15
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
          %20 = OpLoad %14 %arg_2
          %21 = OpLoad %11 %arg_1
          %23 = OpSampledImage %22 %21 %20
-         %26 = OpConvertUToF %float %uint_1
-         %29 = OpCompositeConstruct %v3float %float_0 %float_0 %26
-         %19 = OpImageGather %v4float %23 %29 %int_1 ConstOffset %33
+         %28 = OpCompositeExtract %float %27 0
+         %29 = OpCompositeExtract %float %27 1
+         %30 = OpConvertUToF %float %uint_1
+         %33 = OpCompositeConstruct %v3float %28 %29 %30
+         %19 = OpImageGather %v4float %23 %33 %int_1 ConstOffset %37
                OpStore %res %19
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %36
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureGather_59372a
+%vertex_main_inner = OpFunction %v4float None %40
+         %42 = OpLabel
+         %43 = OpFunctionCall %void %textureGather_59372a
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
-         %41 = OpLabel
-         %42 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %42
+         %45 = OpLabel
+         %46 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %46
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %15
-         %45 = OpLabel
-         %46 = OpFunctionCall %void %textureGather_59372a
+         %48 = OpLabel
+         %49 = OpFunctionCall %void %textureGather_59372a
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %15
-         %48 = OpLabel
-         %49 = OpFunctionCall %void %textureGather_59372a
+         %51 = OpLabel
+         %52 = OpFunctionCall %void %textureGather_59372a
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureGather/59372a.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureGather/59372a.wgsl.expected.wgsl
index e558dea..bf9b38b 100644
--- a/test/tint/builtins/gen/literal/textureGather/59372a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/59372a.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(2) var arg_2 : sampler;
 
 fn textureGather_59372a() {
-  var res : vec4<f32> = textureGather(1i, arg_1, arg_2, vec2<f32>(), 1u, vec2<i32>());
+  var res : vec4<f32> = textureGather(1i, arg_1, arg_2, vec2<f32>(1.0f), 1u, vec2<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureGather/5ba85f.wgsl b/test/tint/builtins/gen/literal/textureGather/5ba85f.wgsl
index c4a4e35..006429c 100644
--- a/test/tint/builtins/gen/literal/textureGather/5ba85f.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/5ba85f.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureGather(@const component: i32, texture: texture_cube<i32>, sampler: sampler, coords: vec3<f32>) -> vec4<i32>
 fn textureGather_5ba85f() {
-  var res: vec4<i32> = textureGather(1i, arg_1, arg_2, vec3<f32>());
+  var res: vec4<i32> = textureGather(1i, arg_1, arg_2, vec3<f32>(1.f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureGather/5ba85f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/5ba85f.wgsl.expected.dxc.hlsl
index 4a550ea..26e6bd9 100644
--- a/test/tint/builtins/gen/literal/textureGather/5ba85f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/5ba85f.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_5ba85f() {
-  int4 res = arg_1.GatherGreen(arg_2, (0.0f).xxx);
+  int4 res = arg_1.GatherGreen(arg_2, (1.0f).xxx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/5ba85f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/5ba85f.wgsl.expected.fxc.hlsl
index 4a550ea..26e6bd9 100644
--- a/test/tint/builtins/gen/literal/textureGather/5ba85f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/5ba85f.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_5ba85f() {
-  int4 res = arg_1.GatherGreen(arg_2, (0.0f).xxx);
+  int4 res = arg_1.GatherGreen(arg_2, (1.0f).xxx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/5ba85f.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureGather/5ba85f.wgsl.expected.glsl
index fcb3cf8..87ae300 100644
--- a/test/tint/builtins/gen/literal/textureGather/5ba85f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureGather/5ba85f.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 uniform highp isamplerCube arg_1_arg_2;
 
 void textureGather_5ba85f() {
-  ivec4 res = textureGather(arg_1_arg_2, vec3(0.0f), 1);
+  ivec4 res = textureGather(arg_1_arg_2, vec3(1.0f), 1);
 }
 
 vec4 vertex_main() {
@@ -25,7 +25,7 @@
 uniform highp isamplerCube arg_1_arg_2;
 
 void textureGather_5ba85f() {
-  ivec4 res = textureGather(arg_1_arg_2, vec3(0.0f), 1);
+  ivec4 res = textureGather(arg_1_arg_2, vec3(1.0f), 1);
 }
 
 void fragment_main() {
@@ -41,7 +41,7 @@
 uniform highp isamplerCube arg_1_arg_2;
 
 void textureGather_5ba85f() {
-  ivec4 res = textureGather(arg_1_arg_2, vec3(0.0f), 1);
+  ivec4 res = textureGather(arg_1_arg_2, vec3(1.0f), 1);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureGather/5ba85f.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureGather/5ba85f.wgsl.expected.msl
index d0ae481..3f92154 100644
--- a/test/tint/builtins/gen/literal/textureGather/5ba85f.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureGather/5ba85f.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureGather_5ba85f(texturecube<int, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  int4 res = tint_symbol_1.gather(tint_symbol_2, float3(0.0f), component::y);
+  int4 res = tint_symbol_1.gather(tint_symbol_2, float3(1.0f), component::y);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/5ba85f.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureGather/5ba85f.wgsl.expected.spvasm
index 29ef2a4..6b26297 100644
--- a/test/tint/builtins/gen/literal/textureGather/5ba85f.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureGather/5ba85f.wgsl.expected.spvasm
@@ -46,31 +46,31 @@
       %v4int = OpTypeVector %int 4
          %24 = OpTypeSampledImage %11
     %v3float = OpTypeVector %float 3
-         %27 = OpConstantNull %v3float
+    %float_1 = OpConstant %float 1
+         %28 = OpConstantComposite %v3float %float_1 %float_1 %float_1
       %int_1 = OpConstant %int 1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %31 = OpConstantNull %v4int
-         %32 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %32 = OpConstantNull %v4int
+         %33 = OpTypeFunction %v4float
 %textureGather_5ba85f = OpFunction %void None %16
          %19 = OpLabel
-        %res = OpVariable %_ptr_Function_v4int Function %31
+        %res = OpVariable %_ptr_Function_v4int Function %32
          %22 = OpLoad %15 %arg_2
          %23 = OpLoad %11 %arg_1
          %25 = OpSampledImage %24 %23 %22
-         %20 = OpImageGather %v4int %25 %27 %int_1
+         %20 = OpImageGather %v4int %25 %28 %int_1
                OpStore %res %20
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %32
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureGather_5ba85f
+%vertex_main_inner = OpFunction %v4float None %33
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureGather_5ba85f
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %16
-         %37 = OpLabel
-         %38 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %38
+         %38 = OpLabel
+         %39 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %39
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureGather/5ba85f.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureGather/5ba85f.wgsl.expected.wgsl
index b25e3f8..8a37d05 100644
--- a/test/tint/builtins/gen/literal/textureGather/5ba85f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/5ba85f.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(2) var arg_2 : sampler;
 
 fn textureGather_5ba85f() {
-  var res : vec4<i32> = textureGather(1i, arg_1, arg_2, vec3<f32>());
+  var res : vec4<i32> = textureGather(1i, arg_1, arg_2, vec3<f32>(1.0f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureGather/5bd491.wgsl b/test/tint/builtins/gen/literal/textureGather/5bd491.wgsl
index 3205508..ccf4204 100644
--- a/test/tint/builtins/gen/literal/textureGather/5bd491.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/5bd491.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureGather(@const component: i32, texture: texture_2d<u32>, sampler: sampler, coords: vec2<f32>) -> vec4<u32>
 fn textureGather_5bd491() {
-  var res: vec4<u32> = textureGather(1i, arg_1, arg_2, vec2<f32>());
+  var res: vec4<u32> = textureGather(1i, arg_1, arg_2, vec2<f32>(1.f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureGather/5bd491.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/5bd491.wgsl.expected.dxc.hlsl
index 6c830b8..701563d 100644
--- a/test/tint/builtins/gen/literal/textureGather/5bd491.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/5bd491.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_5bd491() {
-  uint4 res = arg_1.GatherGreen(arg_2, (0.0f).xx);
+  uint4 res = arg_1.GatherGreen(arg_2, (1.0f).xx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/5bd491.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/5bd491.wgsl.expected.fxc.hlsl
index 6c830b8..701563d 100644
--- a/test/tint/builtins/gen/literal/textureGather/5bd491.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/5bd491.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_5bd491() {
-  uint4 res = arg_1.GatherGreen(arg_2, (0.0f).xx);
+  uint4 res = arg_1.GatherGreen(arg_2, (1.0f).xx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/5bd491.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureGather/5bd491.wgsl.expected.glsl
index d96776a..81b595d 100644
--- a/test/tint/builtins/gen/literal/textureGather/5bd491.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureGather/5bd491.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 uniform highp usampler2D arg_1_arg_2;
 
 void textureGather_5bd491() {
-  uvec4 res = textureGather(arg_1_arg_2, vec2(0.0f), 1);
+  uvec4 res = textureGather(arg_1_arg_2, vec2(1.0f), 1);
 }
 
 vec4 vertex_main() {
@@ -25,7 +25,7 @@
 uniform highp usampler2D arg_1_arg_2;
 
 void textureGather_5bd491() {
-  uvec4 res = textureGather(arg_1_arg_2, vec2(0.0f), 1);
+  uvec4 res = textureGather(arg_1_arg_2, vec2(1.0f), 1);
 }
 
 void fragment_main() {
@@ -41,7 +41,7 @@
 uniform highp usampler2D arg_1_arg_2;
 
 void textureGather_5bd491() {
-  uvec4 res = textureGather(arg_1_arg_2, vec2(0.0f), 1);
+  uvec4 res = textureGather(arg_1_arg_2, vec2(1.0f), 1);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureGather/5bd491.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureGather/5bd491.wgsl.expected.msl
index 2b48ea5..00e6bf5 100644
--- a/test/tint/builtins/gen/literal/textureGather/5bd491.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureGather/5bd491.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureGather_5bd491(texture2d<uint, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  uint4 res = tint_symbol_1.gather(tint_symbol_2, float2(0.0f), int2(0), component::y);
+  uint4 res = tint_symbol_1.gather(tint_symbol_2, float2(1.0f), int2(0), component::y);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/5bd491.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureGather/5bd491.wgsl.expected.spvasm
index b22abf0..311512a 100644
--- a/test/tint/builtins/gen/literal/textureGather/5bd491.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureGather/5bd491.wgsl.expected.spvasm
@@ -46,32 +46,32 @@
      %v4uint = OpTypeVector %uint 4
          %24 = OpTypeSampledImage %11
     %v2float = OpTypeVector %float 2
-         %27 = OpConstantNull %v2float
+    %float_1 = OpConstant %float 1
+         %28 = OpConstantComposite %v2float %float_1 %float_1
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %32 = OpConstantNull %v4uint
-         %33 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %33 = OpConstantNull %v4uint
+         %34 = OpTypeFunction %v4float
 %textureGather_5bd491 = OpFunction %void None %16
          %19 = OpLabel
-        %res = OpVariable %_ptr_Function_v4uint Function %32
+        %res = OpVariable %_ptr_Function_v4uint Function %33
          %22 = OpLoad %15 %arg_2
          %23 = OpLoad %11 %arg_1
          %25 = OpSampledImage %24 %23 %22
-         %20 = OpImageGather %v4uint %25 %27 %int_1
+         %20 = OpImageGather %v4uint %25 %28 %int_1
                OpStore %res %20
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %33
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureGather_5bd491
+%vertex_main_inner = OpFunction %v4float None %34
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureGather_5bd491
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %16
-         %38 = OpLabel
-         %39 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %39
+         %39 = OpLabel
+         %40 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %40
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureGather/5bd491.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureGather/5bd491.wgsl.expected.wgsl
index 164ec7c..e29865d 100644
--- a/test/tint/builtins/gen/literal/textureGather/5bd491.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/5bd491.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(2) var arg_2 : sampler;
 
 fn textureGather_5bd491() {
-  var res : vec4<u32> = textureGather(1i, arg_1, arg_2, vec2<f32>());
+  var res : vec4<u32> = textureGather(1i, arg_1, arg_2, vec2<f32>(1.0f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureGather/6b7b74.wgsl b/test/tint/builtins/gen/literal/textureGather/6b7b74.wgsl
index e714724..4bdd2e8 100644
--- a/test/tint/builtins/gen/literal/textureGather/6b7b74.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/6b7b74.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureGather(@const component: u32, texture: texture_2d_array<u32>, sampler: sampler, coords: vec2<f32>, array_index: u32, @const offset: vec2<i32>) -> vec4<u32>
 fn textureGather_6b7b74() {
-  var res: vec4<u32> = textureGather(1u, arg_1, arg_2, vec2<f32>(), 1u, vec2<i32>());
+  var res: vec4<u32> = textureGather(1u, arg_1, arg_2, vec2<f32>(1.f), 1u, vec2<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureGather/6b7b74.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/6b7b74.wgsl.expected.dxc.hlsl
index 18c0977..e304da8 100644
--- a/test/tint/builtins/gen/literal/textureGather/6b7b74.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/6b7b74.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_6b7b74() {
-  uint4 res = arg_1.GatherGreen(arg_2, float3(0.0f, 0.0f, float(1u)), (0).xx);
+  uint4 res = arg_1.GatherGreen(arg_2, float3((1.0f).xx, float(1u)), (1).xx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/6b7b74.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/6b7b74.wgsl.expected.fxc.hlsl
index 18c0977..e304da8 100644
--- a/test/tint/builtins/gen/literal/textureGather/6b7b74.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/6b7b74.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_6b7b74() {
-  uint4 res = arg_1.GatherGreen(arg_2, float3(0.0f, 0.0f, float(1u)), (0).xx);
+  uint4 res = arg_1.GatherGreen(arg_2, float3((1.0f).xx, float(1u)), (1).xx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/6b7b74.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureGather/6b7b74.wgsl.expected.glsl
index 990088c..96fabc0 100644
--- a/test/tint/builtins/gen/literal/textureGather/6b7b74.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureGather/6b7b74.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 uniform highp usampler2DArray arg_1_arg_2;
 
 void textureGather_6b7b74() {
-  uvec4 res = textureGatherOffset(arg_1_arg_2, vec3(0.0f, 0.0f, float(1u)), ivec2(0), int(1u));
+  uvec4 res = textureGatherOffset(arg_1_arg_2, vec3(vec2(1.0f), float(1u)), ivec2(1), int(1u));
 }
 
 vec4 vertex_main() {
@@ -25,7 +25,7 @@
 uniform highp usampler2DArray arg_1_arg_2;
 
 void textureGather_6b7b74() {
-  uvec4 res = textureGatherOffset(arg_1_arg_2, vec3(0.0f, 0.0f, float(1u)), ivec2(0), int(1u));
+  uvec4 res = textureGatherOffset(arg_1_arg_2, vec3(vec2(1.0f), float(1u)), ivec2(1), int(1u));
 }
 
 void fragment_main() {
@@ -41,7 +41,7 @@
 uniform highp usampler2DArray arg_1_arg_2;
 
 void textureGather_6b7b74() {
-  uvec4 res = textureGatherOffset(arg_1_arg_2, vec3(0.0f, 0.0f, float(1u)), ivec2(0), int(1u));
+  uvec4 res = textureGatherOffset(arg_1_arg_2, vec3(vec2(1.0f), float(1u)), ivec2(1), int(1u));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureGather/6b7b74.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureGather/6b7b74.wgsl.expected.msl
index 21aefeb..2de79ed 100644
--- a/test/tint/builtins/gen/literal/textureGather/6b7b74.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureGather/6b7b74.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureGather_6b7b74(texture2d_array<uint, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  uint4 res = tint_symbol_1.gather(tint_symbol_2, float2(0.0f), 1u, int2(0), component::y);
+  uint4 res = tint_symbol_1.gather(tint_symbol_2, float2(1.0f), 1u, int2(1), component::y);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/6b7b74.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureGather/6b7b74.wgsl.expected.spvasm
index 7e7f3eb..6e2a399 100644
--- a/test/tint/builtins/gen/literal/textureGather/6b7b74.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureGather/6b7b74.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 51
+; Bound: 55
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -46,46 +46,50 @@
      %v4uint = OpTypeVector %uint 4
          %24 = OpTypeSampledImage %11
     %v3float = OpTypeVector %float 3
-    %float_0 = OpConstant %float 0
+    %v2float = OpTypeVector %float 2
+    %float_1 = OpConstant %float 1
+         %29 = OpConstantComposite %v2float %float_1 %float_1
      %uint_1 = OpConstant %uint 1
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
-         %33 = OpConstantNull %v2int
+      %int_1 = OpConstant %int 1
+         %38 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %36 = OpConstantNull %v4uint
-         %37 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %41 = OpConstantNull %v4uint
+         %42 = OpTypeFunction %v4float
 %textureGather_6b7b74 = OpFunction %void None %16
          %19 = OpLabel
-        %res = OpVariable %_ptr_Function_v4uint Function %36
+        %res = OpVariable %_ptr_Function_v4uint Function %41
          %22 = OpLoad %15 %arg_2
          %23 = OpLoad %11 %arg_1
          %25 = OpSampledImage %24 %23 %22
-         %28 = OpConvertUToF %float %uint_1
-         %30 = OpCompositeConstruct %v3float %float_0 %float_0 %28
-         %20 = OpImageGather %v4uint %25 %30 %uint_1 ConstOffset %33
+         %30 = OpCompositeExtract %float %29 0
+         %31 = OpCompositeExtract %float %29 1
+         %32 = OpConvertUToF %float %uint_1
+         %34 = OpCompositeConstruct %v3float %30 %31 %32
+         %20 = OpImageGather %v4uint %25 %34 %uint_1 ConstOffset %38
                OpStore %res %20
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %37
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureGather_6b7b74
+%vertex_main_inner = OpFunction %v4float None %42
+         %44 = OpLabel
+         %45 = OpFunctionCall %void %textureGather_6b7b74
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %16
-         %42 = OpLabel
-         %43 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %43
+         %47 = OpLabel
+         %48 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %48
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %16
-         %46 = OpLabel
-         %47 = OpFunctionCall %void %textureGather_6b7b74
+         %50 = OpLabel
+         %51 = OpFunctionCall %void %textureGather_6b7b74
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %16
-         %49 = OpLabel
-         %50 = OpFunctionCall %void %textureGather_6b7b74
+         %53 = OpLabel
+         %54 = OpFunctionCall %void %textureGather_6b7b74
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureGather/6b7b74.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureGather/6b7b74.wgsl.expected.wgsl
index 3cc5160..92e7d14 100644
--- a/test/tint/builtins/gen/literal/textureGather/6b7b74.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/6b7b74.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(2) var arg_2 : sampler;
 
 fn textureGather_6b7b74() {
-  var res : vec4<u32> = textureGather(1u, arg_1, arg_2, vec2<f32>(), 1u, vec2<i32>());
+  var res : vec4<u32> = textureGather(1u, arg_1, arg_2, vec2<f32>(1.0f), 1u, vec2<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureGather/751f8a.wgsl b/test/tint/builtins/gen/literal/textureGather/751f8a.wgsl
index 20e5226..3d5cc89 100644
--- a/test/tint/builtins/gen/literal/textureGather/751f8a.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/751f8a.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureGather(@const component: i32, texture: texture_cube_array<f32>, sampler: sampler, coords: vec3<f32>, array_index: i32) -> vec4<f32>
 fn textureGather_751f8a() {
-  var res: vec4<f32> = textureGather(1i, arg_1, arg_2, vec3<f32>(), 1i);
+  var res: vec4<f32> = textureGather(1i, arg_1, arg_2, vec3<f32>(1.f), 1i);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureGather/751f8a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/751f8a.wgsl.expected.dxc.hlsl
index 3f07457..07496e0 100644
--- a/test/tint/builtins/gen/literal/textureGather/751f8a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/751f8a.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_751f8a() {
-  float4 res = arg_1.GatherGreen(arg_2, float4(0.0f, 0.0f, 0.0f, float(1)));
+  float4 res = arg_1.GatherGreen(arg_2, float4((1.0f).xxx, float(1)));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/751f8a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/751f8a.wgsl.expected.fxc.hlsl
index 3f07457..07496e0 100644
--- a/test/tint/builtins/gen/literal/textureGather/751f8a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/751f8a.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_751f8a() {
-  float4 res = arg_1.GatherGreen(arg_2, float4(0.0f, 0.0f, 0.0f, float(1)));
+  float4 res = arg_1.GatherGreen(arg_2, float4((1.0f).xxx, float(1)));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/751f8a.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureGather/751f8a.wgsl.expected.msl
index 2fbbc1a..2837f2e 100644
--- a/test/tint/builtins/gen/literal/textureGather/751f8a.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureGather/751f8a.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureGather_751f8a(texturecube_array<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float4 res = tint_symbol_1.gather(tint_symbol_2, float3(0.0f), 1, component::y);
+  float4 res = tint_symbol_1.gather(tint_symbol_2, float3(1.0f), 1, component::y);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/751f8a.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureGather/751f8a.wgsl.expected.spvasm
index 3974813..787d887 100644
--- a/test/tint/builtins/gen/literal/textureGather/751f8a.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureGather/751f8a.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 45
+; Bound: 49
 ; Schema: 0
                OpCapability Shader
                OpCapability SampledCubeArray
@@ -44,43 +44,47 @@
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
          %22 = OpTypeSampledImage %11
-    %float_0 = OpConstant %float 0
+    %v3float = OpTypeVector %float 3
+    %float_1 = OpConstant %float 1
+         %26 = OpConstantComposite %v3float %float_1 %float_1 %float_1
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %31 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %36 = OpTypeFunction %v4float
 %textureGather_751f8a = OpFunction %void None %15
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
          %20 = OpLoad %14 %arg_2
          %21 = OpLoad %11 %arg_1
          %23 = OpSampledImage %22 %21 %20
-         %25 = OpConvertSToF %float %int_1
-         %28 = OpCompositeConstruct %v4float %float_0 %float_0 %float_0 %25
-         %19 = OpImageGather %v4float %23 %28 %int_1
+         %27 = OpCompositeExtract %float %26 0
+         %28 = OpCompositeExtract %float %26 1
+         %29 = OpCompositeExtract %float %26 2
+         %30 = OpConvertSToF %float %int_1
+         %33 = OpCompositeConstruct %v4float %27 %28 %29 %30
+         %19 = OpImageGather %v4float %23 %33 %int_1
                OpStore %res %19
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %31
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureGather_751f8a
+%vertex_main_inner = OpFunction %v4float None %36
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %textureGather_751f8a
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
-         %36 = OpLabel
-         %37 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %37
+         %41 = OpLabel
+         %42 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %42
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %15
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureGather_751f8a
+         %44 = OpLabel
+         %45 = OpFunctionCall %void %textureGather_751f8a
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %15
-         %43 = OpLabel
-         %44 = OpFunctionCall %void %textureGather_751f8a
+         %47 = OpLabel
+         %48 = OpFunctionCall %void %textureGather_751f8a
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureGather/751f8a.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureGather/751f8a.wgsl.expected.wgsl
index 7cda70f..9e29ed7 100644
--- a/test/tint/builtins/gen/literal/textureGather/751f8a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/751f8a.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(2) var arg_2 : sampler;
 
 fn textureGather_751f8a() {
-  var res : vec4<f32> = textureGather(1i, arg_1, arg_2, vec3<f32>(), 1i);
+  var res : vec4<f32> = textureGather(1i, arg_1, arg_2, vec3<f32>(1.0f), 1i);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureGather/788010.wgsl b/test/tint/builtins/gen/literal/textureGather/788010.wgsl
index da9987d..819e6fa 100644
--- a/test/tint/builtins/gen/literal/textureGather/788010.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/788010.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureGather(@const component: i32, texture: texture_cube_array<i32>, sampler: sampler, coords: vec3<f32>, array_index: u32) -> vec4<i32>
 fn textureGather_788010() {
-  var res: vec4<i32> = textureGather(1i, arg_1, arg_2, vec3<f32>(), 1u);
+  var res: vec4<i32> = textureGather(1i, arg_1, arg_2, vec3<f32>(1.f), 1u);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureGather/788010.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/788010.wgsl.expected.dxc.hlsl
index daf38ed..f7d95cb 100644
--- a/test/tint/builtins/gen/literal/textureGather/788010.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/788010.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_788010() {
-  int4 res = arg_1.GatherGreen(arg_2, float4(0.0f, 0.0f, 0.0f, float(1u)));
+  int4 res = arg_1.GatherGreen(arg_2, float4((1.0f).xxx, float(1u)));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/788010.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/788010.wgsl.expected.fxc.hlsl
index daf38ed..f7d95cb 100644
--- a/test/tint/builtins/gen/literal/textureGather/788010.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/788010.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_788010() {
-  int4 res = arg_1.GatherGreen(arg_2, float4(0.0f, 0.0f, 0.0f, float(1u)));
+  int4 res = arg_1.GatherGreen(arg_2, float4((1.0f).xxx, float(1u)));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/788010.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureGather/788010.wgsl.expected.msl
index 92a80cf..ec066cf 100644
--- a/test/tint/builtins/gen/literal/textureGather/788010.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureGather/788010.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureGather_788010(texturecube_array<int, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  int4 res = tint_symbol_1.gather(tint_symbol_2, float3(0.0f), 1u, component::y);
+  int4 res = tint_symbol_1.gather(tint_symbol_2, float3(1.0f), 1u, component::y);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/788010.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureGather/788010.wgsl.expected.spvasm
index c699707..7540d0c 100644
--- a/test/tint/builtins/gen/literal/textureGather/788010.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureGather/788010.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 49
+; Bound: 53
 ; Schema: 0
                OpCapability Shader
                OpCapability SampledCubeArray
@@ -46,45 +46,49 @@
          %16 = OpTypeFunction %void
       %v4int = OpTypeVector %int 4
          %24 = OpTypeSampledImage %11
-    %float_0 = OpConstant %float 0
+    %v3float = OpTypeVector %float 3
+    %float_1 = OpConstant %float 1
+         %28 = OpConstantComposite %v3float %float_1 %float_1 %float_1
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %34 = OpConstantNull %v4int
-         %35 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %39 = OpConstantNull %v4int
+         %40 = OpTypeFunction %v4float
 %textureGather_788010 = OpFunction %void None %16
          %19 = OpLabel
-        %res = OpVariable %_ptr_Function_v4int Function %34
+        %res = OpVariable %_ptr_Function_v4int Function %39
          %22 = OpLoad %15 %arg_2
          %23 = OpLoad %11 %arg_1
          %25 = OpSampledImage %24 %23 %22
-         %27 = OpConvertUToF %float %uint_1
-         %30 = OpCompositeConstruct %v4float %float_0 %float_0 %float_0 %27
-         %20 = OpImageGather %v4int %25 %30 %int_1
+         %29 = OpCompositeExtract %float %28 0
+         %30 = OpCompositeExtract %float %28 1
+         %31 = OpCompositeExtract %float %28 2
+         %32 = OpConvertUToF %float %uint_1
+         %35 = OpCompositeConstruct %v4float %29 %30 %31 %32
+         %20 = OpImageGather %v4int %25 %35 %int_1
                OpStore %res %20
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %35
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureGather_788010
+%vertex_main_inner = OpFunction %v4float None %40
+         %42 = OpLabel
+         %43 = OpFunctionCall %void %textureGather_788010
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %16
-         %40 = OpLabel
-         %41 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %41
+         %45 = OpLabel
+         %46 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %46
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %16
-         %44 = OpLabel
-         %45 = OpFunctionCall %void %textureGather_788010
+         %48 = OpLabel
+         %49 = OpFunctionCall %void %textureGather_788010
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %16
-         %47 = OpLabel
-         %48 = OpFunctionCall %void %textureGather_788010
+         %51 = OpLabel
+         %52 = OpFunctionCall %void %textureGather_788010
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureGather/788010.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureGather/788010.wgsl.expected.wgsl
index dec67b9..2f6772e 100644
--- a/test/tint/builtins/gen/literal/textureGather/788010.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/788010.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(2) var arg_2 : sampler;
 
 fn textureGather_788010() {
-  var res : vec4<i32> = textureGather(1i, arg_1, arg_2, vec3<f32>(), 1u);
+  var res : vec4<i32> = textureGather(1i, arg_1, arg_2, vec3<f32>(1.0f), 1u);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureGather/7c3828.wgsl b/test/tint/builtins/gen/literal/textureGather/7c3828.wgsl
index 24c4da3..942ae7e 100644
--- a/test/tint/builtins/gen/literal/textureGather/7c3828.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/7c3828.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureGather(@const component: i32, texture: texture_2d<i32>, sampler: sampler, coords: vec2<f32>, @const offset: vec2<i32>) -> vec4<i32>
 fn textureGather_7c3828() {
-  var res: vec4<i32> = textureGather(1i, arg_1, arg_2, vec2<f32>(), vec2<i32>());
+  var res: vec4<i32> = textureGather(1i, arg_1, arg_2, vec2<f32>(1.f), vec2<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureGather/7c3828.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/7c3828.wgsl.expected.dxc.hlsl
index 5efb022..928f915 100644
--- a/test/tint/builtins/gen/literal/textureGather/7c3828.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/7c3828.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_7c3828() {
-  int4 res = arg_1.GatherGreen(arg_2, (0.0f).xx, (0).xx);
+  int4 res = arg_1.GatherGreen(arg_2, (1.0f).xx, (1).xx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/7c3828.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/7c3828.wgsl.expected.fxc.hlsl
index 5efb022..928f915 100644
--- a/test/tint/builtins/gen/literal/textureGather/7c3828.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/7c3828.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_7c3828() {
-  int4 res = arg_1.GatherGreen(arg_2, (0.0f).xx, (0).xx);
+  int4 res = arg_1.GatherGreen(arg_2, (1.0f).xx, (1).xx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/7c3828.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureGather/7c3828.wgsl.expected.glsl
index 6fcedbf..1f826f7 100644
--- a/test/tint/builtins/gen/literal/textureGather/7c3828.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureGather/7c3828.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 uniform highp isampler2D arg_1_arg_2;
 
 void textureGather_7c3828() {
-  ivec4 res = textureGatherOffset(arg_1_arg_2, vec2(0.0f), ivec2(0), 1);
+  ivec4 res = textureGatherOffset(arg_1_arg_2, vec2(1.0f), ivec2(1), 1);
 }
 
 vec4 vertex_main() {
@@ -25,7 +25,7 @@
 uniform highp isampler2D arg_1_arg_2;
 
 void textureGather_7c3828() {
-  ivec4 res = textureGatherOffset(arg_1_arg_2, vec2(0.0f), ivec2(0), 1);
+  ivec4 res = textureGatherOffset(arg_1_arg_2, vec2(1.0f), ivec2(1), 1);
 }
 
 void fragment_main() {
@@ -41,7 +41,7 @@
 uniform highp isampler2D arg_1_arg_2;
 
 void textureGather_7c3828() {
-  ivec4 res = textureGatherOffset(arg_1_arg_2, vec2(0.0f), ivec2(0), 1);
+  ivec4 res = textureGatherOffset(arg_1_arg_2, vec2(1.0f), ivec2(1), 1);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureGather/7c3828.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureGather/7c3828.wgsl.expected.msl
index a8134ee..3b709ae 100644
--- a/test/tint/builtins/gen/literal/textureGather/7c3828.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureGather/7c3828.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureGather_7c3828(texture2d<int, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  int4 res = tint_symbol_1.gather(tint_symbol_2, float2(0.0f), int2(0), component::y);
+  int4 res = tint_symbol_1.gather(tint_symbol_2, float2(1.0f), int2(1), component::y);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/7c3828.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureGather/7c3828.wgsl.expected.spvasm
index 1e1f646..bb909ba 100644
--- a/test/tint/builtins/gen/literal/textureGather/7c3828.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureGather/7c3828.wgsl.expected.spvasm
@@ -46,33 +46,33 @@
       %v4int = OpTypeVector %int 4
          %24 = OpTypeSampledImage %11
     %v2float = OpTypeVector %float 2
-         %27 = OpConstantNull %v2float
+    %float_1 = OpConstant %float 1
+         %28 = OpConstantComposite %v2float %float_1 %float_1
       %int_1 = OpConstant %int 1
       %v2int = OpTypeVector %int 2
-         %30 = OpConstantNull %v2int
+         %31 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %33 = OpConstantNull %v4int
-         %34 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %34 = OpConstantNull %v4int
+         %35 = OpTypeFunction %v4float
 %textureGather_7c3828 = OpFunction %void None %16
          %19 = OpLabel
-        %res = OpVariable %_ptr_Function_v4int Function %33
+        %res = OpVariable %_ptr_Function_v4int Function %34
          %22 = OpLoad %15 %arg_2
          %23 = OpLoad %11 %arg_1
          %25 = OpSampledImage %24 %23 %22
-         %20 = OpImageGather %v4int %25 %27 %int_1 ConstOffset %30
+         %20 = OpImageGather %v4int %25 %28 %int_1 ConstOffset %31
                OpStore %res %20
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %34
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureGather_7c3828
+%vertex_main_inner = OpFunction %v4float None %35
+         %37 = OpLabel
+         %38 = OpFunctionCall %void %textureGather_7c3828
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %16
-         %39 = OpLabel
-         %40 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %40
+         %40 = OpLabel
+         %41 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %41
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureGather/7c3828.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureGather/7c3828.wgsl.expected.wgsl
index 339b0ad..05b6166 100644
--- a/test/tint/builtins/gen/literal/textureGather/7c3828.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/7c3828.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(2) var arg_2 : sampler;
 
 fn textureGather_7c3828() {
-  var res : vec4<i32> = textureGather(1i, arg_1, arg_2, vec2<f32>(), vec2<i32>());
+  var res : vec4<i32> = textureGather(1i, arg_1, arg_2, vec2<f32>(1.0f), vec2<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureGather/7dd226.wgsl b/test/tint/builtins/gen/literal/textureGather/7dd226.wgsl
index 6943197..575556c 100644
--- a/test/tint/builtins/gen/literal/textureGather/7dd226.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/7dd226.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureGather(texture: texture_depth_cube_array, sampler: sampler, coords: vec3<f32>, array_index: u32) -> vec4<f32>
 fn textureGather_7dd226() {
-  var res: vec4<f32> = textureGather(arg_0, arg_1, vec3<f32>(), 1u);
+  var res: vec4<f32> = textureGather(arg_0, arg_1, vec3<f32>(1.f), 1u);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureGather/7dd226.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/7dd226.wgsl.expected.dxc.hlsl
index 30437f7e..29a4129 100644
--- a/test/tint/builtins/gen/literal/textureGather/7dd226.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/7dd226.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureGather_7dd226() {
-  float4 res = arg_0.Gather(arg_1, float4(0.0f, 0.0f, 0.0f, float(1u)));
+  float4 res = arg_0.Gather(arg_1, float4((1.0f).xxx, float(1u)));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/7dd226.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/7dd226.wgsl.expected.fxc.hlsl
index 30437f7e..29a4129 100644
--- a/test/tint/builtins/gen/literal/textureGather/7dd226.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/7dd226.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureGather_7dd226() {
-  float4 res = arg_0.Gather(arg_1, float4(0.0f, 0.0f, 0.0f, float(1u)));
+  float4 res = arg_0.Gather(arg_1, float4((1.0f).xxx, float(1u)));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/7dd226.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureGather/7dd226.wgsl.expected.msl
index 76771fb..ab93c24 100644
--- a/test/tint/builtins/gen/literal/textureGather/7dd226.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureGather/7dd226.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureGather_7dd226(depthcube_array<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float4 res = tint_symbol_1.gather(tint_symbol_2, float3(0.0f), 1u);
+  float4 res = tint_symbol_1.gather(tint_symbol_2, float3(1.0f), 1u);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/7dd226.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureGather/7dd226.wgsl.expected.spvasm
index fe15256..0c4fda9 100644
--- a/test/tint/builtins/gen/literal/textureGather/7dd226.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureGather/7dd226.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 47
+; Bound: 51
 ; Schema: 0
                OpCapability Shader
                OpCapability SampledCubeArray
@@ -44,45 +44,49 @@
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
          %22 = OpTypeSampledImage %11
-    %float_0 = OpConstant %float 0
+    %v3float = OpTypeVector %float 3
+    %float_1 = OpConstant %float 1
+         %26 = OpConstantComposite %v3float %float_1 %float_1 %float_1
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
         %int = OpTypeInt 32 1
       %int_0 = OpConstant %int 0
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %33 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %38 = OpTypeFunction %v4float
 %textureGather_7dd226 = OpFunction %void None %15
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
          %20 = OpLoad %14 %arg_1
          %21 = OpLoad %11 %arg_0
          %23 = OpSampledImage %22 %21 %20
-         %25 = OpConvertUToF %float %uint_1
-         %28 = OpCompositeConstruct %v4float %float_0 %float_0 %float_0 %25
-         %19 = OpImageGather %v4float %23 %28 %int_0
+         %27 = OpCompositeExtract %float %26 0
+         %28 = OpCompositeExtract %float %26 1
+         %29 = OpCompositeExtract %float %26 2
+         %30 = OpConvertUToF %float %uint_1
+         %33 = OpCompositeConstruct %v4float %27 %28 %29 %30
+         %19 = OpImageGather %v4float %23 %33 %int_0
                OpStore %res %19
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %33
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureGather_7dd226
+%vertex_main_inner = OpFunction %v4float None %38
+         %40 = OpLabel
+         %41 = OpFunctionCall %void %textureGather_7dd226
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
-         %38 = OpLabel
-         %39 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %39
+         %43 = OpLabel
+         %44 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %44
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %15
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureGather_7dd226
+         %46 = OpLabel
+         %47 = OpFunctionCall %void %textureGather_7dd226
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %15
-         %45 = OpLabel
-         %46 = OpFunctionCall %void %textureGather_7dd226
+         %49 = OpLabel
+         %50 = OpFunctionCall %void %textureGather_7dd226
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureGather/7dd226.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureGather/7dd226.wgsl.expected.wgsl
index d112afc..e178ec2 100644
--- a/test/tint/builtins/gen/literal/textureGather/7dd226.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/7dd226.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(1) var arg_1 : sampler;
 
 fn textureGather_7dd226() {
-  var res : vec4<f32> = textureGather(arg_0, arg_1, vec3<f32>(), 1u);
+  var res : vec4<f32> = textureGather(arg_0, arg_1, vec3<f32>(1.0f), 1u);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureGather/829357.wgsl b/test/tint/builtins/gen/literal/textureGather/829357.wgsl
index be8e1e5..1dfa2df 100644
--- a/test/tint/builtins/gen/literal/textureGather/829357.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/829357.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureGather(@const component: i32, texture: texture_cube_array<f32>, sampler: sampler, coords: vec3<f32>, array_index: u32) -> vec4<f32>
 fn textureGather_829357() {
-  var res: vec4<f32> = textureGather(1i, arg_1, arg_2, vec3<f32>(), 1u);
+  var res: vec4<f32> = textureGather(1i, arg_1, arg_2, vec3<f32>(1.f), 1u);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureGather/829357.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/829357.wgsl.expected.dxc.hlsl
index f9d3114..0fae1e0 100644
--- a/test/tint/builtins/gen/literal/textureGather/829357.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/829357.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_829357() {
-  float4 res = arg_1.GatherGreen(arg_2, float4(0.0f, 0.0f, 0.0f, float(1u)));
+  float4 res = arg_1.GatherGreen(arg_2, float4((1.0f).xxx, float(1u)));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/829357.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/829357.wgsl.expected.fxc.hlsl
index f9d3114..0fae1e0 100644
--- a/test/tint/builtins/gen/literal/textureGather/829357.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/829357.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_829357() {
-  float4 res = arg_1.GatherGreen(arg_2, float4(0.0f, 0.0f, 0.0f, float(1u)));
+  float4 res = arg_1.GatherGreen(arg_2, float4((1.0f).xxx, float(1u)));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/829357.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureGather/829357.wgsl.expected.msl
index d71c6ff..b76776c 100644
--- a/test/tint/builtins/gen/literal/textureGather/829357.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureGather/829357.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureGather_829357(texturecube_array<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float4 res = tint_symbol_1.gather(tint_symbol_2, float3(0.0f), 1u, component::y);
+  float4 res = tint_symbol_1.gather(tint_symbol_2, float3(1.0f), 1u, component::y);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/829357.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureGather/829357.wgsl.expected.spvasm
index ee1c7cc..c7ffbfb 100644
--- a/test/tint/builtins/gen/literal/textureGather/829357.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureGather/829357.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 47
+; Bound: 51
 ; Schema: 0
                OpCapability Shader
                OpCapability SampledCubeArray
@@ -44,45 +44,49 @@
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
          %22 = OpTypeSampledImage %11
-    %float_0 = OpConstant %float 0
+    %v3float = OpTypeVector %float 3
+    %float_1 = OpConstant %float 1
+         %26 = OpConstantComposite %v3float %float_1 %float_1 %float_1
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %33 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %38 = OpTypeFunction %v4float
 %textureGather_829357 = OpFunction %void None %15
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
          %20 = OpLoad %14 %arg_2
          %21 = OpLoad %11 %arg_1
          %23 = OpSampledImage %22 %21 %20
-         %25 = OpConvertUToF %float %uint_1
-         %28 = OpCompositeConstruct %v4float %float_0 %float_0 %float_0 %25
-         %19 = OpImageGather %v4float %23 %28 %int_1
+         %27 = OpCompositeExtract %float %26 0
+         %28 = OpCompositeExtract %float %26 1
+         %29 = OpCompositeExtract %float %26 2
+         %30 = OpConvertUToF %float %uint_1
+         %33 = OpCompositeConstruct %v4float %27 %28 %29 %30
+         %19 = OpImageGather %v4float %23 %33 %int_1
                OpStore %res %19
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %33
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureGather_829357
+%vertex_main_inner = OpFunction %v4float None %38
+         %40 = OpLabel
+         %41 = OpFunctionCall %void %textureGather_829357
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
-         %38 = OpLabel
-         %39 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %39
+         %43 = OpLabel
+         %44 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %44
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %15
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureGather_829357
+         %46 = OpLabel
+         %47 = OpFunctionCall %void %textureGather_829357
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %15
-         %45 = OpLabel
-         %46 = OpFunctionCall %void %textureGather_829357
+         %49 = OpLabel
+         %50 = OpFunctionCall %void %textureGather_829357
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureGather/829357.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureGather/829357.wgsl.expected.wgsl
index f7c7885..713468b 100644
--- a/test/tint/builtins/gen/literal/textureGather/829357.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/829357.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(2) var arg_2 : sampler;
 
 fn textureGather_829357() {
-  var res : vec4<f32> = textureGather(1i, arg_1, arg_2, vec3<f32>(), 1u);
+  var res : vec4<f32> = textureGather(1i, arg_1, arg_2, vec3<f32>(1.0f), 1u);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureGather/831549.wgsl b/test/tint/builtins/gen/literal/textureGather/831549.wgsl
index 26bbdfe..2e26228 100644
--- a/test/tint/builtins/gen/literal/textureGather/831549.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/831549.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureGather(@const component: u32, texture: texture_2d_array<f32>, sampler: sampler, coords: vec2<f32>, array_index: i32, @const offset: vec2<i32>) -> vec4<f32>
 fn textureGather_831549() {
-  var res: vec4<f32> = textureGather(1u, arg_1, arg_2, vec2<f32>(), 1i, vec2<i32>());
+  var res: vec4<f32> = textureGather(1u, arg_1, arg_2, vec2<f32>(1.f), 1i, vec2<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureGather/831549.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/831549.wgsl.expected.dxc.hlsl
index b4df239..892b4f3 100644
--- a/test/tint/builtins/gen/literal/textureGather/831549.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/831549.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_831549() {
-  float4 res = arg_1.GatherGreen(arg_2, float3(0.0f, 0.0f, float(1)), (0).xx);
+  float4 res = arg_1.GatherGreen(arg_2, float3((1.0f).xx, float(1)), (1).xx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/831549.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/831549.wgsl.expected.fxc.hlsl
index b4df239..892b4f3 100644
--- a/test/tint/builtins/gen/literal/textureGather/831549.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/831549.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_831549() {
-  float4 res = arg_1.GatherGreen(arg_2, float3(0.0f, 0.0f, float(1)), (0).xx);
+  float4 res = arg_1.GatherGreen(arg_2, float3((1.0f).xx, float(1)), (1).xx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/831549.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureGather/831549.wgsl.expected.glsl
index 49e6ad0..dabc82d 100644
--- a/test/tint/builtins/gen/literal/textureGather/831549.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureGather/831549.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 uniform highp sampler2DArray arg_1_arg_2;
 
 void textureGather_831549() {
-  vec4 res = textureGatherOffset(arg_1_arg_2, vec3(0.0f, 0.0f, float(1)), ivec2(0), int(1u));
+  vec4 res = textureGatherOffset(arg_1_arg_2, vec3(vec2(1.0f), float(1)), ivec2(1), int(1u));
 }
 
 vec4 vertex_main() {
@@ -25,7 +25,7 @@
 uniform highp sampler2DArray arg_1_arg_2;
 
 void textureGather_831549() {
-  vec4 res = textureGatherOffset(arg_1_arg_2, vec3(0.0f, 0.0f, float(1)), ivec2(0), int(1u));
+  vec4 res = textureGatherOffset(arg_1_arg_2, vec3(vec2(1.0f), float(1)), ivec2(1), int(1u));
 }
 
 void fragment_main() {
@@ -41,7 +41,7 @@
 uniform highp sampler2DArray arg_1_arg_2;
 
 void textureGather_831549() {
-  vec4 res = textureGatherOffset(arg_1_arg_2, vec3(0.0f, 0.0f, float(1)), ivec2(0), int(1u));
+  vec4 res = textureGatherOffset(arg_1_arg_2, vec3(vec2(1.0f), float(1)), ivec2(1), int(1u));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureGather/831549.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureGather/831549.wgsl.expected.msl
index 5f2d880..73533b3 100644
--- a/test/tint/builtins/gen/literal/textureGather/831549.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureGather/831549.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureGather_831549(texture2d_array<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float4 res = tint_symbol_1.gather(tint_symbol_2, float2(0.0f), 1, int2(0), component::y);
+  float4 res = tint_symbol_1.gather(tint_symbol_2, float2(1.0f), 1, int2(1), component::y);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/831549.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureGather/831549.wgsl.expected.spvasm
index bba13c2..709654f 100644
--- a/test/tint/builtins/gen/literal/textureGather/831549.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureGather/831549.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 50
+; Bound: 53
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -44,47 +44,50 @@
          %15 = OpTypeFunction %void
          %22 = OpTypeSampledImage %11
     %v3float = OpTypeVector %float 3
-    %float_0 = OpConstant %float 0
+    %v2float = OpTypeVector %float 2
+    %float_1 = OpConstant %float 1
+         %27 = OpConstantComposite %v2float %float_1 %float_1
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
       %v2int = OpTypeVector %int 2
-         %33 = OpConstantNull %v2int
+         %37 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %36 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %40 = OpTypeFunction %v4float
 %textureGather_831549 = OpFunction %void None %15
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
          %20 = OpLoad %14 %arg_2
          %21 = OpLoad %11 %arg_1
          %23 = OpSampledImage %22 %21 %20
-         %26 = OpConvertSToF %float %int_1
-         %29 = OpCompositeConstruct %v3float %float_0 %float_0 %26
-         %19 = OpImageGather %v4float %23 %29 %uint_1 ConstOffset %33
+         %28 = OpCompositeExtract %float %27 0
+         %29 = OpCompositeExtract %float %27 1
+         %30 = OpConvertSToF %float %int_1
+         %33 = OpCompositeConstruct %v3float %28 %29 %30
+         %19 = OpImageGather %v4float %23 %33 %uint_1 ConstOffset %37
                OpStore %res %19
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %36
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureGather_831549
+%vertex_main_inner = OpFunction %v4float None %40
+         %42 = OpLabel
+         %43 = OpFunctionCall %void %textureGather_831549
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
-         %41 = OpLabel
-         %42 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %42
+         %45 = OpLabel
+         %46 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %46
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %15
-         %45 = OpLabel
-         %46 = OpFunctionCall %void %textureGather_831549
+         %48 = OpLabel
+         %49 = OpFunctionCall %void %textureGather_831549
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %15
-         %48 = OpLabel
-         %49 = OpFunctionCall %void %textureGather_831549
+         %51 = OpLabel
+         %52 = OpFunctionCall %void %textureGather_831549
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureGather/831549.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureGather/831549.wgsl.expected.wgsl
index 45ab25d..35d382c 100644
--- a/test/tint/builtins/gen/literal/textureGather/831549.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/831549.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(2) var arg_2 : sampler;
 
 fn textureGather_831549() {
-  var res : vec4<f32> = textureGather(1u, arg_1, arg_2, vec2<f32>(), 1i, vec2<i32>());
+  var res : vec4<f32> = textureGather(1u, arg_1, arg_2, vec2<f32>(1.0f), 1i, vec2<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureGather/8578bc.wgsl b/test/tint/builtins/gen/literal/textureGather/8578bc.wgsl
index 75f0ea3..be40a06 100644
--- a/test/tint/builtins/gen/literal/textureGather/8578bc.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/8578bc.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureGather(@const component: u32, texture: texture_cube_array<f32>, sampler: sampler, coords: vec3<f32>, array_index: u32) -> vec4<f32>
 fn textureGather_8578bc() {
-  var res: vec4<f32> = textureGather(1u, arg_1, arg_2, vec3<f32>(), 1u);
+  var res: vec4<f32> = textureGather(1u, arg_1, arg_2, vec3<f32>(1.f), 1u);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureGather/8578bc.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/8578bc.wgsl.expected.dxc.hlsl
index 3d08469..0b8ccbe 100644
--- a/test/tint/builtins/gen/literal/textureGather/8578bc.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/8578bc.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_8578bc() {
-  float4 res = arg_1.GatherGreen(arg_2, float4(0.0f, 0.0f, 0.0f, float(1u)));
+  float4 res = arg_1.GatherGreen(arg_2, float4((1.0f).xxx, float(1u)));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/8578bc.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/8578bc.wgsl.expected.fxc.hlsl
index 3d08469..0b8ccbe 100644
--- a/test/tint/builtins/gen/literal/textureGather/8578bc.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/8578bc.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_8578bc() {
-  float4 res = arg_1.GatherGreen(arg_2, float4(0.0f, 0.0f, 0.0f, float(1u)));
+  float4 res = arg_1.GatherGreen(arg_2, float4((1.0f).xxx, float(1u)));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/8578bc.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureGather/8578bc.wgsl.expected.msl
index d54ba7e..5484cbc 100644
--- a/test/tint/builtins/gen/literal/textureGather/8578bc.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureGather/8578bc.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureGather_8578bc(texturecube_array<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float4 res = tint_symbol_1.gather(tint_symbol_2, float3(0.0f), 1u, component::y);
+  float4 res = tint_symbol_1.gather(tint_symbol_2, float3(1.0f), 1u, component::y);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/8578bc.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureGather/8578bc.wgsl.expected.spvasm
index 9eb633a..efca13c 100644
--- a/test/tint/builtins/gen/literal/textureGather/8578bc.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureGather/8578bc.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 45
+; Bound: 49
 ; Schema: 0
                OpCapability Shader
                OpCapability SampledCubeArray
@@ -44,43 +44,47 @@
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
          %22 = OpTypeSampledImage %11
-    %float_0 = OpConstant %float 0
+    %v3float = OpTypeVector %float 3
+    %float_1 = OpConstant %float 1
+         %26 = OpConstantComposite %v3float %float_1 %float_1 %float_1
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %31 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %36 = OpTypeFunction %v4float
 %textureGather_8578bc = OpFunction %void None %15
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
          %20 = OpLoad %14 %arg_2
          %21 = OpLoad %11 %arg_1
          %23 = OpSampledImage %22 %21 %20
-         %25 = OpConvertUToF %float %uint_1
-         %28 = OpCompositeConstruct %v4float %float_0 %float_0 %float_0 %25
-         %19 = OpImageGather %v4float %23 %28 %uint_1
+         %27 = OpCompositeExtract %float %26 0
+         %28 = OpCompositeExtract %float %26 1
+         %29 = OpCompositeExtract %float %26 2
+         %30 = OpConvertUToF %float %uint_1
+         %33 = OpCompositeConstruct %v4float %27 %28 %29 %30
+         %19 = OpImageGather %v4float %23 %33 %uint_1
                OpStore %res %19
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %31
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureGather_8578bc
+%vertex_main_inner = OpFunction %v4float None %36
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %textureGather_8578bc
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
-         %36 = OpLabel
-         %37 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %37
+         %41 = OpLabel
+         %42 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %42
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %15
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureGather_8578bc
+         %44 = OpLabel
+         %45 = OpFunctionCall %void %textureGather_8578bc
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %15
-         %43 = OpLabel
-         %44 = OpFunctionCall %void %textureGather_8578bc
+         %47 = OpLabel
+         %48 = OpFunctionCall %void %textureGather_8578bc
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureGather/8578bc.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureGather/8578bc.wgsl.expected.wgsl
index d43d26b..1b8d833 100644
--- a/test/tint/builtins/gen/literal/textureGather/8578bc.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/8578bc.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(2) var arg_2 : sampler;
 
 fn textureGather_8578bc() {
-  var res : vec4<f32> = textureGather(1u, arg_1, arg_2, vec3<f32>(), 1u);
+  var res : vec4<f32> = textureGather(1u, arg_1, arg_2, vec3<f32>(1.0f), 1u);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureGather/89680f.wgsl b/test/tint/builtins/gen/literal/textureGather/89680f.wgsl
index 8455ece..128b112 100644
--- a/test/tint/builtins/gen/literal/textureGather/89680f.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/89680f.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureGather(@const component: u32, texture: texture_cube<u32>, sampler: sampler, coords: vec3<f32>) -> vec4<u32>
 fn textureGather_89680f() {
-  var res: vec4<u32> = textureGather(1u, arg_1, arg_2, vec3<f32>());
+  var res: vec4<u32> = textureGather(1u, arg_1, arg_2, vec3<f32>(1.f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureGather/89680f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/89680f.wgsl.expected.dxc.hlsl
index 752cd0d..9993543 100644
--- a/test/tint/builtins/gen/literal/textureGather/89680f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/89680f.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_89680f() {
-  uint4 res = arg_1.GatherGreen(arg_2, (0.0f).xxx);
+  uint4 res = arg_1.GatherGreen(arg_2, (1.0f).xxx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/89680f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/89680f.wgsl.expected.fxc.hlsl
index 752cd0d..9993543 100644
--- a/test/tint/builtins/gen/literal/textureGather/89680f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/89680f.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_89680f() {
-  uint4 res = arg_1.GatherGreen(arg_2, (0.0f).xxx);
+  uint4 res = arg_1.GatherGreen(arg_2, (1.0f).xxx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/89680f.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureGather/89680f.wgsl.expected.glsl
index bccb5d2..5d7428e 100644
--- a/test/tint/builtins/gen/literal/textureGather/89680f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureGather/89680f.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 uniform highp usamplerCube arg_1_arg_2;
 
 void textureGather_89680f() {
-  uvec4 res = textureGather(arg_1_arg_2, vec3(0.0f), int(1u));
+  uvec4 res = textureGather(arg_1_arg_2, vec3(1.0f), int(1u));
 }
 
 vec4 vertex_main() {
@@ -25,7 +25,7 @@
 uniform highp usamplerCube arg_1_arg_2;
 
 void textureGather_89680f() {
-  uvec4 res = textureGather(arg_1_arg_2, vec3(0.0f), int(1u));
+  uvec4 res = textureGather(arg_1_arg_2, vec3(1.0f), int(1u));
 }
 
 void fragment_main() {
@@ -41,7 +41,7 @@
 uniform highp usamplerCube arg_1_arg_2;
 
 void textureGather_89680f() {
-  uvec4 res = textureGather(arg_1_arg_2, vec3(0.0f), int(1u));
+  uvec4 res = textureGather(arg_1_arg_2, vec3(1.0f), int(1u));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureGather/89680f.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureGather/89680f.wgsl.expected.msl
index c7d2c10..cd3b77f 100644
--- a/test/tint/builtins/gen/literal/textureGather/89680f.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureGather/89680f.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureGather_89680f(texturecube<uint, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  uint4 res = tint_symbol_1.gather(tint_symbol_2, float3(0.0f), component::y);
+  uint4 res = tint_symbol_1.gather(tint_symbol_2, float3(1.0f), component::y);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/89680f.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureGather/89680f.wgsl.expected.spvasm
index 0c208ec..6a811a6 100644
--- a/test/tint/builtins/gen/literal/textureGather/89680f.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureGather/89680f.wgsl.expected.spvasm
@@ -46,31 +46,31 @@
      %v4uint = OpTypeVector %uint 4
          %24 = OpTypeSampledImage %11
     %v3float = OpTypeVector %float 3
-         %27 = OpConstantNull %v3float
+    %float_1 = OpConstant %float 1
+         %28 = OpConstantComposite %v3float %float_1 %float_1 %float_1
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %31 = OpConstantNull %v4uint
-         %32 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %32 = OpConstantNull %v4uint
+         %33 = OpTypeFunction %v4float
 %textureGather_89680f = OpFunction %void None %16
          %19 = OpLabel
-        %res = OpVariable %_ptr_Function_v4uint Function %31
+        %res = OpVariable %_ptr_Function_v4uint Function %32
          %22 = OpLoad %15 %arg_2
          %23 = OpLoad %11 %arg_1
          %25 = OpSampledImage %24 %23 %22
-         %20 = OpImageGather %v4uint %25 %27 %uint_1
+         %20 = OpImageGather %v4uint %25 %28 %uint_1
                OpStore %res %20
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %32
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureGather_89680f
+%vertex_main_inner = OpFunction %v4float None %33
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureGather_89680f
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %16
-         %37 = OpLabel
-         %38 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %38
+         %38 = OpLabel
+         %39 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %39
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureGather/89680f.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureGather/89680f.wgsl.expected.wgsl
index aeffaac..d9f97fb 100644
--- a/test/tint/builtins/gen/literal/textureGather/89680f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/89680f.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(2) var arg_2 : sampler;
 
 fn textureGather_89680f() {
-  var res : vec4<u32> = textureGather(1u, arg_1, arg_2, vec3<f32>());
+  var res : vec4<u32> = textureGather(1u, arg_1, arg_2, vec3<f32>(1.0f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureGather/8b754c.wgsl b/test/tint/builtins/gen/literal/textureGather/8b754c.wgsl
index acc65ae..dfc7f37 100644
--- a/test/tint/builtins/gen/literal/textureGather/8b754c.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/8b754c.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureGather(@const component: i32, texture: texture_2d_array<i32>, sampler: sampler, coords: vec2<f32>, array_index: i32) -> vec4<i32>
 fn textureGather_8b754c() {
-  var res: vec4<i32> = textureGather(1i, arg_1, arg_2, vec2<f32>(), 1i);
+  var res: vec4<i32> = textureGather(1i, arg_1, arg_2, vec2<f32>(1.f), 1i);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureGather/8b754c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/8b754c.wgsl.expected.dxc.hlsl
index f8ffc7c..09bd5ec 100644
--- a/test/tint/builtins/gen/literal/textureGather/8b754c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/8b754c.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_8b754c() {
-  int4 res = arg_1.GatherGreen(arg_2, float3(0.0f, 0.0f, float(1)));
+  int4 res = arg_1.GatherGreen(arg_2, float3((1.0f).xx, float(1)));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/8b754c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/8b754c.wgsl.expected.fxc.hlsl
index f8ffc7c..09bd5ec 100644
--- a/test/tint/builtins/gen/literal/textureGather/8b754c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/8b754c.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_8b754c() {
-  int4 res = arg_1.GatherGreen(arg_2, float3(0.0f, 0.0f, float(1)));
+  int4 res = arg_1.GatherGreen(arg_2, float3((1.0f).xx, float(1)));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/8b754c.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureGather/8b754c.wgsl.expected.glsl
index deec62c..2205065 100644
--- a/test/tint/builtins/gen/literal/textureGather/8b754c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureGather/8b754c.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 uniform highp isampler2DArray arg_1_arg_2;
 
 void textureGather_8b754c() {
-  ivec4 res = textureGather(arg_1_arg_2, vec3(0.0f, 0.0f, float(1)), 1);
+  ivec4 res = textureGather(arg_1_arg_2, vec3(vec2(1.0f), float(1)), 1);
 }
 
 vec4 vertex_main() {
@@ -25,7 +25,7 @@
 uniform highp isampler2DArray arg_1_arg_2;
 
 void textureGather_8b754c() {
-  ivec4 res = textureGather(arg_1_arg_2, vec3(0.0f, 0.0f, float(1)), 1);
+  ivec4 res = textureGather(arg_1_arg_2, vec3(vec2(1.0f), float(1)), 1);
 }
 
 void fragment_main() {
@@ -41,7 +41,7 @@
 uniform highp isampler2DArray arg_1_arg_2;
 
 void textureGather_8b754c() {
-  ivec4 res = textureGather(arg_1_arg_2, vec3(0.0f, 0.0f, float(1)), 1);
+  ivec4 res = textureGather(arg_1_arg_2, vec3(vec2(1.0f), float(1)), 1);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureGather/8b754c.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureGather/8b754c.wgsl.expected.msl
index 2bd2f19..55d478d 100644
--- a/test/tint/builtins/gen/literal/textureGather/8b754c.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureGather/8b754c.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureGather_8b754c(texture2d_array<int, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  int4 res = tint_symbol_1.gather(tint_symbol_2, float2(0.0f), 1, int2(0), component::y);
+  int4 res = tint_symbol_1.gather(tint_symbol_2, float2(1.0f), 1, int2(0), component::y);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/8b754c.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureGather/8b754c.wgsl.expected.spvasm
index 9766976..b47c0d7 100644
--- a/test/tint/builtins/gen/literal/textureGather/8b754c.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureGather/8b754c.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 48
+; Bound: 51
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -46,43 +46,46 @@
       %v4int = OpTypeVector %int 4
          %24 = OpTypeSampledImage %11
     %v3float = OpTypeVector %float 3
-    %float_0 = OpConstant %float 0
+    %v2float = OpTypeVector %float 2
+    %float_1 = OpConstant %float 1
+         %29 = OpConstantComposite %v2float %float_1 %float_1
       %int_1 = OpConstant %int 1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %33 = OpConstantNull %v4int
-         %34 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %37 = OpConstantNull %v4int
+         %38 = OpTypeFunction %v4float
 %textureGather_8b754c = OpFunction %void None %16
          %19 = OpLabel
-        %res = OpVariable %_ptr_Function_v4int Function %33
+        %res = OpVariable %_ptr_Function_v4int Function %37
          %22 = OpLoad %15 %arg_2
          %23 = OpLoad %11 %arg_1
          %25 = OpSampledImage %24 %23 %22
-         %28 = OpConvertSToF %float %int_1
-         %30 = OpCompositeConstruct %v3float %float_0 %float_0 %28
-         %20 = OpImageGather %v4int %25 %30 %int_1
+         %30 = OpCompositeExtract %float %29 0
+         %31 = OpCompositeExtract %float %29 1
+         %32 = OpConvertSToF %float %int_1
+         %34 = OpCompositeConstruct %v3float %30 %31 %32
+         %20 = OpImageGather %v4int %25 %34 %int_1
                OpStore %res %20
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %34
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureGather_8b754c
+%vertex_main_inner = OpFunction %v4float None %38
+         %40 = OpLabel
+         %41 = OpFunctionCall %void %textureGather_8b754c
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %16
-         %39 = OpLabel
-         %40 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %40
+         %43 = OpLabel
+         %44 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %44
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %16
-         %43 = OpLabel
-         %44 = OpFunctionCall %void %textureGather_8b754c
+         %46 = OpLabel
+         %47 = OpFunctionCall %void %textureGather_8b754c
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %16
-         %46 = OpLabel
-         %47 = OpFunctionCall %void %textureGather_8b754c
+         %49 = OpLabel
+         %50 = OpFunctionCall %void %textureGather_8b754c
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureGather/8b754c.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureGather/8b754c.wgsl.expected.wgsl
index 9ff5d77..8f8d037 100644
--- a/test/tint/builtins/gen/literal/textureGather/8b754c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/8b754c.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(2) var arg_2 : sampler;
 
 fn textureGather_8b754c() {
-  var res : vec4<i32> = textureGather(1i, arg_1, arg_2, vec2<f32>(), 1i);
+  var res : vec4<i32> = textureGather(1i, arg_1, arg_2, vec2<f32>(1.0f), 1i);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureGather/8fae00.wgsl b/test/tint/builtins/gen/literal/textureGather/8fae00.wgsl
index b30fcdc..c0a8d2b5 100644
--- a/test/tint/builtins/gen/literal/textureGather/8fae00.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/8fae00.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureGather(@const component: u32, texture: texture_2d<u32>, sampler: sampler, coords: vec2<f32>) -> vec4<u32>
 fn textureGather_8fae00() {
-  var res: vec4<u32> = textureGather(1u, arg_1, arg_2, vec2<f32>());
+  var res: vec4<u32> = textureGather(1u, arg_1, arg_2, vec2<f32>(1.f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureGather/8fae00.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/8fae00.wgsl.expected.dxc.hlsl
index f973d36..309ca1d 100644
--- a/test/tint/builtins/gen/literal/textureGather/8fae00.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/8fae00.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_8fae00() {
-  uint4 res = arg_1.GatherGreen(arg_2, (0.0f).xx);
+  uint4 res = arg_1.GatherGreen(arg_2, (1.0f).xx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/8fae00.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/8fae00.wgsl.expected.fxc.hlsl
index f973d36..309ca1d 100644
--- a/test/tint/builtins/gen/literal/textureGather/8fae00.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/8fae00.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_8fae00() {
-  uint4 res = arg_1.GatherGreen(arg_2, (0.0f).xx);
+  uint4 res = arg_1.GatherGreen(arg_2, (1.0f).xx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/8fae00.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureGather/8fae00.wgsl.expected.glsl
index 4b9c91a..d3e13cb 100644
--- a/test/tint/builtins/gen/literal/textureGather/8fae00.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureGather/8fae00.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 uniform highp usampler2D arg_1_arg_2;
 
 void textureGather_8fae00() {
-  uvec4 res = textureGather(arg_1_arg_2, vec2(0.0f), int(1u));
+  uvec4 res = textureGather(arg_1_arg_2, vec2(1.0f), int(1u));
 }
 
 vec4 vertex_main() {
@@ -25,7 +25,7 @@
 uniform highp usampler2D arg_1_arg_2;
 
 void textureGather_8fae00() {
-  uvec4 res = textureGather(arg_1_arg_2, vec2(0.0f), int(1u));
+  uvec4 res = textureGather(arg_1_arg_2, vec2(1.0f), int(1u));
 }
 
 void fragment_main() {
@@ -41,7 +41,7 @@
 uniform highp usampler2D arg_1_arg_2;
 
 void textureGather_8fae00() {
-  uvec4 res = textureGather(arg_1_arg_2, vec2(0.0f), int(1u));
+  uvec4 res = textureGather(arg_1_arg_2, vec2(1.0f), int(1u));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureGather/8fae00.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureGather/8fae00.wgsl.expected.msl
index c1ea9fb..1bcc7c4 100644
--- a/test/tint/builtins/gen/literal/textureGather/8fae00.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureGather/8fae00.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureGather_8fae00(texture2d<uint, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  uint4 res = tint_symbol_1.gather(tint_symbol_2, float2(0.0f), int2(0), component::y);
+  uint4 res = tint_symbol_1.gather(tint_symbol_2, float2(1.0f), int2(0), component::y);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/8fae00.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureGather/8fae00.wgsl.expected.spvasm
index 40ae1c5..aa7bf7f 100644
--- a/test/tint/builtins/gen/literal/textureGather/8fae00.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureGather/8fae00.wgsl.expected.spvasm
@@ -46,31 +46,31 @@
      %v4uint = OpTypeVector %uint 4
          %24 = OpTypeSampledImage %11
     %v2float = OpTypeVector %float 2
-         %27 = OpConstantNull %v2float
+    %float_1 = OpConstant %float 1
+         %28 = OpConstantComposite %v2float %float_1 %float_1
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %31 = OpConstantNull %v4uint
-         %32 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %32 = OpConstantNull %v4uint
+         %33 = OpTypeFunction %v4float
 %textureGather_8fae00 = OpFunction %void None %16
          %19 = OpLabel
-        %res = OpVariable %_ptr_Function_v4uint Function %31
+        %res = OpVariable %_ptr_Function_v4uint Function %32
          %22 = OpLoad %15 %arg_2
          %23 = OpLoad %11 %arg_1
          %25 = OpSampledImage %24 %23 %22
-         %20 = OpImageGather %v4uint %25 %27 %uint_1
+         %20 = OpImageGather %v4uint %25 %28 %uint_1
                OpStore %res %20
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %32
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureGather_8fae00
+%vertex_main_inner = OpFunction %v4float None %33
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureGather_8fae00
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %16
-         %37 = OpLabel
-         %38 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %38
+         %38 = OpLabel
+         %39 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %39
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureGather/8fae00.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureGather/8fae00.wgsl.expected.wgsl
index be62d13..272f02c 100644
--- a/test/tint/builtins/gen/literal/textureGather/8fae00.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/8fae00.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(2) var arg_2 : sampler;
 
 fn textureGather_8fae00() {
-  var res : vec4<u32> = textureGather(1u, arg_1, arg_2, vec2<f32>());
+  var res : vec4<u32> = textureGather(1u, arg_1, arg_2, vec2<f32>(1.0f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureGather/92ea47.wgsl b/test/tint/builtins/gen/literal/textureGather/92ea47.wgsl
index aa35c72..ffa5d1b 100644
--- a/test/tint/builtins/gen/literal/textureGather/92ea47.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/92ea47.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureGather(@const component: u32, texture: texture_2d_array<u32>, sampler: sampler, coords: vec2<f32>, array_index: i32) -> vec4<u32>
 fn textureGather_92ea47() {
-  var res: vec4<u32> = textureGather(1u, arg_1, arg_2, vec2<f32>(), 1i);
+  var res: vec4<u32> = textureGather(1u, arg_1, arg_2, vec2<f32>(1.f), 1i);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureGather/92ea47.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/92ea47.wgsl.expected.dxc.hlsl
index a5de000..94fb7b7 100644
--- a/test/tint/builtins/gen/literal/textureGather/92ea47.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/92ea47.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_92ea47() {
-  uint4 res = arg_1.GatherGreen(arg_2, float3(0.0f, 0.0f, float(1)));
+  uint4 res = arg_1.GatherGreen(arg_2, float3((1.0f).xx, float(1)));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/92ea47.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/92ea47.wgsl.expected.fxc.hlsl
index a5de000..94fb7b7 100644
--- a/test/tint/builtins/gen/literal/textureGather/92ea47.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/92ea47.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_92ea47() {
-  uint4 res = arg_1.GatherGreen(arg_2, float3(0.0f, 0.0f, float(1)));
+  uint4 res = arg_1.GatherGreen(arg_2, float3((1.0f).xx, float(1)));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/92ea47.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureGather/92ea47.wgsl.expected.glsl
index 33de790..4990c83 100644
--- a/test/tint/builtins/gen/literal/textureGather/92ea47.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureGather/92ea47.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 uniform highp usampler2DArray arg_1_arg_2;
 
 void textureGather_92ea47() {
-  uvec4 res = textureGather(arg_1_arg_2, vec3(0.0f, 0.0f, float(1)), int(1u));
+  uvec4 res = textureGather(arg_1_arg_2, vec3(vec2(1.0f), float(1)), int(1u));
 }
 
 vec4 vertex_main() {
@@ -25,7 +25,7 @@
 uniform highp usampler2DArray arg_1_arg_2;
 
 void textureGather_92ea47() {
-  uvec4 res = textureGather(arg_1_arg_2, vec3(0.0f, 0.0f, float(1)), int(1u));
+  uvec4 res = textureGather(arg_1_arg_2, vec3(vec2(1.0f), float(1)), int(1u));
 }
 
 void fragment_main() {
@@ -41,7 +41,7 @@
 uniform highp usampler2DArray arg_1_arg_2;
 
 void textureGather_92ea47() {
-  uvec4 res = textureGather(arg_1_arg_2, vec3(0.0f, 0.0f, float(1)), int(1u));
+  uvec4 res = textureGather(arg_1_arg_2, vec3(vec2(1.0f), float(1)), int(1u));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureGather/92ea47.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureGather/92ea47.wgsl.expected.msl
index f6c3e37..00eb725 100644
--- a/test/tint/builtins/gen/literal/textureGather/92ea47.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureGather/92ea47.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureGather_92ea47(texture2d_array<uint, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  uint4 res = tint_symbol_1.gather(tint_symbol_2, float2(0.0f), 1, int2(0), component::y);
+  uint4 res = tint_symbol_1.gather(tint_symbol_2, float2(1.0f), 1, int2(0), component::y);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/92ea47.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureGather/92ea47.wgsl.expected.spvasm
index 48e9c34..52d8221 100644
--- a/test/tint/builtins/gen/literal/textureGather/92ea47.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureGather/92ea47.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 50
+; Bound: 53
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -46,45 +46,48 @@
      %v4uint = OpTypeVector %uint 4
          %24 = OpTypeSampledImage %11
     %v3float = OpTypeVector %float 3
-    %float_0 = OpConstant %float 0
+    %v2float = OpTypeVector %float 2
+    %float_1 = OpConstant %float 1
+         %29 = OpConstantComposite %v2float %float_1 %float_1
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %35 = OpConstantNull %v4uint
-         %36 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %39 = OpConstantNull %v4uint
+         %40 = OpTypeFunction %v4float
 %textureGather_92ea47 = OpFunction %void None %16
          %19 = OpLabel
-        %res = OpVariable %_ptr_Function_v4uint Function %35
+        %res = OpVariable %_ptr_Function_v4uint Function %39
          %22 = OpLoad %15 %arg_2
          %23 = OpLoad %11 %arg_1
          %25 = OpSampledImage %24 %23 %22
-         %28 = OpConvertSToF %float %int_1
-         %31 = OpCompositeConstruct %v3float %float_0 %float_0 %28
-         %20 = OpImageGather %v4uint %25 %31 %uint_1
+         %30 = OpCompositeExtract %float %29 0
+         %31 = OpCompositeExtract %float %29 1
+         %32 = OpConvertSToF %float %int_1
+         %35 = OpCompositeConstruct %v3float %30 %31 %32
+         %20 = OpImageGather %v4uint %25 %35 %uint_1
                OpStore %res %20
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %36
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureGather_92ea47
+%vertex_main_inner = OpFunction %v4float None %40
+         %42 = OpLabel
+         %43 = OpFunctionCall %void %textureGather_92ea47
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %16
-         %41 = OpLabel
-         %42 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %42
+         %45 = OpLabel
+         %46 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %46
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %16
-         %45 = OpLabel
-         %46 = OpFunctionCall %void %textureGather_92ea47
+         %48 = OpLabel
+         %49 = OpFunctionCall %void %textureGather_92ea47
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %16
-         %48 = OpLabel
-         %49 = OpFunctionCall %void %textureGather_92ea47
+         %51 = OpLabel
+         %52 = OpFunctionCall %void %textureGather_92ea47
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureGather/92ea47.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureGather/92ea47.wgsl.expected.wgsl
index 501d2df..945fa52 100644
--- a/test/tint/builtins/gen/literal/textureGather/92ea47.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/92ea47.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(2) var arg_2 : sampler;
 
 fn textureGather_92ea47() {
-  var res : vec4<u32> = textureGather(1u, arg_1, arg_2, vec2<f32>(), 1i);
+  var res : vec4<u32> = textureGather(1u, arg_1, arg_2, vec2<f32>(1.0f), 1i);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureGather/986700.wgsl b/test/tint/builtins/gen/literal/textureGather/986700.wgsl
index 3d12e54..10ccd14 100644
--- a/test/tint/builtins/gen/literal/textureGather/986700.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/986700.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureGather(@const component: u32, texture: texture_2d<u32>, sampler: sampler, coords: vec2<f32>, @const offset: vec2<i32>) -> vec4<u32>
 fn textureGather_986700() {
-  var res: vec4<u32> = textureGather(1u, arg_1, arg_2, vec2<f32>(), vec2<i32>());
+  var res: vec4<u32> = textureGather(1u, arg_1, arg_2, vec2<f32>(1.f), vec2<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureGather/986700.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/986700.wgsl.expected.dxc.hlsl
index 33d49eb..55c1085 100644
--- a/test/tint/builtins/gen/literal/textureGather/986700.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/986700.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_986700() {
-  uint4 res = arg_1.GatherGreen(arg_2, (0.0f).xx, (0).xx);
+  uint4 res = arg_1.GatherGreen(arg_2, (1.0f).xx, (1).xx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/986700.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/986700.wgsl.expected.fxc.hlsl
index 33d49eb..55c1085 100644
--- a/test/tint/builtins/gen/literal/textureGather/986700.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/986700.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_986700() {
-  uint4 res = arg_1.GatherGreen(arg_2, (0.0f).xx, (0).xx);
+  uint4 res = arg_1.GatherGreen(arg_2, (1.0f).xx, (1).xx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/986700.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureGather/986700.wgsl.expected.glsl
index 4930539..022cc38 100644
--- a/test/tint/builtins/gen/literal/textureGather/986700.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureGather/986700.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 uniform highp usampler2D arg_1_arg_2;
 
 void textureGather_986700() {
-  uvec4 res = textureGatherOffset(arg_1_arg_2, vec2(0.0f), ivec2(0), int(1u));
+  uvec4 res = textureGatherOffset(arg_1_arg_2, vec2(1.0f), ivec2(1), int(1u));
 }
 
 vec4 vertex_main() {
@@ -25,7 +25,7 @@
 uniform highp usampler2D arg_1_arg_2;
 
 void textureGather_986700() {
-  uvec4 res = textureGatherOffset(arg_1_arg_2, vec2(0.0f), ivec2(0), int(1u));
+  uvec4 res = textureGatherOffset(arg_1_arg_2, vec2(1.0f), ivec2(1), int(1u));
 }
 
 void fragment_main() {
@@ -41,7 +41,7 @@
 uniform highp usampler2D arg_1_arg_2;
 
 void textureGather_986700() {
-  uvec4 res = textureGatherOffset(arg_1_arg_2, vec2(0.0f), ivec2(0), int(1u));
+  uvec4 res = textureGatherOffset(arg_1_arg_2, vec2(1.0f), ivec2(1), int(1u));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureGather/986700.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureGather/986700.wgsl.expected.msl
index 27a6430..c91ad74 100644
--- a/test/tint/builtins/gen/literal/textureGather/986700.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureGather/986700.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureGather_986700(texture2d<uint, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  uint4 res = tint_symbol_1.gather(tint_symbol_2, float2(0.0f), int2(0), component::y);
+  uint4 res = tint_symbol_1.gather(tint_symbol_2, float2(1.0f), int2(1), component::y);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/986700.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureGather/986700.wgsl.expected.spvasm
index 06737d3..d0e948e 100644
--- a/test/tint/builtins/gen/literal/textureGather/986700.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureGather/986700.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 49
+; Bound: 50
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -46,44 +46,45 @@
      %v4uint = OpTypeVector %uint 4
          %24 = OpTypeSampledImage %11
     %v2float = OpTypeVector %float 2
-         %27 = OpConstantNull %v2float
+    %float_1 = OpConstant %float 1
+         %28 = OpConstantComposite %v2float %float_1 %float_1
      %uint_1 = OpConstant %uint 1
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
-         %31 = OpConstantNull %v2int
+      %int_1 = OpConstant %int 1
+         %33 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %34 = OpConstantNull %v4uint
-         %35 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %36 = OpConstantNull %v4uint
+         %37 = OpTypeFunction %v4float
 %textureGather_986700 = OpFunction %void None %16
          %19 = OpLabel
-        %res = OpVariable %_ptr_Function_v4uint Function %34
+        %res = OpVariable %_ptr_Function_v4uint Function %36
          %22 = OpLoad %15 %arg_2
          %23 = OpLoad %11 %arg_1
          %25 = OpSampledImage %24 %23 %22
-         %20 = OpImageGather %v4uint %25 %27 %uint_1 ConstOffset %31
+         %20 = OpImageGather %v4uint %25 %28 %uint_1 ConstOffset %33
                OpStore %res %20
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %35
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureGather_986700
+%vertex_main_inner = OpFunction %v4float None %37
+         %39 = OpLabel
+         %40 = OpFunctionCall %void %textureGather_986700
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %16
-         %40 = OpLabel
-         %41 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %41
+         %42 = OpLabel
+         %43 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %43
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %16
-         %44 = OpLabel
-         %45 = OpFunctionCall %void %textureGather_986700
+         %45 = OpLabel
+         %46 = OpFunctionCall %void %textureGather_986700
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %16
-         %47 = OpLabel
-         %48 = OpFunctionCall %void %textureGather_986700
+         %48 = OpLabel
+         %49 = OpFunctionCall %void %textureGather_986700
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureGather/986700.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureGather/986700.wgsl.expected.wgsl
index ebf125e..b1c4903 100644
--- a/test/tint/builtins/gen/literal/textureGather/986700.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/986700.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(2) var arg_2 : sampler;
 
 fn textureGather_986700() {
-  var res : vec4<u32> = textureGather(1u, arg_1, arg_2, vec2<f32>(), vec2<i32>());
+  var res : vec4<u32> = textureGather(1u, arg_1, arg_2, vec2<f32>(1.0f), vec2<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureGather/9a6358.wgsl b/test/tint/builtins/gen/literal/textureGather/9a6358.wgsl
index 06ca1b8..b0f60e5 100644
--- a/test/tint/builtins/gen/literal/textureGather/9a6358.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/9a6358.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureGather(texture: texture_depth_2d_array, sampler: sampler, coords: vec2<f32>, array_index: i32) -> vec4<f32>
 fn textureGather_9a6358() {
-  var res: vec4<f32> = textureGather(arg_0, arg_1, vec2<f32>(), 1i);
+  var res: vec4<f32> = textureGather(arg_0, arg_1, vec2<f32>(1.f), 1i);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureGather/9a6358.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/9a6358.wgsl.expected.dxc.hlsl
index 57f3d15..a53f003 100644
--- a/test/tint/builtins/gen/literal/textureGather/9a6358.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/9a6358.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureGather_9a6358() {
-  float4 res = arg_0.Gather(arg_1, float3(0.0f, 0.0f, float(1)));
+  float4 res = arg_0.Gather(arg_1, float3((1.0f).xx, float(1)));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/9a6358.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/9a6358.wgsl.expected.fxc.hlsl
index 57f3d15..a53f003 100644
--- a/test/tint/builtins/gen/literal/textureGather/9a6358.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/9a6358.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureGather_9a6358() {
-  float4 res = arg_0.Gather(arg_1, float3(0.0f, 0.0f, float(1)));
+  float4 res = arg_0.Gather(arg_1, float3((1.0f).xx, float(1)));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/9a6358.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureGather/9a6358.wgsl.expected.glsl
index ba47d8f..7c2be9a 100644
--- a/test/tint/builtins/gen/literal/textureGather/9a6358.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureGather/9a6358.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 uniform highp sampler2DArrayShadow arg_0_arg_1;
 
 void textureGather_9a6358() {
-  vec4 res = textureGather(arg_0_arg_1, vec3(0.0f, 0.0f, float(1)), 0.0);
+  vec4 res = textureGather(arg_0_arg_1, vec3(vec2(1.0f), float(1)), 0.0);
 }
 
 vec4 vertex_main() {
@@ -25,7 +25,7 @@
 uniform highp sampler2DArrayShadow arg_0_arg_1;
 
 void textureGather_9a6358() {
-  vec4 res = textureGather(arg_0_arg_1, vec3(0.0f, 0.0f, float(1)), 0.0);
+  vec4 res = textureGather(arg_0_arg_1, vec3(vec2(1.0f), float(1)), 0.0);
 }
 
 void fragment_main() {
@@ -41,7 +41,7 @@
 uniform highp sampler2DArrayShadow arg_0_arg_1;
 
 void textureGather_9a6358() {
-  vec4 res = textureGather(arg_0_arg_1, vec3(0.0f, 0.0f, float(1)), 0.0);
+  vec4 res = textureGather(arg_0_arg_1, vec3(vec2(1.0f), float(1)), 0.0);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureGather/9a6358.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureGather/9a6358.wgsl.expected.msl
index b6f9f68..574220f 100644
--- a/test/tint/builtins/gen/literal/textureGather/9a6358.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureGather/9a6358.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureGather_9a6358(depth2d_array<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float4 res = tint_symbol_1.gather(tint_symbol_2, float2(0.0f), 1);
+  float4 res = tint_symbol_1.gather(tint_symbol_2, float2(1.0f), 1);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/9a6358.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureGather/9a6358.wgsl.expected.spvasm
index 138fef1..e6c0a1a 100644
--- a/test/tint/builtins/gen/literal/textureGather/9a6358.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureGather/9a6358.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 47
+; Bound: 50
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -44,44 +44,47 @@
          %15 = OpTypeFunction %void
          %22 = OpTypeSampledImage %11
     %v3float = OpTypeVector %float 3
-    %float_0 = OpConstant %float 0
+    %v2float = OpTypeVector %float 2
+    %float_1 = OpConstant %float 1
+         %27 = OpConstantComposite %v2float %float_1 %float_1
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
       %int_0 = OpConstant %int 0
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %33 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %37 = OpTypeFunction %v4float
 %textureGather_9a6358 = OpFunction %void None %15
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
          %20 = OpLoad %14 %arg_1
          %21 = OpLoad %11 %arg_0
          %23 = OpSampledImage %22 %21 %20
-         %26 = OpConvertSToF %float %int_1
-         %29 = OpCompositeConstruct %v3float %float_0 %float_0 %26
-         %19 = OpImageGather %v4float %23 %29 %int_0
+         %28 = OpCompositeExtract %float %27 0
+         %29 = OpCompositeExtract %float %27 1
+         %30 = OpConvertSToF %float %int_1
+         %33 = OpCompositeConstruct %v3float %28 %29 %30
+         %19 = OpImageGather %v4float %23 %33 %int_0
                OpStore %res %19
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %33
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureGather_9a6358
+%vertex_main_inner = OpFunction %v4float None %37
+         %39 = OpLabel
+         %40 = OpFunctionCall %void %textureGather_9a6358
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
-         %38 = OpLabel
-         %39 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %39
+         %42 = OpLabel
+         %43 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %43
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %15
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureGather_9a6358
+         %45 = OpLabel
+         %46 = OpFunctionCall %void %textureGather_9a6358
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %15
-         %45 = OpLabel
-         %46 = OpFunctionCall %void %textureGather_9a6358
+         %48 = OpLabel
+         %49 = OpFunctionCall %void %textureGather_9a6358
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureGather/9a6358.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureGather/9a6358.wgsl.expected.wgsl
index f55dba1..866c99c 100644
--- a/test/tint/builtins/gen/literal/textureGather/9a6358.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/9a6358.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(1) var arg_1 : sampler;
 
 fn textureGather_9a6358() {
-  var res : vec4<f32> = textureGather(arg_0, arg_1, vec2<f32>(), 1i);
+  var res : vec4<f32> = textureGather(arg_0, arg_1, vec2<f32>(1.0f), 1i);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureGather/9ab41e.wgsl b/test/tint/builtins/gen/literal/textureGather/9ab41e.wgsl
index 5cc0342..cccf583 100644
--- a/test/tint/builtins/gen/literal/textureGather/9ab41e.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/9ab41e.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureGather(@const component: u32, texture: texture_2d_array<i32>, sampler: sampler, coords: vec2<f32>, array_index: i32, @const offset: vec2<i32>) -> vec4<i32>
 fn textureGather_9ab41e() {
-  var res: vec4<i32> = textureGather(1u, arg_1, arg_2, vec2<f32>(), 1i, vec2<i32>());
+  var res: vec4<i32> = textureGather(1u, arg_1, arg_2, vec2<f32>(1.f), 1i, vec2<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureGather/9ab41e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/9ab41e.wgsl.expected.dxc.hlsl
index d13137c..b2d02d9 100644
--- a/test/tint/builtins/gen/literal/textureGather/9ab41e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/9ab41e.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_9ab41e() {
-  int4 res = arg_1.GatherGreen(arg_2, float3(0.0f, 0.0f, float(1)), (0).xx);
+  int4 res = arg_1.GatherGreen(arg_2, float3((1.0f).xx, float(1)), (1).xx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/9ab41e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/9ab41e.wgsl.expected.fxc.hlsl
index d13137c..b2d02d9 100644
--- a/test/tint/builtins/gen/literal/textureGather/9ab41e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/9ab41e.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_9ab41e() {
-  int4 res = arg_1.GatherGreen(arg_2, float3(0.0f, 0.0f, float(1)), (0).xx);
+  int4 res = arg_1.GatherGreen(arg_2, float3((1.0f).xx, float(1)), (1).xx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/9ab41e.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureGather/9ab41e.wgsl.expected.glsl
index a6d26d4..3c8c9f0 100644
--- a/test/tint/builtins/gen/literal/textureGather/9ab41e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureGather/9ab41e.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 uniform highp isampler2DArray arg_1_arg_2;
 
 void textureGather_9ab41e() {
-  ivec4 res = textureGatherOffset(arg_1_arg_2, vec3(0.0f, 0.0f, float(1)), ivec2(0), int(1u));
+  ivec4 res = textureGatherOffset(arg_1_arg_2, vec3(vec2(1.0f), float(1)), ivec2(1), int(1u));
 }
 
 vec4 vertex_main() {
@@ -25,7 +25,7 @@
 uniform highp isampler2DArray arg_1_arg_2;
 
 void textureGather_9ab41e() {
-  ivec4 res = textureGatherOffset(arg_1_arg_2, vec3(0.0f, 0.0f, float(1)), ivec2(0), int(1u));
+  ivec4 res = textureGatherOffset(arg_1_arg_2, vec3(vec2(1.0f), float(1)), ivec2(1), int(1u));
 }
 
 void fragment_main() {
@@ -41,7 +41,7 @@
 uniform highp isampler2DArray arg_1_arg_2;
 
 void textureGather_9ab41e() {
-  ivec4 res = textureGatherOffset(arg_1_arg_2, vec3(0.0f, 0.0f, float(1)), ivec2(0), int(1u));
+  ivec4 res = textureGatherOffset(arg_1_arg_2, vec3(vec2(1.0f), float(1)), ivec2(1), int(1u));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureGather/9ab41e.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureGather/9ab41e.wgsl.expected.msl
index 3af8f5c..b46b1b4 100644
--- a/test/tint/builtins/gen/literal/textureGather/9ab41e.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureGather/9ab41e.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureGather_9ab41e(texture2d_array<int, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  int4 res = tint_symbol_1.gather(tint_symbol_2, float2(0.0f), 1, int2(0), component::y);
+  int4 res = tint_symbol_1.gather(tint_symbol_2, float2(1.0f), 1, int2(1), component::y);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/9ab41e.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureGather/9ab41e.wgsl.expected.spvasm
index d9af9f6..aeefee6 100644
--- a/test/tint/builtins/gen/literal/textureGather/9ab41e.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureGather/9ab41e.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 52
+; Bound: 55
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -46,47 +46,50 @@
       %v4int = OpTypeVector %int 4
          %24 = OpTypeSampledImage %11
     %v3float = OpTypeVector %float 3
-    %float_0 = OpConstant %float 0
+    %v2float = OpTypeVector %float 2
+    %float_1 = OpConstant %float 1
+         %29 = OpConstantComposite %v2float %float_1 %float_1
       %int_1 = OpConstant %int 1
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
       %v2int = OpTypeVector %int 2
-         %34 = OpConstantNull %v2int
+         %38 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %37 = OpConstantNull %v4int
-         %38 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %41 = OpConstantNull %v4int
+         %42 = OpTypeFunction %v4float
 %textureGather_9ab41e = OpFunction %void None %16
          %19 = OpLabel
-        %res = OpVariable %_ptr_Function_v4int Function %37
+        %res = OpVariable %_ptr_Function_v4int Function %41
          %22 = OpLoad %15 %arg_2
          %23 = OpLoad %11 %arg_1
          %25 = OpSampledImage %24 %23 %22
-         %28 = OpConvertSToF %float %int_1
-         %30 = OpCompositeConstruct %v3float %float_0 %float_0 %28
-         %20 = OpImageGather %v4int %25 %30 %uint_1 ConstOffset %34
+         %30 = OpCompositeExtract %float %29 0
+         %31 = OpCompositeExtract %float %29 1
+         %32 = OpConvertSToF %float %int_1
+         %34 = OpCompositeConstruct %v3float %30 %31 %32
+         %20 = OpImageGather %v4int %25 %34 %uint_1 ConstOffset %38
                OpStore %res %20
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %38
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureGather_9ab41e
+%vertex_main_inner = OpFunction %v4float None %42
+         %44 = OpLabel
+         %45 = OpFunctionCall %void %textureGather_9ab41e
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %16
-         %43 = OpLabel
-         %44 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %44
+         %47 = OpLabel
+         %48 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %48
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %16
-         %47 = OpLabel
-         %48 = OpFunctionCall %void %textureGather_9ab41e
+         %50 = OpLabel
+         %51 = OpFunctionCall %void %textureGather_9ab41e
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %16
-         %50 = OpLabel
-         %51 = OpFunctionCall %void %textureGather_9ab41e
+         %53 = OpLabel
+         %54 = OpFunctionCall %void %textureGather_9ab41e
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureGather/9ab41e.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureGather/9ab41e.wgsl.expected.wgsl
index 71d70bf..db129e4 100644
--- a/test/tint/builtins/gen/literal/textureGather/9ab41e.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/9ab41e.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(2) var arg_2 : sampler;
 
 fn textureGather_9ab41e() {
-  var res : vec4<i32> = textureGather(1u, arg_1, arg_2, vec2<f32>(), 1i, vec2<i32>());
+  var res : vec4<i32> = textureGather(1u, arg_1, arg_2, vec2<f32>(1.0f), 1i, vec2<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureGather/a0372b.wgsl b/test/tint/builtins/gen/literal/textureGather/a0372b.wgsl
index 16deb12..09c36d8 100644
--- a/test/tint/builtins/gen/literal/textureGather/a0372b.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/a0372b.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureGather(@const component: i32, texture: texture_2d_array<u32>, sampler: sampler, coords: vec2<f32>, array_index: u32) -> vec4<u32>
 fn textureGather_a0372b() {
-  var res: vec4<u32> = textureGather(1i, arg_1, arg_2, vec2<f32>(), 1u);
+  var res: vec4<u32> = textureGather(1i, arg_1, arg_2, vec2<f32>(1.f), 1u);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureGather/a0372b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/a0372b.wgsl.expected.dxc.hlsl
index aac3174..1b83181 100644
--- a/test/tint/builtins/gen/literal/textureGather/a0372b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/a0372b.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_a0372b() {
-  uint4 res = arg_1.GatherGreen(arg_2, float3(0.0f, 0.0f, float(1u)));
+  uint4 res = arg_1.GatherGreen(arg_2, float3((1.0f).xx, float(1u)));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/a0372b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/a0372b.wgsl.expected.fxc.hlsl
index aac3174..1b83181 100644
--- a/test/tint/builtins/gen/literal/textureGather/a0372b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/a0372b.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_a0372b() {
-  uint4 res = arg_1.GatherGreen(arg_2, float3(0.0f, 0.0f, float(1u)));
+  uint4 res = arg_1.GatherGreen(arg_2, float3((1.0f).xx, float(1u)));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/a0372b.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureGather/a0372b.wgsl.expected.glsl
index 5be694b..ace0faf 100644
--- a/test/tint/builtins/gen/literal/textureGather/a0372b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureGather/a0372b.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 uniform highp usampler2DArray arg_1_arg_2;
 
 void textureGather_a0372b() {
-  uvec4 res = textureGather(arg_1_arg_2, vec3(0.0f, 0.0f, float(1u)), 1);
+  uvec4 res = textureGather(arg_1_arg_2, vec3(vec2(1.0f), float(1u)), 1);
 }
 
 vec4 vertex_main() {
@@ -25,7 +25,7 @@
 uniform highp usampler2DArray arg_1_arg_2;
 
 void textureGather_a0372b() {
-  uvec4 res = textureGather(arg_1_arg_2, vec3(0.0f, 0.0f, float(1u)), 1);
+  uvec4 res = textureGather(arg_1_arg_2, vec3(vec2(1.0f), float(1u)), 1);
 }
 
 void fragment_main() {
@@ -41,7 +41,7 @@
 uniform highp usampler2DArray arg_1_arg_2;
 
 void textureGather_a0372b() {
-  uvec4 res = textureGather(arg_1_arg_2, vec3(0.0f, 0.0f, float(1u)), 1);
+  uvec4 res = textureGather(arg_1_arg_2, vec3(vec2(1.0f), float(1u)), 1);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureGather/a0372b.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureGather/a0372b.wgsl.expected.msl
index 2e34b90..53c065b 100644
--- a/test/tint/builtins/gen/literal/textureGather/a0372b.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureGather/a0372b.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureGather_a0372b(texture2d_array<uint, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  uint4 res = tint_symbol_1.gather(tint_symbol_2, float2(0.0f), 1u, int2(0), component::y);
+  uint4 res = tint_symbol_1.gather(tint_symbol_2, float2(1.0f), 1u, int2(0), component::y);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/a0372b.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureGather/a0372b.wgsl.expected.spvasm
index d90e3ce..70fd385 100644
--- a/test/tint/builtins/gen/literal/textureGather/a0372b.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureGather/a0372b.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 50
+; Bound: 53
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -46,45 +46,48 @@
      %v4uint = OpTypeVector %uint 4
          %24 = OpTypeSampledImage %11
     %v3float = OpTypeVector %float 3
-    %float_0 = OpConstant %float 0
+    %v2float = OpTypeVector %float 2
+    %float_1 = OpConstant %float 1
+         %29 = OpConstantComposite %v2float %float_1 %float_1
      %uint_1 = OpConstant %uint 1
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %35 = OpConstantNull %v4uint
-         %36 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %39 = OpConstantNull %v4uint
+         %40 = OpTypeFunction %v4float
 %textureGather_a0372b = OpFunction %void None %16
          %19 = OpLabel
-        %res = OpVariable %_ptr_Function_v4uint Function %35
+        %res = OpVariable %_ptr_Function_v4uint Function %39
          %22 = OpLoad %15 %arg_2
          %23 = OpLoad %11 %arg_1
          %25 = OpSampledImage %24 %23 %22
-         %28 = OpConvertUToF %float %uint_1
-         %30 = OpCompositeConstruct %v3float %float_0 %float_0 %28
-         %20 = OpImageGather %v4uint %25 %30 %int_1
+         %30 = OpCompositeExtract %float %29 0
+         %31 = OpCompositeExtract %float %29 1
+         %32 = OpConvertUToF %float %uint_1
+         %34 = OpCompositeConstruct %v3float %30 %31 %32
+         %20 = OpImageGather %v4uint %25 %34 %int_1
                OpStore %res %20
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %36
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureGather_a0372b
+%vertex_main_inner = OpFunction %v4float None %40
+         %42 = OpLabel
+         %43 = OpFunctionCall %void %textureGather_a0372b
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %16
-         %41 = OpLabel
-         %42 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %42
+         %45 = OpLabel
+         %46 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %46
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %16
-         %45 = OpLabel
-         %46 = OpFunctionCall %void %textureGather_a0372b
+         %48 = OpLabel
+         %49 = OpFunctionCall %void %textureGather_a0372b
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %16
-         %48 = OpLabel
-         %49 = OpFunctionCall %void %textureGather_a0372b
+         %51 = OpLabel
+         %52 = OpFunctionCall %void %textureGather_a0372b
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureGather/a0372b.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureGather/a0372b.wgsl.expected.wgsl
index cb4dd68..13b48f3 100644
--- a/test/tint/builtins/gen/literal/textureGather/a0372b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/a0372b.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(2) var arg_2 : sampler;
 
 fn textureGather_a0372b() {
-  var res : vec4<u32> = textureGather(1i, arg_1, arg_2, vec2<f32>(), 1u);
+  var res : vec4<u32> = textureGather(1i, arg_1, arg_2, vec2<f32>(1.0f), 1u);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureGather/a68027.wgsl b/test/tint/builtins/gen/literal/textureGather/a68027.wgsl
index a3bbec3..7b7b363 100644
--- a/test/tint/builtins/gen/literal/textureGather/a68027.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/a68027.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureGather(texture: texture_depth_2d_array, sampler: sampler, coords: vec2<f32>, array_index: u32, @const offset: vec2<i32>) -> vec4<f32>
 fn textureGather_a68027() {
-  var res: vec4<f32> = textureGather(arg_0, arg_1, vec2<f32>(), 1u, vec2<i32>());
+  var res: vec4<f32> = textureGather(arg_0, arg_1, vec2<f32>(1.f), 1u, vec2<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureGather/a68027.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/a68027.wgsl.expected.dxc.hlsl
index b8b6990..67fe27a 100644
--- a/test/tint/builtins/gen/literal/textureGather/a68027.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/a68027.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureGather_a68027() {
-  float4 res = arg_0.Gather(arg_1, float3(0.0f, 0.0f, float(1u)), (0).xx);
+  float4 res = arg_0.Gather(arg_1, float3((1.0f).xx, float(1u)), (1).xx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/a68027.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/a68027.wgsl.expected.fxc.hlsl
index b8b6990..67fe27a 100644
--- a/test/tint/builtins/gen/literal/textureGather/a68027.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/a68027.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureGather_a68027() {
-  float4 res = arg_0.Gather(arg_1, float3(0.0f, 0.0f, float(1u)), (0).xx);
+  float4 res = arg_0.Gather(arg_1, float3((1.0f).xx, float(1u)), (1).xx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/a68027.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureGather/a68027.wgsl.expected.glsl
index 305ef61..e93a788 100644
--- a/test/tint/builtins/gen/literal/textureGather/a68027.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureGather/a68027.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 uniform highp sampler2DArrayShadow arg_0_arg_1;
 
 void textureGather_a68027() {
-  vec4 res = textureGatherOffset(arg_0_arg_1, vec3(0.0f, 0.0f, float(1u)), 0.0, ivec2(0));
+  vec4 res = textureGatherOffset(arg_0_arg_1, vec3(vec2(1.0f), float(1u)), 0.0, ivec2(1));
 }
 
 vec4 vertex_main() {
@@ -25,7 +25,7 @@
 uniform highp sampler2DArrayShadow arg_0_arg_1;
 
 void textureGather_a68027() {
-  vec4 res = textureGatherOffset(arg_0_arg_1, vec3(0.0f, 0.0f, float(1u)), 0.0, ivec2(0));
+  vec4 res = textureGatherOffset(arg_0_arg_1, vec3(vec2(1.0f), float(1u)), 0.0, ivec2(1));
 }
 
 void fragment_main() {
@@ -41,7 +41,7 @@
 uniform highp sampler2DArrayShadow arg_0_arg_1;
 
 void textureGather_a68027() {
-  vec4 res = textureGatherOffset(arg_0_arg_1, vec3(0.0f, 0.0f, float(1u)), 0.0, ivec2(0));
+  vec4 res = textureGatherOffset(arg_0_arg_1, vec3(vec2(1.0f), float(1u)), 0.0, ivec2(1));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureGather/a68027.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureGather/a68027.wgsl.expected.msl
index ef44bea..88b1490 100644
--- a/test/tint/builtins/gen/literal/textureGather/a68027.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureGather/a68027.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureGather_a68027(depth2d_array<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float4 res = tint_symbol_1.gather(tint_symbol_2, float2(0.0f), 1u, int2(0));
+  float4 res = tint_symbol_1.gather(tint_symbol_2, float2(1.0f), 1u, int2(1));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/a68027.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureGather/a68027.wgsl.expected.spvasm
index 6e66662..b4fe504 100644
--- a/test/tint/builtins/gen/literal/textureGather/a68027.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureGather/a68027.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 50
+; Bound: 54
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -44,47 +44,51 @@
          %15 = OpTypeFunction %void
          %22 = OpTypeSampledImage %11
     %v3float = OpTypeVector %float 3
-    %float_0 = OpConstant %float 0
+    %v2float = OpTypeVector %float 2
+    %float_1 = OpConstant %float 1
+         %27 = OpConstantComposite %v2float %float_1 %float_1
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
         %int = OpTypeInt 32 1
       %int_0 = OpConstant %int 0
       %v2int = OpTypeVector %int 2
-         %33 = OpConstantNull %v2int
+      %int_1 = OpConstant %int 1
+         %38 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %36 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %41 = OpTypeFunction %v4float
 %textureGather_a68027 = OpFunction %void None %15
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
          %20 = OpLoad %14 %arg_1
          %21 = OpLoad %11 %arg_0
          %23 = OpSampledImage %22 %21 %20
-         %26 = OpConvertUToF %float %uint_1
-         %29 = OpCompositeConstruct %v3float %float_0 %float_0 %26
-         %19 = OpImageGather %v4float %23 %29 %int_0 ConstOffset %33
+         %28 = OpCompositeExtract %float %27 0
+         %29 = OpCompositeExtract %float %27 1
+         %30 = OpConvertUToF %float %uint_1
+         %33 = OpCompositeConstruct %v3float %28 %29 %30
+         %19 = OpImageGather %v4float %23 %33 %int_0 ConstOffset %38
                OpStore %res %19
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %36
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureGather_a68027
+%vertex_main_inner = OpFunction %v4float None %41
+         %43 = OpLabel
+         %44 = OpFunctionCall %void %textureGather_a68027
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
-         %41 = OpLabel
-         %42 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %42
+         %46 = OpLabel
+         %47 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %47
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %15
-         %45 = OpLabel
-         %46 = OpFunctionCall %void %textureGather_a68027
+         %49 = OpLabel
+         %50 = OpFunctionCall %void %textureGather_a68027
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %15
-         %48 = OpLabel
-         %49 = OpFunctionCall %void %textureGather_a68027
+         %52 = OpLabel
+         %53 = OpFunctionCall %void %textureGather_a68027
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureGather/a68027.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureGather/a68027.wgsl.expected.wgsl
index 433101d..29a6f59 100644
--- a/test/tint/builtins/gen/literal/textureGather/a68027.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/a68027.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(1) var arg_1 : sampler;
 
 fn textureGather_a68027() {
-  var res : vec4<f32> = textureGather(arg_0, arg_1, vec2<f32>(), 1u, vec2<i32>());
+  var res : vec4<f32> = textureGather(arg_0, arg_1, vec2<f32>(1.0f), 1u, vec2<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureGather/aaf6bd.wgsl b/test/tint/builtins/gen/literal/textureGather/aaf6bd.wgsl
index a80c3db..4d606ab 100644
--- a/test/tint/builtins/gen/literal/textureGather/aaf6bd.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/aaf6bd.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureGather(@const component: u32, texture: texture_cube_array<i32>, sampler: sampler, coords: vec3<f32>, array_index: i32) -> vec4<i32>
 fn textureGather_aaf6bd() {
-  var res: vec4<i32> = textureGather(1u, arg_1, arg_2, vec3<f32>(), 1i);
+  var res: vec4<i32> = textureGather(1u, arg_1, arg_2, vec3<f32>(1.f), 1i);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureGather/aaf6bd.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/aaf6bd.wgsl.expected.dxc.hlsl
index b7a7ebd..1746c5f 100644
--- a/test/tint/builtins/gen/literal/textureGather/aaf6bd.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/aaf6bd.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_aaf6bd() {
-  int4 res = arg_1.GatherGreen(arg_2, float4(0.0f, 0.0f, 0.0f, float(1)));
+  int4 res = arg_1.GatherGreen(arg_2, float4((1.0f).xxx, float(1)));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/aaf6bd.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/aaf6bd.wgsl.expected.fxc.hlsl
index b7a7ebd..1746c5f 100644
--- a/test/tint/builtins/gen/literal/textureGather/aaf6bd.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/aaf6bd.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_aaf6bd() {
-  int4 res = arg_1.GatherGreen(arg_2, float4(0.0f, 0.0f, 0.0f, float(1)));
+  int4 res = arg_1.GatherGreen(arg_2, float4((1.0f).xxx, float(1)));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/aaf6bd.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureGather/aaf6bd.wgsl.expected.msl
index e738ae2..c040733 100644
--- a/test/tint/builtins/gen/literal/textureGather/aaf6bd.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureGather/aaf6bd.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureGather_aaf6bd(texturecube_array<int, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  int4 res = tint_symbol_1.gather(tint_symbol_2, float3(0.0f), 1, component::y);
+  int4 res = tint_symbol_1.gather(tint_symbol_2, float3(1.0f), 1, component::y);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/aaf6bd.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureGather/aaf6bd.wgsl.expected.spvasm
index 6f938f5..3c85db7 100644
--- a/test/tint/builtins/gen/literal/textureGather/aaf6bd.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureGather/aaf6bd.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 49
+; Bound: 53
 ; Schema: 0
                OpCapability Shader
                OpCapability SampledCubeArray
@@ -46,45 +46,49 @@
          %16 = OpTypeFunction %void
       %v4int = OpTypeVector %int 4
          %24 = OpTypeSampledImage %11
-    %float_0 = OpConstant %float 0
+    %v3float = OpTypeVector %float 3
+    %float_1 = OpConstant %float 1
+         %28 = OpConstantComposite %v3float %float_1 %float_1 %float_1
       %int_1 = OpConstant %int 1
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %34 = OpConstantNull %v4int
-         %35 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %39 = OpConstantNull %v4int
+         %40 = OpTypeFunction %v4float
 %textureGather_aaf6bd = OpFunction %void None %16
          %19 = OpLabel
-        %res = OpVariable %_ptr_Function_v4int Function %34
+        %res = OpVariable %_ptr_Function_v4int Function %39
          %22 = OpLoad %15 %arg_2
          %23 = OpLoad %11 %arg_1
          %25 = OpSampledImage %24 %23 %22
-         %27 = OpConvertSToF %float %int_1
-         %29 = OpCompositeConstruct %v4float %float_0 %float_0 %float_0 %27
-         %20 = OpImageGather %v4int %25 %29 %uint_1
+         %29 = OpCompositeExtract %float %28 0
+         %30 = OpCompositeExtract %float %28 1
+         %31 = OpCompositeExtract %float %28 2
+         %32 = OpConvertSToF %float %int_1
+         %34 = OpCompositeConstruct %v4float %29 %30 %31 %32
+         %20 = OpImageGather %v4int %25 %34 %uint_1
                OpStore %res %20
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %35
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureGather_aaf6bd
+%vertex_main_inner = OpFunction %v4float None %40
+         %42 = OpLabel
+         %43 = OpFunctionCall %void %textureGather_aaf6bd
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %16
-         %40 = OpLabel
-         %41 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %41
+         %45 = OpLabel
+         %46 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %46
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %16
-         %44 = OpLabel
-         %45 = OpFunctionCall %void %textureGather_aaf6bd
+         %48 = OpLabel
+         %49 = OpFunctionCall %void %textureGather_aaf6bd
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %16
-         %47 = OpLabel
-         %48 = OpFunctionCall %void %textureGather_aaf6bd
+         %51 = OpLabel
+         %52 = OpFunctionCall %void %textureGather_aaf6bd
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureGather/aaf6bd.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureGather/aaf6bd.wgsl.expected.wgsl
index 6d9a186..df39466 100644
--- a/test/tint/builtins/gen/literal/textureGather/aaf6bd.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/aaf6bd.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(2) var arg_2 : sampler;
 
 fn textureGather_aaf6bd() {
-  var res : vec4<i32> = textureGather(1u, arg_1, arg_2, vec3<f32>(), 1i);
+  var res : vec4<i32> = textureGather(1u, arg_1, arg_2, vec3<f32>(1.0f), 1i);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureGather/af55b3.wgsl b/test/tint/builtins/gen/literal/textureGather/af55b3.wgsl
index fff2898..98d2001 100644
--- a/test/tint/builtins/gen/literal/textureGather/af55b3.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/af55b3.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureGather(@const component: i32, texture: texture_2d<f32>, sampler: sampler, coords: vec2<f32>, @const offset: vec2<i32>) -> vec4<f32>
 fn textureGather_af55b3() {
-  var res: vec4<f32> = textureGather(1i, arg_1, arg_2, vec2<f32>(), vec2<i32>());
+  var res: vec4<f32> = textureGather(1i, arg_1, arg_2, vec2<f32>(1.f), vec2<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureGather/af55b3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/af55b3.wgsl.expected.dxc.hlsl
index 11eeb8b..de1d972 100644
--- a/test/tint/builtins/gen/literal/textureGather/af55b3.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/af55b3.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_af55b3() {
-  float4 res = arg_1.GatherGreen(arg_2, (0.0f).xx, (0).xx);
+  float4 res = arg_1.GatherGreen(arg_2, (1.0f).xx, (1).xx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/af55b3.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/af55b3.wgsl.expected.fxc.hlsl
index 11eeb8b..de1d972 100644
--- a/test/tint/builtins/gen/literal/textureGather/af55b3.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/af55b3.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_af55b3() {
-  float4 res = arg_1.GatherGreen(arg_2, (0.0f).xx, (0).xx);
+  float4 res = arg_1.GatherGreen(arg_2, (1.0f).xx, (1).xx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/af55b3.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureGather/af55b3.wgsl.expected.glsl
index b9e44ef..e76bd21 100644
--- a/test/tint/builtins/gen/literal/textureGather/af55b3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureGather/af55b3.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 uniform highp sampler2D arg_1_arg_2;
 
 void textureGather_af55b3() {
-  vec4 res = textureGatherOffset(arg_1_arg_2, vec2(0.0f), ivec2(0), 1);
+  vec4 res = textureGatherOffset(arg_1_arg_2, vec2(1.0f), ivec2(1), 1);
 }
 
 vec4 vertex_main() {
@@ -25,7 +25,7 @@
 uniform highp sampler2D arg_1_arg_2;
 
 void textureGather_af55b3() {
-  vec4 res = textureGatherOffset(arg_1_arg_2, vec2(0.0f), ivec2(0), 1);
+  vec4 res = textureGatherOffset(arg_1_arg_2, vec2(1.0f), ivec2(1), 1);
 }
 
 void fragment_main() {
@@ -41,7 +41,7 @@
 uniform highp sampler2D arg_1_arg_2;
 
 void textureGather_af55b3() {
-  vec4 res = textureGatherOffset(arg_1_arg_2, vec2(0.0f), ivec2(0), 1);
+  vec4 res = textureGatherOffset(arg_1_arg_2, vec2(1.0f), ivec2(1), 1);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureGather/af55b3.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureGather/af55b3.wgsl.expected.msl
index 292679b..508e894 100644
--- a/test/tint/builtins/gen/literal/textureGather/af55b3.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureGather/af55b3.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureGather_af55b3(texture2d<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float4 res = tint_symbol_1.gather(tint_symbol_2, float2(0.0f), int2(0), component::y);
+  float4 res = tint_symbol_1.gather(tint_symbol_2, float2(1.0f), int2(1), component::y);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/af55b3.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureGather/af55b3.wgsl.expected.spvasm
index ec4850a..8220229 100644
--- a/test/tint/builtins/gen/literal/textureGather/af55b3.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureGather/af55b3.wgsl.expected.spvasm
@@ -44,33 +44,33 @@
          %15 = OpTypeFunction %void
          %22 = OpTypeSampledImage %11
     %v2float = OpTypeVector %float 2
-         %25 = OpConstantNull %v2float
+    %float_1 = OpConstant %float 1
+         %26 = OpConstantComposite %v2float %float_1 %float_1
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
       %v2int = OpTypeVector %int 2
-         %29 = OpConstantNull %v2int
+         %30 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %32 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %33 = OpTypeFunction %v4float
 %textureGather_af55b3 = OpFunction %void None %15
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
          %20 = OpLoad %14 %arg_2
          %21 = OpLoad %11 %arg_1
          %23 = OpSampledImage %22 %21 %20
-         %19 = OpImageGather %v4float %23 %25 %int_1 ConstOffset %29
+         %19 = OpImageGather %v4float %23 %26 %int_1 ConstOffset %30
                OpStore %res %19
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %32
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureGather_af55b3
+%vertex_main_inner = OpFunction %v4float None %33
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureGather_af55b3
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
-         %37 = OpLabel
-         %38 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %38
+         %38 = OpLabel
+         %39 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %39
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureGather/af55b3.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureGather/af55b3.wgsl.expected.wgsl
index 6284434..a229a96 100644
--- a/test/tint/builtins/gen/literal/textureGather/af55b3.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/af55b3.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(2) var arg_2 : sampler;
 
 fn textureGather_af55b3() {
-  var res : vec4<f32> = textureGather(1i, arg_1, arg_2, vec2<f32>(), vec2<i32>());
+  var res : vec4<f32> = textureGather(1i, arg_1, arg_2, vec2<f32>(1.0f), vec2<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureGather/bb3ac5.wgsl b/test/tint/builtins/gen/literal/textureGather/bb3ac5.wgsl
index 44b5d3d..83881aa 100644
--- a/test/tint/builtins/gen/literal/textureGather/bb3ac5.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/bb3ac5.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureGather(@const component: i32, texture: texture_2d<i32>, sampler: sampler, coords: vec2<f32>) -> vec4<i32>
 fn textureGather_bb3ac5() {
-  var res: vec4<i32> = textureGather(1i, arg_1, arg_2, vec2<f32>());
+  var res: vec4<i32> = textureGather(1i, arg_1, arg_2, vec2<f32>(1.f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureGather/bb3ac5.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/bb3ac5.wgsl.expected.dxc.hlsl
index e893100..caf9dc9 100644
--- a/test/tint/builtins/gen/literal/textureGather/bb3ac5.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/bb3ac5.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_bb3ac5() {
-  int4 res = arg_1.GatherGreen(arg_2, (0.0f).xx);
+  int4 res = arg_1.GatherGreen(arg_2, (1.0f).xx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/bb3ac5.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/bb3ac5.wgsl.expected.fxc.hlsl
index e893100..caf9dc9 100644
--- a/test/tint/builtins/gen/literal/textureGather/bb3ac5.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/bb3ac5.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_bb3ac5() {
-  int4 res = arg_1.GatherGreen(arg_2, (0.0f).xx);
+  int4 res = arg_1.GatherGreen(arg_2, (1.0f).xx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/bb3ac5.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureGather/bb3ac5.wgsl.expected.glsl
index a1b2221f..29b1352 100644
--- a/test/tint/builtins/gen/literal/textureGather/bb3ac5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureGather/bb3ac5.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 uniform highp isampler2D arg_1_arg_2;
 
 void textureGather_bb3ac5() {
-  ivec4 res = textureGather(arg_1_arg_2, vec2(0.0f), 1);
+  ivec4 res = textureGather(arg_1_arg_2, vec2(1.0f), 1);
 }
 
 vec4 vertex_main() {
@@ -25,7 +25,7 @@
 uniform highp isampler2D arg_1_arg_2;
 
 void textureGather_bb3ac5() {
-  ivec4 res = textureGather(arg_1_arg_2, vec2(0.0f), 1);
+  ivec4 res = textureGather(arg_1_arg_2, vec2(1.0f), 1);
 }
 
 void fragment_main() {
@@ -41,7 +41,7 @@
 uniform highp isampler2D arg_1_arg_2;
 
 void textureGather_bb3ac5() {
-  ivec4 res = textureGather(arg_1_arg_2, vec2(0.0f), 1);
+  ivec4 res = textureGather(arg_1_arg_2, vec2(1.0f), 1);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureGather/bb3ac5.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureGather/bb3ac5.wgsl.expected.msl
index 9be015a..13e04f3 100644
--- a/test/tint/builtins/gen/literal/textureGather/bb3ac5.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureGather/bb3ac5.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureGather_bb3ac5(texture2d<int, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  int4 res = tint_symbol_1.gather(tint_symbol_2, float2(0.0f), int2(0), component::y);
+  int4 res = tint_symbol_1.gather(tint_symbol_2, float2(1.0f), int2(0), component::y);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/bb3ac5.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureGather/bb3ac5.wgsl.expected.spvasm
index 4d5ffe4..70b1404 100644
--- a/test/tint/builtins/gen/literal/textureGather/bb3ac5.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureGather/bb3ac5.wgsl.expected.spvasm
@@ -46,31 +46,31 @@
       %v4int = OpTypeVector %int 4
          %24 = OpTypeSampledImage %11
     %v2float = OpTypeVector %float 2
-         %27 = OpConstantNull %v2float
+    %float_1 = OpConstant %float 1
+         %28 = OpConstantComposite %v2float %float_1 %float_1
       %int_1 = OpConstant %int 1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %31 = OpConstantNull %v4int
-         %32 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %32 = OpConstantNull %v4int
+         %33 = OpTypeFunction %v4float
 %textureGather_bb3ac5 = OpFunction %void None %16
          %19 = OpLabel
-        %res = OpVariable %_ptr_Function_v4int Function %31
+        %res = OpVariable %_ptr_Function_v4int Function %32
          %22 = OpLoad %15 %arg_2
          %23 = OpLoad %11 %arg_1
          %25 = OpSampledImage %24 %23 %22
-         %20 = OpImageGather %v4int %25 %27 %int_1
+         %20 = OpImageGather %v4int %25 %28 %int_1
                OpStore %res %20
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %32
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureGather_bb3ac5
+%vertex_main_inner = OpFunction %v4float None %33
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureGather_bb3ac5
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %16
-         %37 = OpLabel
-         %38 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %38
+         %38 = OpLabel
+         %39 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %39
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureGather/bb3ac5.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureGather/bb3ac5.wgsl.expected.wgsl
index 38ac385..53bb85a 100644
--- a/test/tint/builtins/gen/literal/textureGather/bb3ac5.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/bb3ac5.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(2) var arg_2 : sampler;
 
 fn textureGather_bb3ac5() {
-  var res : vec4<i32> = textureGather(1i, arg_1, arg_2, vec2<f32>());
+  var res : vec4<i32> = textureGather(1i, arg_1, arg_2, vec2<f32>(1.0f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureGather/bd33b6.wgsl b/test/tint/builtins/gen/literal/textureGather/bd33b6.wgsl
index c750140..4b33ea2 100644
--- a/test/tint/builtins/gen/literal/textureGather/bd33b6.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/bd33b6.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureGather(@const component: i32, texture: texture_2d_array<i32>, sampler: sampler, coords: vec2<f32>, array_index: u32, @const offset: vec2<i32>) -> vec4<i32>
 fn textureGather_bd33b6() {
-  var res: vec4<i32> = textureGather(1i, arg_1, arg_2, vec2<f32>(), 1u, vec2<i32>());
+  var res: vec4<i32> = textureGather(1i, arg_1, arg_2, vec2<f32>(1.f), 1u, vec2<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureGather/bd33b6.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/bd33b6.wgsl.expected.dxc.hlsl
index 243aa01..fc6816d 100644
--- a/test/tint/builtins/gen/literal/textureGather/bd33b6.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/bd33b6.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_bd33b6() {
-  int4 res = arg_1.GatherGreen(arg_2, float3(0.0f, 0.0f, float(1u)), (0).xx);
+  int4 res = arg_1.GatherGreen(arg_2, float3((1.0f).xx, float(1u)), (1).xx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/bd33b6.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/bd33b6.wgsl.expected.fxc.hlsl
index 243aa01..fc6816d 100644
--- a/test/tint/builtins/gen/literal/textureGather/bd33b6.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/bd33b6.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_bd33b6() {
-  int4 res = arg_1.GatherGreen(arg_2, float3(0.0f, 0.0f, float(1u)), (0).xx);
+  int4 res = arg_1.GatherGreen(arg_2, float3((1.0f).xx, float(1u)), (1).xx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/bd33b6.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureGather/bd33b6.wgsl.expected.glsl
index 54aa26c..26d2694 100644
--- a/test/tint/builtins/gen/literal/textureGather/bd33b6.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureGather/bd33b6.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 uniform highp isampler2DArray arg_1_arg_2;
 
 void textureGather_bd33b6() {
-  ivec4 res = textureGatherOffset(arg_1_arg_2, vec3(0.0f, 0.0f, float(1u)), ivec2(0), 1);
+  ivec4 res = textureGatherOffset(arg_1_arg_2, vec3(vec2(1.0f), float(1u)), ivec2(1), 1);
 }
 
 vec4 vertex_main() {
@@ -25,7 +25,7 @@
 uniform highp isampler2DArray arg_1_arg_2;
 
 void textureGather_bd33b6() {
-  ivec4 res = textureGatherOffset(arg_1_arg_2, vec3(0.0f, 0.0f, float(1u)), ivec2(0), 1);
+  ivec4 res = textureGatherOffset(arg_1_arg_2, vec3(vec2(1.0f), float(1u)), ivec2(1), 1);
 }
 
 void fragment_main() {
@@ -41,7 +41,7 @@
 uniform highp isampler2DArray arg_1_arg_2;
 
 void textureGather_bd33b6() {
-  ivec4 res = textureGatherOffset(arg_1_arg_2, vec3(0.0f, 0.0f, float(1u)), ivec2(0), 1);
+  ivec4 res = textureGatherOffset(arg_1_arg_2, vec3(vec2(1.0f), float(1u)), ivec2(1), 1);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureGather/bd33b6.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureGather/bd33b6.wgsl.expected.msl
index 85eb095..1c48649 100644
--- a/test/tint/builtins/gen/literal/textureGather/bd33b6.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureGather/bd33b6.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureGather_bd33b6(texture2d_array<int, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  int4 res = tint_symbol_1.gather(tint_symbol_2, float2(0.0f), 1u, int2(0), component::y);
+  int4 res = tint_symbol_1.gather(tint_symbol_2, float2(1.0f), 1u, int2(1), component::y);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/bd33b6.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureGather/bd33b6.wgsl.expected.spvasm
index 7d11614..27e924a 100644
--- a/test/tint/builtins/gen/literal/textureGather/bd33b6.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureGather/bd33b6.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 52
+; Bound: 55
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -46,47 +46,50 @@
       %v4int = OpTypeVector %int 4
          %24 = OpTypeSampledImage %11
     %v3float = OpTypeVector %float 3
-    %float_0 = OpConstant %float 0
+    %v2float = OpTypeVector %float 2
+    %float_1 = OpConstant %float 1
+         %29 = OpConstantComposite %v2float %float_1 %float_1
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
       %int_1 = OpConstant %int 1
       %v2int = OpTypeVector %int 2
-         %34 = OpConstantNull %v2int
+         %38 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %37 = OpConstantNull %v4int
-         %38 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %41 = OpConstantNull %v4int
+         %42 = OpTypeFunction %v4float
 %textureGather_bd33b6 = OpFunction %void None %16
          %19 = OpLabel
-        %res = OpVariable %_ptr_Function_v4int Function %37
+        %res = OpVariable %_ptr_Function_v4int Function %41
          %22 = OpLoad %15 %arg_2
          %23 = OpLoad %11 %arg_1
          %25 = OpSampledImage %24 %23 %22
-         %28 = OpConvertUToF %float %uint_1
-         %31 = OpCompositeConstruct %v3float %float_0 %float_0 %28
-         %20 = OpImageGather %v4int %25 %31 %int_1 ConstOffset %34
+         %30 = OpCompositeExtract %float %29 0
+         %31 = OpCompositeExtract %float %29 1
+         %32 = OpConvertUToF %float %uint_1
+         %35 = OpCompositeConstruct %v3float %30 %31 %32
+         %20 = OpImageGather %v4int %25 %35 %int_1 ConstOffset %38
                OpStore %res %20
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %38
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureGather_bd33b6
+%vertex_main_inner = OpFunction %v4float None %42
+         %44 = OpLabel
+         %45 = OpFunctionCall %void %textureGather_bd33b6
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %16
-         %43 = OpLabel
-         %44 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %44
+         %47 = OpLabel
+         %48 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %48
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %16
-         %47 = OpLabel
-         %48 = OpFunctionCall %void %textureGather_bd33b6
+         %50 = OpLabel
+         %51 = OpFunctionCall %void %textureGather_bd33b6
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %16
-         %50 = OpLabel
-         %51 = OpFunctionCall %void %textureGather_bd33b6
+         %53 = OpLabel
+         %54 = OpFunctionCall %void %textureGather_bd33b6
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureGather/bd33b6.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureGather/bd33b6.wgsl.expected.wgsl
index 2f8357e..5fda733 100644
--- a/test/tint/builtins/gen/literal/textureGather/bd33b6.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/bd33b6.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(2) var arg_2 : sampler;
 
 fn textureGather_bd33b6() {
-  var res : vec4<i32> = textureGather(1i, arg_1, arg_2, vec2<f32>(), 1u, vec2<i32>());
+  var res : vec4<i32> = textureGather(1i, arg_1, arg_2, vec2<f32>(1.0f), 1u, vec2<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureGather/be276f.wgsl b/test/tint/builtins/gen/literal/textureGather/be276f.wgsl
index ac220e7..e9d4004 100644
--- a/test/tint/builtins/gen/literal/textureGather/be276f.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/be276f.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureGather(@const component: i32, texture: texture_cube_array<u32>, sampler: sampler, coords: vec3<f32>, array_index: u32) -> vec4<u32>
 fn textureGather_be276f() {
-  var res: vec4<u32> = textureGather(1i, arg_1, arg_2, vec3<f32>(), 1u);
+  var res: vec4<u32> = textureGather(1i, arg_1, arg_2, vec3<f32>(1.f), 1u);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureGather/be276f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/be276f.wgsl.expected.dxc.hlsl
index 1ce11f0..18c39e8 100644
--- a/test/tint/builtins/gen/literal/textureGather/be276f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/be276f.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_be276f() {
-  uint4 res = arg_1.GatherGreen(arg_2, float4(0.0f, 0.0f, 0.0f, float(1u)));
+  uint4 res = arg_1.GatherGreen(arg_2, float4((1.0f).xxx, float(1u)));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/be276f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/be276f.wgsl.expected.fxc.hlsl
index 1ce11f0..18c39e8 100644
--- a/test/tint/builtins/gen/literal/textureGather/be276f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/be276f.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_be276f() {
-  uint4 res = arg_1.GatherGreen(arg_2, float4(0.0f, 0.0f, 0.0f, float(1u)));
+  uint4 res = arg_1.GatherGreen(arg_2, float4((1.0f).xxx, float(1u)));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/be276f.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureGather/be276f.wgsl.expected.msl
index 2102740..3161486 100644
--- a/test/tint/builtins/gen/literal/textureGather/be276f.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureGather/be276f.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureGather_be276f(texturecube_array<uint, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  uint4 res = tint_symbol_1.gather(tint_symbol_2, float3(0.0f), 1u, component::y);
+  uint4 res = tint_symbol_1.gather(tint_symbol_2, float3(1.0f), 1u, component::y);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/be276f.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureGather/be276f.wgsl.expected.spvasm
index a9063fa..b74fcbb 100644
--- a/test/tint/builtins/gen/literal/textureGather/be276f.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureGather/be276f.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 49
+; Bound: 53
 ; Schema: 0
                OpCapability Shader
                OpCapability SampledCubeArray
@@ -46,45 +46,49 @@
          %16 = OpTypeFunction %void
      %v4uint = OpTypeVector %uint 4
          %24 = OpTypeSampledImage %11
-    %float_0 = OpConstant %float 0
+    %v3float = OpTypeVector %float 3
+    %float_1 = OpConstant %float 1
+         %28 = OpConstantComposite %v3float %float_1 %float_1 %float_1
      %uint_1 = OpConstant %uint 1
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %34 = OpConstantNull %v4uint
-         %35 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %39 = OpConstantNull %v4uint
+         %40 = OpTypeFunction %v4float
 %textureGather_be276f = OpFunction %void None %16
          %19 = OpLabel
-        %res = OpVariable %_ptr_Function_v4uint Function %34
+        %res = OpVariable %_ptr_Function_v4uint Function %39
          %22 = OpLoad %15 %arg_2
          %23 = OpLoad %11 %arg_1
          %25 = OpSampledImage %24 %23 %22
-         %27 = OpConvertUToF %float %uint_1
-         %29 = OpCompositeConstruct %v4float %float_0 %float_0 %float_0 %27
-         %20 = OpImageGather %v4uint %25 %29 %int_1
+         %29 = OpCompositeExtract %float %28 0
+         %30 = OpCompositeExtract %float %28 1
+         %31 = OpCompositeExtract %float %28 2
+         %32 = OpConvertUToF %float %uint_1
+         %34 = OpCompositeConstruct %v4float %29 %30 %31 %32
+         %20 = OpImageGather %v4uint %25 %34 %int_1
                OpStore %res %20
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %35
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureGather_be276f
+%vertex_main_inner = OpFunction %v4float None %40
+         %42 = OpLabel
+         %43 = OpFunctionCall %void %textureGather_be276f
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %16
-         %40 = OpLabel
-         %41 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %41
+         %45 = OpLabel
+         %46 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %46
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %16
-         %44 = OpLabel
-         %45 = OpFunctionCall %void %textureGather_be276f
+         %48 = OpLabel
+         %49 = OpFunctionCall %void %textureGather_be276f
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %16
-         %47 = OpLabel
-         %48 = OpFunctionCall %void %textureGather_be276f
+         %51 = OpLabel
+         %52 = OpFunctionCall %void %textureGather_be276f
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureGather/be276f.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureGather/be276f.wgsl.expected.wgsl
index 3067707..f7c77f8 100644
--- a/test/tint/builtins/gen/literal/textureGather/be276f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/be276f.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(2) var arg_2 : sampler;
 
 fn textureGather_be276f() {
-  var res : vec4<u32> = textureGather(1i, arg_1, arg_2, vec3<f32>(), 1u);
+  var res : vec4<u32> = textureGather(1i, arg_1, arg_2, vec3<f32>(1.0f), 1u);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureGather/c0640c.wgsl b/test/tint/builtins/gen/literal/textureGather/c0640c.wgsl
index cb2ef99..0ab09af 100644
--- a/test/tint/builtins/gen/literal/textureGather/c0640c.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/c0640c.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureGather(@const component: i32, texture: texture_cube_array<i32>, sampler: sampler, coords: vec3<f32>, array_index: i32) -> vec4<i32>
 fn textureGather_c0640c() {
-  var res: vec4<i32> = textureGather(1i, arg_1, arg_2, vec3<f32>(), 1i);
+  var res: vec4<i32> = textureGather(1i, arg_1, arg_2, vec3<f32>(1.f), 1i);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureGather/c0640c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/c0640c.wgsl.expected.dxc.hlsl
index d86b7f2..53c8b4e 100644
--- a/test/tint/builtins/gen/literal/textureGather/c0640c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/c0640c.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_c0640c() {
-  int4 res = arg_1.GatherGreen(arg_2, float4(0.0f, 0.0f, 0.0f, float(1)));
+  int4 res = arg_1.GatherGreen(arg_2, float4((1.0f).xxx, float(1)));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/c0640c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/c0640c.wgsl.expected.fxc.hlsl
index d86b7f2..53c8b4e 100644
--- a/test/tint/builtins/gen/literal/textureGather/c0640c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/c0640c.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_c0640c() {
-  int4 res = arg_1.GatherGreen(arg_2, float4(0.0f, 0.0f, 0.0f, float(1)));
+  int4 res = arg_1.GatherGreen(arg_2, float4((1.0f).xxx, float(1)));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/c0640c.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureGather/c0640c.wgsl.expected.msl
index 2af3667..e115386 100644
--- a/test/tint/builtins/gen/literal/textureGather/c0640c.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureGather/c0640c.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureGather_c0640c(texturecube_array<int, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  int4 res = tint_symbol_1.gather(tint_symbol_2, float3(0.0f), 1, component::y);
+  int4 res = tint_symbol_1.gather(tint_symbol_2, float3(1.0f), 1, component::y);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/c0640c.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureGather/c0640c.wgsl.expected.spvasm
index 0f1c649..fd94873 100644
--- a/test/tint/builtins/gen/literal/textureGather/c0640c.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureGather/c0640c.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 47
+; Bound: 51
 ; Schema: 0
                OpCapability Shader
                OpCapability SampledCubeArray
@@ -46,43 +46,47 @@
          %16 = OpTypeFunction %void
       %v4int = OpTypeVector %int 4
          %24 = OpTypeSampledImage %11
-    %float_0 = OpConstant %float 0
+    %v3float = OpTypeVector %float 3
+    %float_1 = OpConstant %float 1
+         %28 = OpConstantComposite %v3float %float_1 %float_1 %float_1
       %int_1 = OpConstant %int 1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %32 = OpConstantNull %v4int
-         %33 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %37 = OpConstantNull %v4int
+         %38 = OpTypeFunction %v4float
 %textureGather_c0640c = OpFunction %void None %16
          %19 = OpLabel
-        %res = OpVariable %_ptr_Function_v4int Function %32
+        %res = OpVariable %_ptr_Function_v4int Function %37
          %22 = OpLoad %15 %arg_2
          %23 = OpLoad %11 %arg_1
          %25 = OpSampledImage %24 %23 %22
-         %27 = OpConvertSToF %float %int_1
-         %29 = OpCompositeConstruct %v4float %float_0 %float_0 %float_0 %27
-         %20 = OpImageGather %v4int %25 %29 %int_1
+         %29 = OpCompositeExtract %float %28 0
+         %30 = OpCompositeExtract %float %28 1
+         %31 = OpCompositeExtract %float %28 2
+         %32 = OpConvertSToF %float %int_1
+         %34 = OpCompositeConstruct %v4float %29 %30 %31 %32
+         %20 = OpImageGather %v4int %25 %34 %int_1
                OpStore %res %20
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %33
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureGather_c0640c
+%vertex_main_inner = OpFunction %v4float None %38
+         %40 = OpLabel
+         %41 = OpFunctionCall %void %textureGather_c0640c
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %16
-         %38 = OpLabel
-         %39 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %39
+         %43 = OpLabel
+         %44 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %44
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %16
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureGather_c0640c
+         %46 = OpLabel
+         %47 = OpFunctionCall %void %textureGather_c0640c
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %16
-         %45 = OpLabel
-         %46 = OpFunctionCall %void %textureGather_c0640c
+         %49 = OpLabel
+         %50 = OpFunctionCall %void %textureGather_c0640c
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureGather/c0640c.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureGather/c0640c.wgsl.expected.wgsl
index 5292611..d8531e5 100644
--- a/test/tint/builtins/gen/literal/textureGather/c0640c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/c0640c.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(2) var arg_2 : sampler;
 
 fn textureGather_c0640c() {
-  var res : vec4<i32> = textureGather(1i, arg_1, arg_2, vec3<f32>(), 1i);
+  var res : vec4<i32> = textureGather(1i, arg_1, arg_2, vec3<f32>(1.0f), 1i);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureGather/ccadde.wgsl b/test/tint/builtins/gen/literal/textureGather/ccadde.wgsl
index 4c99b08..b92775d 100644
--- a/test/tint/builtins/gen/literal/textureGather/ccadde.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/ccadde.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureGather(@const component: u32, texture: texture_2d<i32>, sampler: sampler, coords: vec2<f32>) -> vec4<i32>
 fn textureGather_ccadde() {
-  var res: vec4<i32> = textureGather(1u, arg_1, arg_2, vec2<f32>());
+  var res: vec4<i32> = textureGather(1u, arg_1, arg_2, vec2<f32>(1.f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureGather/ccadde.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/ccadde.wgsl.expected.dxc.hlsl
index 6db0b42..33dd7a8 100644
--- a/test/tint/builtins/gen/literal/textureGather/ccadde.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/ccadde.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_ccadde() {
-  int4 res = arg_1.GatherGreen(arg_2, (0.0f).xx);
+  int4 res = arg_1.GatherGreen(arg_2, (1.0f).xx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/ccadde.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/ccadde.wgsl.expected.fxc.hlsl
index 6db0b42..33dd7a8 100644
--- a/test/tint/builtins/gen/literal/textureGather/ccadde.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/ccadde.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_ccadde() {
-  int4 res = arg_1.GatherGreen(arg_2, (0.0f).xx);
+  int4 res = arg_1.GatherGreen(arg_2, (1.0f).xx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/ccadde.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureGather/ccadde.wgsl.expected.glsl
index 442be7a..444809b 100644
--- a/test/tint/builtins/gen/literal/textureGather/ccadde.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureGather/ccadde.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 uniform highp isampler2D arg_1_arg_2;
 
 void textureGather_ccadde() {
-  ivec4 res = textureGather(arg_1_arg_2, vec2(0.0f), int(1u));
+  ivec4 res = textureGather(arg_1_arg_2, vec2(1.0f), int(1u));
 }
 
 vec4 vertex_main() {
@@ -25,7 +25,7 @@
 uniform highp isampler2D arg_1_arg_2;
 
 void textureGather_ccadde() {
-  ivec4 res = textureGather(arg_1_arg_2, vec2(0.0f), int(1u));
+  ivec4 res = textureGather(arg_1_arg_2, vec2(1.0f), int(1u));
 }
 
 void fragment_main() {
@@ -41,7 +41,7 @@
 uniform highp isampler2D arg_1_arg_2;
 
 void textureGather_ccadde() {
-  ivec4 res = textureGather(arg_1_arg_2, vec2(0.0f), int(1u));
+  ivec4 res = textureGather(arg_1_arg_2, vec2(1.0f), int(1u));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureGather/ccadde.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureGather/ccadde.wgsl.expected.msl
index d72fea5..0e7c2a9 100644
--- a/test/tint/builtins/gen/literal/textureGather/ccadde.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureGather/ccadde.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureGather_ccadde(texture2d<int, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  int4 res = tint_symbol_1.gather(tint_symbol_2, float2(0.0f), int2(0), component::y);
+  int4 res = tint_symbol_1.gather(tint_symbol_2, float2(1.0f), int2(0), component::y);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/ccadde.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureGather/ccadde.wgsl.expected.spvasm
index b6cd6d1..9730bc7 100644
--- a/test/tint/builtins/gen/literal/textureGather/ccadde.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureGather/ccadde.wgsl.expected.spvasm
@@ -46,32 +46,32 @@
       %v4int = OpTypeVector %int 4
          %24 = OpTypeSampledImage %11
     %v2float = OpTypeVector %float 2
-         %27 = OpConstantNull %v2float
+    %float_1 = OpConstant %float 1
+         %28 = OpConstantComposite %v2float %float_1 %float_1
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %32 = OpConstantNull %v4int
-         %33 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %33 = OpConstantNull %v4int
+         %34 = OpTypeFunction %v4float
 %textureGather_ccadde = OpFunction %void None %16
          %19 = OpLabel
-        %res = OpVariable %_ptr_Function_v4int Function %32
+        %res = OpVariable %_ptr_Function_v4int Function %33
          %22 = OpLoad %15 %arg_2
          %23 = OpLoad %11 %arg_1
          %25 = OpSampledImage %24 %23 %22
-         %20 = OpImageGather %v4int %25 %27 %uint_1
+         %20 = OpImageGather %v4int %25 %28 %uint_1
                OpStore %res %20
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %33
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureGather_ccadde
+%vertex_main_inner = OpFunction %v4float None %34
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureGather_ccadde
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %16
-         %38 = OpLabel
-         %39 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %39
+         %39 = OpLabel
+         %40 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %40
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureGather/ccadde.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureGather/ccadde.wgsl.expected.wgsl
index 95235f3..882bff66 100644
--- a/test/tint/builtins/gen/literal/textureGather/ccadde.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/ccadde.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(2) var arg_2 : sampler;
 
 fn textureGather_ccadde() {
-  var res : vec4<i32> = textureGather(1u, arg_1, arg_2, vec2<f32>());
+  var res : vec4<i32> = textureGather(1u, arg_1, arg_2, vec2<f32>(1.0f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureGather/ce5578.wgsl b/test/tint/builtins/gen/literal/textureGather/ce5578.wgsl
index 6eea4f2..4b9cb3d 100644
--- a/test/tint/builtins/gen/literal/textureGather/ce5578.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/ce5578.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureGather(@const component: i32, texture: texture_2d_array<u32>, sampler: sampler, coords: vec2<f32>, array_index: u32, @const offset: vec2<i32>) -> vec4<u32>
 fn textureGather_ce5578() {
-  var res: vec4<u32> = textureGather(1i, arg_1, arg_2, vec2<f32>(), 1u, vec2<i32>());
+  var res: vec4<u32> = textureGather(1i, arg_1, arg_2, vec2<f32>(1.f), 1u, vec2<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureGather/ce5578.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/ce5578.wgsl.expected.dxc.hlsl
index b6568c5..789664a 100644
--- a/test/tint/builtins/gen/literal/textureGather/ce5578.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/ce5578.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_ce5578() {
-  uint4 res = arg_1.GatherGreen(arg_2, float3(0.0f, 0.0f, float(1u)), (0).xx);
+  uint4 res = arg_1.GatherGreen(arg_2, float3((1.0f).xx, float(1u)), (1).xx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/ce5578.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/ce5578.wgsl.expected.fxc.hlsl
index b6568c5..789664a 100644
--- a/test/tint/builtins/gen/literal/textureGather/ce5578.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/ce5578.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_ce5578() {
-  uint4 res = arg_1.GatherGreen(arg_2, float3(0.0f, 0.0f, float(1u)), (0).xx);
+  uint4 res = arg_1.GatherGreen(arg_2, float3((1.0f).xx, float(1u)), (1).xx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/ce5578.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureGather/ce5578.wgsl.expected.glsl
index 9facfd7..f1da0f6 100644
--- a/test/tint/builtins/gen/literal/textureGather/ce5578.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureGather/ce5578.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 uniform highp usampler2DArray arg_1_arg_2;
 
 void textureGather_ce5578() {
-  uvec4 res = textureGatherOffset(arg_1_arg_2, vec3(0.0f, 0.0f, float(1u)), ivec2(0), 1);
+  uvec4 res = textureGatherOffset(arg_1_arg_2, vec3(vec2(1.0f), float(1u)), ivec2(1), 1);
 }
 
 vec4 vertex_main() {
@@ -25,7 +25,7 @@
 uniform highp usampler2DArray arg_1_arg_2;
 
 void textureGather_ce5578() {
-  uvec4 res = textureGatherOffset(arg_1_arg_2, vec3(0.0f, 0.0f, float(1u)), ivec2(0), 1);
+  uvec4 res = textureGatherOffset(arg_1_arg_2, vec3(vec2(1.0f), float(1u)), ivec2(1), 1);
 }
 
 void fragment_main() {
@@ -41,7 +41,7 @@
 uniform highp usampler2DArray arg_1_arg_2;
 
 void textureGather_ce5578() {
-  uvec4 res = textureGatherOffset(arg_1_arg_2, vec3(0.0f, 0.0f, float(1u)), ivec2(0), 1);
+  uvec4 res = textureGatherOffset(arg_1_arg_2, vec3(vec2(1.0f), float(1u)), ivec2(1), 1);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureGather/ce5578.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureGather/ce5578.wgsl.expected.msl
index 0429b24..3d69aa1 100644
--- a/test/tint/builtins/gen/literal/textureGather/ce5578.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureGather/ce5578.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureGather_ce5578(texture2d_array<uint, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  uint4 res = tint_symbol_1.gather(tint_symbol_2, float2(0.0f), 1u, int2(0), component::y);
+  uint4 res = tint_symbol_1.gather(tint_symbol_2, float2(1.0f), 1u, int2(1), component::y);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/ce5578.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureGather/ce5578.wgsl.expected.spvasm
index 92777fb..028e742 100644
--- a/test/tint/builtins/gen/literal/textureGather/ce5578.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureGather/ce5578.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 52
+; Bound: 55
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -46,47 +46,50 @@
      %v4uint = OpTypeVector %uint 4
          %24 = OpTypeSampledImage %11
     %v3float = OpTypeVector %float 3
-    %float_0 = OpConstant %float 0
+    %v2float = OpTypeVector %float 2
+    %float_1 = OpConstant %float 1
+         %29 = OpConstantComposite %v2float %float_1 %float_1
      %uint_1 = OpConstant %uint 1
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
       %v2int = OpTypeVector %int 2
-         %34 = OpConstantNull %v2int
+         %38 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %37 = OpConstantNull %v4uint
-         %38 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %41 = OpConstantNull %v4uint
+         %42 = OpTypeFunction %v4float
 %textureGather_ce5578 = OpFunction %void None %16
          %19 = OpLabel
-        %res = OpVariable %_ptr_Function_v4uint Function %37
+        %res = OpVariable %_ptr_Function_v4uint Function %41
          %22 = OpLoad %15 %arg_2
          %23 = OpLoad %11 %arg_1
          %25 = OpSampledImage %24 %23 %22
-         %28 = OpConvertUToF %float %uint_1
-         %30 = OpCompositeConstruct %v3float %float_0 %float_0 %28
-         %20 = OpImageGather %v4uint %25 %30 %int_1 ConstOffset %34
+         %30 = OpCompositeExtract %float %29 0
+         %31 = OpCompositeExtract %float %29 1
+         %32 = OpConvertUToF %float %uint_1
+         %34 = OpCompositeConstruct %v3float %30 %31 %32
+         %20 = OpImageGather %v4uint %25 %34 %int_1 ConstOffset %38
                OpStore %res %20
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %38
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureGather_ce5578
+%vertex_main_inner = OpFunction %v4float None %42
+         %44 = OpLabel
+         %45 = OpFunctionCall %void %textureGather_ce5578
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %16
-         %43 = OpLabel
-         %44 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %44
+         %47 = OpLabel
+         %48 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %48
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %16
-         %47 = OpLabel
-         %48 = OpFunctionCall %void %textureGather_ce5578
+         %50 = OpLabel
+         %51 = OpFunctionCall %void %textureGather_ce5578
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %16
-         %50 = OpLabel
-         %51 = OpFunctionCall %void %textureGather_ce5578
+         %53 = OpLabel
+         %54 = OpFunctionCall %void %textureGather_ce5578
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureGather/ce5578.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureGather/ce5578.wgsl.expected.wgsl
index d923193..e7bf4f9 100644
--- a/test/tint/builtins/gen/literal/textureGather/ce5578.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/ce5578.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(2) var arg_2 : sampler;
 
 fn textureGather_ce5578() {
-  var res : vec4<u32> = textureGather(1i, arg_1, arg_2, vec2<f32>(), 1u, vec2<i32>());
+  var res : vec4<u32> = textureGather(1i, arg_1, arg_2, vec2<f32>(1.0f), 1u, vec2<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureGather/cf9112.wgsl b/test/tint/builtins/gen/literal/textureGather/cf9112.wgsl
index 8b24b97..d620c39 100644
--- a/test/tint/builtins/gen/literal/textureGather/cf9112.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/cf9112.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureGather(@const component: u32, texture: texture_2d_array<i32>, sampler: sampler, coords: vec2<f32>, array_index: u32, @const offset: vec2<i32>) -> vec4<i32>
 fn textureGather_cf9112() {
-  var res: vec4<i32> = textureGather(1u, arg_1, arg_2, vec2<f32>(), 1u, vec2<i32>());
+  var res: vec4<i32> = textureGather(1u, arg_1, arg_2, vec2<f32>(1.f), 1u, vec2<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureGather/cf9112.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/cf9112.wgsl.expected.dxc.hlsl
index eba887e..bb0b068 100644
--- a/test/tint/builtins/gen/literal/textureGather/cf9112.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/cf9112.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_cf9112() {
-  int4 res = arg_1.GatherGreen(arg_2, float3(0.0f, 0.0f, float(1u)), (0).xx);
+  int4 res = arg_1.GatherGreen(arg_2, float3((1.0f).xx, float(1u)), (1).xx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/cf9112.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/cf9112.wgsl.expected.fxc.hlsl
index eba887e..bb0b068 100644
--- a/test/tint/builtins/gen/literal/textureGather/cf9112.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/cf9112.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_cf9112() {
-  int4 res = arg_1.GatherGreen(arg_2, float3(0.0f, 0.0f, float(1u)), (0).xx);
+  int4 res = arg_1.GatherGreen(arg_2, float3((1.0f).xx, float(1u)), (1).xx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/cf9112.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureGather/cf9112.wgsl.expected.glsl
index 914fe38..bf3a3b2 100644
--- a/test/tint/builtins/gen/literal/textureGather/cf9112.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureGather/cf9112.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 uniform highp isampler2DArray arg_1_arg_2;
 
 void textureGather_cf9112() {
-  ivec4 res = textureGatherOffset(arg_1_arg_2, vec3(0.0f, 0.0f, float(1u)), ivec2(0), int(1u));
+  ivec4 res = textureGatherOffset(arg_1_arg_2, vec3(vec2(1.0f), float(1u)), ivec2(1), int(1u));
 }
 
 vec4 vertex_main() {
@@ -25,7 +25,7 @@
 uniform highp isampler2DArray arg_1_arg_2;
 
 void textureGather_cf9112() {
-  ivec4 res = textureGatherOffset(arg_1_arg_2, vec3(0.0f, 0.0f, float(1u)), ivec2(0), int(1u));
+  ivec4 res = textureGatherOffset(arg_1_arg_2, vec3(vec2(1.0f), float(1u)), ivec2(1), int(1u));
 }
 
 void fragment_main() {
@@ -41,7 +41,7 @@
 uniform highp isampler2DArray arg_1_arg_2;
 
 void textureGather_cf9112() {
-  ivec4 res = textureGatherOffset(arg_1_arg_2, vec3(0.0f, 0.0f, float(1u)), ivec2(0), int(1u));
+  ivec4 res = textureGatherOffset(arg_1_arg_2, vec3(vec2(1.0f), float(1u)), ivec2(1), int(1u));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureGather/cf9112.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureGather/cf9112.wgsl.expected.msl
index 6692ae7..a6de319 100644
--- a/test/tint/builtins/gen/literal/textureGather/cf9112.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureGather/cf9112.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureGather_cf9112(texture2d_array<int, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  int4 res = tint_symbol_1.gather(tint_symbol_2, float2(0.0f), 1u, int2(0), component::y);
+  int4 res = tint_symbol_1.gather(tint_symbol_2, float2(1.0f), 1u, int2(1), component::y);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/cf9112.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureGather/cf9112.wgsl.expected.spvasm
index 6c310ce..e8069dd 100644
--- a/test/tint/builtins/gen/literal/textureGather/cf9112.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureGather/cf9112.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 51
+; Bound: 55
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -46,46 +46,50 @@
       %v4int = OpTypeVector %int 4
          %24 = OpTypeSampledImage %11
     %v3float = OpTypeVector %float 3
-    %float_0 = OpConstant %float 0
+    %v2float = OpTypeVector %float 2
+    %float_1 = OpConstant %float 1
+         %29 = OpConstantComposite %v2float %float_1 %float_1
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
       %v2int = OpTypeVector %int 2
-         %33 = OpConstantNull %v2int
+      %int_1 = OpConstant %int 1
+         %38 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %36 = OpConstantNull %v4int
-         %37 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %41 = OpConstantNull %v4int
+         %42 = OpTypeFunction %v4float
 %textureGather_cf9112 = OpFunction %void None %16
          %19 = OpLabel
-        %res = OpVariable %_ptr_Function_v4int Function %36
+        %res = OpVariable %_ptr_Function_v4int Function %41
          %22 = OpLoad %15 %arg_2
          %23 = OpLoad %11 %arg_1
          %25 = OpSampledImage %24 %23 %22
-         %28 = OpConvertUToF %float %uint_1
-         %31 = OpCompositeConstruct %v3float %float_0 %float_0 %28
-         %20 = OpImageGather %v4int %25 %31 %uint_1 ConstOffset %33
+         %30 = OpCompositeExtract %float %29 0
+         %31 = OpCompositeExtract %float %29 1
+         %32 = OpConvertUToF %float %uint_1
+         %35 = OpCompositeConstruct %v3float %30 %31 %32
+         %20 = OpImageGather %v4int %25 %35 %uint_1 ConstOffset %38
                OpStore %res %20
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %37
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureGather_cf9112
+%vertex_main_inner = OpFunction %v4float None %42
+         %44 = OpLabel
+         %45 = OpFunctionCall %void %textureGather_cf9112
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %16
-         %42 = OpLabel
-         %43 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %43
+         %47 = OpLabel
+         %48 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %48
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %16
-         %46 = OpLabel
-         %47 = OpFunctionCall %void %textureGather_cf9112
+         %50 = OpLabel
+         %51 = OpFunctionCall %void %textureGather_cf9112
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %16
-         %49 = OpLabel
-         %50 = OpFunctionCall %void %textureGather_cf9112
+         %53 = OpLabel
+         %54 = OpFunctionCall %void %textureGather_cf9112
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureGather/cf9112.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureGather/cf9112.wgsl.expected.wgsl
index 2bae0ef..564f9d4 100644
--- a/test/tint/builtins/gen/literal/textureGather/cf9112.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/cf9112.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(2) var arg_2 : sampler;
 
 fn textureGather_cf9112() {
-  var res : vec4<i32> = textureGather(1u, arg_1, arg_2, vec2<f32>(), 1u, vec2<i32>());
+  var res : vec4<i32> = textureGather(1u, arg_1, arg_2, vec2<f32>(1.0f), 1u, vec2<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureGather/d1f187.wgsl b/test/tint/builtins/gen/literal/textureGather/d1f187.wgsl
index 2552e7d..ccf992d 100644
--- a/test/tint/builtins/gen/literal/textureGather/d1f187.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/d1f187.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureGather(@const component: i32, texture: texture_2d_array<u32>, sampler: sampler, coords: vec2<f32>, array_index: i32, @const offset: vec2<i32>) -> vec4<u32>
 fn textureGather_d1f187() {
-  var res: vec4<u32> = textureGather(1i, arg_1, arg_2, vec2<f32>(), 1i, vec2<i32>());
+  var res: vec4<u32> = textureGather(1i, arg_1, arg_2, vec2<f32>(1.f), 1i, vec2<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureGather/d1f187.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/d1f187.wgsl.expected.dxc.hlsl
index ad1a98f..a243d4d 100644
--- a/test/tint/builtins/gen/literal/textureGather/d1f187.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/d1f187.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_d1f187() {
-  uint4 res = arg_1.GatherGreen(arg_2, float3(0.0f, 0.0f, float(1)), (0).xx);
+  uint4 res = arg_1.GatherGreen(arg_2, float3((1.0f).xx, float(1)), (1).xx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/d1f187.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/d1f187.wgsl.expected.fxc.hlsl
index ad1a98f..a243d4d 100644
--- a/test/tint/builtins/gen/literal/textureGather/d1f187.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/d1f187.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_d1f187() {
-  uint4 res = arg_1.GatherGreen(arg_2, float3(0.0f, 0.0f, float(1)), (0).xx);
+  uint4 res = arg_1.GatherGreen(arg_2, float3((1.0f).xx, float(1)), (1).xx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/d1f187.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureGather/d1f187.wgsl.expected.glsl
index 442d77a..c3560b3 100644
--- a/test/tint/builtins/gen/literal/textureGather/d1f187.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureGather/d1f187.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 uniform highp usampler2DArray arg_1_arg_2;
 
 void textureGather_d1f187() {
-  uvec4 res = textureGatherOffset(arg_1_arg_2, vec3(0.0f, 0.0f, float(1)), ivec2(0), 1);
+  uvec4 res = textureGatherOffset(arg_1_arg_2, vec3(vec2(1.0f), float(1)), ivec2(1), 1);
 }
 
 vec4 vertex_main() {
@@ -25,7 +25,7 @@
 uniform highp usampler2DArray arg_1_arg_2;
 
 void textureGather_d1f187() {
-  uvec4 res = textureGatherOffset(arg_1_arg_2, vec3(0.0f, 0.0f, float(1)), ivec2(0), 1);
+  uvec4 res = textureGatherOffset(arg_1_arg_2, vec3(vec2(1.0f), float(1)), ivec2(1), 1);
 }
 
 void fragment_main() {
@@ -41,7 +41,7 @@
 uniform highp usampler2DArray arg_1_arg_2;
 
 void textureGather_d1f187() {
-  uvec4 res = textureGatherOffset(arg_1_arg_2, vec3(0.0f, 0.0f, float(1)), ivec2(0), 1);
+  uvec4 res = textureGatherOffset(arg_1_arg_2, vec3(vec2(1.0f), float(1)), ivec2(1), 1);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureGather/d1f187.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureGather/d1f187.wgsl.expected.msl
index 1f50d68..10a2701 100644
--- a/test/tint/builtins/gen/literal/textureGather/d1f187.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureGather/d1f187.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureGather_d1f187(texture2d_array<uint, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  uint4 res = tint_symbol_1.gather(tint_symbol_2, float2(0.0f), 1, int2(0), component::y);
+  uint4 res = tint_symbol_1.gather(tint_symbol_2, float2(1.0f), 1, int2(1), component::y);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/d1f187.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureGather/d1f187.wgsl.expected.spvasm
index 369e2a3..6dc0006 100644
--- a/test/tint/builtins/gen/literal/textureGather/d1f187.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureGather/d1f187.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 51
+; Bound: 54
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -46,46 +46,49 @@
      %v4uint = OpTypeVector %uint 4
          %24 = OpTypeSampledImage %11
     %v3float = OpTypeVector %float 3
-    %float_0 = OpConstant %float 0
+    %v2float = OpTypeVector %float 2
+    %float_1 = OpConstant %float 1
+         %29 = OpConstantComposite %v2float %float_1 %float_1
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
       %v2int = OpTypeVector %int 2
-         %33 = OpConstantNull %v2int
+         %37 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %36 = OpConstantNull %v4uint
-         %37 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %40 = OpConstantNull %v4uint
+         %41 = OpTypeFunction %v4float
 %textureGather_d1f187 = OpFunction %void None %16
          %19 = OpLabel
-        %res = OpVariable %_ptr_Function_v4uint Function %36
+        %res = OpVariable %_ptr_Function_v4uint Function %40
          %22 = OpLoad %15 %arg_2
          %23 = OpLoad %11 %arg_1
          %25 = OpSampledImage %24 %23 %22
-         %28 = OpConvertSToF %float %int_1
-         %31 = OpCompositeConstruct %v3float %float_0 %float_0 %28
-         %20 = OpImageGather %v4uint %25 %31 %int_1 ConstOffset %33
+         %30 = OpCompositeExtract %float %29 0
+         %31 = OpCompositeExtract %float %29 1
+         %32 = OpConvertSToF %float %int_1
+         %35 = OpCompositeConstruct %v3float %30 %31 %32
+         %20 = OpImageGather %v4uint %25 %35 %int_1 ConstOffset %37
                OpStore %res %20
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %37
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureGather_d1f187
+%vertex_main_inner = OpFunction %v4float None %41
+         %43 = OpLabel
+         %44 = OpFunctionCall %void %textureGather_d1f187
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %16
-         %42 = OpLabel
-         %43 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %43
+         %46 = OpLabel
+         %47 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %47
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %16
-         %46 = OpLabel
-         %47 = OpFunctionCall %void %textureGather_d1f187
+         %49 = OpLabel
+         %50 = OpFunctionCall %void %textureGather_d1f187
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %16
-         %49 = OpLabel
-         %50 = OpFunctionCall %void %textureGather_d1f187
+         %52 = OpLabel
+         %53 = OpFunctionCall %void %textureGather_d1f187
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureGather/d1f187.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureGather/d1f187.wgsl.expected.wgsl
index f36201f..d1d1604 100644
--- a/test/tint/builtins/gen/literal/textureGather/d1f187.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/d1f187.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(2) var arg_2 : sampler;
 
 fn textureGather_d1f187() {
-  var res : vec4<u32> = textureGather(1i, arg_1, arg_2, vec2<f32>(), 1i, vec2<i32>());
+  var res : vec4<u32> = textureGather(1i, arg_1, arg_2, vec2<f32>(1.0f), 1i, vec2<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureGather/d4b5c6.wgsl b/test/tint/builtins/gen/literal/textureGather/d4b5c6.wgsl
index 418dd84..4bb48af 100644
--- a/test/tint/builtins/gen/literal/textureGather/d4b5c6.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/d4b5c6.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureGather(@const component: u32, texture: texture_cube_array<u32>, sampler: sampler, coords: vec3<f32>, array_index: i32) -> vec4<u32>
 fn textureGather_d4b5c6() {
-  var res: vec4<u32> = textureGather(1u, arg_1, arg_2, vec3<f32>(), 1i);
+  var res: vec4<u32> = textureGather(1u, arg_1, arg_2, vec3<f32>(1.f), 1i);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureGather/d4b5c6.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/d4b5c6.wgsl.expected.dxc.hlsl
index e433e9f..db76898 100644
--- a/test/tint/builtins/gen/literal/textureGather/d4b5c6.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/d4b5c6.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_d4b5c6() {
-  uint4 res = arg_1.GatherGreen(arg_2, float4(0.0f, 0.0f, 0.0f, float(1)));
+  uint4 res = arg_1.GatherGreen(arg_2, float4((1.0f).xxx, float(1)));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/d4b5c6.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/d4b5c6.wgsl.expected.fxc.hlsl
index e433e9f..db76898 100644
--- a/test/tint/builtins/gen/literal/textureGather/d4b5c6.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/d4b5c6.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_d4b5c6() {
-  uint4 res = arg_1.GatherGreen(arg_2, float4(0.0f, 0.0f, 0.0f, float(1)));
+  uint4 res = arg_1.GatherGreen(arg_2, float4((1.0f).xxx, float(1)));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/d4b5c6.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureGather/d4b5c6.wgsl.expected.msl
index bc0c651..b650d7c 100644
--- a/test/tint/builtins/gen/literal/textureGather/d4b5c6.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureGather/d4b5c6.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureGather_d4b5c6(texturecube_array<uint, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  uint4 res = tint_symbol_1.gather(tint_symbol_2, float3(0.0f), 1, component::y);
+  uint4 res = tint_symbol_1.gather(tint_symbol_2, float3(1.0f), 1, component::y);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/d4b5c6.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureGather/d4b5c6.wgsl.expected.spvasm
index 1a021e7..b18aa5c 100644
--- a/test/tint/builtins/gen/literal/textureGather/d4b5c6.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureGather/d4b5c6.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 49
+; Bound: 53
 ; Schema: 0
                OpCapability Shader
                OpCapability SampledCubeArray
@@ -46,45 +46,49 @@
          %16 = OpTypeFunction %void
      %v4uint = OpTypeVector %uint 4
          %24 = OpTypeSampledImage %11
-    %float_0 = OpConstant %float 0
+    %v3float = OpTypeVector %float 3
+    %float_1 = OpConstant %float 1
+         %28 = OpConstantComposite %v3float %float_1 %float_1 %float_1
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %34 = OpConstantNull %v4uint
-         %35 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %39 = OpConstantNull %v4uint
+         %40 = OpTypeFunction %v4float
 %textureGather_d4b5c6 = OpFunction %void None %16
          %19 = OpLabel
-        %res = OpVariable %_ptr_Function_v4uint Function %34
+        %res = OpVariable %_ptr_Function_v4uint Function %39
          %22 = OpLoad %15 %arg_2
          %23 = OpLoad %11 %arg_1
          %25 = OpSampledImage %24 %23 %22
-         %27 = OpConvertSToF %float %int_1
-         %30 = OpCompositeConstruct %v4float %float_0 %float_0 %float_0 %27
-         %20 = OpImageGather %v4uint %25 %30 %uint_1
+         %29 = OpCompositeExtract %float %28 0
+         %30 = OpCompositeExtract %float %28 1
+         %31 = OpCompositeExtract %float %28 2
+         %32 = OpConvertSToF %float %int_1
+         %35 = OpCompositeConstruct %v4float %29 %30 %31 %32
+         %20 = OpImageGather %v4uint %25 %35 %uint_1
                OpStore %res %20
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %35
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureGather_d4b5c6
+%vertex_main_inner = OpFunction %v4float None %40
+         %42 = OpLabel
+         %43 = OpFunctionCall %void %textureGather_d4b5c6
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %16
-         %40 = OpLabel
-         %41 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %41
+         %45 = OpLabel
+         %46 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %46
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %16
-         %44 = OpLabel
-         %45 = OpFunctionCall %void %textureGather_d4b5c6
+         %48 = OpLabel
+         %49 = OpFunctionCall %void %textureGather_d4b5c6
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %16
-         %47 = OpLabel
-         %48 = OpFunctionCall %void %textureGather_d4b5c6
+         %51 = OpLabel
+         %52 = OpFunctionCall %void %textureGather_d4b5c6
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureGather/d4b5c6.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureGather/d4b5c6.wgsl.expected.wgsl
index 5d58e82..609c368 100644
--- a/test/tint/builtins/gen/literal/textureGather/d4b5c6.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/d4b5c6.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(2) var arg_2 : sampler;
 
 fn textureGather_d4b5c6() {
-  var res : vec4<u32> = textureGather(1u, arg_1, arg_2, vec3<f32>(), 1i);
+  var res : vec4<u32> = textureGather(1u, arg_1, arg_2, vec3<f32>(1.0f), 1i);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureGather/d6507c.wgsl b/test/tint/builtins/gen/literal/textureGather/d6507c.wgsl
index 8ba6169..073ad9d 100644
--- a/test/tint/builtins/gen/literal/textureGather/d6507c.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/d6507c.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureGather(@const component: u32, texture: texture_2d<f32>, sampler: sampler, coords: vec2<f32>, @const offset: vec2<i32>) -> vec4<f32>
 fn textureGather_d6507c() {
-  var res: vec4<f32> = textureGather(1u, arg_1, arg_2, vec2<f32>(), vec2<i32>());
+  var res: vec4<f32> = textureGather(1u, arg_1, arg_2, vec2<f32>(1.f), vec2<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureGather/d6507c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/d6507c.wgsl.expected.dxc.hlsl
index 5cff95a..50b89a7 100644
--- a/test/tint/builtins/gen/literal/textureGather/d6507c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/d6507c.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_d6507c() {
-  float4 res = arg_1.GatherGreen(arg_2, (0.0f).xx, (0).xx);
+  float4 res = arg_1.GatherGreen(arg_2, (1.0f).xx, (1).xx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/d6507c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/d6507c.wgsl.expected.fxc.hlsl
index 5cff95a..50b89a7 100644
--- a/test/tint/builtins/gen/literal/textureGather/d6507c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/d6507c.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_d6507c() {
-  float4 res = arg_1.GatherGreen(arg_2, (0.0f).xx, (0).xx);
+  float4 res = arg_1.GatherGreen(arg_2, (1.0f).xx, (1).xx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/d6507c.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureGather/d6507c.wgsl.expected.glsl
index 784e65a..910608c 100644
--- a/test/tint/builtins/gen/literal/textureGather/d6507c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureGather/d6507c.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 uniform highp sampler2D arg_1_arg_2;
 
 void textureGather_d6507c() {
-  vec4 res = textureGatherOffset(arg_1_arg_2, vec2(0.0f), ivec2(0), int(1u));
+  vec4 res = textureGatherOffset(arg_1_arg_2, vec2(1.0f), ivec2(1), int(1u));
 }
 
 vec4 vertex_main() {
@@ -25,7 +25,7 @@
 uniform highp sampler2D arg_1_arg_2;
 
 void textureGather_d6507c() {
-  vec4 res = textureGatherOffset(arg_1_arg_2, vec2(0.0f), ivec2(0), int(1u));
+  vec4 res = textureGatherOffset(arg_1_arg_2, vec2(1.0f), ivec2(1), int(1u));
 }
 
 void fragment_main() {
@@ -41,7 +41,7 @@
 uniform highp sampler2D arg_1_arg_2;
 
 void textureGather_d6507c() {
-  vec4 res = textureGatherOffset(arg_1_arg_2, vec2(0.0f), ivec2(0), int(1u));
+  vec4 res = textureGatherOffset(arg_1_arg_2, vec2(1.0f), ivec2(1), int(1u));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureGather/d6507c.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureGather/d6507c.wgsl.expected.msl
index 09b4070..b1765cd 100644
--- a/test/tint/builtins/gen/literal/textureGather/d6507c.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureGather/d6507c.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureGather_d6507c(texture2d<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float4 res = tint_symbol_1.gather(tint_symbol_2, float2(0.0f), int2(0), component::y);
+  float4 res = tint_symbol_1.gather(tint_symbol_2, float2(1.0f), int2(1), component::y);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/d6507c.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureGather/d6507c.wgsl.expected.spvasm
index 04e9724..c60fde8 100644
--- a/test/tint/builtins/gen/literal/textureGather/d6507c.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureGather/d6507c.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 47
+; Bound: 48
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -44,44 +44,45 @@
          %15 = OpTypeFunction %void
          %22 = OpTypeSampledImage %11
     %v2float = OpTypeVector %float 2
-         %25 = OpConstantNull %v2float
+    %float_1 = OpConstant %float 1
+         %26 = OpConstantComposite %v2float %float_1 %float_1
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
-         %30 = OpConstantNull %v2int
+      %int_1 = OpConstant %int 1
+         %32 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %33 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %35 = OpTypeFunction %v4float
 %textureGather_d6507c = OpFunction %void None %15
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
          %20 = OpLoad %14 %arg_2
          %21 = OpLoad %11 %arg_1
          %23 = OpSampledImage %22 %21 %20
-         %19 = OpImageGather %v4float %23 %25 %uint_1 ConstOffset %30
+         %19 = OpImageGather %v4float %23 %26 %uint_1 ConstOffset %32
                OpStore %res %19
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %33
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureGather_d6507c
+%vertex_main_inner = OpFunction %v4float None %35
+         %37 = OpLabel
+         %38 = OpFunctionCall %void %textureGather_d6507c
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
-         %38 = OpLabel
-         %39 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %39
+         %40 = OpLabel
+         %41 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %41
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %15
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureGather_d6507c
+         %43 = OpLabel
+         %44 = OpFunctionCall %void %textureGather_d6507c
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %15
-         %45 = OpLabel
-         %46 = OpFunctionCall %void %textureGather_d6507c
+         %46 = OpLabel
+         %47 = OpFunctionCall %void %textureGather_d6507c
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureGather/d6507c.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureGather/d6507c.wgsl.expected.wgsl
index b30e7d6..dde2df1 100644
--- a/test/tint/builtins/gen/literal/textureGather/d6507c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/d6507c.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(2) var arg_2 : sampler;
 
 fn textureGather_d6507c() {
-  var res : vec4<f32> = textureGather(1u, arg_1, arg_2, vec2<f32>(), vec2<i32>());
+  var res : vec4<f32> = textureGather(1u, arg_1, arg_2, vec2<f32>(1.0f), vec2<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureGather/d8e958.wgsl b/test/tint/builtins/gen/literal/textureGather/d8e958.wgsl
index ab46f58..0c7ac79 100644
--- a/test/tint/builtins/gen/literal/textureGather/d8e958.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/d8e958.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureGather(@const component: u32, texture: texture_2d<f32>, sampler: sampler, coords: vec2<f32>) -> vec4<f32>
 fn textureGather_d8e958() {
-  var res: vec4<f32> = textureGather(1u, arg_1, arg_2, vec2<f32>());
+  var res: vec4<f32> = textureGather(1u, arg_1, arg_2, vec2<f32>(1.f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureGather/d8e958.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/d8e958.wgsl.expected.dxc.hlsl
index eebba11..4e15eb9 100644
--- a/test/tint/builtins/gen/literal/textureGather/d8e958.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/d8e958.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_d8e958() {
-  float4 res = arg_1.GatherGreen(arg_2, (0.0f).xx);
+  float4 res = arg_1.GatherGreen(arg_2, (1.0f).xx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/d8e958.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/d8e958.wgsl.expected.fxc.hlsl
index eebba11..4e15eb9 100644
--- a/test/tint/builtins/gen/literal/textureGather/d8e958.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/d8e958.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_d8e958() {
-  float4 res = arg_1.GatherGreen(arg_2, (0.0f).xx);
+  float4 res = arg_1.GatherGreen(arg_2, (1.0f).xx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/d8e958.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureGather/d8e958.wgsl.expected.glsl
index ce1520f..d16dc37 100644
--- a/test/tint/builtins/gen/literal/textureGather/d8e958.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureGather/d8e958.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 uniform highp sampler2D arg_1_arg_2;
 
 void textureGather_d8e958() {
-  vec4 res = textureGather(arg_1_arg_2, vec2(0.0f), int(1u));
+  vec4 res = textureGather(arg_1_arg_2, vec2(1.0f), int(1u));
 }
 
 vec4 vertex_main() {
@@ -25,7 +25,7 @@
 uniform highp sampler2D arg_1_arg_2;
 
 void textureGather_d8e958() {
-  vec4 res = textureGather(arg_1_arg_2, vec2(0.0f), int(1u));
+  vec4 res = textureGather(arg_1_arg_2, vec2(1.0f), int(1u));
 }
 
 void fragment_main() {
@@ -41,7 +41,7 @@
 uniform highp sampler2D arg_1_arg_2;
 
 void textureGather_d8e958() {
-  vec4 res = textureGather(arg_1_arg_2, vec2(0.0f), int(1u));
+  vec4 res = textureGather(arg_1_arg_2, vec2(1.0f), int(1u));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureGather/d8e958.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureGather/d8e958.wgsl.expected.msl
index 0f6d277..7370e3d 100644
--- a/test/tint/builtins/gen/literal/textureGather/d8e958.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureGather/d8e958.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureGather_d8e958(texture2d<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float4 res = tint_symbol_1.gather(tint_symbol_2, float2(0.0f), int2(0), component::y);
+  float4 res = tint_symbol_1.gather(tint_symbol_2, float2(1.0f), int2(0), component::y);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/d8e958.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureGather/d8e958.wgsl.expected.spvasm
index accc34f..af1b869 100644
--- a/test/tint/builtins/gen/literal/textureGather/d8e958.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureGather/d8e958.wgsl.expected.spvasm
@@ -44,31 +44,31 @@
          %15 = OpTypeFunction %void
          %22 = OpTypeSampledImage %11
     %v2float = OpTypeVector %float 2
-         %25 = OpConstantNull %v2float
+    %float_1 = OpConstant %float 1
+         %26 = OpConstantComposite %v2float %float_1 %float_1
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %30 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %31 = OpTypeFunction %v4float
 %textureGather_d8e958 = OpFunction %void None %15
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
          %20 = OpLoad %14 %arg_2
          %21 = OpLoad %11 %arg_1
          %23 = OpSampledImage %22 %21 %20
-         %19 = OpImageGather %v4float %23 %25 %uint_1
+         %19 = OpImageGather %v4float %23 %26 %uint_1
                OpStore %res %19
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %30
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureGather_d8e958
+%vertex_main_inner = OpFunction %v4float None %31
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureGather_d8e958
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
-         %35 = OpLabel
-         %36 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %36
+         %36 = OpLabel
+         %37 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %37
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureGather/d8e958.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureGather/d8e958.wgsl.expected.wgsl
index bbc0a35..baa6500 100644
--- a/test/tint/builtins/gen/literal/textureGather/d8e958.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/d8e958.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(2) var arg_2 : sampler;
 
 fn textureGather_d8e958() {
-  var res : vec4<f32> = textureGather(1u, arg_1, arg_2, vec2<f32>());
+  var res : vec4<f32> = textureGather(1u, arg_1, arg_2, vec2<f32>(1.0f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureGather/d90605.wgsl b/test/tint/builtins/gen/literal/textureGather/d90605.wgsl
index 88a3639..321c953 100644
--- a/test/tint/builtins/gen/literal/textureGather/d90605.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/d90605.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureGather(texture: texture_depth_2d_array, sampler: sampler, coords: vec2<f32>, array_index: i32, @const offset: vec2<i32>) -> vec4<f32>
 fn textureGather_d90605() {
-  var res: vec4<f32> = textureGather(arg_0, arg_1, vec2<f32>(), 1i, vec2<i32>());
+  var res: vec4<f32> = textureGather(arg_0, arg_1, vec2<f32>(1.f), 1i, vec2<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureGather/d90605.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/d90605.wgsl.expected.dxc.hlsl
index 8a54bc6..2b2b068 100644
--- a/test/tint/builtins/gen/literal/textureGather/d90605.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/d90605.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureGather_d90605() {
-  float4 res = arg_0.Gather(arg_1, float3(0.0f, 0.0f, float(1)), (0).xx);
+  float4 res = arg_0.Gather(arg_1, float3((1.0f).xx, float(1)), (1).xx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/d90605.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/d90605.wgsl.expected.fxc.hlsl
index 8a54bc6..2b2b068 100644
--- a/test/tint/builtins/gen/literal/textureGather/d90605.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/d90605.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureGather_d90605() {
-  float4 res = arg_0.Gather(arg_1, float3(0.0f, 0.0f, float(1)), (0).xx);
+  float4 res = arg_0.Gather(arg_1, float3((1.0f).xx, float(1)), (1).xx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/d90605.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureGather/d90605.wgsl.expected.glsl
index 5028f86..62ea44e 100644
--- a/test/tint/builtins/gen/literal/textureGather/d90605.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureGather/d90605.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 uniform highp sampler2DArrayShadow arg_0_arg_1;
 
 void textureGather_d90605() {
-  vec4 res = textureGatherOffset(arg_0_arg_1, vec3(0.0f, 0.0f, float(1)), 0.0, ivec2(0));
+  vec4 res = textureGatherOffset(arg_0_arg_1, vec3(vec2(1.0f), float(1)), 0.0, ivec2(1));
 }
 
 vec4 vertex_main() {
@@ -25,7 +25,7 @@
 uniform highp sampler2DArrayShadow arg_0_arg_1;
 
 void textureGather_d90605() {
-  vec4 res = textureGatherOffset(arg_0_arg_1, vec3(0.0f, 0.0f, float(1)), 0.0, ivec2(0));
+  vec4 res = textureGatherOffset(arg_0_arg_1, vec3(vec2(1.0f), float(1)), 0.0, ivec2(1));
 }
 
 void fragment_main() {
@@ -41,7 +41,7 @@
 uniform highp sampler2DArrayShadow arg_0_arg_1;
 
 void textureGather_d90605() {
-  vec4 res = textureGatherOffset(arg_0_arg_1, vec3(0.0f, 0.0f, float(1)), 0.0, ivec2(0));
+  vec4 res = textureGatherOffset(arg_0_arg_1, vec3(vec2(1.0f), float(1)), 0.0, ivec2(1));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureGather/d90605.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureGather/d90605.wgsl.expected.msl
index 90be232..9d7e1fa 100644
--- a/test/tint/builtins/gen/literal/textureGather/d90605.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureGather/d90605.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureGather_d90605(depth2d_array<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float4 res = tint_symbol_1.gather(tint_symbol_2, float2(0.0f), 1, int2(0));
+  float4 res = tint_symbol_1.gather(tint_symbol_2, float2(1.0f), 1, int2(1));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/d90605.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureGather/d90605.wgsl.expected.spvasm
index 38cffa3..13a26f2 100644
--- a/test/tint/builtins/gen/literal/textureGather/d90605.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureGather/d90605.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 49
+; Bound: 52
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -44,46 +44,49 @@
          %15 = OpTypeFunction %void
          %22 = OpTypeSampledImage %11
     %v3float = OpTypeVector %float 3
-    %float_0 = OpConstant %float 0
+    %v2float = OpTypeVector %float 2
+    %float_1 = OpConstant %float 1
+         %27 = OpConstantComposite %v2float %float_1 %float_1
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
       %int_0 = OpConstant %int 0
       %v2int = OpTypeVector %int 2
-         %32 = OpConstantNull %v2int
+         %36 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %35 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %39 = OpTypeFunction %v4float
 %textureGather_d90605 = OpFunction %void None %15
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
          %20 = OpLoad %14 %arg_1
          %21 = OpLoad %11 %arg_0
          %23 = OpSampledImage %22 %21 %20
-         %26 = OpConvertSToF %float %int_1
-         %29 = OpCompositeConstruct %v3float %float_0 %float_0 %26
-         %19 = OpImageGather %v4float %23 %29 %int_0 ConstOffset %32
+         %28 = OpCompositeExtract %float %27 0
+         %29 = OpCompositeExtract %float %27 1
+         %30 = OpConvertSToF %float %int_1
+         %33 = OpCompositeConstruct %v3float %28 %29 %30
+         %19 = OpImageGather %v4float %23 %33 %int_0 ConstOffset %36
                OpStore %res %19
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %35
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureGather_d90605
+%vertex_main_inner = OpFunction %v4float None %39
+         %41 = OpLabel
+         %42 = OpFunctionCall %void %textureGather_d90605
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
-         %40 = OpLabel
-         %41 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %41
+         %44 = OpLabel
+         %45 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %45
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %15
-         %44 = OpLabel
-         %45 = OpFunctionCall %void %textureGather_d90605
+         %47 = OpLabel
+         %48 = OpFunctionCall %void %textureGather_d90605
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %15
-         %47 = OpLabel
-         %48 = OpFunctionCall %void %textureGather_d90605
+         %50 = OpLabel
+         %51 = OpFunctionCall %void %textureGather_d90605
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureGather/d90605.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureGather/d90605.wgsl.expected.wgsl
index d2374c4..67d080c 100644
--- a/test/tint/builtins/gen/literal/textureGather/d90605.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/d90605.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(1) var arg_1 : sampler;
 
 fn textureGather_d90605() {
-  var res : vec4<f32> = textureGather(arg_0, arg_1, vec2<f32>(), 1i, vec2<i32>());
+  var res : vec4<f32> = textureGather(arg_0, arg_1, vec2<f32>(1.0f), 1i, vec2<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureGather/d98d59.wgsl b/test/tint/builtins/gen/literal/textureGather/d98d59.wgsl
index b78c342..67a70dd 100644
--- a/test/tint/builtins/gen/literal/textureGather/d98d59.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/d98d59.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureGather(@const component: u32, texture: texture_cube_array<f32>, sampler: sampler, coords: vec3<f32>, array_index: i32) -> vec4<f32>
 fn textureGather_d98d59() {
-  var res: vec4<f32> = textureGather(1u, arg_1, arg_2, vec3<f32>(), 1i);
+  var res: vec4<f32> = textureGather(1u, arg_1, arg_2, vec3<f32>(1.f), 1i);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureGather/d98d59.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/d98d59.wgsl.expected.dxc.hlsl
index 10e683d..847af83 100644
--- a/test/tint/builtins/gen/literal/textureGather/d98d59.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/d98d59.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_d98d59() {
-  float4 res = arg_1.GatherGreen(arg_2, float4(0.0f, 0.0f, 0.0f, float(1)));
+  float4 res = arg_1.GatherGreen(arg_2, float4((1.0f).xxx, float(1)));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/d98d59.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/d98d59.wgsl.expected.fxc.hlsl
index 10e683d..847af83 100644
--- a/test/tint/builtins/gen/literal/textureGather/d98d59.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/d98d59.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_d98d59() {
-  float4 res = arg_1.GatherGreen(arg_2, float4(0.0f, 0.0f, 0.0f, float(1)));
+  float4 res = arg_1.GatherGreen(arg_2, float4((1.0f).xxx, float(1)));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/d98d59.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureGather/d98d59.wgsl.expected.msl
index ca2a849..7b5236f 100644
--- a/test/tint/builtins/gen/literal/textureGather/d98d59.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureGather/d98d59.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureGather_d98d59(texturecube_array<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float4 res = tint_symbol_1.gather(tint_symbol_2, float3(0.0f), 1, component::y);
+  float4 res = tint_symbol_1.gather(tint_symbol_2, float3(1.0f), 1, component::y);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/d98d59.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureGather/d98d59.wgsl.expected.spvasm
index 88ac5d0..d431a1a 100644
--- a/test/tint/builtins/gen/literal/textureGather/d98d59.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureGather/d98d59.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 47
+; Bound: 51
 ; Schema: 0
                OpCapability Shader
                OpCapability SampledCubeArray
@@ -44,45 +44,49 @@
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
          %22 = OpTypeSampledImage %11
-    %float_0 = OpConstant %float 0
+    %v3float = OpTypeVector %float 3
+    %float_1 = OpConstant %float 1
+         %26 = OpConstantComposite %v3float %float_1 %float_1 %float_1
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %33 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %38 = OpTypeFunction %v4float
 %textureGather_d98d59 = OpFunction %void None %15
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
          %20 = OpLoad %14 %arg_2
          %21 = OpLoad %11 %arg_1
          %23 = OpSampledImage %22 %21 %20
-         %25 = OpConvertSToF %float %int_1
-         %28 = OpCompositeConstruct %v4float %float_0 %float_0 %float_0 %25
-         %19 = OpImageGather %v4float %23 %28 %uint_1
+         %27 = OpCompositeExtract %float %26 0
+         %28 = OpCompositeExtract %float %26 1
+         %29 = OpCompositeExtract %float %26 2
+         %30 = OpConvertSToF %float %int_1
+         %33 = OpCompositeConstruct %v4float %27 %28 %29 %30
+         %19 = OpImageGather %v4float %23 %33 %uint_1
                OpStore %res %19
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %33
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureGather_d98d59
+%vertex_main_inner = OpFunction %v4float None %38
+         %40 = OpLabel
+         %41 = OpFunctionCall %void %textureGather_d98d59
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
-         %38 = OpLabel
-         %39 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %39
+         %43 = OpLabel
+         %44 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %44
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %15
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureGather_d98d59
+         %46 = OpLabel
+         %47 = OpFunctionCall %void %textureGather_d98d59
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %15
-         %45 = OpLabel
-         %46 = OpFunctionCall %void %textureGather_d98d59
+         %49 = OpLabel
+         %50 = OpFunctionCall %void %textureGather_d98d59
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureGather/d98d59.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureGather/d98d59.wgsl.expected.wgsl
index 87129c2..5b2fb59 100644
--- a/test/tint/builtins/gen/literal/textureGather/d98d59.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/d98d59.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(2) var arg_2 : sampler;
 
 fn textureGather_d98d59() {
-  var res : vec4<f32> = textureGather(1u, arg_1, arg_2, vec3<f32>(), 1i);
+  var res : vec4<f32> = textureGather(1u, arg_1, arg_2, vec3<f32>(1.0f), 1i);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureGather/dc6661.wgsl b/test/tint/builtins/gen/literal/textureGather/dc6661.wgsl
index 8d8fe8a..afce732 100644
--- a/test/tint/builtins/gen/literal/textureGather/dc6661.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/dc6661.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureGather(@const component: u32, texture: texture_2d<i32>, sampler: sampler, coords: vec2<f32>, @const offset: vec2<i32>) -> vec4<i32>
 fn textureGather_dc6661() {
-  var res: vec4<i32> = textureGather(1u, arg_1, arg_2, vec2<f32>(), vec2<i32>());
+  var res: vec4<i32> = textureGather(1u, arg_1, arg_2, vec2<f32>(1.f), vec2<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureGather/dc6661.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/dc6661.wgsl.expected.dxc.hlsl
index 9a1ecb6..ed4cb87 100644
--- a/test/tint/builtins/gen/literal/textureGather/dc6661.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/dc6661.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_dc6661() {
-  int4 res = arg_1.GatherGreen(arg_2, (0.0f).xx, (0).xx);
+  int4 res = arg_1.GatherGreen(arg_2, (1.0f).xx, (1).xx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/dc6661.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/dc6661.wgsl.expected.fxc.hlsl
index 9a1ecb6..ed4cb87 100644
--- a/test/tint/builtins/gen/literal/textureGather/dc6661.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/dc6661.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_dc6661() {
-  int4 res = arg_1.GatherGreen(arg_2, (0.0f).xx, (0).xx);
+  int4 res = arg_1.GatherGreen(arg_2, (1.0f).xx, (1).xx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/dc6661.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureGather/dc6661.wgsl.expected.glsl
index 1241fbb..ca5290e 100644
--- a/test/tint/builtins/gen/literal/textureGather/dc6661.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureGather/dc6661.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 uniform highp isampler2D arg_1_arg_2;
 
 void textureGather_dc6661() {
-  ivec4 res = textureGatherOffset(arg_1_arg_2, vec2(0.0f), ivec2(0), int(1u));
+  ivec4 res = textureGatherOffset(arg_1_arg_2, vec2(1.0f), ivec2(1), int(1u));
 }
 
 vec4 vertex_main() {
@@ -25,7 +25,7 @@
 uniform highp isampler2D arg_1_arg_2;
 
 void textureGather_dc6661() {
-  ivec4 res = textureGatherOffset(arg_1_arg_2, vec2(0.0f), ivec2(0), int(1u));
+  ivec4 res = textureGatherOffset(arg_1_arg_2, vec2(1.0f), ivec2(1), int(1u));
 }
 
 void fragment_main() {
@@ -41,7 +41,7 @@
 uniform highp isampler2D arg_1_arg_2;
 
 void textureGather_dc6661() {
-  ivec4 res = textureGatherOffset(arg_1_arg_2, vec2(0.0f), ivec2(0), int(1u));
+  ivec4 res = textureGatherOffset(arg_1_arg_2, vec2(1.0f), ivec2(1), int(1u));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureGather/dc6661.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureGather/dc6661.wgsl.expected.msl
index a998cf1..cff8c55 100644
--- a/test/tint/builtins/gen/literal/textureGather/dc6661.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureGather/dc6661.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureGather_dc6661(texture2d<int, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  int4 res = tint_symbol_1.gather(tint_symbol_2, float2(0.0f), int2(0), component::y);
+  int4 res = tint_symbol_1.gather(tint_symbol_2, float2(1.0f), int2(1), component::y);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/dc6661.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureGather/dc6661.wgsl.expected.spvasm
index a090bed..dbe25ea 100644
--- a/test/tint/builtins/gen/literal/textureGather/dc6661.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureGather/dc6661.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 49
+; Bound: 50
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -46,44 +46,45 @@
       %v4int = OpTypeVector %int 4
          %24 = OpTypeSampledImage %11
     %v2float = OpTypeVector %float 2
-         %27 = OpConstantNull %v2float
+    %float_1 = OpConstant %float 1
+         %28 = OpConstantComposite %v2float %float_1 %float_1
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
       %v2int = OpTypeVector %int 2
-         %31 = OpConstantNull %v2int
+      %int_1 = OpConstant %int 1
+         %33 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %34 = OpConstantNull %v4int
-         %35 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %36 = OpConstantNull %v4int
+         %37 = OpTypeFunction %v4float
 %textureGather_dc6661 = OpFunction %void None %16
          %19 = OpLabel
-        %res = OpVariable %_ptr_Function_v4int Function %34
+        %res = OpVariable %_ptr_Function_v4int Function %36
          %22 = OpLoad %15 %arg_2
          %23 = OpLoad %11 %arg_1
          %25 = OpSampledImage %24 %23 %22
-         %20 = OpImageGather %v4int %25 %27 %uint_1 ConstOffset %31
+         %20 = OpImageGather %v4int %25 %28 %uint_1 ConstOffset %33
                OpStore %res %20
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %35
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureGather_dc6661
+%vertex_main_inner = OpFunction %v4float None %37
+         %39 = OpLabel
+         %40 = OpFunctionCall %void %textureGather_dc6661
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %16
-         %40 = OpLabel
-         %41 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %41
+         %42 = OpLabel
+         %43 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %43
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %16
-         %44 = OpLabel
-         %45 = OpFunctionCall %void %textureGather_dc6661
+         %45 = OpLabel
+         %46 = OpFunctionCall %void %textureGather_dc6661
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %16
-         %47 = OpLabel
-         %48 = OpFunctionCall %void %textureGather_dc6661
+         %48 = OpLabel
+         %49 = OpFunctionCall %void %textureGather_dc6661
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureGather/dc6661.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureGather/dc6661.wgsl.expected.wgsl
index 607129c..2554a6d 100644
--- a/test/tint/builtins/gen/literal/textureGather/dc6661.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/dc6661.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(2) var arg_2 : sampler;
 
 fn textureGather_dc6661() {
-  var res : vec4<i32> = textureGather(1u, arg_1, arg_2, vec2<f32>(), vec2<i32>());
+  var res : vec4<i32> = textureGather(1u, arg_1, arg_2, vec2<f32>(1.0f), vec2<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureGather/e2acac.wgsl b/test/tint/builtins/gen/literal/textureGather/e2acac.wgsl
index d0167f4..3b023f5 100644
--- a/test/tint/builtins/gen/literal/textureGather/e2acac.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/e2acac.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureGather(@const component: u32, texture: texture_cube_array<u32>, sampler: sampler, coords: vec3<f32>, array_index: u32) -> vec4<u32>
 fn textureGather_e2acac() {
-  var res: vec4<u32> = textureGather(1u, arg_1, arg_2, vec3<f32>(), 1u);
+  var res: vec4<u32> = textureGather(1u, arg_1, arg_2, vec3<f32>(1.f), 1u);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureGather/e2acac.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/e2acac.wgsl.expected.dxc.hlsl
index a3337ec..939783f 100644
--- a/test/tint/builtins/gen/literal/textureGather/e2acac.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/e2acac.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_e2acac() {
-  uint4 res = arg_1.GatherGreen(arg_2, float4(0.0f, 0.0f, 0.0f, float(1u)));
+  uint4 res = arg_1.GatherGreen(arg_2, float4((1.0f).xxx, float(1u)));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/e2acac.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/e2acac.wgsl.expected.fxc.hlsl
index a3337ec..939783f 100644
--- a/test/tint/builtins/gen/literal/textureGather/e2acac.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/e2acac.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_e2acac() {
-  uint4 res = arg_1.GatherGreen(arg_2, float4(0.0f, 0.0f, 0.0f, float(1u)));
+  uint4 res = arg_1.GatherGreen(arg_2, float4((1.0f).xxx, float(1u)));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/e2acac.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureGather/e2acac.wgsl.expected.msl
index 23a18ae..1b4d074 100644
--- a/test/tint/builtins/gen/literal/textureGather/e2acac.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureGather/e2acac.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureGather_e2acac(texturecube_array<uint, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  uint4 res = tint_symbol_1.gather(tint_symbol_2, float3(0.0f), 1u, component::y);
+  uint4 res = tint_symbol_1.gather(tint_symbol_2, float3(1.0f), 1u, component::y);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/e2acac.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureGather/e2acac.wgsl.expected.spvasm
index 31bb98c3..a96aeef 100644
--- a/test/tint/builtins/gen/literal/textureGather/e2acac.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureGather/e2acac.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 47
+; Bound: 51
 ; Schema: 0
                OpCapability Shader
                OpCapability SampledCubeArray
@@ -46,43 +46,47 @@
          %16 = OpTypeFunction %void
      %v4uint = OpTypeVector %uint 4
          %24 = OpTypeSampledImage %11
-    %float_0 = OpConstant %float 0
+    %v3float = OpTypeVector %float 3
+    %float_1 = OpConstant %float 1
+         %28 = OpConstantComposite %v3float %float_1 %float_1 %float_1
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %32 = OpConstantNull %v4uint
-         %33 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %37 = OpConstantNull %v4uint
+         %38 = OpTypeFunction %v4float
 %textureGather_e2acac = OpFunction %void None %16
          %19 = OpLabel
-        %res = OpVariable %_ptr_Function_v4uint Function %32
+        %res = OpVariable %_ptr_Function_v4uint Function %37
          %22 = OpLoad %15 %arg_2
          %23 = OpLoad %11 %arg_1
          %25 = OpSampledImage %24 %23 %22
-         %27 = OpConvertUToF %float %uint_1
-         %29 = OpCompositeConstruct %v4float %float_0 %float_0 %float_0 %27
-         %20 = OpImageGather %v4uint %25 %29 %uint_1
+         %29 = OpCompositeExtract %float %28 0
+         %30 = OpCompositeExtract %float %28 1
+         %31 = OpCompositeExtract %float %28 2
+         %32 = OpConvertUToF %float %uint_1
+         %34 = OpCompositeConstruct %v4float %29 %30 %31 %32
+         %20 = OpImageGather %v4uint %25 %34 %uint_1
                OpStore %res %20
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %33
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureGather_e2acac
+%vertex_main_inner = OpFunction %v4float None %38
+         %40 = OpLabel
+         %41 = OpFunctionCall %void %textureGather_e2acac
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %16
-         %38 = OpLabel
-         %39 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %39
+         %43 = OpLabel
+         %44 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %44
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %16
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureGather_e2acac
+         %46 = OpLabel
+         %47 = OpFunctionCall %void %textureGather_e2acac
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %16
-         %45 = OpLabel
-         %46 = OpFunctionCall %void %textureGather_e2acac
+         %49 = OpLabel
+         %50 = OpFunctionCall %void %textureGather_e2acac
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureGather/e2acac.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureGather/e2acac.wgsl.expected.wgsl
index f1b2b9c..9a2bd67 100644
--- a/test/tint/builtins/gen/literal/textureGather/e2acac.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/e2acac.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(2) var arg_2 : sampler;
 
 fn textureGather_e2acac() {
-  var res : vec4<u32> = textureGather(1u, arg_1, arg_2, vec3<f32>(), 1u);
+  var res : vec4<u32> = textureGather(1u, arg_1, arg_2, vec3<f32>(1.0f), 1u);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureGather/e3165f.wgsl b/test/tint/builtins/gen/literal/textureGather/e3165f.wgsl
index f1fc888..307415a 100644
--- a/test/tint/builtins/gen/literal/textureGather/e3165f.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/e3165f.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureGather(@const component: u32, texture: texture_2d_array<u32>, sampler: sampler, coords: vec2<f32>, array_index: i32, @const offset: vec2<i32>) -> vec4<u32>
 fn textureGather_e3165f() {
-  var res: vec4<u32> = textureGather(1u, arg_1, arg_2, vec2<f32>(), 1i, vec2<i32>());
+  var res: vec4<u32> = textureGather(1u, arg_1, arg_2, vec2<f32>(1.f), 1i, vec2<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureGather/e3165f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/e3165f.wgsl.expected.dxc.hlsl
index e5afb5c..64a3795 100644
--- a/test/tint/builtins/gen/literal/textureGather/e3165f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/e3165f.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_e3165f() {
-  uint4 res = arg_1.GatherGreen(arg_2, float3(0.0f, 0.0f, float(1)), (0).xx);
+  uint4 res = arg_1.GatherGreen(arg_2, float3((1.0f).xx, float(1)), (1).xx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/e3165f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/e3165f.wgsl.expected.fxc.hlsl
index e5afb5c..64a3795 100644
--- a/test/tint/builtins/gen/literal/textureGather/e3165f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/e3165f.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_e3165f() {
-  uint4 res = arg_1.GatherGreen(arg_2, float3(0.0f, 0.0f, float(1)), (0).xx);
+  uint4 res = arg_1.GatherGreen(arg_2, float3((1.0f).xx, float(1)), (1).xx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/e3165f.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureGather/e3165f.wgsl.expected.glsl
index 914af11..1b7a7d6 100644
--- a/test/tint/builtins/gen/literal/textureGather/e3165f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureGather/e3165f.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 uniform highp usampler2DArray arg_1_arg_2;
 
 void textureGather_e3165f() {
-  uvec4 res = textureGatherOffset(arg_1_arg_2, vec3(0.0f, 0.0f, float(1)), ivec2(0), int(1u));
+  uvec4 res = textureGatherOffset(arg_1_arg_2, vec3(vec2(1.0f), float(1)), ivec2(1), int(1u));
 }
 
 vec4 vertex_main() {
@@ -25,7 +25,7 @@
 uniform highp usampler2DArray arg_1_arg_2;
 
 void textureGather_e3165f() {
-  uvec4 res = textureGatherOffset(arg_1_arg_2, vec3(0.0f, 0.0f, float(1)), ivec2(0), int(1u));
+  uvec4 res = textureGatherOffset(arg_1_arg_2, vec3(vec2(1.0f), float(1)), ivec2(1), int(1u));
 }
 
 void fragment_main() {
@@ -41,7 +41,7 @@
 uniform highp usampler2DArray arg_1_arg_2;
 
 void textureGather_e3165f() {
-  uvec4 res = textureGatherOffset(arg_1_arg_2, vec3(0.0f, 0.0f, float(1)), ivec2(0), int(1u));
+  uvec4 res = textureGatherOffset(arg_1_arg_2, vec3(vec2(1.0f), float(1)), ivec2(1), int(1u));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureGather/e3165f.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureGather/e3165f.wgsl.expected.msl
index 12b0c1d..3fec78a 100644
--- a/test/tint/builtins/gen/literal/textureGather/e3165f.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureGather/e3165f.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureGather_e3165f(texture2d_array<uint, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  uint4 res = tint_symbol_1.gather(tint_symbol_2, float2(0.0f), 1, int2(0), component::y);
+  uint4 res = tint_symbol_1.gather(tint_symbol_2, float2(1.0f), 1, int2(1), component::y);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/e3165f.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureGather/e3165f.wgsl.expected.spvasm
index 4438901..e068a6b 100644
--- a/test/tint/builtins/gen/literal/textureGather/e3165f.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureGather/e3165f.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 52
+; Bound: 55
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -46,47 +46,50 @@
      %v4uint = OpTypeVector %uint 4
          %24 = OpTypeSampledImage %11
     %v3float = OpTypeVector %float 3
-    %float_0 = OpConstant %float 0
+    %v2float = OpTypeVector %float 2
+    %float_1 = OpConstant %float 1
+         %29 = OpConstantComposite %v2float %float_1 %float_1
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
      %uint_1 = OpConstant %uint 1
       %v2int = OpTypeVector %int 2
-         %34 = OpConstantNull %v2int
+         %38 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %37 = OpConstantNull %v4uint
-         %38 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %41 = OpConstantNull %v4uint
+         %42 = OpTypeFunction %v4float
 %textureGather_e3165f = OpFunction %void None %16
          %19 = OpLabel
-        %res = OpVariable %_ptr_Function_v4uint Function %37
+        %res = OpVariable %_ptr_Function_v4uint Function %41
          %22 = OpLoad %15 %arg_2
          %23 = OpLoad %11 %arg_1
          %25 = OpSampledImage %24 %23 %22
-         %28 = OpConvertSToF %float %int_1
-         %31 = OpCompositeConstruct %v3float %float_0 %float_0 %28
-         %20 = OpImageGather %v4uint %25 %31 %uint_1 ConstOffset %34
+         %30 = OpCompositeExtract %float %29 0
+         %31 = OpCompositeExtract %float %29 1
+         %32 = OpConvertSToF %float %int_1
+         %35 = OpCompositeConstruct %v3float %30 %31 %32
+         %20 = OpImageGather %v4uint %25 %35 %uint_1 ConstOffset %38
                OpStore %res %20
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %38
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureGather_e3165f
+%vertex_main_inner = OpFunction %v4float None %42
+         %44 = OpLabel
+         %45 = OpFunctionCall %void %textureGather_e3165f
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %16
-         %43 = OpLabel
-         %44 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %44
+         %47 = OpLabel
+         %48 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %48
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %16
-         %47 = OpLabel
-         %48 = OpFunctionCall %void %textureGather_e3165f
+         %50 = OpLabel
+         %51 = OpFunctionCall %void %textureGather_e3165f
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %16
-         %50 = OpLabel
-         %51 = OpFunctionCall %void %textureGather_e3165f
+         %53 = OpLabel
+         %54 = OpFunctionCall %void %textureGather_e3165f
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureGather/e3165f.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureGather/e3165f.wgsl.expected.wgsl
index 9f1dab6..e7641f8 100644
--- a/test/tint/builtins/gen/literal/textureGather/e3165f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/e3165f.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(2) var arg_2 : sampler;
 
 fn textureGather_e3165f() {
-  var res : vec4<u32> = textureGather(1u, arg_1, arg_2, vec2<f32>(), 1i, vec2<i32>());
+  var res : vec4<u32> = textureGather(1u, arg_1, arg_2, vec2<f32>(1.0f), 1i, vec2<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureGather/e9d390.wgsl b/test/tint/builtins/gen/literal/textureGather/e9d390.wgsl
index 5f2f74b..2556148 100644
--- a/test/tint/builtins/gen/literal/textureGather/e9d390.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/e9d390.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureGather(@const component: i32, texture: texture_2d_array<i32>, sampler: sampler, coords: vec2<f32>, array_index: i32, @const offset: vec2<i32>) -> vec4<i32>
 fn textureGather_e9d390() {
-  var res: vec4<i32> = textureGather(1i, arg_1, arg_2, vec2<f32>(), 1i, vec2<i32>());
+  var res: vec4<i32> = textureGather(1i, arg_1, arg_2, vec2<f32>(1.f), 1i, vec2<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureGather/e9d390.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/e9d390.wgsl.expected.dxc.hlsl
index 2d2893d..eb97f7f 100644
--- a/test/tint/builtins/gen/literal/textureGather/e9d390.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/e9d390.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_e9d390() {
-  int4 res = arg_1.GatherGreen(arg_2, float3(0.0f, 0.0f, float(1)), (0).xx);
+  int4 res = arg_1.GatherGreen(arg_2, float3((1.0f).xx, float(1)), (1).xx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/e9d390.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/e9d390.wgsl.expected.fxc.hlsl
index 2d2893d..eb97f7f 100644
--- a/test/tint/builtins/gen/literal/textureGather/e9d390.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/e9d390.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_e9d390() {
-  int4 res = arg_1.GatherGreen(arg_2, float3(0.0f, 0.0f, float(1)), (0).xx);
+  int4 res = arg_1.GatherGreen(arg_2, float3((1.0f).xx, float(1)), (1).xx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/e9d390.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureGather/e9d390.wgsl.expected.glsl
index fc9b73f..783e77d 100644
--- a/test/tint/builtins/gen/literal/textureGather/e9d390.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureGather/e9d390.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 uniform highp isampler2DArray arg_1_arg_2;
 
 void textureGather_e9d390() {
-  ivec4 res = textureGatherOffset(arg_1_arg_2, vec3(0.0f, 0.0f, float(1)), ivec2(0), 1);
+  ivec4 res = textureGatherOffset(arg_1_arg_2, vec3(vec2(1.0f), float(1)), ivec2(1), 1);
 }
 
 vec4 vertex_main() {
@@ -25,7 +25,7 @@
 uniform highp isampler2DArray arg_1_arg_2;
 
 void textureGather_e9d390() {
-  ivec4 res = textureGatherOffset(arg_1_arg_2, vec3(0.0f, 0.0f, float(1)), ivec2(0), 1);
+  ivec4 res = textureGatherOffset(arg_1_arg_2, vec3(vec2(1.0f), float(1)), ivec2(1), 1);
 }
 
 void fragment_main() {
@@ -41,7 +41,7 @@
 uniform highp isampler2DArray arg_1_arg_2;
 
 void textureGather_e9d390() {
-  ivec4 res = textureGatherOffset(arg_1_arg_2, vec3(0.0f, 0.0f, float(1)), ivec2(0), 1);
+  ivec4 res = textureGatherOffset(arg_1_arg_2, vec3(vec2(1.0f), float(1)), ivec2(1), 1);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureGather/e9d390.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureGather/e9d390.wgsl.expected.msl
index 2449d25..7b05586 100644
--- a/test/tint/builtins/gen/literal/textureGather/e9d390.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureGather/e9d390.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureGather_e9d390(texture2d_array<int, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  int4 res = tint_symbol_1.gather(tint_symbol_2, float2(0.0f), 1, int2(0), component::y);
+  int4 res = tint_symbol_1.gather(tint_symbol_2, float2(1.0f), 1, int2(1), component::y);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/e9d390.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureGather/e9d390.wgsl.expected.spvasm
index aa462bc..1918101 100644
--- a/test/tint/builtins/gen/literal/textureGather/e9d390.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureGather/e9d390.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 50
+; Bound: 53
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -46,45 +46,48 @@
       %v4int = OpTypeVector %int 4
          %24 = OpTypeSampledImage %11
     %v3float = OpTypeVector %float 3
-    %float_0 = OpConstant %float 0
+    %v2float = OpTypeVector %float 2
+    %float_1 = OpConstant %float 1
+         %29 = OpConstantComposite %v2float %float_1 %float_1
       %int_1 = OpConstant %int 1
       %v2int = OpTypeVector %int 2
-         %32 = OpConstantNull %v2int
+         %36 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %35 = OpConstantNull %v4int
-         %36 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %39 = OpConstantNull %v4int
+         %40 = OpTypeFunction %v4float
 %textureGather_e9d390 = OpFunction %void None %16
          %19 = OpLabel
-        %res = OpVariable %_ptr_Function_v4int Function %35
+        %res = OpVariable %_ptr_Function_v4int Function %39
          %22 = OpLoad %15 %arg_2
          %23 = OpLoad %11 %arg_1
          %25 = OpSampledImage %24 %23 %22
-         %28 = OpConvertSToF %float %int_1
-         %30 = OpCompositeConstruct %v3float %float_0 %float_0 %28
-         %20 = OpImageGather %v4int %25 %30 %int_1 ConstOffset %32
+         %30 = OpCompositeExtract %float %29 0
+         %31 = OpCompositeExtract %float %29 1
+         %32 = OpConvertSToF %float %int_1
+         %34 = OpCompositeConstruct %v3float %30 %31 %32
+         %20 = OpImageGather %v4int %25 %34 %int_1 ConstOffset %36
                OpStore %res %20
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %36
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureGather_e9d390
+%vertex_main_inner = OpFunction %v4float None %40
+         %42 = OpLabel
+         %43 = OpFunctionCall %void %textureGather_e9d390
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %16
-         %41 = OpLabel
-         %42 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %42
+         %45 = OpLabel
+         %46 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %46
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %16
-         %45 = OpLabel
-         %46 = OpFunctionCall %void %textureGather_e9d390
+         %48 = OpLabel
+         %49 = OpFunctionCall %void %textureGather_e9d390
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %16
-         %48 = OpLabel
-         %49 = OpFunctionCall %void %textureGather_e9d390
+         %51 = OpLabel
+         %52 = OpFunctionCall %void %textureGather_e9d390
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureGather/e9d390.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureGather/e9d390.wgsl.expected.wgsl
index 71d137a..4bb6967 100644
--- a/test/tint/builtins/gen/literal/textureGather/e9d390.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/e9d390.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(2) var arg_2 : sampler;
 
 fn textureGather_e9d390() {
-  var res : vec4<i32> = textureGather(1i, arg_1, arg_2, vec2<f32>(), 1i, vec2<i32>());
+  var res : vec4<i32> = textureGather(1i, arg_1, arg_2, vec2<f32>(1.0f), 1i, vec2<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureGather/ea8eb4.wgsl b/test/tint/builtins/gen/literal/textureGather/ea8eb4.wgsl
index 66b6aca..02e3c9e 100644
--- a/test/tint/builtins/gen/literal/textureGather/ea8eb4.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/ea8eb4.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureGather(@const component: u32, texture: texture_2d_array<f32>, sampler: sampler, coords: vec2<f32>, array_index: u32) -> vec4<f32>
 fn textureGather_ea8eb4() {
-  var res: vec4<f32> = textureGather(1u, arg_1, arg_2, vec2<f32>(), 1u);
+  var res: vec4<f32> = textureGather(1u, arg_1, arg_2, vec2<f32>(1.f), 1u);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureGather/ea8eb4.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/ea8eb4.wgsl.expected.dxc.hlsl
index 3e69b66..1441e14 100644
--- a/test/tint/builtins/gen/literal/textureGather/ea8eb4.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/ea8eb4.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_ea8eb4() {
-  float4 res = arg_1.GatherGreen(arg_2, float3(0.0f, 0.0f, float(1u)));
+  float4 res = arg_1.GatherGreen(arg_2, float3((1.0f).xx, float(1u)));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/ea8eb4.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/ea8eb4.wgsl.expected.fxc.hlsl
index 3e69b66..1441e14 100644
--- a/test/tint/builtins/gen/literal/textureGather/ea8eb4.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/ea8eb4.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_ea8eb4() {
-  float4 res = arg_1.GatherGreen(arg_2, float3(0.0f, 0.0f, float(1u)));
+  float4 res = arg_1.GatherGreen(arg_2, float3((1.0f).xx, float(1u)));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/ea8eb4.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureGather/ea8eb4.wgsl.expected.glsl
index 4c080b4..a81c2ff 100644
--- a/test/tint/builtins/gen/literal/textureGather/ea8eb4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureGather/ea8eb4.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 uniform highp sampler2DArray arg_1_arg_2;
 
 void textureGather_ea8eb4() {
-  vec4 res = textureGather(arg_1_arg_2, vec3(0.0f, 0.0f, float(1u)), int(1u));
+  vec4 res = textureGather(arg_1_arg_2, vec3(vec2(1.0f), float(1u)), int(1u));
 }
 
 vec4 vertex_main() {
@@ -25,7 +25,7 @@
 uniform highp sampler2DArray arg_1_arg_2;
 
 void textureGather_ea8eb4() {
-  vec4 res = textureGather(arg_1_arg_2, vec3(0.0f, 0.0f, float(1u)), int(1u));
+  vec4 res = textureGather(arg_1_arg_2, vec3(vec2(1.0f), float(1u)), int(1u));
 }
 
 void fragment_main() {
@@ -41,7 +41,7 @@
 uniform highp sampler2DArray arg_1_arg_2;
 
 void textureGather_ea8eb4() {
-  vec4 res = textureGather(arg_1_arg_2, vec3(0.0f, 0.0f, float(1u)), int(1u));
+  vec4 res = textureGather(arg_1_arg_2, vec3(vec2(1.0f), float(1u)), int(1u));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureGather/ea8eb4.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureGather/ea8eb4.wgsl.expected.msl
index 258c198..8c8a791 100644
--- a/test/tint/builtins/gen/literal/textureGather/ea8eb4.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureGather/ea8eb4.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureGather_ea8eb4(texture2d_array<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float4 res = tint_symbol_1.gather(tint_symbol_2, float2(0.0f), 1u, int2(0), component::y);
+  float4 res = tint_symbol_1.gather(tint_symbol_2, float2(1.0f), 1u, int2(0), component::y);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/ea8eb4.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureGather/ea8eb4.wgsl.expected.spvasm
index e7c0ab1..2fbe377 100644
--- a/test/tint/builtins/gen/literal/textureGather/ea8eb4.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureGather/ea8eb4.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 46
+; Bound: 49
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -44,43 +44,46 @@
          %15 = OpTypeFunction %void
          %22 = OpTypeSampledImage %11
     %v3float = OpTypeVector %float 3
-    %float_0 = OpConstant %float 0
+    %v2float = OpTypeVector %float 2
+    %float_1 = OpConstant %float 1
+         %27 = OpConstantComposite %v2float %float_1 %float_1
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %32 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %36 = OpTypeFunction %v4float
 %textureGather_ea8eb4 = OpFunction %void None %15
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
          %20 = OpLoad %14 %arg_2
          %21 = OpLoad %11 %arg_1
          %23 = OpSampledImage %22 %21 %20
-         %26 = OpConvertUToF %float %uint_1
-         %29 = OpCompositeConstruct %v3float %float_0 %float_0 %26
-         %19 = OpImageGather %v4float %23 %29 %uint_1
+         %28 = OpCompositeExtract %float %27 0
+         %29 = OpCompositeExtract %float %27 1
+         %30 = OpConvertUToF %float %uint_1
+         %33 = OpCompositeConstruct %v3float %28 %29 %30
+         %19 = OpImageGather %v4float %23 %33 %uint_1
                OpStore %res %19
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %32
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureGather_ea8eb4
+%vertex_main_inner = OpFunction %v4float None %36
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %textureGather_ea8eb4
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
-         %37 = OpLabel
-         %38 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %38
+         %41 = OpLabel
+         %42 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %42
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %15
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureGather_ea8eb4
+         %44 = OpLabel
+         %45 = OpFunctionCall %void %textureGather_ea8eb4
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %15
-         %44 = OpLabel
-         %45 = OpFunctionCall %void %textureGather_ea8eb4
+         %47 = OpLabel
+         %48 = OpFunctionCall %void %textureGather_ea8eb4
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureGather/ea8eb4.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureGather/ea8eb4.wgsl.expected.wgsl
index 238176e..9338598 100644
--- a/test/tint/builtins/gen/literal/textureGather/ea8eb4.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/ea8eb4.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(2) var arg_2 : sampler;
 
 fn textureGather_ea8eb4() {
-  var res : vec4<f32> = textureGather(1u, arg_1, arg_2, vec2<f32>(), 1u);
+  var res : vec4<f32> = textureGather(1u, arg_1, arg_2, vec2<f32>(1.0f), 1u);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureGather/f2c6e3.wgsl b/test/tint/builtins/gen/literal/textureGather/f2c6e3.wgsl
index 42582b1..1dccc19 100644
--- a/test/tint/builtins/gen/literal/textureGather/f2c6e3.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/f2c6e3.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureGather(@const component: i32, texture: texture_cube_array<u32>, sampler: sampler, coords: vec3<f32>, array_index: i32) -> vec4<u32>
 fn textureGather_f2c6e3() {
-  var res: vec4<u32> = textureGather(1i, arg_1, arg_2, vec3<f32>(), 1i);
+  var res: vec4<u32> = textureGather(1i, arg_1, arg_2, vec3<f32>(1.f), 1i);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureGather/f2c6e3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/f2c6e3.wgsl.expected.dxc.hlsl
index a6114a7..e9504c0 100644
--- a/test/tint/builtins/gen/literal/textureGather/f2c6e3.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/f2c6e3.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_f2c6e3() {
-  uint4 res = arg_1.GatherGreen(arg_2, float4(0.0f, 0.0f, 0.0f, float(1)));
+  uint4 res = arg_1.GatherGreen(arg_2, float4((1.0f).xxx, float(1)));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/f2c6e3.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/f2c6e3.wgsl.expected.fxc.hlsl
index a6114a7..e9504c0 100644
--- a/test/tint/builtins/gen/literal/textureGather/f2c6e3.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/f2c6e3.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_f2c6e3() {
-  uint4 res = arg_1.GatherGreen(arg_2, float4(0.0f, 0.0f, 0.0f, float(1)));
+  uint4 res = arg_1.GatherGreen(arg_2, float4((1.0f).xxx, float(1)));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/f2c6e3.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureGather/f2c6e3.wgsl.expected.msl
index 3d5fb84..c720bbc 100644
--- a/test/tint/builtins/gen/literal/textureGather/f2c6e3.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureGather/f2c6e3.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureGather_f2c6e3(texturecube_array<uint, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  uint4 res = tint_symbol_1.gather(tint_symbol_2, float3(0.0f), 1, component::y);
+  uint4 res = tint_symbol_1.gather(tint_symbol_2, float3(1.0f), 1, component::y);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGather/f2c6e3.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureGather/f2c6e3.wgsl.expected.spvasm
index 43cb212..9929191 100644
--- a/test/tint/builtins/gen/literal/textureGather/f2c6e3.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureGather/f2c6e3.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 48
+; Bound: 52
 ; Schema: 0
                OpCapability Shader
                OpCapability SampledCubeArray
@@ -46,44 +46,48 @@
          %16 = OpTypeFunction %void
      %v4uint = OpTypeVector %uint 4
          %24 = OpTypeSampledImage %11
-    %float_0 = OpConstant %float 0
+    %v3float = OpTypeVector %float 3
+    %float_1 = OpConstant %float 1
+         %28 = OpConstantComposite %v3float %float_1 %float_1 %float_1
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %33 = OpConstantNull %v4uint
-         %34 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %38 = OpConstantNull %v4uint
+         %39 = OpTypeFunction %v4float
 %textureGather_f2c6e3 = OpFunction %void None %16
          %19 = OpLabel
-        %res = OpVariable %_ptr_Function_v4uint Function %33
+        %res = OpVariable %_ptr_Function_v4uint Function %38
          %22 = OpLoad %15 %arg_2
          %23 = OpLoad %11 %arg_1
          %25 = OpSampledImage %24 %23 %22
-         %27 = OpConvertSToF %float %int_1
-         %30 = OpCompositeConstruct %v4float %float_0 %float_0 %float_0 %27
-         %20 = OpImageGather %v4uint %25 %30 %int_1
+         %29 = OpCompositeExtract %float %28 0
+         %30 = OpCompositeExtract %float %28 1
+         %31 = OpCompositeExtract %float %28 2
+         %32 = OpConvertSToF %float %int_1
+         %35 = OpCompositeConstruct %v4float %29 %30 %31 %32
+         %20 = OpImageGather %v4uint %25 %35 %int_1
                OpStore %res %20
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %34
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureGather_f2c6e3
+%vertex_main_inner = OpFunction %v4float None %39
+         %41 = OpLabel
+         %42 = OpFunctionCall %void %textureGather_f2c6e3
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %16
-         %39 = OpLabel
-         %40 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %40
+         %44 = OpLabel
+         %45 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %45
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %16
-         %43 = OpLabel
-         %44 = OpFunctionCall %void %textureGather_f2c6e3
+         %47 = OpLabel
+         %48 = OpFunctionCall %void %textureGather_f2c6e3
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %16
-         %46 = OpLabel
-         %47 = OpFunctionCall %void %textureGather_f2c6e3
+         %50 = OpLabel
+         %51 = OpFunctionCall %void %textureGather_f2c6e3
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureGather/f2c6e3.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureGather/f2c6e3.wgsl.expected.wgsl
index 5f3fd15..d7b38f2 100644
--- a/test/tint/builtins/gen/literal/textureGather/f2c6e3.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/f2c6e3.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(2) var arg_2 : sampler;
 
 fn textureGather_f2c6e3() {
-  var res : vec4<u32> = textureGather(1i, arg_1, arg_2, vec3<f32>(), 1i);
+  var res : vec4<u32> = textureGather(1i, arg_1, arg_2, vec3<f32>(1.0f), 1i);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureGatherCompare/144a9a.wgsl b/test/tint/builtins/gen/literal/textureGatherCompare/144a9a.wgsl
index 23d232d..7255eea 100644
--- a/test/tint/builtins/gen/literal/textureGatherCompare/144a9a.wgsl
+++ b/test/tint/builtins/gen/literal/textureGatherCompare/144a9a.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureGatherCompare(texture: texture_depth_2d_array, sampler: sampler_comparison, coords: vec2<f32>, array_index: u32, depth_ref: f32, @const offset: vec2<i32>) -> vec4<f32>
 fn textureGatherCompare_144a9a() {
-  var res: vec4<f32> = textureGatherCompare(arg_0, arg_1, vec2<f32>(), 1u, 1.f, vec2<i32>());
+  var res: vec4<f32> = textureGatherCompare(arg_0, arg_1, vec2<f32>(1.f), 1u, 1.f, vec2<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureGatherCompare/144a9a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureGatherCompare/144a9a.wgsl.expected.dxc.hlsl
index 59db391..e09886a 100644
--- a/test/tint/builtins/gen/literal/textureGatherCompare/144a9a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGatherCompare/144a9a.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerComparisonState arg_1 : register(s1, space1);
 
 void textureGatherCompare_144a9a() {
-  float4 res = arg_0.GatherCmp(arg_1, float3(0.0f, 0.0f, float(1u)), 1.0f, (0).xx);
+  float4 res = arg_0.GatherCmp(arg_1, float3((1.0f).xx, float(1u)), 1.0f, (1).xx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGatherCompare/144a9a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureGatherCompare/144a9a.wgsl.expected.fxc.hlsl
index 59db391..e09886a 100644
--- a/test/tint/builtins/gen/literal/textureGatherCompare/144a9a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGatherCompare/144a9a.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerComparisonState arg_1 : register(s1, space1);
 
 void textureGatherCompare_144a9a() {
-  float4 res = arg_0.GatherCmp(arg_1, float3(0.0f, 0.0f, float(1u)), 1.0f, (0).xx);
+  float4 res = arg_0.GatherCmp(arg_1, float3((1.0f).xx, float(1u)), 1.0f, (1).xx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGatherCompare/144a9a.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureGatherCompare/144a9a.wgsl.expected.glsl
index 8c6787a..4e9b3f5 100644
--- a/test/tint/builtins/gen/literal/textureGatherCompare/144a9a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureGatherCompare/144a9a.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 uniform highp sampler2DArrayShadow arg_0_arg_1;
 
 void textureGatherCompare_144a9a() {
-  vec4 res = textureGatherOffset(arg_0_arg_1, vec3(0.0f, 0.0f, float(1u)), 1.0f, ivec2(0));
+  vec4 res = textureGatherOffset(arg_0_arg_1, vec3(vec2(1.0f), float(1u)), 1.0f, ivec2(1));
 }
 
 vec4 vertex_main() {
@@ -25,7 +25,7 @@
 uniform highp sampler2DArrayShadow arg_0_arg_1;
 
 void textureGatherCompare_144a9a() {
-  vec4 res = textureGatherOffset(arg_0_arg_1, vec3(0.0f, 0.0f, float(1u)), 1.0f, ivec2(0));
+  vec4 res = textureGatherOffset(arg_0_arg_1, vec3(vec2(1.0f), float(1u)), 1.0f, ivec2(1));
 }
 
 void fragment_main() {
@@ -41,7 +41,7 @@
 uniform highp sampler2DArrayShadow arg_0_arg_1;
 
 void textureGatherCompare_144a9a() {
-  vec4 res = textureGatherOffset(arg_0_arg_1, vec3(0.0f, 0.0f, float(1u)), 1.0f, ivec2(0));
+  vec4 res = textureGatherOffset(arg_0_arg_1, vec3(vec2(1.0f), float(1u)), 1.0f, ivec2(1));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureGatherCompare/144a9a.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureGatherCompare/144a9a.wgsl.expected.msl
index 0d772d3..ec65869 100644
--- a/test/tint/builtins/gen/literal/textureGatherCompare/144a9a.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureGatherCompare/144a9a.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureGatherCompare_144a9a(depth2d_array<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float4 res = tint_symbol_1.gather_compare(tint_symbol_2, float2(0.0f), 1u, 1.0f, int2(0));
+  float4 res = tint_symbol_1.gather_compare(tint_symbol_2, float2(1.0f), 1u, 1.0f, int2(1));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGatherCompare/144a9a.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureGatherCompare/144a9a.wgsl.expected.spvasm
index b80ccb6..2080c9c 100644
--- a/test/tint/builtins/gen/literal/textureGatherCompare/144a9a.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureGatherCompare/144a9a.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 49
+; Bound: 53
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -44,46 +44,50 @@
          %15 = OpTypeFunction %void
          %22 = OpTypeSampledImage %11
     %v3float = OpTypeVector %float 3
-    %float_0 = OpConstant %float 0
+    %v2float = OpTypeVector %float 2
+    %float_1 = OpConstant %float 1
+         %27 = OpConstantComposite %v2float %float_1 %float_1
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
-    %float_1 = OpConstant %float 1
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
-         %33 = OpConstantNull %v2int
+      %int_1 = OpConstant %int 1
+         %37 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %36 = OpTypeFunction %v4float
+         %40 = OpTypeFunction %v4float
 %textureGatherCompare_144a9a = OpFunction %void None %15
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
          %20 = OpLoad %14 %arg_1
          %21 = OpLoad %11 %arg_0
          %23 = OpSampledImage %22 %21 %20
-         %26 = OpConvertUToF %float %uint_1
-         %29 = OpCompositeConstruct %v3float %float_0 %float_0 %26
-         %19 = OpImageDrefGather %v4float %23 %29 %float_1 ConstOffset %33
+         %28 = OpCompositeExtract %float %27 0
+         %29 = OpCompositeExtract %float %27 1
+         %30 = OpConvertUToF %float %uint_1
+         %33 = OpCompositeConstruct %v3float %28 %29 %30
+         %19 = OpImageDrefGather %v4float %23 %33 %float_1 ConstOffset %37
                OpStore %res %19
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %36
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureGatherCompare_144a9a
+%vertex_main_inner = OpFunction %v4float None %40
+         %42 = OpLabel
+         %43 = OpFunctionCall %void %textureGatherCompare_144a9a
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
-         %41 = OpLabel
-         %42 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %42
+         %45 = OpLabel
+         %46 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %46
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %15
-         %44 = OpLabel
-         %45 = OpFunctionCall %void %textureGatherCompare_144a9a
+         %48 = OpLabel
+         %49 = OpFunctionCall %void %textureGatherCompare_144a9a
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %15
-         %47 = OpLabel
-         %48 = OpFunctionCall %void %textureGatherCompare_144a9a
+         %51 = OpLabel
+         %52 = OpFunctionCall %void %textureGatherCompare_144a9a
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureGatherCompare/144a9a.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureGatherCompare/144a9a.wgsl.expected.wgsl
index 3645762..e862875 100644
--- a/test/tint/builtins/gen/literal/textureGatherCompare/144a9a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureGatherCompare/144a9a.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(1) var arg_1 : sampler_comparison;
 
 fn textureGatherCompare_144a9a() {
-  var res : vec4<f32> = textureGatherCompare(arg_0, arg_1, vec2<f32>(), 1u, 1.0f, vec2<i32>());
+  var res : vec4<f32> = textureGatherCompare(arg_0, arg_1, vec2<f32>(1.0f), 1u, 1.0f, vec2<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureGatherCompare/182fd4.wgsl b/test/tint/builtins/gen/literal/textureGatherCompare/182fd4.wgsl
index bbf1123..7ebc626 100644
--- a/test/tint/builtins/gen/literal/textureGatherCompare/182fd4.wgsl
+++ b/test/tint/builtins/gen/literal/textureGatherCompare/182fd4.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureGatherCompare(texture: texture_depth_cube, sampler: sampler_comparison, coords: vec3<f32>, depth_ref: f32) -> vec4<f32>
 fn textureGatherCompare_182fd4() {
-  var res: vec4<f32> = textureGatherCompare(arg_0, arg_1, vec3<f32>(), 1.f);
+  var res: vec4<f32> = textureGatherCompare(arg_0, arg_1, vec3<f32>(1.f), 1.f);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureGatherCompare/182fd4.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureGatherCompare/182fd4.wgsl.expected.dxc.hlsl
index 4f6161c..c58d9d6 100644
--- a/test/tint/builtins/gen/literal/textureGatherCompare/182fd4.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGatherCompare/182fd4.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerComparisonState arg_1 : register(s1, space1);
 
 void textureGatherCompare_182fd4() {
-  float4 res = arg_0.GatherCmp(arg_1, (0.0f).xxx, 1.0f);
+  float4 res = arg_0.GatherCmp(arg_1, (1.0f).xxx, 1.0f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGatherCompare/182fd4.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureGatherCompare/182fd4.wgsl.expected.fxc.hlsl
index 4f6161c..c58d9d6 100644
--- a/test/tint/builtins/gen/literal/textureGatherCompare/182fd4.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGatherCompare/182fd4.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerComparisonState arg_1 : register(s1, space1);
 
 void textureGatherCompare_182fd4() {
-  float4 res = arg_0.GatherCmp(arg_1, (0.0f).xxx, 1.0f);
+  float4 res = arg_0.GatherCmp(arg_1, (1.0f).xxx, 1.0f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGatherCompare/182fd4.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureGatherCompare/182fd4.wgsl.expected.glsl
index 2911767..b6a28aa 100644
--- a/test/tint/builtins/gen/literal/textureGatherCompare/182fd4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureGatherCompare/182fd4.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 uniform highp samplerCubeShadow arg_0_arg_1;
 
 void textureGatherCompare_182fd4() {
-  vec4 res = textureGather(arg_0_arg_1, vec3(0.0f), 1.0f);
+  vec4 res = textureGather(arg_0_arg_1, vec3(1.0f), 1.0f);
 }
 
 vec4 vertex_main() {
@@ -25,7 +25,7 @@
 uniform highp samplerCubeShadow arg_0_arg_1;
 
 void textureGatherCompare_182fd4() {
-  vec4 res = textureGather(arg_0_arg_1, vec3(0.0f), 1.0f);
+  vec4 res = textureGather(arg_0_arg_1, vec3(1.0f), 1.0f);
 }
 
 void fragment_main() {
@@ -41,7 +41,7 @@
 uniform highp samplerCubeShadow arg_0_arg_1;
 
 void textureGatherCompare_182fd4() {
-  vec4 res = textureGather(arg_0_arg_1, vec3(0.0f), 1.0f);
+  vec4 res = textureGather(arg_0_arg_1, vec3(1.0f), 1.0f);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureGatherCompare/182fd4.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureGatherCompare/182fd4.wgsl.expected.msl
index 5c3e528..4bae14a 100644
--- a/test/tint/builtins/gen/literal/textureGatherCompare/182fd4.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureGatherCompare/182fd4.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureGatherCompare_182fd4(depthcube<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float4 res = tint_symbol_1.gather_compare(tint_symbol_2, float3(0.0f), 1.0f);
+  float4 res = tint_symbol_1.gather_compare(tint_symbol_2, float3(1.0f), 1.0f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGatherCompare/182fd4.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureGatherCompare/182fd4.wgsl.expected.spvasm
index f24d780..c86a01e 100644
--- a/test/tint/builtins/gen/literal/textureGatherCompare/182fd4.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureGatherCompare/182fd4.wgsl.expected.spvasm
@@ -44,8 +44,8 @@
          %15 = OpTypeFunction %void
          %22 = OpTypeSampledImage %11
     %v3float = OpTypeVector %float 3
-         %25 = OpConstantNull %v3float
     %float_1 = OpConstant %float 1
+         %26 = OpConstantComposite %v3float %float_1 %float_1 %float_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
          %29 = OpTypeFunction %v4float
 %textureGatherCompare_182fd4 = OpFunction %void None %15
@@ -54,7 +54,7 @@
          %20 = OpLoad %14 %arg_1
          %21 = OpLoad %11 %arg_0
          %23 = OpSampledImage %22 %21 %20
-         %19 = OpImageDrefGather %v4float %23 %25 %float_1
+         %19 = OpImageDrefGather %v4float %23 %26 %float_1
                OpStore %res %19
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureGatherCompare/182fd4.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureGatherCompare/182fd4.wgsl.expected.wgsl
index e1f2612..970f9e0 100644
--- a/test/tint/builtins/gen/literal/textureGatherCompare/182fd4.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureGatherCompare/182fd4.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(1) var arg_1 : sampler_comparison;
 
 fn textureGatherCompare_182fd4() {
-  var res : vec4<f32> = textureGatherCompare(arg_0, arg_1, vec3<f32>(), 1.0f);
+  var res : vec4<f32> = textureGatherCompare(arg_0, arg_1, vec3<f32>(1.0f), 1.0f);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureGatherCompare/2e409c.wgsl b/test/tint/builtins/gen/literal/textureGatherCompare/2e409c.wgsl
index 256e202..5caeb53 100644
--- a/test/tint/builtins/gen/literal/textureGatherCompare/2e409c.wgsl
+++ b/test/tint/builtins/gen/literal/textureGatherCompare/2e409c.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureGatherCompare(texture: texture_depth_cube_array, sampler: sampler_comparison, coords: vec3<f32>, array_index: u32, depth_ref: f32) -> vec4<f32>
 fn textureGatherCompare_2e409c() {
-  var res: vec4<f32> = textureGatherCompare(arg_0, arg_1, vec3<f32>(), 1u, 1.f);
+  var res: vec4<f32> = textureGatherCompare(arg_0, arg_1, vec3<f32>(1.f), 1u, 1.f);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureGatherCompare/2e409c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureGatherCompare/2e409c.wgsl.expected.dxc.hlsl
index a218553..292a956 100644
--- a/test/tint/builtins/gen/literal/textureGatherCompare/2e409c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGatherCompare/2e409c.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerComparisonState arg_1 : register(s1, space1);
 
 void textureGatherCompare_2e409c() {
-  float4 res = arg_0.GatherCmp(arg_1, float4(0.0f, 0.0f, 0.0f, float(1u)), 1.0f);
+  float4 res = arg_0.GatherCmp(arg_1, float4((1.0f).xxx, float(1u)), 1.0f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGatherCompare/2e409c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureGatherCompare/2e409c.wgsl.expected.fxc.hlsl
index a218553..292a956 100644
--- a/test/tint/builtins/gen/literal/textureGatherCompare/2e409c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGatherCompare/2e409c.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerComparisonState arg_1 : register(s1, space1);
 
 void textureGatherCompare_2e409c() {
-  float4 res = arg_0.GatherCmp(arg_1, float4(0.0f, 0.0f, 0.0f, float(1u)), 1.0f);
+  float4 res = arg_0.GatherCmp(arg_1, float4((1.0f).xxx, float(1u)), 1.0f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGatherCompare/2e409c.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureGatherCompare/2e409c.wgsl.expected.msl
index 30ff99a..266a38a 100644
--- a/test/tint/builtins/gen/literal/textureGatherCompare/2e409c.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureGatherCompare/2e409c.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureGatherCompare_2e409c(depthcube_array<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float4 res = tint_symbol_1.gather_compare(tint_symbol_2, float3(0.0f), 1u, 1.0f);
+  float4 res = tint_symbol_1.gather_compare(tint_symbol_2, float3(1.0f), 1u, 1.0f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGatherCompare/2e409c.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureGatherCompare/2e409c.wgsl.expected.spvasm
index 9c8dc27..462fa94 100644
--- a/test/tint/builtins/gen/literal/textureGatherCompare/2e409c.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureGatherCompare/2e409c.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 45
+; Bound: 49
 ; Schema: 0
                OpCapability Shader
                OpCapability SampledCubeArray
@@ -44,43 +44,47 @@
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
          %22 = OpTypeSampledImage %11
-    %float_0 = OpConstant %float 0
+    %v3float = OpTypeVector %float 3
+    %float_1 = OpConstant %float 1
+         %26 = OpConstantComposite %v3float %float_1 %float_1 %float_1
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
-    %float_1 = OpConstant %float 1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %32 = OpTypeFunction %v4float
+         %36 = OpTypeFunction %v4float
 %textureGatherCompare_2e409c = OpFunction %void None %15
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
          %20 = OpLoad %14 %arg_1
          %21 = OpLoad %11 %arg_0
          %23 = OpSampledImage %22 %21 %20
-         %25 = OpConvertUToF %float %uint_1
-         %28 = OpCompositeConstruct %v4float %float_0 %float_0 %float_0 %25
-         %19 = OpImageDrefGather %v4float %23 %28 %float_1
+         %27 = OpCompositeExtract %float %26 0
+         %28 = OpCompositeExtract %float %26 1
+         %29 = OpCompositeExtract %float %26 2
+         %30 = OpConvertUToF %float %uint_1
+         %33 = OpCompositeConstruct %v4float %27 %28 %29 %30
+         %19 = OpImageDrefGather %v4float %23 %33 %float_1
                OpStore %res %19
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %32
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureGatherCompare_2e409c
+%vertex_main_inner = OpFunction %v4float None %36
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %textureGatherCompare_2e409c
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
-         %37 = OpLabel
-         %38 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %38
+         %41 = OpLabel
+         %42 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %42
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %15
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureGatherCompare_2e409c
+         %44 = OpLabel
+         %45 = OpFunctionCall %void %textureGatherCompare_2e409c
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %15
-         %43 = OpLabel
-         %44 = OpFunctionCall %void %textureGatherCompare_2e409c
+         %47 = OpLabel
+         %48 = OpFunctionCall %void %textureGatherCompare_2e409c
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureGatherCompare/2e409c.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureGatherCompare/2e409c.wgsl.expected.wgsl
index f45cdf9..2ac3798 100644
--- a/test/tint/builtins/gen/literal/textureGatherCompare/2e409c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureGatherCompare/2e409c.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(1) var arg_1 : sampler_comparison;
 
 fn textureGatherCompare_2e409c() {
-  var res : vec4<f32> = textureGatherCompare(arg_0, arg_1, vec3<f32>(), 1u, 1.0f);
+  var res : vec4<f32> = textureGatherCompare(arg_0, arg_1, vec3<f32>(1.0f), 1u, 1.0f);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureGatherCompare/313add.wgsl b/test/tint/builtins/gen/literal/textureGatherCompare/313add.wgsl
index bd87b46..aa0a49f 100644
--- a/test/tint/builtins/gen/literal/textureGatherCompare/313add.wgsl
+++ b/test/tint/builtins/gen/literal/textureGatherCompare/313add.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureGatherCompare(texture: texture_depth_2d, sampler: sampler_comparison, coords: vec2<f32>, depth_ref: f32, @const offset: vec2<i32>) -> vec4<f32>
 fn textureGatherCompare_313add() {
-  var res: vec4<f32> = textureGatherCompare(arg_0, arg_1, vec2<f32>(), 1.f, vec2<i32>());
+  var res: vec4<f32> = textureGatherCompare(arg_0, arg_1, vec2<f32>(1.f), 1.f, vec2<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureGatherCompare/313add.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureGatherCompare/313add.wgsl.expected.dxc.hlsl
index 3512f9a..e491dd6 100644
--- a/test/tint/builtins/gen/literal/textureGatherCompare/313add.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGatherCompare/313add.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerComparisonState arg_1 : register(s1, space1);
 
 void textureGatherCompare_313add() {
-  float4 res = arg_0.GatherCmp(arg_1, (0.0f).xx, 1.0f, (0).xx);
+  float4 res = arg_0.GatherCmp(arg_1, (1.0f).xx, 1.0f, (1).xx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGatherCompare/313add.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureGatherCompare/313add.wgsl.expected.fxc.hlsl
index 3512f9a..e491dd6 100644
--- a/test/tint/builtins/gen/literal/textureGatherCompare/313add.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGatherCompare/313add.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerComparisonState arg_1 : register(s1, space1);
 
 void textureGatherCompare_313add() {
-  float4 res = arg_0.GatherCmp(arg_1, (0.0f).xx, 1.0f, (0).xx);
+  float4 res = arg_0.GatherCmp(arg_1, (1.0f).xx, 1.0f, (1).xx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGatherCompare/313add.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureGatherCompare/313add.wgsl.expected.glsl
index 7416e88..4c62095 100644
--- a/test/tint/builtins/gen/literal/textureGatherCompare/313add.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureGatherCompare/313add.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 uniform highp sampler2DShadow arg_0_arg_1;
 
 void textureGatherCompare_313add() {
-  vec4 res = textureGatherOffset(arg_0_arg_1, vec2(0.0f), 1.0f, ivec2(0));
+  vec4 res = textureGatherOffset(arg_0_arg_1, vec2(1.0f), 1.0f, ivec2(1));
 }
 
 vec4 vertex_main() {
@@ -25,7 +25,7 @@
 uniform highp sampler2DShadow arg_0_arg_1;
 
 void textureGatherCompare_313add() {
-  vec4 res = textureGatherOffset(arg_0_arg_1, vec2(0.0f), 1.0f, ivec2(0));
+  vec4 res = textureGatherOffset(arg_0_arg_1, vec2(1.0f), 1.0f, ivec2(1));
 }
 
 void fragment_main() {
@@ -41,7 +41,7 @@
 uniform highp sampler2DShadow arg_0_arg_1;
 
 void textureGatherCompare_313add() {
-  vec4 res = textureGatherOffset(arg_0_arg_1, vec2(0.0f), 1.0f, ivec2(0));
+  vec4 res = textureGatherOffset(arg_0_arg_1, vec2(1.0f), 1.0f, ivec2(1));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureGatherCompare/313add.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureGatherCompare/313add.wgsl.expected.msl
index 2b15285..94695aa 100644
--- a/test/tint/builtins/gen/literal/textureGatherCompare/313add.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureGatherCompare/313add.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureGatherCompare_313add(depth2d<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float4 res = tint_symbol_1.gather_compare(tint_symbol_2, float2(0.0f), 1.0f, int2(0));
+  float4 res = tint_symbol_1.gather_compare(tint_symbol_2, float2(1.0f), 1.0f, int2(1));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGatherCompare/313add.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureGatherCompare/313add.wgsl.expected.spvasm
index 1875a0a..9514a14 100644
--- a/test/tint/builtins/gen/literal/textureGatherCompare/313add.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureGatherCompare/313add.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 45
+; Bound: 46
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -44,42 +44,43 @@
          %15 = OpTypeFunction %void
          %22 = OpTypeSampledImage %11
     %v2float = OpTypeVector %float 2
-         %25 = OpConstantNull %v2float
     %float_1 = OpConstant %float 1
+         %26 = OpConstantComposite %v2float %float_1 %float_1
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
-         %29 = OpConstantNull %v2int
+      %int_1 = OpConstant %int 1
+         %30 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %32 = OpTypeFunction %v4float
+         %33 = OpTypeFunction %v4float
 %textureGatherCompare_313add = OpFunction %void None %15
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
          %20 = OpLoad %14 %arg_1
          %21 = OpLoad %11 %arg_0
          %23 = OpSampledImage %22 %21 %20
-         %19 = OpImageDrefGather %v4float %23 %25 %float_1 ConstOffset %29
+         %19 = OpImageDrefGather %v4float %23 %26 %float_1 ConstOffset %30
                OpStore %res %19
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %32
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureGatherCompare_313add
+%vertex_main_inner = OpFunction %v4float None %33
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureGatherCompare_313add
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
-         %37 = OpLabel
-         %38 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %38
+         %38 = OpLabel
+         %39 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %39
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %15
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureGatherCompare_313add
+         %41 = OpLabel
+         %42 = OpFunctionCall %void %textureGatherCompare_313add
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %15
-         %43 = OpLabel
-         %44 = OpFunctionCall %void %textureGatherCompare_313add
+         %44 = OpLabel
+         %45 = OpFunctionCall %void %textureGatherCompare_313add
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureGatherCompare/313add.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureGatherCompare/313add.wgsl.expected.wgsl
index ab31a89..bf4da2a 100644
--- a/test/tint/builtins/gen/literal/textureGatherCompare/313add.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureGatherCompare/313add.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(1) var arg_1 : sampler_comparison;
 
 fn textureGatherCompare_313add() {
-  var res : vec4<f32> = textureGatherCompare(arg_0, arg_1, vec2<f32>(), 1.0f, vec2<i32>());
+  var res : vec4<f32> = textureGatherCompare(arg_0, arg_1, vec2<f32>(1.0f), 1.0f, vec2<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureGatherCompare/60d2d1.wgsl b/test/tint/builtins/gen/literal/textureGatherCompare/60d2d1.wgsl
index 1d1b90e..708587c 100644
--- a/test/tint/builtins/gen/literal/textureGatherCompare/60d2d1.wgsl
+++ b/test/tint/builtins/gen/literal/textureGatherCompare/60d2d1.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureGatherCompare(texture: texture_depth_cube_array, sampler: sampler_comparison, coords: vec3<f32>, array_index: i32, depth_ref: f32) -> vec4<f32>
 fn textureGatherCompare_60d2d1() {
-  var res: vec4<f32> = textureGatherCompare(arg_0, arg_1, vec3<f32>(), 1i, 1.f);
+  var res: vec4<f32> = textureGatherCompare(arg_0, arg_1, vec3<f32>(1.f), 1i, 1.f);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureGatherCompare/60d2d1.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureGatherCompare/60d2d1.wgsl.expected.dxc.hlsl
index 3cc753f..efa458c 100644
--- a/test/tint/builtins/gen/literal/textureGatherCompare/60d2d1.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGatherCompare/60d2d1.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerComparisonState arg_1 : register(s1, space1);
 
 void textureGatherCompare_60d2d1() {
-  float4 res = arg_0.GatherCmp(arg_1, float4(0.0f, 0.0f, 0.0f, float(1)), 1.0f);
+  float4 res = arg_0.GatherCmp(arg_1, float4((1.0f).xxx, float(1)), 1.0f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGatherCompare/60d2d1.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureGatherCompare/60d2d1.wgsl.expected.fxc.hlsl
index 3cc753f..efa458c 100644
--- a/test/tint/builtins/gen/literal/textureGatherCompare/60d2d1.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGatherCompare/60d2d1.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerComparisonState arg_1 : register(s1, space1);
 
 void textureGatherCompare_60d2d1() {
-  float4 res = arg_0.GatherCmp(arg_1, float4(0.0f, 0.0f, 0.0f, float(1)), 1.0f);
+  float4 res = arg_0.GatherCmp(arg_1, float4((1.0f).xxx, float(1)), 1.0f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGatherCompare/60d2d1.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureGatherCompare/60d2d1.wgsl.expected.msl
index b050573..4b8a3dc 100644
--- a/test/tint/builtins/gen/literal/textureGatherCompare/60d2d1.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureGatherCompare/60d2d1.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureGatherCompare_60d2d1(depthcube_array<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float4 res = tint_symbol_1.gather_compare(tint_symbol_2, float3(0.0f), 1, 1.0f);
+  float4 res = tint_symbol_1.gather_compare(tint_symbol_2, float3(1.0f), 1, 1.0f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGatherCompare/60d2d1.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureGatherCompare/60d2d1.wgsl.expected.spvasm
index e5f9745..455ebfd 100644
--- a/test/tint/builtins/gen/literal/textureGatherCompare/60d2d1.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureGatherCompare/60d2d1.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 45
+; Bound: 49
 ; Schema: 0
                OpCapability Shader
                OpCapability SampledCubeArray
@@ -44,43 +44,47 @@
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
          %22 = OpTypeSampledImage %11
-    %float_0 = OpConstant %float 0
+    %v3float = OpTypeVector %float 3
+    %float_1 = OpConstant %float 1
+         %26 = OpConstantComposite %v3float %float_1 %float_1 %float_1
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
-    %float_1 = OpConstant %float 1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %32 = OpTypeFunction %v4float
+         %36 = OpTypeFunction %v4float
 %textureGatherCompare_60d2d1 = OpFunction %void None %15
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
          %20 = OpLoad %14 %arg_1
          %21 = OpLoad %11 %arg_0
          %23 = OpSampledImage %22 %21 %20
-         %25 = OpConvertSToF %float %int_1
-         %28 = OpCompositeConstruct %v4float %float_0 %float_0 %float_0 %25
-         %19 = OpImageDrefGather %v4float %23 %28 %float_1
+         %27 = OpCompositeExtract %float %26 0
+         %28 = OpCompositeExtract %float %26 1
+         %29 = OpCompositeExtract %float %26 2
+         %30 = OpConvertSToF %float %int_1
+         %33 = OpCompositeConstruct %v4float %27 %28 %29 %30
+         %19 = OpImageDrefGather %v4float %23 %33 %float_1
                OpStore %res %19
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %32
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureGatherCompare_60d2d1
+%vertex_main_inner = OpFunction %v4float None %36
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %textureGatherCompare_60d2d1
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
-         %37 = OpLabel
-         %38 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %38
+         %41 = OpLabel
+         %42 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %42
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %15
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureGatherCompare_60d2d1
+         %44 = OpLabel
+         %45 = OpFunctionCall %void %textureGatherCompare_60d2d1
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %15
-         %43 = OpLabel
-         %44 = OpFunctionCall %void %textureGatherCompare_60d2d1
+         %47 = OpLabel
+         %48 = OpFunctionCall %void %textureGatherCompare_60d2d1
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureGatherCompare/60d2d1.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureGatherCompare/60d2d1.wgsl.expected.wgsl
index b7734ea..1c58353 100644
--- a/test/tint/builtins/gen/literal/textureGatherCompare/60d2d1.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureGatherCompare/60d2d1.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(1) var arg_1 : sampler_comparison;
 
 fn textureGatherCompare_60d2d1() {
-  var res : vec4<f32> = textureGatherCompare(arg_0, arg_1, vec3<f32>(), 1i, 1.0f);
+  var res : vec4<f32> = textureGatherCompare(arg_0, arg_1, vec3<f32>(1.0f), 1i, 1.0f);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureGatherCompare/6d9352.wgsl b/test/tint/builtins/gen/literal/textureGatherCompare/6d9352.wgsl
index 5ca1268..a08f813 100644
--- a/test/tint/builtins/gen/literal/textureGatherCompare/6d9352.wgsl
+++ b/test/tint/builtins/gen/literal/textureGatherCompare/6d9352.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureGatherCompare(texture: texture_depth_2d, sampler: sampler_comparison, coords: vec2<f32>, depth_ref: f32) -> vec4<f32>
 fn textureGatherCompare_6d9352() {
-  var res: vec4<f32> = textureGatherCompare(arg_0, arg_1, vec2<f32>(), 1.f);
+  var res: vec4<f32> = textureGatherCompare(arg_0, arg_1, vec2<f32>(1.f), 1.f);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureGatherCompare/6d9352.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureGatherCompare/6d9352.wgsl.expected.dxc.hlsl
index 38bce11..0d45110 100644
--- a/test/tint/builtins/gen/literal/textureGatherCompare/6d9352.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGatherCompare/6d9352.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerComparisonState arg_1 : register(s1, space1);
 
 void textureGatherCompare_6d9352() {
-  float4 res = arg_0.GatherCmp(arg_1, (0.0f).xx, 1.0f);
+  float4 res = arg_0.GatherCmp(arg_1, (1.0f).xx, 1.0f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGatherCompare/6d9352.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureGatherCompare/6d9352.wgsl.expected.fxc.hlsl
index 38bce11..0d45110 100644
--- a/test/tint/builtins/gen/literal/textureGatherCompare/6d9352.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGatherCompare/6d9352.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerComparisonState arg_1 : register(s1, space1);
 
 void textureGatherCompare_6d9352() {
-  float4 res = arg_0.GatherCmp(arg_1, (0.0f).xx, 1.0f);
+  float4 res = arg_0.GatherCmp(arg_1, (1.0f).xx, 1.0f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGatherCompare/6d9352.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureGatherCompare/6d9352.wgsl.expected.glsl
index e1ec032..69d67d8 100644
--- a/test/tint/builtins/gen/literal/textureGatherCompare/6d9352.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureGatherCompare/6d9352.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 uniform highp sampler2DShadow arg_0_arg_1;
 
 void textureGatherCompare_6d9352() {
-  vec4 res = textureGather(arg_0_arg_1, vec2(0.0f), 1.0f);
+  vec4 res = textureGather(arg_0_arg_1, vec2(1.0f), 1.0f);
 }
 
 vec4 vertex_main() {
@@ -25,7 +25,7 @@
 uniform highp sampler2DShadow arg_0_arg_1;
 
 void textureGatherCompare_6d9352() {
-  vec4 res = textureGather(arg_0_arg_1, vec2(0.0f), 1.0f);
+  vec4 res = textureGather(arg_0_arg_1, vec2(1.0f), 1.0f);
 }
 
 void fragment_main() {
@@ -41,7 +41,7 @@
 uniform highp sampler2DShadow arg_0_arg_1;
 
 void textureGatherCompare_6d9352() {
-  vec4 res = textureGather(arg_0_arg_1, vec2(0.0f), 1.0f);
+  vec4 res = textureGather(arg_0_arg_1, vec2(1.0f), 1.0f);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureGatherCompare/6d9352.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureGatherCompare/6d9352.wgsl.expected.msl
index a5b7ece..d9890db 100644
--- a/test/tint/builtins/gen/literal/textureGatherCompare/6d9352.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureGatherCompare/6d9352.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureGatherCompare_6d9352(depth2d<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float4 res = tint_symbol_1.gather_compare(tint_symbol_2, float2(0.0f), 1.0f);
+  float4 res = tint_symbol_1.gather_compare(tint_symbol_2, float2(1.0f), 1.0f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGatherCompare/6d9352.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureGatherCompare/6d9352.wgsl.expected.spvasm
index 355943f..a51254d 100644
--- a/test/tint/builtins/gen/literal/textureGatherCompare/6d9352.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureGatherCompare/6d9352.wgsl.expected.spvasm
@@ -44,8 +44,8 @@
          %15 = OpTypeFunction %void
          %22 = OpTypeSampledImage %11
     %v2float = OpTypeVector %float 2
-         %25 = OpConstantNull %v2float
     %float_1 = OpConstant %float 1
+         %26 = OpConstantComposite %v2float %float_1 %float_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
          %29 = OpTypeFunction %v4float
 %textureGatherCompare_6d9352 = OpFunction %void None %15
@@ -54,7 +54,7 @@
          %20 = OpLoad %14 %arg_1
          %21 = OpLoad %11 %arg_0
          %23 = OpSampledImage %22 %21 %20
-         %19 = OpImageDrefGather %v4float %23 %25 %float_1
+         %19 = OpImageDrefGather %v4float %23 %26 %float_1
                OpStore %res %19
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureGatherCompare/6d9352.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureGatherCompare/6d9352.wgsl.expected.wgsl
index c6898c2..50afea1 100644
--- a/test/tint/builtins/gen/literal/textureGatherCompare/6d9352.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureGatherCompare/6d9352.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(1) var arg_1 : sampler_comparison;
 
 fn textureGatherCompare_6d9352() {
-  var res : vec4<f32> = textureGatherCompare(arg_0, arg_1, vec2<f32>(), 1.0f);
+  var res : vec4<f32> = textureGatherCompare(arg_0, arg_1, vec2<f32>(1.0f), 1.0f);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureGatherCompare/783e65.wgsl b/test/tint/builtins/gen/literal/textureGatherCompare/783e65.wgsl
index 655e44c..ae922ac 100644
--- a/test/tint/builtins/gen/literal/textureGatherCompare/783e65.wgsl
+++ b/test/tint/builtins/gen/literal/textureGatherCompare/783e65.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureGatherCompare(texture: texture_depth_2d_array, sampler: sampler_comparison, coords: vec2<f32>, array_index: i32, depth_ref: f32) -> vec4<f32>
 fn textureGatherCompare_783e65() {
-  var res: vec4<f32> = textureGatherCompare(arg_0, arg_1, vec2<f32>(), 1i, 1.f);
+  var res: vec4<f32> = textureGatherCompare(arg_0, arg_1, vec2<f32>(1.f), 1i, 1.f);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureGatherCompare/783e65.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureGatherCompare/783e65.wgsl.expected.dxc.hlsl
index 702933d..d3c0caf 100644
--- a/test/tint/builtins/gen/literal/textureGatherCompare/783e65.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGatherCompare/783e65.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerComparisonState arg_1 : register(s1, space1);
 
 void textureGatherCompare_783e65() {
-  float4 res = arg_0.GatherCmp(arg_1, float3(0.0f, 0.0f, float(1)), 1.0f);
+  float4 res = arg_0.GatherCmp(arg_1, float3((1.0f).xx, float(1)), 1.0f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGatherCompare/783e65.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureGatherCompare/783e65.wgsl.expected.fxc.hlsl
index 702933d..d3c0caf 100644
--- a/test/tint/builtins/gen/literal/textureGatherCompare/783e65.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGatherCompare/783e65.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerComparisonState arg_1 : register(s1, space1);
 
 void textureGatherCompare_783e65() {
-  float4 res = arg_0.GatherCmp(arg_1, float3(0.0f, 0.0f, float(1)), 1.0f);
+  float4 res = arg_0.GatherCmp(arg_1, float3((1.0f).xx, float(1)), 1.0f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGatherCompare/783e65.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureGatherCompare/783e65.wgsl.expected.glsl
index bfc941f..5f0ff47 100644
--- a/test/tint/builtins/gen/literal/textureGatherCompare/783e65.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureGatherCompare/783e65.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 uniform highp sampler2DArrayShadow arg_0_arg_1;
 
 void textureGatherCompare_783e65() {
-  vec4 res = textureGather(arg_0_arg_1, vec3(0.0f, 0.0f, float(1)), 1.0f);
+  vec4 res = textureGather(arg_0_arg_1, vec3(vec2(1.0f), float(1)), 1.0f);
 }
 
 vec4 vertex_main() {
@@ -25,7 +25,7 @@
 uniform highp sampler2DArrayShadow arg_0_arg_1;
 
 void textureGatherCompare_783e65() {
-  vec4 res = textureGather(arg_0_arg_1, vec3(0.0f, 0.0f, float(1)), 1.0f);
+  vec4 res = textureGather(arg_0_arg_1, vec3(vec2(1.0f), float(1)), 1.0f);
 }
 
 void fragment_main() {
@@ -41,7 +41,7 @@
 uniform highp sampler2DArrayShadow arg_0_arg_1;
 
 void textureGatherCompare_783e65() {
-  vec4 res = textureGather(arg_0_arg_1, vec3(0.0f, 0.0f, float(1)), 1.0f);
+  vec4 res = textureGather(arg_0_arg_1, vec3(vec2(1.0f), float(1)), 1.0f);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureGatherCompare/783e65.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureGatherCompare/783e65.wgsl.expected.msl
index 5c8eb74..99117b5 100644
--- a/test/tint/builtins/gen/literal/textureGatherCompare/783e65.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureGatherCompare/783e65.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureGatherCompare_783e65(depth2d_array<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float4 res = tint_symbol_1.gather_compare(tint_symbol_2, float2(0.0f), 1, 1.0f);
+  float4 res = tint_symbol_1.gather_compare(tint_symbol_2, float2(1.0f), 1, 1.0f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGatherCompare/783e65.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureGatherCompare/783e65.wgsl.expected.spvasm
index 6ae28fa..bf059ec 100644
--- a/test/tint/builtins/gen/literal/textureGatherCompare/783e65.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureGatherCompare/783e65.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 46
+; Bound: 49
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -44,43 +44,46 @@
          %15 = OpTypeFunction %void
          %22 = OpTypeSampledImage %11
     %v3float = OpTypeVector %float 3
-    %float_0 = OpConstant %float 0
+    %v2float = OpTypeVector %float 2
+    %float_1 = OpConstant %float 1
+         %27 = OpConstantComposite %v2float %float_1 %float_1
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
-    %float_1 = OpConstant %float 1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %33 = OpTypeFunction %v4float
+         %36 = OpTypeFunction %v4float
 %textureGatherCompare_783e65 = OpFunction %void None %15
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
          %20 = OpLoad %14 %arg_1
          %21 = OpLoad %11 %arg_0
          %23 = OpSampledImage %22 %21 %20
-         %26 = OpConvertSToF %float %int_1
-         %29 = OpCompositeConstruct %v3float %float_0 %float_0 %26
-         %19 = OpImageDrefGather %v4float %23 %29 %float_1
+         %28 = OpCompositeExtract %float %27 0
+         %29 = OpCompositeExtract %float %27 1
+         %30 = OpConvertSToF %float %int_1
+         %33 = OpCompositeConstruct %v3float %28 %29 %30
+         %19 = OpImageDrefGather %v4float %23 %33 %float_1
                OpStore %res %19
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %33
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureGatherCompare_783e65
+%vertex_main_inner = OpFunction %v4float None %36
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %textureGatherCompare_783e65
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
-         %38 = OpLabel
-         %39 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %39
+         %41 = OpLabel
+         %42 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %42
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %15
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureGatherCompare_783e65
+         %44 = OpLabel
+         %45 = OpFunctionCall %void %textureGatherCompare_783e65
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %15
-         %44 = OpLabel
-         %45 = OpFunctionCall %void %textureGatherCompare_783e65
+         %47 = OpLabel
+         %48 = OpFunctionCall %void %textureGatherCompare_783e65
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureGatherCompare/783e65.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureGatherCompare/783e65.wgsl.expected.wgsl
index 31377a1..d465987 100644
--- a/test/tint/builtins/gen/literal/textureGatherCompare/783e65.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureGatherCompare/783e65.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(1) var arg_1 : sampler_comparison;
 
 fn textureGatherCompare_783e65() {
-  var res : vec4<f32> = textureGatherCompare(arg_0, arg_1, vec2<f32>(), 1i, 1.0f);
+  var res : vec4<f32> = textureGatherCompare(arg_0, arg_1, vec2<f32>(1.0f), 1i, 1.0f);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureGatherCompare/b5bc43.wgsl b/test/tint/builtins/gen/literal/textureGatherCompare/b5bc43.wgsl
index d75e00e..287fded 100644
--- a/test/tint/builtins/gen/literal/textureGatherCompare/b5bc43.wgsl
+++ b/test/tint/builtins/gen/literal/textureGatherCompare/b5bc43.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureGatherCompare(texture: texture_depth_2d_array, sampler: sampler_comparison, coords: vec2<f32>, array_index: u32, depth_ref: f32) -> vec4<f32>
 fn textureGatherCompare_b5bc43() {
-  var res: vec4<f32> = textureGatherCompare(arg_0, arg_1, vec2<f32>(), 1u, 1.f);
+  var res: vec4<f32> = textureGatherCompare(arg_0, arg_1, vec2<f32>(1.f), 1u, 1.f);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureGatherCompare/b5bc43.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureGatherCompare/b5bc43.wgsl.expected.dxc.hlsl
index 9a9dd99..3712822 100644
--- a/test/tint/builtins/gen/literal/textureGatherCompare/b5bc43.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGatherCompare/b5bc43.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerComparisonState arg_1 : register(s1, space1);
 
 void textureGatherCompare_b5bc43() {
-  float4 res = arg_0.GatherCmp(arg_1, float3(0.0f, 0.0f, float(1u)), 1.0f);
+  float4 res = arg_0.GatherCmp(arg_1, float3((1.0f).xx, float(1u)), 1.0f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGatherCompare/b5bc43.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureGatherCompare/b5bc43.wgsl.expected.fxc.hlsl
index 9a9dd99..3712822 100644
--- a/test/tint/builtins/gen/literal/textureGatherCompare/b5bc43.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGatherCompare/b5bc43.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerComparisonState arg_1 : register(s1, space1);
 
 void textureGatherCompare_b5bc43() {
-  float4 res = arg_0.GatherCmp(arg_1, float3(0.0f, 0.0f, float(1u)), 1.0f);
+  float4 res = arg_0.GatherCmp(arg_1, float3((1.0f).xx, float(1u)), 1.0f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGatherCompare/b5bc43.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureGatherCompare/b5bc43.wgsl.expected.glsl
index 8860940..2558351 100644
--- a/test/tint/builtins/gen/literal/textureGatherCompare/b5bc43.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureGatherCompare/b5bc43.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 uniform highp sampler2DArrayShadow arg_0_arg_1;
 
 void textureGatherCompare_b5bc43() {
-  vec4 res = textureGather(arg_0_arg_1, vec3(0.0f, 0.0f, float(1u)), 1.0f);
+  vec4 res = textureGather(arg_0_arg_1, vec3(vec2(1.0f), float(1u)), 1.0f);
 }
 
 vec4 vertex_main() {
@@ -25,7 +25,7 @@
 uniform highp sampler2DArrayShadow arg_0_arg_1;
 
 void textureGatherCompare_b5bc43() {
-  vec4 res = textureGather(arg_0_arg_1, vec3(0.0f, 0.0f, float(1u)), 1.0f);
+  vec4 res = textureGather(arg_0_arg_1, vec3(vec2(1.0f), float(1u)), 1.0f);
 }
 
 void fragment_main() {
@@ -41,7 +41,7 @@
 uniform highp sampler2DArrayShadow arg_0_arg_1;
 
 void textureGatherCompare_b5bc43() {
-  vec4 res = textureGather(arg_0_arg_1, vec3(0.0f, 0.0f, float(1u)), 1.0f);
+  vec4 res = textureGather(arg_0_arg_1, vec3(vec2(1.0f), float(1u)), 1.0f);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureGatherCompare/b5bc43.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureGatherCompare/b5bc43.wgsl.expected.msl
index e9cc2f5..7f2c077 100644
--- a/test/tint/builtins/gen/literal/textureGatherCompare/b5bc43.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureGatherCompare/b5bc43.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureGatherCompare_b5bc43(depth2d_array<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float4 res = tint_symbol_1.gather_compare(tint_symbol_2, float2(0.0f), 1u, 1.0f);
+  float4 res = tint_symbol_1.gather_compare(tint_symbol_2, float2(1.0f), 1u, 1.0f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGatherCompare/b5bc43.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureGatherCompare/b5bc43.wgsl.expected.spvasm
index dde1b1d..f44ebac 100644
--- a/test/tint/builtins/gen/literal/textureGatherCompare/b5bc43.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureGatherCompare/b5bc43.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 46
+; Bound: 49
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -44,43 +44,46 @@
          %15 = OpTypeFunction %void
          %22 = OpTypeSampledImage %11
     %v3float = OpTypeVector %float 3
-    %float_0 = OpConstant %float 0
+    %v2float = OpTypeVector %float 2
+    %float_1 = OpConstant %float 1
+         %27 = OpConstantComposite %v2float %float_1 %float_1
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
-    %float_1 = OpConstant %float 1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %33 = OpTypeFunction %v4float
+         %36 = OpTypeFunction %v4float
 %textureGatherCompare_b5bc43 = OpFunction %void None %15
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
          %20 = OpLoad %14 %arg_1
          %21 = OpLoad %11 %arg_0
          %23 = OpSampledImage %22 %21 %20
-         %26 = OpConvertUToF %float %uint_1
-         %29 = OpCompositeConstruct %v3float %float_0 %float_0 %26
-         %19 = OpImageDrefGather %v4float %23 %29 %float_1
+         %28 = OpCompositeExtract %float %27 0
+         %29 = OpCompositeExtract %float %27 1
+         %30 = OpConvertUToF %float %uint_1
+         %33 = OpCompositeConstruct %v3float %28 %29 %30
+         %19 = OpImageDrefGather %v4float %23 %33 %float_1
                OpStore %res %19
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %33
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureGatherCompare_b5bc43
+%vertex_main_inner = OpFunction %v4float None %36
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %textureGatherCompare_b5bc43
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
-         %38 = OpLabel
-         %39 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %39
+         %41 = OpLabel
+         %42 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %42
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %15
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureGatherCompare_b5bc43
+         %44 = OpLabel
+         %45 = OpFunctionCall %void %textureGatherCompare_b5bc43
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %15
-         %44 = OpLabel
-         %45 = OpFunctionCall %void %textureGatherCompare_b5bc43
+         %47 = OpLabel
+         %48 = OpFunctionCall %void %textureGatherCompare_b5bc43
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureGatherCompare/b5bc43.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureGatherCompare/b5bc43.wgsl.expected.wgsl
index 651c709..47b8417 100644
--- a/test/tint/builtins/gen/literal/textureGatherCompare/b5bc43.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureGatherCompare/b5bc43.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(1) var arg_1 : sampler_comparison;
 
 fn textureGatherCompare_b5bc43() {
-  var res : vec4<f32> = textureGatherCompare(arg_0, arg_1, vec2<f32>(), 1u, 1.0f);
+  var res : vec4<f32> = textureGatherCompare(arg_0, arg_1, vec2<f32>(1.0f), 1u, 1.0f);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureGatherCompare/f585cc.wgsl b/test/tint/builtins/gen/literal/textureGatherCompare/f585cc.wgsl
index 3b15c8a..24c5b53 100644
--- a/test/tint/builtins/gen/literal/textureGatherCompare/f585cc.wgsl
+++ b/test/tint/builtins/gen/literal/textureGatherCompare/f585cc.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureGatherCompare(texture: texture_depth_2d_array, sampler: sampler_comparison, coords: vec2<f32>, array_index: i32, depth_ref: f32, @const offset: vec2<i32>) -> vec4<f32>
 fn textureGatherCompare_f585cc() {
-  var res: vec4<f32> = textureGatherCompare(arg_0, arg_1, vec2<f32>(), 1i, 1.f, vec2<i32>());
+  var res: vec4<f32> = textureGatherCompare(arg_0, arg_1, vec2<f32>(1.f), 1i, 1.f, vec2<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureGatherCompare/f585cc.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureGatherCompare/f585cc.wgsl.expected.dxc.hlsl
index ba3d6fd..7df2b78 100644
--- a/test/tint/builtins/gen/literal/textureGatherCompare/f585cc.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGatherCompare/f585cc.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerComparisonState arg_1 : register(s1, space1);
 
 void textureGatherCompare_f585cc() {
-  float4 res = arg_0.GatherCmp(arg_1, float3(0.0f, 0.0f, float(1)), 1.0f, (0).xx);
+  float4 res = arg_0.GatherCmp(arg_1, float3((1.0f).xx, float(1)), 1.0f, (1).xx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGatherCompare/f585cc.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureGatherCompare/f585cc.wgsl.expected.fxc.hlsl
index ba3d6fd..7df2b78 100644
--- a/test/tint/builtins/gen/literal/textureGatherCompare/f585cc.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGatherCompare/f585cc.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerComparisonState arg_1 : register(s1, space1);
 
 void textureGatherCompare_f585cc() {
-  float4 res = arg_0.GatherCmp(arg_1, float3(0.0f, 0.0f, float(1)), 1.0f, (0).xx);
+  float4 res = arg_0.GatherCmp(arg_1, float3((1.0f).xx, float(1)), 1.0f, (1).xx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGatherCompare/f585cc.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureGatherCompare/f585cc.wgsl.expected.glsl
index be0c7bf..69f0437 100644
--- a/test/tint/builtins/gen/literal/textureGatherCompare/f585cc.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureGatherCompare/f585cc.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 uniform highp sampler2DArrayShadow arg_0_arg_1;
 
 void textureGatherCompare_f585cc() {
-  vec4 res = textureGatherOffset(arg_0_arg_1, vec3(0.0f, 0.0f, float(1)), 1.0f, ivec2(0));
+  vec4 res = textureGatherOffset(arg_0_arg_1, vec3(vec2(1.0f), float(1)), 1.0f, ivec2(1));
 }
 
 vec4 vertex_main() {
@@ -25,7 +25,7 @@
 uniform highp sampler2DArrayShadow arg_0_arg_1;
 
 void textureGatherCompare_f585cc() {
-  vec4 res = textureGatherOffset(arg_0_arg_1, vec3(0.0f, 0.0f, float(1)), 1.0f, ivec2(0));
+  vec4 res = textureGatherOffset(arg_0_arg_1, vec3(vec2(1.0f), float(1)), 1.0f, ivec2(1));
 }
 
 void fragment_main() {
@@ -41,7 +41,7 @@
 uniform highp sampler2DArrayShadow arg_0_arg_1;
 
 void textureGatherCompare_f585cc() {
-  vec4 res = textureGatherOffset(arg_0_arg_1, vec3(0.0f, 0.0f, float(1)), 1.0f, ivec2(0));
+  vec4 res = textureGatherOffset(arg_0_arg_1, vec3(vec2(1.0f), float(1)), 1.0f, ivec2(1));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureGatherCompare/f585cc.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureGatherCompare/f585cc.wgsl.expected.msl
index e6c687e..d04ae1b 100644
--- a/test/tint/builtins/gen/literal/textureGatherCompare/f585cc.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureGatherCompare/f585cc.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureGatherCompare_f585cc(depth2d_array<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float4 res = tint_symbol_1.gather_compare(tint_symbol_2, float2(0.0f), 1, 1.0f, int2(0));
+  float4 res = tint_symbol_1.gather_compare(tint_symbol_2, float2(1.0f), 1, 1.0f, int2(1));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureGatherCompare/f585cc.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureGatherCompare/f585cc.wgsl.expected.spvasm
index d52aee2..441d09a 100644
--- a/test/tint/builtins/gen/literal/textureGatherCompare/f585cc.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureGatherCompare/f585cc.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 48
+; Bound: 51
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -44,45 +44,48 @@
          %15 = OpTypeFunction %void
          %22 = OpTypeSampledImage %11
     %v3float = OpTypeVector %float 3
-    %float_0 = OpConstant %float 0
+    %v2float = OpTypeVector %float 2
+    %float_1 = OpConstant %float 1
+         %27 = OpConstantComposite %v2float %float_1 %float_1
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
-    %float_1 = OpConstant %float 1
       %v2int = OpTypeVector %int 2
-         %32 = OpConstantNull %v2int
+         %35 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %35 = OpTypeFunction %v4float
+         %38 = OpTypeFunction %v4float
 %textureGatherCompare_f585cc = OpFunction %void None %15
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
          %20 = OpLoad %14 %arg_1
          %21 = OpLoad %11 %arg_0
          %23 = OpSampledImage %22 %21 %20
-         %26 = OpConvertSToF %float %int_1
-         %29 = OpCompositeConstruct %v3float %float_0 %float_0 %26
-         %19 = OpImageDrefGather %v4float %23 %29 %float_1 ConstOffset %32
+         %28 = OpCompositeExtract %float %27 0
+         %29 = OpCompositeExtract %float %27 1
+         %30 = OpConvertSToF %float %int_1
+         %33 = OpCompositeConstruct %v3float %28 %29 %30
+         %19 = OpImageDrefGather %v4float %23 %33 %float_1 ConstOffset %35
                OpStore %res %19
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %35
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureGatherCompare_f585cc
+%vertex_main_inner = OpFunction %v4float None %38
+         %40 = OpLabel
+         %41 = OpFunctionCall %void %textureGatherCompare_f585cc
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
-         %40 = OpLabel
-         %41 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %41
+         %43 = OpLabel
+         %44 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %44
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %15
-         %43 = OpLabel
-         %44 = OpFunctionCall %void %textureGatherCompare_f585cc
+         %46 = OpLabel
+         %47 = OpFunctionCall %void %textureGatherCompare_f585cc
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %15
-         %46 = OpLabel
-         %47 = OpFunctionCall %void %textureGatherCompare_f585cc
+         %49 = OpLabel
+         %50 = OpFunctionCall %void %textureGatherCompare_f585cc
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureGatherCompare/f585cc.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureGatherCompare/f585cc.wgsl.expected.wgsl
index 212777e..c4a766e 100644
--- a/test/tint/builtins/gen/literal/textureGatherCompare/f585cc.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureGatherCompare/f585cc.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(1) var arg_1 : sampler_comparison;
 
 fn textureGatherCompare_f585cc() {
-  var res : vec4<f32> = textureGatherCompare(arg_0, arg_1, vec2<f32>(), 1i, 1.0f, vec2<i32>());
+  var res : vec4<f32> = textureGatherCompare(arg_0, arg_1, vec2<f32>(1.0f), 1i, 1.0f, vec2<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureLoad/019da0.wgsl b/test/tint/builtins/gen/literal/textureLoad/019da0.wgsl
index 5f879ee..7740c87 100644
--- a/test/tint/builtins/gen/literal/textureLoad/019da0.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/019da0.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureLoad(texture: texture_3d<f32>, coords: vec3<i32>, level: u32) -> vec4<f32>
 fn textureLoad_019da0() {
-  var res: vec4<f32> = textureLoad(arg_0, vec3<i32>(), 1u);
+  var res: vec4<f32> = textureLoad(arg_0, vec3<i32>(1i), 1u);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureLoad/019da0.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/019da0.wgsl.expected.dxc.hlsl
index 170fe3b..a6529f3 100644
--- a/test/tint/builtins/gen/literal/textureLoad/019da0.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/019da0.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 Texture3D<float4> arg_0 : register(t0, space1);
 
 void textureLoad_019da0() {
-  float4 res = arg_0.Load(int4(0, 0, 0, int(1u)));
+  float4 res = arg_0.Load(int4((1).xxx, int(1u)));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/019da0.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/019da0.wgsl.expected.fxc.hlsl
index 170fe3b..a6529f3 100644
--- a/test/tint/builtins/gen/literal/textureLoad/019da0.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/019da0.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 Texture3D<float4> arg_0 : register(t0, space1);
 
 void textureLoad_019da0() {
-  float4 res = arg_0.Load(int4(0, 0, 0, int(1u)));
+  float4 res = arg_0.Load(int4((1).xxx, int(1u)));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/019da0.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/019da0.wgsl.expected.glsl
index faaf797..c50964f 100644
--- a/test/tint/builtins/gen/literal/textureLoad/019da0.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/019da0.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 uniform highp sampler3D arg_0_1;
 void textureLoad_019da0() {
-  vec4 res = texelFetch(arg_0_1, ivec3(0), int(1u));
+  vec4 res = texelFetch(arg_0_1, ivec3(1), int(1u));
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 
 uniform highp sampler3D arg_0_1;
 void textureLoad_019da0() {
-  vec4 res = texelFetch(arg_0_1, ivec3(0), int(1u));
+  vec4 res = texelFetch(arg_0_1, ivec3(1), int(1u));
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 uniform highp sampler3D arg_0_1;
 void textureLoad_019da0() {
-  vec4 res = texelFetch(arg_0_1, ivec3(0), int(1u));
+  vec4 res = texelFetch(arg_0_1, ivec3(1), int(1u));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureLoad/019da0.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureLoad/019da0.wgsl.expected.msl
index 045982a..f65f491 100644
--- a/test/tint/builtins/gen/literal/textureLoad/019da0.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/019da0.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureLoad_019da0(texture3d<float, access::sample> tint_symbol_1) {
-  float4 res = tint_symbol_1.read(uint3(int3(0)), 1u);
+  float4 res = tint_symbol_1.read(uint3(int3(1)), 1u);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/019da0.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/019da0.wgsl.expected.spvasm
index eb8a7d1..d3c19e8 100644
--- a/test/tint/builtins/gen/literal/textureLoad/019da0.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/019da0.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 39
+; Bound: 40
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -38,39 +38,40 @@
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
-         %20 = OpConstantNull %v3int
+      %int_1 = OpConstant %int 1
+         %21 = OpConstantComposite %v3int %int_1 %int_1 %int_1
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %25 = OpTypeFunction %v4float
+         %26 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_019da0 = OpFunction %void None %12
          %15 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
          %17 = OpLoad %11 %arg_0
-         %16 = OpImageFetch %v4float %17 %20 Lod %uint_1
+         %16 = OpImageFetch %v4float %17 %21 Lod %uint_1
                OpStore %res %16
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %25
-         %27 = OpLabel
-         %28 = OpFunctionCall %void %textureLoad_019da0
+%vertex_main_inner = OpFunction %v4float None %26
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %textureLoad_019da0
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %30 = OpLabel
-         %31 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %31
+         %31 = OpLabel
+         %32 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %32
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureLoad_019da0
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureLoad_019da0
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureLoad_019da0
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %textureLoad_019da0
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureLoad/019da0.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/019da0.wgsl.expected.wgsl
index bff3b36..6be5845 100644
--- a/test/tint/builtins/gen/literal/textureLoad/019da0.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/019da0.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_3d<f32>;
 
 fn textureLoad_019da0() {
-  var res : vec4<f32> = textureLoad(arg_0, vec3<i32>(), 1u);
+  var res : vec4<f32> = textureLoad(arg_0, vec3<i32>(1i), 1u);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureLoad/026217.wgsl b/test/tint/builtins/gen/literal/textureLoad/026217.wgsl
index 4a46227..c975fc8 100644
--- a/test/tint/builtins/gen/literal/textureLoad/026217.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/026217.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureLoad(texture: texture_2d_array<u32>, coords: vec2<u32>, array_index: u32, level: i32) -> vec4<u32>
 fn textureLoad_026217() {
-  var res: vec4<u32> = textureLoad(arg_0, vec2<u32>(), 1u, 1i);
+  var res: vec4<u32> = textureLoad(arg_0, vec2<u32>(1u), 1u, 1i);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureLoad/026217.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/026217.wgsl.expected.dxc.hlsl
index 5deed86..9e62a78 100644
--- a/test/tint/builtins/gen/literal/textureLoad/026217.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/026217.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 void textureLoad_026217() {
-  uint4 res = arg_0.Load(uint4(0u, 0u, 1u, uint(1)));
+  uint4 res = arg_0.Load(uint4(uint3((1u).xx, 1u), uint(1)));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/026217.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/026217.wgsl.expected.fxc.hlsl
index 5deed86..9e62a78 100644
--- a/test/tint/builtins/gen/literal/textureLoad/026217.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/026217.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 void textureLoad_026217() {
-  uint4 res = arg_0.Load(uint4(0u, 0u, 1u, uint(1)));
+  uint4 res = arg_0.Load(uint4(uint3((1u).xx, 1u), uint(1)));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/026217.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/026217.wgsl.expected.glsl
index 4647792..cc5bd39 100644
--- a/test/tint/builtins/gen/literal/textureLoad/026217.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/026217.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 uniform highp usampler2DArray arg_0_1;
 void textureLoad_026217() {
-  uvec4 res = texelFetch(arg_0_1, ivec3(uvec3(0u, 0u, 1u)), 1);
+  uvec4 res = texelFetch(arg_0_1, ivec3(uvec3(uvec2(1u), 1u)), 1);
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 
 uniform highp usampler2DArray arg_0_1;
 void textureLoad_026217() {
-  uvec4 res = texelFetch(arg_0_1, ivec3(uvec3(0u, 0u, 1u)), 1);
+  uvec4 res = texelFetch(arg_0_1, ivec3(uvec3(uvec2(1u), 1u)), 1);
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 uniform highp usampler2DArray arg_0_1;
 void textureLoad_026217() {
-  uvec4 res = texelFetch(arg_0_1, ivec3(uvec3(0u, 0u, 1u)), 1);
+  uvec4 res = texelFetch(arg_0_1, ivec3(uvec3(uvec2(1u), 1u)), 1);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureLoad/026217.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureLoad/026217.wgsl.expected.msl
index 6b84ada..5b3b457 100644
--- a/test/tint/builtins/gen/literal/textureLoad/026217.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/026217.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureLoad_026217(texture2d_array<uint, access::sample> tint_symbol_1) {
-  uint4 res = tint_symbol_1.read(uint2(uint2(0u)), 1u, 1);
+  uint4 res = tint_symbol_1.read(uint2(uint2(1u)), 1u, 1);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/026217.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/026217.wgsl.expected.spvasm
index 8bb3a86..e0eeadc 100644
--- a/test/tint/builtins/gen/literal/textureLoad/026217.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/026217.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 43
+; Bound: 46
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -39,42 +39,45 @@
          %13 = OpTypeFunction %void
      %v4uint = OpTypeVector %uint 4
      %v3uint = OpTypeVector %uint 3
-     %uint_0 = OpConstant %uint 0
+     %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %23 = OpConstantComposite %v3uint %uint_0 %uint_0 %uint_1
+         %23 = OpConstantComposite %v2uint %uint_1 %uint_1
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %28 = OpConstantNull %v4uint
-         %29 = OpTypeFunction %v4float
+         %31 = OpConstantNull %v4uint
+         %32 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_026217 = OpFunction %void None %13
          %16 = OpLabel
-        %res = OpVariable %_ptr_Function_v4uint Function %28
+        %res = OpVariable %_ptr_Function_v4uint Function %31
          %19 = OpLoad %11 %arg_0
-         %17 = OpImageFetch %v4uint %19 %23 Lod %int_1
+         %24 = OpCompositeExtract %uint %23 0
+         %25 = OpCompositeExtract %uint %23 1
+         %26 = OpCompositeConstruct %v3uint %24 %25 %uint_1
+         %17 = OpImageFetch %v4uint %19 %26 Lod %int_1
                OpStore %res %17
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %29
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %textureLoad_026217
+%vertex_main_inner = OpFunction %v4float None %32
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %textureLoad_026217
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %34 = OpLabel
-         %35 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %35
+         %37 = OpLabel
+         %38 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %38
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureLoad_026217
+         %41 = OpLabel
+         %42 = OpFunctionCall %void %textureLoad_026217
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureLoad_026217
+         %44 = OpLabel
+         %45 = OpFunctionCall %void %textureLoad_026217
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureLoad/026217.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/026217.wgsl.expected.wgsl
index 927fb49..1e8d2fd 100644
--- a/test/tint/builtins/gen/literal/textureLoad/026217.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/026217.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_2d_array<u32>;
 
 fn textureLoad_026217() {
-  var res : vec4<u32> = textureLoad(arg_0, vec2<u32>(), 1u, 1i);
+  var res : vec4<u32> = textureLoad(arg_0, vec2<u32>(1u), 1u, 1i);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureLoad/04b911.wgsl b/test/tint/builtins/gen/literal/textureLoad/04b911.wgsl
index a7ebfdf..827a434 100644
--- a/test/tint/builtins/gen/literal/textureLoad/04b911.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/04b911.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureLoad(texture: texture_depth_2d_array, coords: vec2<u32>, array_index: i32, level: u32) -> f32
 fn textureLoad_04b911() {
-  var res: f32 = textureLoad(arg_0, vec2<u32>(), 1i, 1u);
+  var res: f32 = textureLoad(arg_0, vec2<u32>(1u), 1i, 1u);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureLoad/04b911.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/04b911.wgsl.expected.dxc.hlsl
index 5b1cf98..7f98f2a 100644
--- a/test/tint/builtins/gen/literal/textureLoad/04b911.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/04b911.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DArray arg_0 : register(t0, space1);
 
 void textureLoad_04b911() {
-  float res = arg_0.Load(uint4(0u, 0u, uint(1), 1u)).x;
+  float res = arg_0.Load(uint4(uint3((1u).xx, uint(1)), 1u)).x;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/04b911.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/04b911.wgsl.expected.fxc.hlsl
index 5b1cf98..7f98f2a 100644
--- a/test/tint/builtins/gen/literal/textureLoad/04b911.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/04b911.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DArray arg_0 : register(t0, space1);
 
 void textureLoad_04b911() {
-  float res = arg_0.Load(uint4(0u, 0u, uint(1), 1u)).x;
+  float res = arg_0.Load(uint4(uint3((1u).xx, uint(1)), 1u)).x;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/04b911.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/04b911.wgsl.expected.glsl
index 045c7b8..57a0806 100644
--- a/test/tint/builtins/gen/literal/textureLoad/04b911.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/04b911.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 uniform highp sampler2DArray arg_0_1;
 void textureLoad_04b911() {
-  float res = texelFetch(arg_0_1, ivec3(uvec3(0u, 0u, uint(1))), int(1u)).x;
+  float res = texelFetch(arg_0_1, ivec3(uvec3(uvec2(1u), uint(1))), int(1u)).x;
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 
 uniform highp sampler2DArray arg_0_1;
 void textureLoad_04b911() {
-  float res = texelFetch(arg_0_1, ivec3(uvec3(0u, 0u, uint(1))), int(1u)).x;
+  float res = texelFetch(arg_0_1, ivec3(uvec3(uvec2(1u), uint(1))), int(1u)).x;
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 uniform highp sampler2DArray arg_0_1;
 void textureLoad_04b911() {
-  float res = texelFetch(arg_0_1, ivec3(uvec3(0u, 0u, uint(1))), int(1u)).x;
+  float res = texelFetch(arg_0_1, ivec3(uvec3(uvec2(1u), uint(1))), int(1u)).x;
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureLoad/04b911.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureLoad/04b911.wgsl.expected.msl
index 5b8aa49..c01b94e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/04b911.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/04b911.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureLoad_04b911(depth2d_array<float, access::sample> tint_symbol_1) {
-  float res = tint_symbol_1.read(uint2(uint2(0u)), 1, 1u);
+  float res = tint_symbol_1.read(uint2(uint2(1u)), 1, 1u);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/04b911.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/04b911.wgsl.expected.spvasm
index 29b2cb3..9eb7c41 100644
--- a/test/tint/builtins/gen/literal/textureLoad/04b911.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/04b911.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 43
+; Bound: 46
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -38,43 +38,46 @@
          %12 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
-     %uint_0 = OpConstant %uint 0
+     %v2uint = OpTypeVector %uint 2
+     %uint_1 = OpConstant %uint 1
+         %23 = OpConstantComposite %v2uint %uint_1 %uint_1
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
-     %uint_1 = OpConstant %uint 1
 %_ptr_Function_float = OpTypePointer Function %float
-         %29 = OpTypeFunction %v4float
+         %32 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_04b911 = OpFunction %void None %12
          %15 = OpLabel
         %res = OpVariable %_ptr_Function_float Function %8
          %18 = OpLoad %11 %arg_0
-         %22 = OpBitcast %uint %int_1
-         %25 = OpCompositeConstruct %v3uint %uint_0 %uint_0 %22
-         %17 = OpImageFetch %v4float %18 %25 Lod %uint_1
+         %24 = OpCompositeExtract %uint %23 0
+         %25 = OpCompositeExtract %uint %23 1
+         %26 = OpBitcast %uint %int_1
+         %29 = OpCompositeConstruct %v3uint %24 %25 %26
+         %17 = OpImageFetch %v4float %18 %29 Lod %uint_1
          %16 = OpCompositeExtract %float %17 0
                OpStore %res %16
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %29
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %textureLoad_04b911
+%vertex_main_inner = OpFunction %v4float None %32
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %textureLoad_04b911
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %34 = OpLabel
-         %35 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %35
+         %37 = OpLabel
+         %38 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %38
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureLoad_04b911
+         %41 = OpLabel
+         %42 = OpFunctionCall %void %textureLoad_04b911
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureLoad_04b911
+         %44 = OpLabel
+         %45 = OpFunctionCall %void %textureLoad_04b911
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureLoad/04b911.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/04b911.wgsl.expected.wgsl
index f1d96a8..6a1b6bf 100644
--- a/test/tint/builtins/gen/literal/textureLoad/04b911.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/04b911.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_depth_2d_array;
 
 fn textureLoad_04b911() {
-  var res : f32 = textureLoad(arg_0, vec2<u32>(), 1i, 1u);
+  var res : f32 = textureLoad(arg_0, vec2<u32>(1u), 1i, 1u);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureLoad/168dc8.wgsl b/test/tint/builtins/gen/literal/textureLoad/168dc8.wgsl
index 56e1e07..9001543 100644
--- a/test/tint/builtins/gen/literal/textureLoad/168dc8.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/168dc8.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureLoad(texture: texture_2d_array<i32>, coords: vec2<u32>, array_index: i32, level: i32) -> vec4<i32>
 fn textureLoad_168dc8() {
-  var res: vec4<i32> = textureLoad(arg_0, vec2<u32>(), 1i, 1i);
+  var res: vec4<i32> = textureLoad(arg_0, vec2<u32>(1u), 1i, 1i);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureLoad/168dc8.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/168dc8.wgsl.expected.dxc.hlsl
index 78a1282..b00f60d 100644
--- a/test/tint/builtins/gen/literal/textureLoad/168dc8.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/168dc8.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 void textureLoad_168dc8() {
-  int4 res = arg_0.Load(uint4(0u, 0u, uint(1), uint(1)));
+  int4 res = arg_0.Load(uint4(uint3((1u).xx, uint(1)), uint(1)));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/168dc8.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/168dc8.wgsl.expected.fxc.hlsl
index 78a1282..b00f60d 100644
--- a/test/tint/builtins/gen/literal/textureLoad/168dc8.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/168dc8.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 void textureLoad_168dc8() {
-  int4 res = arg_0.Load(uint4(0u, 0u, uint(1), uint(1)));
+  int4 res = arg_0.Load(uint4(uint3((1u).xx, uint(1)), uint(1)));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/168dc8.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/168dc8.wgsl.expected.glsl
index 208d0ce..766be6f 100644
--- a/test/tint/builtins/gen/literal/textureLoad/168dc8.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/168dc8.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 uniform highp isampler2DArray arg_0_1;
 void textureLoad_168dc8() {
-  ivec4 res = texelFetch(arg_0_1, ivec3(uvec3(0u, 0u, uint(1))), 1);
+  ivec4 res = texelFetch(arg_0_1, ivec3(uvec3(uvec2(1u), uint(1))), 1);
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 
 uniform highp isampler2DArray arg_0_1;
 void textureLoad_168dc8() {
-  ivec4 res = texelFetch(arg_0_1, ivec3(uvec3(0u, 0u, uint(1))), 1);
+  ivec4 res = texelFetch(arg_0_1, ivec3(uvec3(uvec2(1u), uint(1))), 1);
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 uniform highp isampler2DArray arg_0_1;
 void textureLoad_168dc8() {
-  ivec4 res = texelFetch(arg_0_1, ivec3(uvec3(0u, 0u, uint(1))), 1);
+  ivec4 res = texelFetch(arg_0_1, ivec3(uvec3(uvec2(1u), uint(1))), 1);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureLoad/168dc8.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureLoad/168dc8.wgsl.expected.msl
index 407397f..2563a9a 100644
--- a/test/tint/builtins/gen/literal/textureLoad/168dc8.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/168dc8.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureLoad_168dc8(texture2d_array<int, access::sample> tint_symbol_1) {
-  int4 res = tint_symbol_1.read(uint2(uint2(0u)), 1, 1);
+  int4 res = tint_symbol_1.read(uint2(uint2(1u)), 1, 1);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/168dc8.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/168dc8.wgsl.expected.spvasm
index 635d95a..e212e56 100644
--- a/test/tint/builtins/gen/literal/textureLoad/168dc8.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/168dc8.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 43
+; Bound: 47
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -40,41 +40,45 @@
       %v4int = OpTypeVector %int 4
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
-     %uint_0 = OpConstant %uint 0
+     %v2uint = OpTypeVector %uint 2
+     %uint_1 = OpConstant %uint 1
+         %24 = OpConstantComposite %v2uint %uint_1 %uint_1
       %int_1 = OpConstant %int 1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %28 = OpConstantNull %v4int
-         %29 = OpTypeFunction %v4float
+         %32 = OpConstantNull %v4int
+         %33 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_168dc8 = OpFunction %void None %13
          %16 = OpLabel
-        %res = OpVariable %_ptr_Function_v4int Function %28
+        %res = OpVariable %_ptr_Function_v4int Function %32
          %19 = OpLoad %11 %arg_0
-         %23 = OpBitcast %uint %int_1
-         %25 = OpCompositeConstruct %v3uint %uint_0 %uint_0 %23
-         %17 = OpImageFetch %v4int %19 %25 Lod %int_1
+         %25 = OpCompositeExtract %uint %24 0
+         %26 = OpCompositeExtract %uint %24 1
+         %27 = OpBitcast %uint %int_1
+         %29 = OpCompositeConstruct %v3uint %25 %26 %27
+         %17 = OpImageFetch %v4int %19 %29 Lod %int_1
                OpStore %res %17
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %29
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %textureLoad_168dc8
+%vertex_main_inner = OpFunction %v4float None %33
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureLoad_168dc8
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %34 = OpLabel
-         %35 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %35
+         %38 = OpLabel
+         %39 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %39
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureLoad_168dc8
+         %42 = OpLabel
+         %43 = OpFunctionCall %void %textureLoad_168dc8
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureLoad_168dc8
+         %45 = OpLabel
+         %46 = OpFunctionCall %void %textureLoad_168dc8
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureLoad/168dc8.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/168dc8.wgsl.expected.wgsl
index 4a87cc4..300c1ce 100644
--- a/test/tint/builtins/gen/literal/textureLoad/168dc8.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/168dc8.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_2d_array<i32>;
 
 fn textureLoad_168dc8() {
-  var res : vec4<i32> = textureLoad(arg_0, vec2<u32>(), 1i, 1i);
+  var res : vec4<i32> = textureLoad(arg_0, vec2<u32>(1u), 1i, 1i);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureLoad/19cf87.wgsl b/test/tint/builtins/gen/literal/textureLoad/19cf87.wgsl
index 20a8cd8..5a70d33 100644
--- a/test/tint/builtins/gen/literal/textureLoad/19cf87.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/19cf87.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureLoad(texture: texture_depth_2d, coords: vec2<i32>, level: i32) -> f32
 fn textureLoad_19cf87() {
-  var res: f32 = textureLoad(arg_0, vec2<i32>(), 1i);
+  var res: f32 = textureLoad(arg_0, vec2<i32>(1i), 1i);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureLoad/19cf87.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/19cf87.wgsl.expected.dxc.hlsl
index 152b4a7..67e6c7f 100644
--- a/test/tint/builtins/gen/literal/textureLoad/19cf87.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/19cf87.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 Texture2D arg_0 : register(t0, space1);
 
 void textureLoad_19cf87() {
-  float res = arg_0.Load(int3(0, 0, 1)).x;
+  float res = arg_0.Load(int3((1).xx, 1)).x;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/19cf87.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/19cf87.wgsl.expected.fxc.hlsl
index 152b4a7..67e6c7f 100644
--- a/test/tint/builtins/gen/literal/textureLoad/19cf87.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/19cf87.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 Texture2D arg_0 : register(t0, space1);
 
 void textureLoad_19cf87() {
-  float res = arg_0.Load(int3(0, 0, 1)).x;
+  float res = arg_0.Load(int3((1).xx, 1)).x;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/19cf87.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/19cf87.wgsl.expected.glsl
index baa484d..ca25169 100644
--- a/test/tint/builtins/gen/literal/textureLoad/19cf87.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/19cf87.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 uniform highp sampler2D arg_0_1;
 void textureLoad_19cf87() {
-  float res = texelFetch(arg_0_1, ivec2(0), 1).x;
+  float res = texelFetch(arg_0_1, ivec2(1), 1).x;
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 
 uniform highp sampler2D arg_0_1;
 void textureLoad_19cf87() {
-  float res = texelFetch(arg_0_1, ivec2(0), 1).x;
+  float res = texelFetch(arg_0_1, ivec2(1), 1).x;
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 uniform highp sampler2D arg_0_1;
 void textureLoad_19cf87() {
-  float res = texelFetch(arg_0_1, ivec2(0), 1).x;
+  float res = texelFetch(arg_0_1, ivec2(1), 1).x;
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureLoad/19cf87.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureLoad/19cf87.wgsl.expected.msl
index adf9075..1fdb40c 100644
--- a/test/tint/builtins/gen/literal/textureLoad/19cf87.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/19cf87.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureLoad_19cf87(depth2d<float, access::sample> tint_symbol_1) {
-  float res = tint_symbol_1.read(uint2(int2(0)), 1);
+  float res = tint_symbol_1.read(uint2(int2(1)), 1);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/19cf87.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/19cf87.wgsl.expected.spvasm
index 5e9484a..c98b894 100644
--- a/test/tint/builtins/gen/literal/textureLoad/19cf87.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/19cf87.wgsl.expected.spvasm
@@ -38,8 +38,8 @@
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
-         %21 = OpConstantNull %v2int
       %int_1 = OpConstant %int 1
+         %22 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_float = OpTypePointer Function %float
          %25 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
@@ -47,7 +47,7 @@
          %15 = OpLabel
         %res = OpVariable %_ptr_Function_float Function %8
          %18 = OpLoad %11 %arg_0
-         %17 = OpImageFetch %v4float %18 %21 Lod %int_1
+         %17 = OpImageFetch %v4float %18 %22 Lod %int_1
          %16 = OpCompositeExtract %float %17 0
                OpStore %res %16
                OpReturn
diff --git a/test/tint/builtins/gen/literal/textureLoad/19cf87.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/19cf87.wgsl.expected.wgsl
index 9a14b92..118ecdc 100644
--- a/test/tint/builtins/gen/literal/textureLoad/19cf87.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/19cf87.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_depth_2d;
 
 fn textureLoad_19cf87() {
-  var res : f32 = textureLoad(arg_0, vec2<i32>(), 1i);
+  var res : f32 = textureLoad(arg_0, vec2<i32>(1i), 1i);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureLoad/1b051f.wgsl b/test/tint/builtins/gen/literal/textureLoad/1b051f.wgsl
index f137b59..658102b 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1b051f.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/1b051f.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureLoad(texture: texture_2d_array<u32>, coords: vec2<i32>, array_index: u32, level: u32) -> vec4<u32>
 fn textureLoad_1b051f() {
-  var res: vec4<u32> = textureLoad(arg_0, vec2<i32>(), 1u, 1u);
+  var res: vec4<u32> = textureLoad(arg_0, vec2<i32>(1i), 1u, 1u);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureLoad/1b051f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/1b051f.wgsl.expected.dxc.hlsl
index 52b2377..b022c62 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1b051f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/1b051f.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 void textureLoad_1b051f() {
-  uint4 res = arg_0.Load(int4(0, 0, int(1u), int(1u)));
+  uint4 res = arg_0.Load(int4(int3((1).xx, int(1u)), int(1u)));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/1b051f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/1b051f.wgsl.expected.fxc.hlsl
index 52b2377..b022c62 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1b051f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/1b051f.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 void textureLoad_1b051f() {
-  uint4 res = arg_0.Load(int4(0, 0, int(1u), int(1u)));
+  uint4 res = arg_0.Load(int4(int3((1).xx, int(1u)), int(1u)));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/1b051f.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/1b051f.wgsl.expected.glsl
index 99a31bb..1d3c84e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1b051f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/1b051f.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 uniform highp usampler2DArray arg_0_1;
 void textureLoad_1b051f() {
-  uvec4 res = texelFetch(arg_0_1, ivec3(0, 0, int(1u)), int(1u));
+  uvec4 res = texelFetch(arg_0_1, ivec3(ivec2(1), int(1u)), int(1u));
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 
 uniform highp usampler2DArray arg_0_1;
 void textureLoad_1b051f() {
-  uvec4 res = texelFetch(arg_0_1, ivec3(0, 0, int(1u)), int(1u));
+  uvec4 res = texelFetch(arg_0_1, ivec3(ivec2(1), int(1u)), int(1u));
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 uniform highp usampler2DArray arg_0_1;
 void textureLoad_1b051f() {
-  uvec4 res = texelFetch(arg_0_1, ivec3(0, 0, int(1u)), int(1u));
+  uvec4 res = texelFetch(arg_0_1, ivec3(ivec2(1), int(1u)), int(1u));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureLoad/1b051f.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureLoad/1b051f.wgsl.expected.msl
index 77655f2..8de4367a 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1b051f.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/1b051f.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureLoad_1b051f(texture2d_array<uint, access::sample> tint_symbol_1) {
-  uint4 res = tint_symbol_1.read(uint2(int2(0)), 1u, 1u);
+  uint4 res = tint_symbol_1.read(uint2(int2(1)), 1u, 1u);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/1b051f.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/1b051f.wgsl.expected.spvasm
index 952a0fb..bbf31ea 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1b051f.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/1b051f.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 43
+; Bound: 47
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -40,41 +40,45 @@
      %v4uint = OpTypeVector %uint 4
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
-      %int_0 = OpConstant %int 0
+      %v2int = OpTypeVector %int 2
+      %int_1 = OpConstant %int 1
+         %24 = OpConstantComposite %v2int %int_1 %int_1
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %28 = OpConstantNull %v4uint
-         %29 = OpTypeFunction %v4float
+         %32 = OpConstantNull %v4uint
+         %33 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_1b051f = OpFunction %void None %13
          %16 = OpLabel
-        %res = OpVariable %_ptr_Function_v4uint Function %28
+        %res = OpVariable %_ptr_Function_v4uint Function %32
          %19 = OpLoad %11 %arg_0
-         %23 = OpBitcast %int %uint_1
-         %25 = OpCompositeConstruct %v3int %int_0 %int_0 %23
-         %17 = OpImageFetch %v4uint %19 %25 Lod %uint_1
+         %25 = OpCompositeExtract %int %24 0
+         %26 = OpCompositeExtract %int %24 1
+         %27 = OpBitcast %int %uint_1
+         %29 = OpCompositeConstruct %v3int %25 %26 %27
+         %17 = OpImageFetch %v4uint %19 %29 Lod %uint_1
                OpStore %res %17
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %29
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %textureLoad_1b051f
+%vertex_main_inner = OpFunction %v4float None %33
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureLoad_1b051f
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %34 = OpLabel
-         %35 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %35
+         %38 = OpLabel
+         %39 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %39
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureLoad_1b051f
+         %42 = OpLabel
+         %43 = OpFunctionCall %void %textureLoad_1b051f
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureLoad_1b051f
+         %45 = OpLabel
+         %46 = OpFunctionCall %void %textureLoad_1b051f
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureLoad/1b051f.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/1b051f.wgsl.expected.wgsl
index 99f3b15..a4543cf 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1b051f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/1b051f.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_2d_array<u32>;
 
 fn textureLoad_1b051f() {
-  var res : vec4<u32> = textureLoad(arg_0, vec2<i32>(), 1u, 1u);
+  var res : vec4<u32> = textureLoad(arg_0, vec2<i32>(1i), 1u, 1u);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureLoad/1bfdfb.wgsl b/test/tint/builtins/gen/literal/textureLoad/1bfdfb.wgsl
index 224ae8b..8fca51e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1bfdfb.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/1bfdfb.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureLoad(texture: texture_external, coords: vec2<u32>) -> vec4<f32>
 fn textureLoad_1bfdfb() {
-  var res: vec4<f32> = textureLoad(arg_0, vec2<u32>());
+  var res: vec4<f32> = textureLoad(arg_0, vec2<u32>(1u));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureLoad/1bfdfb.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/1bfdfb.wgsl.expected.dxc.hlsl
index a4dd107..28536b3 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1bfdfb.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/1bfdfb.wgsl.expected.dxc.hlsl
@@ -80,7 +80,7 @@
 }
 
 void textureLoad_1bfdfb() {
-  float4 res = textureLoadExternal(arg_0, ext_tex_plane_1, (0u).xx, tint_symbol_1(ext_tex_params, 0u));
+  float4 res = textureLoadExternal(arg_0, ext_tex_plane_1, (1u).xx, tint_symbol_1(ext_tex_params, 0u));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/1bfdfb.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/1bfdfb.wgsl.expected.fxc.hlsl
index a4dd107..28536b3 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1bfdfb.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/1bfdfb.wgsl.expected.fxc.hlsl
@@ -80,7 +80,7 @@
 }
 
 void textureLoad_1bfdfb() {
-  float4 res = textureLoadExternal(arg_0, ext_tex_plane_1, (0u).xx, tint_symbol_1(ext_tex_params, 0u));
+  float4 res = textureLoadExternal(arg_0, ext_tex_plane_1, (1u).xx, tint_symbol_1(ext_tex_params, 0u));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/1bfdfb.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/1bfdfb.wgsl.expected.glsl
index e65e748..2c2df83 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1bfdfb.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/1bfdfb.wgsl.expected.glsl
@@ -49,7 +49,7 @@
 uniform highp sampler2D arg_0_1;
 uniform highp sampler2D ext_tex_plane_1_1;
 void textureLoad_1bfdfb() {
-  vec4 res = textureLoadExternal(arg_0_1, ext_tex_plane_1_1, uvec2(0u), ext_tex_params.inner);
+  vec4 res = textureLoadExternal(arg_0_1, ext_tex_plane_1_1, uvec2(1u), ext_tex_params.inner);
 }
 
 vec4 vertex_main() {
@@ -117,7 +117,7 @@
 uniform highp sampler2D arg_0_1;
 uniform highp sampler2D ext_tex_plane_1_1;
 void textureLoad_1bfdfb() {
-  vec4 res = textureLoadExternal(arg_0_1, ext_tex_plane_1_1, uvec2(0u), ext_tex_params.inner);
+  vec4 res = textureLoadExternal(arg_0_1, ext_tex_plane_1_1, uvec2(1u), ext_tex_params.inner);
 }
 
 void fragment_main() {
@@ -179,7 +179,7 @@
 uniform highp sampler2D arg_0_1;
 uniform highp sampler2D ext_tex_plane_1_1;
 void textureLoad_1bfdfb() {
-  vec4 res = textureLoadExternal(arg_0_1, ext_tex_plane_1_1, uvec2(0u), ext_tex_params.inner);
+  vec4 res = textureLoadExternal(arg_0_1, ext_tex_plane_1_1, uvec2(1u), ext_tex_params.inner);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureLoad/1bfdfb.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureLoad/1bfdfb.wgsl.expected.msl
index e5b7c01..dfb5020 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1bfdfb.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/1bfdfb.wgsl.expected.msl
@@ -58,7 +58,7 @@
 }
 
 void textureLoad_1bfdfb(texture2d<float, access::sample> tint_symbol_1, texture2d<float, access::sample> tint_symbol_2, const constant ExternalTextureParams* const tint_symbol_3) {
-  float4 res = textureLoadExternal(tint_symbol_1, tint_symbol_2, uint2(0u), *(tint_symbol_3));
+  float4 res = textureLoadExternal(tint_symbol_1, tint_symbol_2, uint2(1u), *(tint_symbol_3));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/1bfdfb.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/1bfdfb.wgsl.expected.spvasm
index 4ac1277..72a5227 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1bfdfb.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/1bfdfb.wgsl.expected.spvasm
@@ -114,7 +114,7 @@
          %93 = OpConstantNull %uint
        %void = OpTypeVoid
         %111 = OpTypeFunction %void
-        %118 = OpConstantNull %v2uint
+        %118 = OpConstantComposite %v2uint %uint_1 %uint_1
      %uint_0 = OpConstant %uint 0
 %_ptr_Uniform_ExternalTextureParams = OpTypePointer Uniform %ExternalTextureParams
 %_ptr_Function_v4float = OpTypePointer Function %v4float
diff --git a/test/tint/builtins/gen/literal/textureLoad/1bfdfb.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/1bfdfb.wgsl.expected.wgsl
index a67b2bf..0f0f7e5 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1bfdfb.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/1bfdfb.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_external;
 
 fn textureLoad_1bfdfb() {
-  var res : vec4<f32> = textureLoad(arg_0, vec2<u32>());
+  var res : vec4<f32> = textureLoad(arg_0, vec2<u32>(1u));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureLoad/1c562a.wgsl b/test/tint/builtins/gen/literal/textureLoad/1c562a.wgsl
index 147ef2e..a58f7f1 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1c562a.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/1c562a.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureLoad(texture: texture_3d<u32>, coords: vec3<u32>, level: u32) -> vec4<u32>
 fn textureLoad_1c562a() {
-  var res: vec4<u32> = textureLoad(arg_0, vec3<u32>(), 1u);
+  var res: vec4<u32> = textureLoad(arg_0, vec3<u32>(1u), 1u);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureLoad/1c562a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/1c562a.wgsl.expected.dxc.hlsl
index 69fa517..105cec9 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1c562a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/1c562a.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 Texture3D<uint4> arg_0 : register(t0, space1);
 
 void textureLoad_1c562a() {
-  uint4 res = arg_0.Load(uint4(0u, 0u, 0u, 1u));
+  uint4 res = arg_0.Load(uint4((1u).xxx, 1u));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/1c562a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/1c562a.wgsl.expected.fxc.hlsl
index 69fa517..105cec9 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1c562a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/1c562a.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 Texture3D<uint4> arg_0 : register(t0, space1);
 
 void textureLoad_1c562a() {
-  uint4 res = arg_0.Load(uint4(0u, 0u, 0u, 1u));
+  uint4 res = arg_0.Load(uint4((1u).xxx, 1u));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/1c562a.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/1c562a.wgsl.expected.glsl
index 5d0ca1b..a2ea319 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1c562a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/1c562a.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 uniform highp usampler3D arg_0_1;
 void textureLoad_1c562a() {
-  uvec4 res = texelFetch(arg_0_1, ivec3(uvec3(0u)), int(1u));
+  uvec4 res = texelFetch(arg_0_1, ivec3(uvec3(1u)), int(1u));
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 
 uniform highp usampler3D arg_0_1;
 void textureLoad_1c562a() {
-  uvec4 res = texelFetch(arg_0_1, ivec3(uvec3(0u)), int(1u));
+  uvec4 res = texelFetch(arg_0_1, ivec3(uvec3(1u)), int(1u));
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 uniform highp usampler3D arg_0_1;
 void textureLoad_1c562a() {
-  uvec4 res = texelFetch(arg_0_1, ivec3(uvec3(0u)), int(1u));
+  uvec4 res = texelFetch(arg_0_1, ivec3(uvec3(1u)), int(1u));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureLoad/1c562a.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureLoad/1c562a.wgsl.expected.msl
index 08ec833..d302202 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1c562a.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/1c562a.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureLoad_1c562a(texture3d<uint, access::sample> tint_symbol_1) {
-  uint4 res = tint_symbol_1.read(uint3(uint3(0u)), 1u);
+  uint4 res = tint_symbol_1.read(uint3(uint3(1u)), 1u);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/1c562a.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/1c562a.wgsl.expected.spvasm
index 3aab4ea..715a68f 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1c562a.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/1c562a.wgsl.expected.spvasm
@@ -39,8 +39,8 @@
          %13 = OpTypeFunction %void
      %v4uint = OpTypeVector %uint 4
      %v3uint = OpTypeVector %uint 3
-         %21 = OpConstantNull %v3uint
      %uint_1 = OpConstant %uint 1
+         %22 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
          %25 = OpConstantNull %v4uint
          %26 = OpTypeFunction %v4float
@@ -49,7 +49,7 @@
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_v4uint Function %25
          %19 = OpLoad %11 %arg_0
-         %17 = OpImageFetch %v4uint %19 %21 Lod %uint_1
+         %17 = OpImageFetch %v4uint %19 %22 Lod %uint_1
                OpStore %res %17
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureLoad/1c562a.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/1c562a.wgsl.expected.wgsl
index a62fc0f..18a8b91 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1c562a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/1c562a.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_3d<u32>;
 
 fn textureLoad_1c562a() {
-  var res : vec4<u32> = textureLoad(arg_0, vec3<u32>(), 1u);
+  var res : vec4<u32> = textureLoad(arg_0, vec3<u32>(1u), 1u);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureLoad/1f2016.wgsl b/test/tint/builtins/gen/literal/textureLoad/1f2016.wgsl
index b81858c..7076b0d 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1f2016.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/1f2016.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureLoad(texture: texture_3d<f32>, coords: vec3<i32>, level: i32) -> vec4<f32>
 fn textureLoad_1f2016() {
-  var res: vec4<f32> = textureLoad(arg_0, vec3<i32>(), 1i);
+  var res: vec4<f32> = textureLoad(arg_0, vec3<i32>(1i), 1i);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureLoad/1f2016.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/1f2016.wgsl.expected.dxc.hlsl
index 7eba4d9..4c90af7 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1f2016.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/1f2016.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 Texture3D<float4> arg_0 : register(t0, space1);
 
 void textureLoad_1f2016() {
-  float4 res = arg_0.Load(int4(0, 0, 0, 1));
+  float4 res = arg_0.Load(int4((1).xxx, 1));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/1f2016.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/1f2016.wgsl.expected.fxc.hlsl
index 7eba4d9..4c90af7 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1f2016.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/1f2016.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 Texture3D<float4> arg_0 : register(t0, space1);
 
 void textureLoad_1f2016() {
-  float4 res = arg_0.Load(int4(0, 0, 0, 1));
+  float4 res = arg_0.Load(int4((1).xxx, 1));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/1f2016.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/1f2016.wgsl.expected.glsl
index 0fd2eaa..7665fa9 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1f2016.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/1f2016.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 uniform highp sampler3D arg_0_1;
 void textureLoad_1f2016() {
-  vec4 res = texelFetch(arg_0_1, ivec3(0), 1);
+  vec4 res = texelFetch(arg_0_1, ivec3(1), 1);
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 
 uniform highp sampler3D arg_0_1;
 void textureLoad_1f2016() {
-  vec4 res = texelFetch(arg_0_1, ivec3(0), 1);
+  vec4 res = texelFetch(arg_0_1, ivec3(1), 1);
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 uniform highp sampler3D arg_0_1;
 void textureLoad_1f2016() {
-  vec4 res = texelFetch(arg_0_1, ivec3(0), 1);
+  vec4 res = texelFetch(arg_0_1, ivec3(1), 1);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureLoad/1f2016.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureLoad/1f2016.wgsl.expected.msl
index fce3e6c..4b467ff 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1f2016.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/1f2016.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureLoad_1f2016(texture3d<float, access::sample> tint_symbol_1) {
-  float4 res = tint_symbol_1.read(uint3(int3(0)), 1);
+  float4 res = tint_symbol_1.read(uint3(int3(1)), 1);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/1f2016.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/1f2016.wgsl.expected.spvasm
index 6717fa1..d4b7a52 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1f2016.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/1f2016.wgsl.expected.spvasm
@@ -38,8 +38,8 @@
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
-         %20 = OpConstantNull %v3int
       %int_1 = OpConstant %int 1
+         %21 = OpConstantComposite %v3int %int_1 %int_1 %int_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
          %24 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
@@ -47,7 +47,7 @@
          %15 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
          %17 = OpLoad %11 %arg_0
-         %16 = OpImageFetch %v4float %17 %20 Lod %int_1
+         %16 = OpImageFetch %v4float %17 %21 Lod %int_1
                OpStore %res %16
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureLoad/1f2016.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/1f2016.wgsl.expected.wgsl
index dfb4e0b..0f12804 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1f2016.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/1f2016.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_3d<f32>;
 
 fn textureLoad_1f2016() {
-  var res : vec4<f32> = textureLoad(arg_0, vec3<i32>(), 1i);
+  var res : vec4<f32> = textureLoad(arg_0, vec3<i32>(1i), 1i);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureLoad/21d1c4.wgsl b/test/tint/builtins/gen/literal/textureLoad/21d1c4.wgsl
index ac39ee5..9b748d3 100644
--- a/test/tint/builtins/gen/literal/textureLoad/21d1c4.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/21d1c4.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureLoad(texture: texture_3d<f32>, coords: vec3<u32>, level: u32) -> vec4<f32>
 fn textureLoad_21d1c4() {
-  var res: vec4<f32> = textureLoad(arg_0, vec3<u32>(), 1u);
+  var res: vec4<f32> = textureLoad(arg_0, vec3<u32>(1u), 1u);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureLoad/21d1c4.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/21d1c4.wgsl.expected.dxc.hlsl
index 04e91b0..9bb0b90 100644
--- a/test/tint/builtins/gen/literal/textureLoad/21d1c4.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/21d1c4.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 Texture3D<float4> arg_0 : register(t0, space1);
 
 void textureLoad_21d1c4() {
-  float4 res = arg_0.Load(uint4(0u, 0u, 0u, 1u));
+  float4 res = arg_0.Load(uint4((1u).xxx, 1u));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/21d1c4.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/21d1c4.wgsl.expected.fxc.hlsl
index 04e91b0..9bb0b90 100644
--- a/test/tint/builtins/gen/literal/textureLoad/21d1c4.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/21d1c4.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 Texture3D<float4> arg_0 : register(t0, space1);
 
 void textureLoad_21d1c4() {
-  float4 res = arg_0.Load(uint4(0u, 0u, 0u, 1u));
+  float4 res = arg_0.Load(uint4((1u).xxx, 1u));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/21d1c4.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/21d1c4.wgsl.expected.glsl
index 6d8e740..22257eb 100644
--- a/test/tint/builtins/gen/literal/textureLoad/21d1c4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/21d1c4.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 uniform highp sampler3D arg_0_1;
 void textureLoad_21d1c4() {
-  vec4 res = texelFetch(arg_0_1, ivec3(uvec3(0u)), int(1u));
+  vec4 res = texelFetch(arg_0_1, ivec3(uvec3(1u)), int(1u));
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 
 uniform highp sampler3D arg_0_1;
 void textureLoad_21d1c4() {
-  vec4 res = texelFetch(arg_0_1, ivec3(uvec3(0u)), int(1u));
+  vec4 res = texelFetch(arg_0_1, ivec3(uvec3(1u)), int(1u));
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 uniform highp sampler3D arg_0_1;
 void textureLoad_21d1c4() {
-  vec4 res = texelFetch(arg_0_1, ivec3(uvec3(0u)), int(1u));
+  vec4 res = texelFetch(arg_0_1, ivec3(uvec3(1u)), int(1u));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureLoad/21d1c4.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureLoad/21d1c4.wgsl.expected.msl
index a18d7cf..d0e07c0 100644
--- a/test/tint/builtins/gen/literal/textureLoad/21d1c4.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/21d1c4.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureLoad_21d1c4(texture3d<float, access::sample> tint_symbol_1) {
-  float4 res = tint_symbol_1.read(uint3(uint3(0u)), 1u);
+  float4 res = tint_symbol_1.read(uint3(uint3(1u)), 1u);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/21d1c4.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/21d1c4.wgsl.expected.spvasm
index ca20303..10c41ba 100644
--- a/test/tint/builtins/gen/literal/textureLoad/21d1c4.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/21d1c4.wgsl.expected.spvasm
@@ -38,8 +38,8 @@
          %12 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
-         %20 = OpConstantNull %v3uint
      %uint_1 = OpConstant %uint 1
+         %21 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
          %24 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
@@ -47,7 +47,7 @@
          %15 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
          %17 = OpLoad %11 %arg_0
-         %16 = OpImageFetch %v4float %17 %20 Lod %uint_1
+         %16 = OpImageFetch %v4float %17 %21 Lod %uint_1
                OpStore %res %16
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureLoad/21d1c4.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/21d1c4.wgsl.expected.wgsl
index 2cfba76..6f8836b 100644
--- a/test/tint/builtins/gen/literal/textureLoad/21d1c4.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/21d1c4.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_3d<f32>;
 
 fn textureLoad_21d1c4() {
-  var res : vec4<f32> = textureLoad(arg_0, vec3<u32>(), 1u);
+  var res : vec4<f32> = textureLoad(arg_0, vec3<u32>(1u), 1u);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureLoad/223246.wgsl b/test/tint/builtins/gen/literal/textureLoad/223246.wgsl
index c31e51d..3fcb072 100644
--- a/test/tint/builtins/gen/literal/textureLoad/223246.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/223246.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureLoad(texture: texture_3d<i32>, coords: vec3<u32>, level: i32) -> vec4<i32>
 fn textureLoad_223246() {
-  var res: vec4<i32> = textureLoad(arg_0, vec3<u32>(), 1i);
+  var res: vec4<i32> = textureLoad(arg_0, vec3<u32>(1u), 1i);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureLoad/223246.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/223246.wgsl.expected.dxc.hlsl
index c434c8c..eb9abb9 100644
--- a/test/tint/builtins/gen/literal/textureLoad/223246.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/223246.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 Texture3D<int4> arg_0 : register(t0, space1);
 
 void textureLoad_223246() {
-  int4 res = arg_0.Load(uint4(0u, 0u, 0u, uint(1)));
+  int4 res = arg_0.Load(uint4((1u).xxx, uint(1)));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/223246.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/223246.wgsl.expected.fxc.hlsl
index c434c8c..eb9abb9 100644
--- a/test/tint/builtins/gen/literal/textureLoad/223246.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/223246.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 Texture3D<int4> arg_0 : register(t0, space1);
 
 void textureLoad_223246() {
-  int4 res = arg_0.Load(uint4(0u, 0u, 0u, uint(1)));
+  int4 res = arg_0.Load(uint4((1u).xxx, uint(1)));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/223246.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/223246.wgsl.expected.glsl
index 39f77c1..b9e9662 100644
--- a/test/tint/builtins/gen/literal/textureLoad/223246.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/223246.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 uniform highp isampler3D arg_0_1;
 void textureLoad_223246() {
-  ivec4 res = texelFetch(arg_0_1, ivec3(uvec3(0u)), 1);
+  ivec4 res = texelFetch(arg_0_1, ivec3(uvec3(1u)), 1);
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 
 uniform highp isampler3D arg_0_1;
 void textureLoad_223246() {
-  ivec4 res = texelFetch(arg_0_1, ivec3(uvec3(0u)), 1);
+  ivec4 res = texelFetch(arg_0_1, ivec3(uvec3(1u)), 1);
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 uniform highp isampler3D arg_0_1;
 void textureLoad_223246() {
-  ivec4 res = texelFetch(arg_0_1, ivec3(uvec3(0u)), 1);
+  ivec4 res = texelFetch(arg_0_1, ivec3(uvec3(1u)), 1);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureLoad/223246.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureLoad/223246.wgsl.expected.msl
index 3372521..f2a55f3 100644
--- a/test/tint/builtins/gen/literal/textureLoad/223246.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/223246.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureLoad_223246(texture3d<int, access::sample> tint_symbol_1) {
-  int4 res = tint_symbol_1.read(uint3(uint3(0u)), 1);
+  int4 res = tint_symbol_1.read(uint3(uint3(1u)), 1);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/223246.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/223246.wgsl.expected.spvasm
index bba82c9..f047829 100644
--- a/test/tint/builtins/gen/literal/textureLoad/223246.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/223246.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 41
+; Bound: 42
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -40,39 +40,40 @@
       %v4int = OpTypeVector %int 4
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
-         %22 = OpConstantNull %v3uint
+     %uint_1 = OpConstant %uint 1
+         %23 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
       %int_1 = OpConstant %int 1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %26 = OpConstantNull %v4int
-         %27 = OpTypeFunction %v4float
+         %27 = OpConstantNull %v4int
+         %28 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_223246 = OpFunction %void None %13
          %16 = OpLabel
-        %res = OpVariable %_ptr_Function_v4int Function %26
+        %res = OpVariable %_ptr_Function_v4int Function %27
          %19 = OpLoad %11 %arg_0
-         %17 = OpImageFetch %v4int %19 %22 Lod %int_1
+         %17 = OpImageFetch %v4int %19 %23 Lod %int_1
                OpStore %res %17
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %27
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %textureLoad_223246
+%vertex_main_inner = OpFunction %v4float None %28
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %textureLoad_223246
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %32 = OpLabel
-         %33 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %33
+         %33 = OpLabel
+         %34 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %34
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureLoad_223246
+         %37 = OpLabel
+         %38 = OpFunctionCall %void %textureLoad_223246
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureLoad_223246
+         %40 = OpLabel
+         %41 = OpFunctionCall %void %textureLoad_223246
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureLoad/223246.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/223246.wgsl.expected.wgsl
index 1a14589..fca4b78 100644
--- a/test/tint/builtins/gen/literal/textureLoad/223246.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/223246.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_3d<i32>;
 
 fn textureLoad_223246() {
-  var res : vec4<i32> = textureLoad(arg_0, vec3<u32>(), 1i);
+  var res : vec4<i32> = textureLoad(arg_0, vec3<u32>(1u), 1i);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureLoad/2363be.wgsl b/test/tint/builtins/gen/literal/textureLoad/2363be.wgsl
index 4d77af6..f0c424d 100644
--- a/test/tint/builtins/gen/literal/textureLoad/2363be.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/2363be.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureLoad(texture: texture_2d_array<i32>, coords: vec2<u32>, array_index: i32, level: u32) -> vec4<i32>
 fn textureLoad_2363be() {
-  var res: vec4<i32> = textureLoad(arg_0, vec2<u32>(), 1i, 1u);
+  var res: vec4<i32> = textureLoad(arg_0, vec2<u32>(1u), 1i, 1u);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureLoad/2363be.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/2363be.wgsl.expected.dxc.hlsl
index 1fcee1b..eaad1bf 100644
--- a/test/tint/builtins/gen/literal/textureLoad/2363be.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/2363be.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 void textureLoad_2363be() {
-  int4 res = arg_0.Load(uint4(0u, 0u, uint(1), 1u));
+  int4 res = arg_0.Load(uint4(uint3((1u).xx, uint(1)), 1u));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/2363be.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/2363be.wgsl.expected.fxc.hlsl
index 1fcee1b..eaad1bf 100644
--- a/test/tint/builtins/gen/literal/textureLoad/2363be.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/2363be.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 void textureLoad_2363be() {
-  int4 res = arg_0.Load(uint4(0u, 0u, uint(1), 1u));
+  int4 res = arg_0.Load(uint4(uint3((1u).xx, uint(1)), 1u));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/2363be.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/2363be.wgsl.expected.glsl
index 1854c65..9b0a59d 100644
--- a/test/tint/builtins/gen/literal/textureLoad/2363be.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/2363be.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 uniform highp isampler2DArray arg_0_1;
 void textureLoad_2363be() {
-  ivec4 res = texelFetch(arg_0_1, ivec3(uvec3(0u, 0u, uint(1))), int(1u));
+  ivec4 res = texelFetch(arg_0_1, ivec3(uvec3(uvec2(1u), uint(1))), int(1u));
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 
 uniform highp isampler2DArray arg_0_1;
 void textureLoad_2363be() {
-  ivec4 res = texelFetch(arg_0_1, ivec3(uvec3(0u, 0u, uint(1))), int(1u));
+  ivec4 res = texelFetch(arg_0_1, ivec3(uvec3(uvec2(1u), uint(1))), int(1u));
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 uniform highp isampler2DArray arg_0_1;
 void textureLoad_2363be() {
-  ivec4 res = texelFetch(arg_0_1, ivec3(uvec3(0u, 0u, uint(1))), int(1u));
+  ivec4 res = texelFetch(arg_0_1, ivec3(uvec3(uvec2(1u), uint(1))), int(1u));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureLoad/2363be.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureLoad/2363be.wgsl.expected.msl
index 2281819..bccc5c9 100644
--- a/test/tint/builtins/gen/literal/textureLoad/2363be.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/2363be.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureLoad_2363be(texture2d_array<int, access::sample> tint_symbol_1) {
-  int4 res = tint_symbol_1.read(uint2(uint2(0u)), 1, 1u);
+  int4 res = tint_symbol_1.read(uint2(uint2(1u)), 1, 1u);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/2363be.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/2363be.wgsl.expected.spvasm
index 35dce1e..8913113 100644
--- a/test/tint/builtins/gen/literal/textureLoad/2363be.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/2363be.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 47
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -40,42 +40,45 @@
       %v4int = OpTypeVector %int 4
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
-     %uint_0 = OpConstant %uint 0
-      %int_1 = OpConstant %int 1
+     %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
+         %24 = OpConstantComposite %v2uint %uint_1 %uint_1
+      %int_1 = OpConstant %int 1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %29 = OpConstantNull %v4int
-         %30 = OpTypeFunction %v4float
+         %32 = OpConstantNull %v4int
+         %33 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_2363be = OpFunction %void None %13
          %16 = OpLabel
-        %res = OpVariable %_ptr_Function_v4int Function %29
+        %res = OpVariable %_ptr_Function_v4int Function %32
          %19 = OpLoad %11 %arg_0
-         %23 = OpBitcast %uint %int_1
-         %25 = OpCompositeConstruct %v3uint %uint_0 %uint_0 %23
-         %17 = OpImageFetch %v4int %19 %25 Lod %uint_1
+         %25 = OpCompositeExtract %uint %24 0
+         %26 = OpCompositeExtract %uint %24 1
+         %27 = OpBitcast %uint %int_1
+         %29 = OpCompositeConstruct %v3uint %25 %26 %27
+         %17 = OpImageFetch %v4int %19 %29 Lod %uint_1
                OpStore %res %17
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %30
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureLoad_2363be
+%vertex_main_inner = OpFunction %v4float None %33
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureLoad_2363be
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %36
+         %38 = OpLabel
+         %39 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %39
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureLoad_2363be
+         %42 = OpLabel
+         %43 = OpFunctionCall %void %textureLoad_2363be
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureLoad_2363be
+         %45 = OpLabel
+         %46 = OpFunctionCall %void %textureLoad_2363be
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureLoad/2363be.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/2363be.wgsl.expected.wgsl
index 295dadc..2a5b51f 100644
--- a/test/tint/builtins/gen/literal/textureLoad/2363be.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/2363be.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_2d_array<i32>;
 
 fn textureLoad_2363be() {
-  var res : vec4<i32> = textureLoad(arg_0, vec2<u32>(), 1i, 1u);
+  var res : vec4<i32> = textureLoad(arg_0, vec2<u32>(1u), 1i, 1u);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureLoad/2d479c.wgsl b/test/tint/builtins/gen/literal/textureLoad/2d479c.wgsl
index 102ca0b..8e7407e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/2d479c.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/2d479c.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureLoad(texture: texture_2d<f32>, coords: vec2<i32>, level: u32) -> vec4<f32>
 fn textureLoad_2d479c() {
-  var res: vec4<f32> = textureLoad(arg_0, vec2<i32>(), 1u);
+  var res: vec4<f32> = textureLoad(arg_0, vec2<i32>(1i), 1u);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureLoad/2d479c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/2d479c.wgsl.expected.dxc.hlsl
index 48743d7..14a97df 100644
--- a/test/tint/builtins/gen/literal/textureLoad/2d479c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/2d479c.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 Texture2D<float4> arg_0 : register(t0, space1);
 
 void textureLoad_2d479c() {
-  float4 res = arg_0.Load(int3(0, 0, int(1u)));
+  float4 res = arg_0.Load(int3((1).xx, int(1u)));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/2d479c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/2d479c.wgsl.expected.fxc.hlsl
index 48743d7..14a97df 100644
--- a/test/tint/builtins/gen/literal/textureLoad/2d479c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/2d479c.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 Texture2D<float4> arg_0 : register(t0, space1);
 
 void textureLoad_2d479c() {
-  float4 res = arg_0.Load(int3(0, 0, int(1u)));
+  float4 res = arg_0.Load(int3((1).xx, int(1u)));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/2d479c.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/2d479c.wgsl.expected.glsl
index 480acb7..baf0eac 100644
--- a/test/tint/builtins/gen/literal/textureLoad/2d479c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/2d479c.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 uniform highp sampler2D arg_0_1;
 void textureLoad_2d479c() {
-  vec4 res = texelFetch(arg_0_1, ivec2(0), int(1u));
+  vec4 res = texelFetch(arg_0_1, ivec2(1), int(1u));
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 
 uniform highp sampler2D arg_0_1;
 void textureLoad_2d479c() {
-  vec4 res = texelFetch(arg_0_1, ivec2(0), int(1u));
+  vec4 res = texelFetch(arg_0_1, ivec2(1), int(1u));
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 uniform highp sampler2D arg_0_1;
 void textureLoad_2d479c() {
-  vec4 res = texelFetch(arg_0_1, ivec2(0), int(1u));
+  vec4 res = texelFetch(arg_0_1, ivec2(1), int(1u));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureLoad/2d479c.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureLoad/2d479c.wgsl.expected.msl
index 64a9fa9..918c872 100644
--- a/test/tint/builtins/gen/literal/textureLoad/2d479c.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/2d479c.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureLoad_2d479c(texture2d<float, access::sample> tint_symbol_1) {
-  float4 res = tint_symbol_1.read(uint2(int2(0)), 1u);
+  float4 res = tint_symbol_1.read(uint2(int2(1)), 1u);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/2d479c.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/2d479c.wgsl.expected.spvasm
index ea0f240..d56c68c 100644
--- a/test/tint/builtins/gen/literal/textureLoad/2d479c.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/2d479c.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 39
+; Bound: 40
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -38,39 +38,40 @@
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
-         %20 = OpConstantNull %v2int
+      %int_1 = OpConstant %int 1
+         %21 = OpConstantComposite %v2int %int_1 %int_1
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %25 = OpTypeFunction %v4float
+         %26 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_2d479c = OpFunction %void None %12
          %15 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
          %17 = OpLoad %11 %arg_0
-         %16 = OpImageFetch %v4float %17 %20 Lod %uint_1
+         %16 = OpImageFetch %v4float %17 %21 Lod %uint_1
                OpStore %res %16
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %25
-         %27 = OpLabel
-         %28 = OpFunctionCall %void %textureLoad_2d479c
+%vertex_main_inner = OpFunction %v4float None %26
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %textureLoad_2d479c
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %30 = OpLabel
-         %31 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %31
+         %31 = OpLabel
+         %32 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %32
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureLoad_2d479c
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureLoad_2d479c
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureLoad_2d479c
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %textureLoad_2d479c
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureLoad/2d479c.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/2d479c.wgsl.expected.wgsl
index 93532d7..33dcc85 100644
--- a/test/tint/builtins/gen/literal/textureLoad/2d479c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/2d479c.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_2d<f32>;
 
 fn textureLoad_2d479c() {
-  var res : vec4<f32> = textureLoad(arg_0, vec2<i32>(), 1u);
+  var res : vec4<f32> = textureLoad(arg_0, vec2<i32>(1i), 1u);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureLoad/2e09aa.wgsl b/test/tint/builtins/gen/literal/textureLoad/2e09aa.wgsl
index c202f48..f62ef1d 100644
--- a/test/tint/builtins/gen/literal/textureLoad/2e09aa.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/2e09aa.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureLoad(texture: texture_multisampled_2d<f32>, coords: vec2<u32>, sample_index: u32) -> vec4<f32>
 fn textureLoad_2e09aa() {
-  var res: vec4<f32> = textureLoad(arg_0, vec2<u32>(), 1u);
+  var res: vec4<f32> = textureLoad(arg_0, vec2<u32>(1u), 1u);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureLoad/2e09aa.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/2e09aa.wgsl.expected.dxc.hlsl
index 9cc10ce..fcb6480 100644
--- a/test/tint/builtins/gen/literal/textureLoad/2e09aa.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/2e09aa.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DMS<float4> arg_0 : register(t0, space1);
 
 void textureLoad_2e09aa() {
-  float4 res = arg_0.Load((0u).xx, 1u);
+  float4 res = arg_0.Load((1u).xx, 1u);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/2e09aa.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/2e09aa.wgsl.expected.fxc.hlsl
index 9cc10ce..fcb6480 100644
--- a/test/tint/builtins/gen/literal/textureLoad/2e09aa.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/2e09aa.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DMS<float4> arg_0 : register(t0, space1);
 
 void textureLoad_2e09aa() {
-  float4 res = arg_0.Load((0u).xx, 1u);
+  float4 res = arg_0.Load((1u).xx, 1u);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/2e09aa.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/2e09aa.wgsl.expected.glsl
index 1fc3bfb..630e2fa 100644
--- a/test/tint/builtins/gen/literal/textureLoad/2e09aa.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/2e09aa.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 uniform highp sampler2DMS arg_0_1;
 void textureLoad_2e09aa() {
-  vec4 res = texelFetch(arg_0_1, ivec2(uvec2(0u)), int(1u));
+  vec4 res = texelFetch(arg_0_1, ivec2(uvec2(1u)), int(1u));
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 
 uniform highp sampler2DMS arg_0_1;
 void textureLoad_2e09aa() {
-  vec4 res = texelFetch(arg_0_1, ivec2(uvec2(0u)), int(1u));
+  vec4 res = texelFetch(arg_0_1, ivec2(uvec2(1u)), int(1u));
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 uniform highp sampler2DMS arg_0_1;
 void textureLoad_2e09aa() {
-  vec4 res = texelFetch(arg_0_1, ivec2(uvec2(0u)), int(1u));
+  vec4 res = texelFetch(arg_0_1, ivec2(uvec2(1u)), int(1u));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureLoad/2e09aa.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureLoad/2e09aa.wgsl.expected.msl
index 48b5ac4..3ae89d4 100644
--- a/test/tint/builtins/gen/literal/textureLoad/2e09aa.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/2e09aa.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureLoad_2e09aa(texture2d_ms<float, access::read> tint_symbol_1) {
-  float4 res = tint_symbol_1.read(uint2(uint2(0u)), 1u);
+  float4 res = tint_symbol_1.read(uint2(uint2(1u)), 1u);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/2e09aa.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/2e09aa.wgsl.expected.spvasm
index 1964e30..cce0307 100644
--- a/test/tint/builtins/gen/literal/textureLoad/2e09aa.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/2e09aa.wgsl.expected.spvasm
@@ -38,8 +38,8 @@
          %12 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
-         %20 = OpConstantNull %v2uint
      %uint_1 = OpConstant %uint 1
+         %21 = OpConstantComposite %v2uint %uint_1 %uint_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
          %24 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
@@ -47,7 +47,7 @@
          %15 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
          %17 = OpLoad %11 %arg_0
-         %16 = OpImageFetch %v4float %17 %20 Sample %uint_1
+         %16 = OpImageFetch %v4float %17 %21 Sample %uint_1
                OpStore %res %16
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureLoad/2e09aa.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/2e09aa.wgsl.expected.wgsl
index ca4270f..58a8595 100644
--- a/test/tint/builtins/gen/literal/textureLoad/2e09aa.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/2e09aa.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_multisampled_2d<f32>;
 
 fn textureLoad_2e09aa() {
-  var res : vec4<f32> = textureLoad(arg_0, vec2<u32>(), 1u);
+  var res : vec4<f32> = textureLoad(arg_0, vec2<u32>(1u), 1u);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureLoad/38f8ab.wgsl b/test/tint/builtins/gen/literal/textureLoad/38f8ab.wgsl
index 1ba95c1..098f8ed 100644
--- a/test/tint/builtins/gen/literal/textureLoad/38f8ab.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/38f8ab.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureLoad(texture: texture_multisampled_2d<i32>, coords: vec2<i32>, sample_index: u32) -> vec4<i32>
 fn textureLoad_38f8ab() {
-  var res: vec4<i32> = textureLoad(arg_0, vec2<i32>(), 1u);
+  var res: vec4<i32> = textureLoad(arg_0, vec2<i32>(1i), 1u);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureLoad/38f8ab.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/38f8ab.wgsl.expected.dxc.hlsl
index b32e2f0..1e31cb2 100644
--- a/test/tint/builtins/gen/literal/textureLoad/38f8ab.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/38f8ab.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DMS<int4> arg_0 : register(t0, space1);
 
 void textureLoad_38f8ab() {
-  int4 res = arg_0.Load((0).xx, 1u);
+  int4 res = arg_0.Load((1).xx, 1u);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/38f8ab.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/38f8ab.wgsl.expected.fxc.hlsl
index b32e2f0..1e31cb2 100644
--- a/test/tint/builtins/gen/literal/textureLoad/38f8ab.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/38f8ab.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DMS<int4> arg_0 : register(t0, space1);
 
 void textureLoad_38f8ab() {
-  int4 res = arg_0.Load((0).xx, 1u);
+  int4 res = arg_0.Load((1).xx, 1u);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/38f8ab.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/38f8ab.wgsl.expected.glsl
index 199f0a9..696e66a 100644
--- a/test/tint/builtins/gen/literal/textureLoad/38f8ab.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/38f8ab.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 uniform highp isampler2DMS arg_0_1;
 void textureLoad_38f8ab() {
-  ivec4 res = texelFetch(arg_0_1, ivec2(0), int(1u));
+  ivec4 res = texelFetch(arg_0_1, ivec2(1), int(1u));
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 
 uniform highp isampler2DMS arg_0_1;
 void textureLoad_38f8ab() {
-  ivec4 res = texelFetch(arg_0_1, ivec2(0), int(1u));
+  ivec4 res = texelFetch(arg_0_1, ivec2(1), int(1u));
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 uniform highp isampler2DMS arg_0_1;
 void textureLoad_38f8ab() {
-  ivec4 res = texelFetch(arg_0_1, ivec2(0), int(1u));
+  ivec4 res = texelFetch(arg_0_1, ivec2(1), int(1u));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureLoad/38f8ab.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureLoad/38f8ab.wgsl.expected.msl
index 062a78c..889349b 100644
--- a/test/tint/builtins/gen/literal/textureLoad/38f8ab.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/38f8ab.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureLoad_38f8ab(texture2d_ms<int, access::read> tint_symbol_1) {
-  int4 res = tint_symbol_1.read(uint2(int2(0)), 1u);
+  int4 res = tint_symbol_1.read(uint2(int2(1)), 1u);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/38f8ab.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/38f8ab.wgsl.expected.spvasm
index 5bcd7ad..d440a8a 100644
--- a/test/tint/builtins/gen/literal/textureLoad/38f8ab.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/38f8ab.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 41
+; Bound: 42
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -39,40 +39,41 @@
          %13 = OpTypeFunction %void
       %v4int = OpTypeVector %int 4
       %v2int = OpTypeVector %int 2
-         %21 = OpConstantNull %v2int
+      %int_1 = OpConstant %int 1
+         %22 = OpConstantComposite %v2int %int_1 %int_1
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %26 = OpConstantNull %v4int
-         %27 = OpTypeFunction %v4float
+         %27 = OpConstantNull %v4int
+         %28 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_38f8ab = OpFunction %void None %13
          %16 = OpLabel
-        %res = OpVariable %_ptr_Function_v4int Function %26
+        %res = OpVariable %_ptr_Function_v4int Function %27
          %19 = OpLoad %11 %arg_0
-         %17 = OpImageFetch %v4int %19 %21 Sample %uint_1
+         %17 = OpImageFetch %v4int %19 %22 Sample %uint_1
                OpStore %res %17
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %27
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %textureLoad_38f8ab
+%vertex_main_inner = OpFunction %v4float None %28
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %textureLoad_38f8ab
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %32 = OpLabel
-         %33 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %33
+         %33 = OpLabel
+         %34 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %34
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureLoad_38f8ab
+         %37 = OpLabel
+         %38 = OpFunctionCall %void %textureLoad_38f8ab
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureLoad_38f8ab
+         %40 = OpLabel
+         %41 = OpFunctionCall %void %textureLoad_38f8ab
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureLoad/38f8ab.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/38f8ab.wgsl.expected.wgsl
index 0a81a11..a97ddc2 100644
--- a/test/tint/builtins/gen/literal/textureLoad/38f8ab.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/38f8ab.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_multisampled_2d<i32>;
 
 fn textureLoad_38f8ab() {
-  var res : vec4<i32> = textureLoad(arg_0, vec2<i32>(), 1u);
+  var res : vec4<i32> = textureLoad(arg_0, vec2<i32>(1i), 1u);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureLoad/3c96e8.wgsl b/test/tint/builtins/gen/literal/textureLoad/3c96e8.wgsl
index f3db7a0..f829c89 100644
--- a/test/tint/builtins/gen/literal/textureLoad/3c96e8.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/3c96e8.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureLoad(texture: texture_2d_array<f32>, coords: vec2<i32>, array_index: u32, level: u32) -> vec4<f32>
 fn textureLoad_3c96e8() {
-  var res: vec4<f32> = textureLoad(arg_0, vec2<i32>(), 1u, 1u);
+  var res: vec4<f32> = textureLoad(arg_0, vec2<i32>(1i), 1u, 1u);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureLoad/3c96e8.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/3c96e8.wgsl.expected.dxc.hlsl
index 1b18d6f..d280db1 100644
--- a/test/tint/builtins/gen/literal/textureLoad/3c96e8.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/3c96e8.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 void textureLoad_3c96e8() {
-  float4 res = arg_0.Load(int4(0, 0, int(1u), int(1u)));
+  float4 res = arg_0.Load(int4(int3((1).xx, int(1u)), int(1u)));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/3c96e8.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/3c96e8.wgsl.expected.fxc.hlsl
index 1b18d6f..d280db1 100644
--- a/test/tint/builtins/gen/literal/textureLoad/3c96e8.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/3c96e8.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 void textureLoad_3c96e8() {
-  float4 res = arg_0.Load(int4(0, 0, int(1u), int(1u)));
+  float4 res = arg_0.Load(int4(int3((1).xx, int(1u)), int(1u)));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/3c96e8.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/3c96e8.wgsl.expected.glsl
index 712a973..92d7508 100644
--- a/test/tint/builtins/gen/literal/textureLoad/3c96e8.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/3c96e8.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 uniform highp sampler2DArray arg_0_1;
 void textureLoad_3c96e8() {
-  vec4 res = texelFetch(arg_0_1, ivec3(0, 0, int(1u)), int(1u));
+  vec4 res = texelFetch(arg_0_1, ivec3(ivec2(1), int(1u)), int(1u));
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 
 uniform highp sampler2DArray arg_0_1;
 void textureLoad_3c96e8() {
-  vec4 res = texelFetch(arg_0_1, ivec3(0, 0, int(1u)), int(1u));
+  vec4 res = texelFetch(arg_0_1, ivec3(ivec2(1), int(1u)), int(1u));
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 uniform highp sampler2DArray arg_0_1;
 void textureLoad_3c96e8() {
-  vec4 res = texelFetch(arg_0_1, ivec3(0, 0, int(1u)), int(1u));
+  vec4 res = texelFetch(arg_0_1, ivec3(ivec2(1), int(1u)), int(1u));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureLoad/3c96e8.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureLoad/3c96e8.wgsl.expected.msl
index 468cb47..ad54598 100644
--- a/test/tint/builtins/gen/literal/textureLoad/3c96e8.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/3c96e8.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureLoad_3c96e8(texture2d_array<float, access::sample> tint_symbol_1) {
-  float4 res = tint_symbol_1.read(uint2(int2(0)), 1u, 1u);
+  float4 res = tint_symbol_1.read(uint2(int2(1)), 1u, 1u);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/3c96e8.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/3c96e8.wgsl.expected.spvasm
index 4aaf7c8..479336b 100644
--- a/test/tint/builtins/gen/literal/textureLoad/3c96e8.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/3c96e8.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 41
+; Bound: 45
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -38,41 +38,45 @@
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
-      %int_0 = OpConstant %int 0
+      %v2int = OpTypeVector %int 2
+      %int_1 = OpConstant %int 1
+         %22 = OpConstantComposite %v2int %int_1 %int_1
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %27 = OpTypeFunction %v4float
+         %31 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_3c96e8 = OpFunction %void None %12
          %15 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
          %17 = OpLoad %11 %arg_0
-         %21 = OpBitcast %int %uint_1
-         %24 = OpCompositeConstruct %v3int %int_0 %int_0 %21
-         %16 = OpImageFetch %v4float %17 %24 Lod %uint_1
+         %23 = OpCompositeExtract %int %22 0
+         %24 = OpCompositeExtract %int %22 1
+         %25 = OpBitcast %int %uint_1
+         %28 = OpCompositeConstruct %v3int %23 %24 %25
+         %16 = OpImageFetch %v4float %17 %28 Lod %uint_1
                OpStore %res %16
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %27
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %textureLoad_3c96e8
+%vertex_main_inner = OpFunction %v4float None %31
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureLoad_3c96e8
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %32 = OpLabel
-         %33 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %33
+         %36 = OpLabel
+         %37 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %37
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureLoad_3c96e8
+         %40 = OpLabel
+         %41 = OpFunctionCall %void %textureLoad_3c96e8
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureLoad_3c96e8
+         %43 = OpLabel
+         %44 = OpFunctionCall %void %textureLoad_3c96e8
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureLoad/3c96e8.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/3c96e8.wgsl.expected.wgsl
index 487fe60..a4d17d7 100644
--- a/test/tint/builtins/gen/literal/textureLoad/3c96e8.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/3c96e8.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_2d_array<f32>;
 
 fn textureLoad_3c96e8() {
-  var res : vec4<f32> = textureLoad(arg_0, vec2<i32>(), 1u, 1u);
+  var res : vec4<f32> = textureLoad(arg_0, vec2<i32>(1i), 1u, 1u);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureLoad/3d3fd1.wgsl b/test/tint/builtins/gen/literal/textureLoad/3d3fd1.wgsl
index a7f50c3..7668515 100644
--- a/test/tint/builtins/gen/literal/textureLoad/3d3fd1.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/3d3fd1.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureLoad(texture: texture_2d_array<i32>, coords: vec2<u32>, array_index: u32, level: i32) -> vec4<i32>
 fn textureLoad_3d3fd1() {
-  var res: vec4<i32> = textureLoad(arg_0, vec2<u32>(), 1u, 1i);
+  var res: vec4<i32> = textureLoad(arg_0, vec2<u32>(1u), 1u, 1i);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureLoad/3d3fd1.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/3d3fd1.wgsl.expected.dxc.hlsl
index f31c316..5ad0afa 100644
--- a/test/tint/builtins/gen/literal/textureLoad/3d3fd1.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/3d3fd1.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 void textureLoad_3d3fd1() {
-  int4 res = arg_0.Load(uint4(0u, 0u, 1u, uint(1)));
+  int4 res = arg_0.Load(uint4(uint3((1u).xx, 1u), uint(1)));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/3d3fd1.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/3d3fd1.wgsl.expected.fxc.hlsl
index f31c316..5ad0afa 100644
--- a/test/tint/builtins/gen/literal/textureLoad/3d3fd1.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/3d3fd1.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 void textureLoad_3d3fd1() {
-  int4 res = arg_0.Load(uint4(0u, 0u, 1u, uint(1)));
+  int4 res = arg_0.Load(uint4(uint3((1u).xx, 1u), uint(1)));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/3d3fd1.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/3d3fd1.wgsl.expected.glsl
index 9d295c5..4792dc9 100644
--- a/test/tint/builtins/gen/literal/textureLoad/3d3fd1.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/3d3fd1.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 uniform highp isampler2DArray arg_0_1;
 void textureLoad_3d3fd1() {
-  ivec4 res = texelFetch(arg_0_1, ivec3(uvec3(0u, 0u, 1u)), 1);
+  ivec4 res = texelFetch(arg_0_1, ivec3(uvec3(uvec2(1u), 1u)), 1);
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 
 uniform highp isampler2DArray arg_0_1;
 void textureLoad_3d3fd1() {
-  ivec4 res = texelFetch(arg_0_1, ivec3(uvec3(0u, 0u, 1u)), 1);
+  ivec4 res = texelFetch(arg_0_1, ivec3(uvec3(uvec2(1u), 1u)), 1);
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 uniform highp isampler2DArray arg_0_1;
 void textureLoad_3d3fd1() {
-  ivec4 res = texelFetch(arg_0_1, ivec3(uvec3(0u, 0u, 1u)), 1);
+  ivec4 res = texelFetch(arg_0_1, ivec3(uvec3(uvec2(1u), 1u)), 1);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureLoad/3d3fd1.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureLoad/3d3fd1.wgsl.expected.msl
index 63fddeb..c19db9b 100644
--- a/test/tint/builtins/gen/literal/textureLoad/3d3fd1.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/3d3fd1.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureLoad_3d3fd1(texture2d_array<int, access::sample> tint_symbol_1) {
-  int4 res = tint_symbol_1.read(uint2(uint2(0u)), 1u, 1);
+  int4 res = tint_symbol_1.read(uint2(uint2(1u)), 1u, 1);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/3d3fd1.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/3d3fd1.wgsl.expected.spvasm
index 73e3401..430ee7f 100644
--- a/test/tint/builtins/gen/literal/textureLoad/3d3fd1.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/3d3fd1.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 43
+; Bound: 46
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -40,41 +40,44 @@
       %v4int = OpTypeVector %int 4
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
-     %uint_0 = OpConstant %uint 0
+     %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %24 = OpConstantComposite %v3uint %uint_0 %uint_0 %uint_1
+         %24 = OpConstantComposite %v2uint %uint_1 %uint_1
       %int_1 = OpConstant %int 1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %28 = OpConstantNull %v4int
-         %29 = OpTypeFunction %v4float
+         %31 = OpConstantNull %v4int
+         %32 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_3d3fd1 = OpFunction %void None %13
          %16 = OpLabel
-        %res = OpVariable %_ptr_Function_v4int Function %28
+        %res = OpVariable %_ptr_Function_v4int Function %31
          %19 = OpLoad %11 %arg_0
-         %17 = OpImageFetch %v4int %19 %24 Lod %int_1
+         %25 = OpCompositeExtract %uint %24 0
+         %26 = OpCompositeExtract %uint %24 1
+         %27 = OpCompositeConstruct %v3uint %25 %26 %uint_1
+         %17 = OpImageFetch %v4int %19 %27 Lod %int_1
                OpStore %res %17
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %29
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %textureLoad_3d3fd1
+%vertex_main_inner = OpFunction %v4float None %32
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %textureLoad_3d3fd1
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %34 = OpLabel
-         %35 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %35
+         %37 = OpLabel
+         %38 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %38
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureLoad_3d3fd1
+         %41 = OpLabel
+         %42 = OpFunctionCall %void %textureLoad_3d3fd1
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureLoad_3d3fd1
+         %44 = OpLabel
+         %45 = OpFunctionCall %void %textureLoad_3d3fd1
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureLoad/3d3fd1.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/3d3fd1.wgsl.expected.wgsl
index a053554..2175060 100644
--- a/test/tint/builtins/gen/literal/textureLoad/3d3fd1.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/3d3fd1.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_2d_array<i32>;
 
 fn textureLoad_3d3fd1() {
-  var res : vec4<i32> = textureLoad(arg_0, vec2<u32>(), 1u, 1i);
+  var res : vec4<i32> = textureLoad(arg_0, vec2<u32>(1u), 1u, 1i);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureLoad/439e2a.wgsl b/test/tint/builtins/gen/literal/textureLoad/439e2a.wgsl
index d677077..6fd6433 100644
--- a/test/tint/builtins/gen/literal/textureLoad/439e2a.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/439e2a.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureLoad(texture: texture_2d<f32>, coords: vec2<u32>, level: i32) -> vec4<f32>
 fn textureLoad_439e2a() {
-  var res: vec4<f32> = textureLoad(arg_0, vec2<u32>(), 1i);
+  var res: vec4<f32> = textureLoad(arg_0, vec2<u32>(1u), 1i);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureLoad/439e2a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/439e2a.wgsl.expected.dxc.hlsl
index 04be847..eadf395 100644
--- a/test/tint/builtins/gen/literal/textureLoad/439e2a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/439e2a.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 Texture2D<float4> arg_0 : register(t0, space1);
 
 void textureLoad_439e2a() {
-  float4 res = arg_0.Load(uint3(0u, 0u, uint(1)));
+  float4 res = arg_0.Load(uint3((1u).xx, uint(1)));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/439e2a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/439e2a.wgsl.expected.fxc.hlsl
index 04be847..eadf395 100644
--- a/test/tint/builtins/gen/literal/textureLoad/439e2a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/439e2a.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 Texture2D<float4> arg_0 : register(t0, space1);
 
 void textureLoad_439e2a() {
-  float4 res = arg_0.Load(uint3(0u, 0u, uint(1)));
+  float4 res = arg_0.Load(uint3((1u).xx, uint(1)));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/439e2a.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/439e2a.wgsl.expected.glsl
index 3e1a9c9..0b40108 100644
--- a/test/tint/builtins/gen/literal/textureLoad/439e2a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/439e2a.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 uniform highp sampler2D arg_0_1;
 void textureLoad_439e2a() {
-  vec4 res = texelFetch(arg_0_1, ivec2(uvec2(0u)), 1);
+  vec4 res = texelFetch(arg_0_1, ivec2(uvec2(1u)), 1);
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 
 uniform highp sampler2D arg_0_1;
 void textureLoad_439e2a() {
-  vec4 res = texelFetch(arg_0_1, ivec2(uvec2(0u)), 1);
+  vec4 res = texelFetch(arg_0_1, ivec2(uvec2(1u)), 1);
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 uniform highp sampler2D arg_0_1;
 void textureLoad_439e2a() {
-  vec4 res = texelFetch(arg_0_1, ivec2(uvec2(0u)), 1);
+  vec4 res = texelFetch(arg_0_1, ivec2(uvec2(1u)), 1);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureLoad/439e2a.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureLoad/439e2a.wgsl.expected.msl
index 9a44d70..8908484 100644
--- a/test/tint/builtins/gen/literal/textureLoad/439e2a.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/439e2a.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureLoad_439e2a(texture2d<float, access::sample> tint_symbol_1) {
-  float4 res = tint_symbol_1.read(uint2(uint2(0u)), 1);
+  float4 res = tint_symbol_1.read(uint2(uint2(1u)), 1);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/439e2a.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/439e2a.wgsl.expected.spvasm
index bd14760..81e00fd 100644
--- a/test/tint/builtins/gen/literal/textureLoad/439e2a.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/439e2a.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 39
+; Bound: 40
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -38,39 +38,40 @@
          %12 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
-         %20 = OpConstantNull %v2uint
+     %uint_1 = OpConstant %uint 1
+         %21 = OpConstantComposite %v2uint %uint_1 %uint_1
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %25 = OpTypeFunction %v4float
+         %26 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_439e2a = OpFunction %void None %12
          %15 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
          %17 = OpLoad %11 %arg_0
-         %16 = OpImageFetch %v4float %17 %20 Lod %int_1
+         %16 = OpImageFetch %v4float %17 %21 Lod %int_1
                OpStore %res %16
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %25
-         %27 = OpLabel
-         %28 = OpFunctionCall %void %textureLoad_439e2a
+%vertex_main_inner = OpFunction %v4float None %26
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %textureLoad_439e2a
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %30 = OpLabel
-         %31 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %31
+         %31 = OpLabel
+         %32 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %32
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureLoad_439e2a
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureLoad_439e2a
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureLoad_439e2a
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %textureLoad_439e2a
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureLoad/439e2a.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/439e2a.wgsl.expected.wgsl
index 0cc7d74..2d369bc 100644
--- a/test/tint/builtins/gen/literal/textureLoad/439e2a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/439e2a.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_2d<f32>;
 
 fn textureLoad_439e2a() {
-  var res : vec4<f32> = textureLoad(arg_0, vec2<u32>(), 1i);
+  var res : vec4<f32> = textureLoad(arg_0, vec2<u32>(1u), 1i);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureLoad/46a93f.wgsl b/test/tint/builtins/gen/literal/textureLoad/46a93f.wgsl
index eb46b20..dc25830c 100644
--- a/test/tint/builtins/gen/literal/textureLoad/46a93f.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/46a93f.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureLoad(texture: texture_2d_array<f32>, coords: vec2<u32>, array_index: i32, level: u32) -> vec4<f32>
 fn textureLoad_46a93f() {
-  var res: vec4<f32> = textureLoad(arg_0, vec2<u32>(), 1i, 1u);
+  var res: vec4<f32> = textureLoad(arg_0, vec2<u32>(1u), 1i, 1u);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureLoad/46a93f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/46a93f.wgsl.expected.dxc.hlsl
index efe3b08..4342746 100644
--- a/test/tint/builtins/gen/literal/textureLoad/46a93f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/46a93f.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 void textureLoad_46a93f() {
-  float4 res = arg_0.Load(uint4(0u, 0u, uint(1), 1u));
+  float4 res = arg_0.Load(uint4(uint3((1u).xx, uint(1)), 1u));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/46a93f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/46a93f.wgsl.expected.fxc.hlsl
index efe3b08..4342746 100644
--- a/test/tint/builtins/gen/literal/textureLoad/46a93f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/46a93f.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 void textureLoad_46a93f() {
-  float4 res = arg_0.Load(uint4(0u, 0u, uint(1), 1u));
+  float4 res = arg_0.Load(uint4(uint3((1u).xx, uint(1)), 1u));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/46a93f.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/46a93f.wgsl.expected.glsl
index ba12442..1fb6bc8 100644
--- a/test/tint/builtins/gen/literal/textureLoad/46a93f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/46a93f.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 uniform highp sampler2DArray arg_0_1;
 void textureLoad_46a93f() {
-  vec4 res = texelFetch(arg_0_1, ivec3(uvec3(0u, 0u, uint(1))), int(1u));
+  vec4 res = texelFetch(arg_0_1, ivec3(uvec3(uvec2(1u), uint(1))), int(1u));
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 
 uniform highp sampler2DArray arg_0_1;
 void textureLoad_46a93f() {
-  vec4 res = texelFetch(arg_0_1, ivec3(uvec3(0u, 0u, uint(1))), int(1u));
+  vec4 res = texelFetch(arg_0_1, ivec3(uvec3(uvec2(1u), uint(1))), int(1u));
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 uniform highp sampler2DArray arg_0_1;
 void textureLoad_46a93f() {
-  vec4 res = texelFetch(arg_0_1, ivec3(uvec3(0u, 0u, uint(1))), int(1u));
+  vec4 res = texelFetch(arg_0_1, ivec3(uvec3(uvec2(1u), uint(1))), int(1u));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureLoad/46a93f.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureLoad/46a93f.wgsl.expected.msl
index 06c32ea..3329dec 100644
--- a/test/tint/builtins/gen/literal/textureLoad/46a93f.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/46a93f.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureLoad_46a93f(texture2d_array<float, access::sample> tint_symbol_1) {
-  float4 res = tint_symbol_1.read(uint2(uint2(0u)), 1, 1u);
+  float4 res = tint_symbol_1.read(uint2(uint2(1u)), 1, 1u);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/46a93f.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/46a93f.wgsl.expected.spvasm
index a294467..c241fcb 100644
--- a/test/tint/builtins/gen/literal/textureLoad/46a93f.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/46a93f.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 42
+; Bound: 45
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -38,42 +38,45 @@
          %12 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
-     %uint_0 = OpConstant %uint 0
+     %v2uint = OpTypeVector %uint 2
+     %uint_1 = OpConstant %uint 1
+         %22 = OpConstantComposite %v2uint %uint_1 %uint_1
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
-     %uint_1 = OpConstant %uint 1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %28 = OpTypeFunction %v4float
+         %31 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_46a93f = OpFunction %void None %12
          %15 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
          %17 = OpLoad %11 %arg_0
-         %21 = OpBitcast %uint %int_1
-         %24 = OpCompositeConstruct %v3uint %uint_0 %uint_0 %21
-         %16 = OpImageFetch %v4float %17 %24 Lod %uint_1
+         %23 = OpCompositeExtract %uint %22 0
+         %24 = OpCompositeExtract %uint %22 1
+         %25 = OpBitcast %uint %int_1
+         %28 = OpCompositeConstruct %v3uint %23 %24 %25
+         %16 = OpImageFetch %v4float %17 %28 Lod %uint_1
                OpStore %res %16
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %28
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %textureLoad_46a93f
+%vertex_main_inner = OpFunction %v4float None %31
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureLoad_46a93f
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %33 = OpLabel
-         %34 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %34
+         %36 = OpLabel
+         %37 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %37
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureLoad_46a93f
+         %40 = OpLabel
+         %41 = OpFunctionCall %void %textureLoad_46a93f
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureLoad_46a93f
+         %43 = OpLabel
+         %44 = OpFunctionCall %void %textureLoad_46a93f
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureLoad/46a93f.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/46a93f.wgsl.expected.wgsl
index f5a4417..3113448 100644
--- a/test/tint/builtins/gen/literal/textureLoad/46a93f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/46a93f.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_2d_array<f32>;
 
 fn textureLoad_46a93f() {
-  var res : vec4<f32> = textureLoad(arg_0, vec2<u32>(), 1i, 1u);
+  var res : vec4<f32> = textureLoad(arg_0, vec2<u32>(1u), 1i, 1u);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureLoad/47e818.wgsl b/test/tint/builtins/gen/literal/textureLoad/47e818.wgsl
index 76e9718..90aa004 100644
--- a/test/tint/builtins/gen/literal/textureLoad/47e818.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/47e818.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureLoad(texture: texture_3d<i32>, coords: vec3<u32>, level: u32) -> vec4<i32>
 fn textureLoad_47e818() {
-  var res: vec4<i32> = textureLoad(arg_0, vec3<u32>(), 1u);
+  var res: vec4<i32> = textureLoad(arg_0, vec3<u32>(1u), 1u);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureLoad/47e818.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/47e818.wgsl.expected.dxc.hlsl
index a0f9ce2..8c4b83d 100644
--- a/test/tint/builtins/gen/literal/textureLoad/47e818.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/47e818.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 Texture3D<int4> arg_0 : register(t0, space1);
 
 void textureLoad_47e818() {
-  int4 res = arg_0.Load(uint4(0u, 0u, 0u, 1u));
+  int4 res = arg_0.Load(uint4((1u).xxx, 1u));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/47e818.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/47e818.wgsl.expected.fxc.hlsl
index a0f9ce2..8c4b83d 100644
--- a/test/tint/builtins/gen/literal/textureLoad/47e818.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/47e818.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 Texture3D<int4> arg_0 : register(t0, space1);
 
 void textureLoad_47e818() {
-  int4 res = arg_0.Load(uint4(0u, 0u, 0u, 1u));
+  int4 res = arg_0.Load(uint4((1u).xxx, 1u));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/47e818.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/47e818.wgsl.expected.glsl
index 78f7a1c..029590a 100644
--- a/test/tint/builtins/gen/literal/textureLoad/47e818.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/47e818.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 uniform highp isampler3D arg_0_1;
 void textureLoad_47e818() {
-  ivec4 res = texelFetch(arg_0_1, ivec3(uvec3(0u)), int(1u));
+  ivec4 res = texelFetch(arg_0_1, ivec3(uvec3(1u)), int(1u));
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 
 uniform highp isampler3D arg_0_1;
 void textureLoad_47e818() {
-  ivec4 res = texelFetch(arg_0_1, ivec3(uvec3(0u)), int(1u));
+  ivec4 res = texelFetch(arg_0_1, ivec3(uvec3(1u)), int(1u));
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 uniform highp isampler3D arg_0_1;
 void textureLoad_47e818() {
-  ivec4 res = texelFetch(arg_0_1, ivec3(uvec3(0u)), int(1u));
+  ivec4 res = texelFetch(arg_0_1, ivec3(uvec3(1u)), int(1u));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureLoad/47e818.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureLoad/47e818.wgsl.expected.msl
index 91e3739..6ecc7e3 100644
--- a/test/tint/builtins/gen/literal/textureLoad/47e818.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/47e818.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureLoad_47e818(texture3d<int, access::sample> tint_symbol_1) {
-  int4 res = tint_symbol_1.read(uint3(uint3(0u)), 1u);
+  int4 res = tint_symbol_1.read(uint3(uint3(1u)), 1u);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/47e818.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/47e818.wgsl.expected.spvasm
index fbb4de7..4c8586c 100644
--- a/test/tint/builtins/gen/literal/textureLoad/47e818.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/47e818.wgsl.expected.spvasm
@@ -40,8 +40,8 @@
       %v4int = OpTypeVector %int 4
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
-         %22 = OpConstantNull %v3uint
      %uint_1 = OpConstant %uint 1
+         %23 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
          %26 = OpConstantNull %v4int
          %27 = OpTypeFunction %v4float
@@ -50,7 +50,7 @@
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_v4int Function %26
          %19 = OpLoad %11 %arg_0
-         %17 = OpImageFetch %v4int %19 %22 Lod %uint_1
+         %17 = OpImageFetch %v4int %19 %23 Lod %uint_1
                OpStore %res %17
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureLoad/47e818.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/47e818.wgsl.expected.wgsl
index 3f95949..6136a75 100644
--- a/test/tint/builtins/gen/literal/textureLoad/47e818.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/47e818.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_3d<i32>;
 
 fn textureLoad_47e818() {
-  var res : vec4<i32> = textureLoad(arg_0, vec3<u32>(), 1u);
+  var res : vec4<i32> = textureLoad(arg_0, vec3<u32>(1u), 1u);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureLoad/484344.wgsl b/test/tint/builtins/gen/literal/textureLoad/484344.wgsl
index e7383c5..daeb8ca 100644
--- a/test/tint/builtins/gen/literal/textureLoad/484344.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/484344.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureLoad(texture: texture_2d<f32>, coords: vec2<i32>, level: i32) -> vec4<f32>
 fn textureLoad_484344() {
-  var res: vec4<f32> = textureLoad(arg_0, vec2<i32>(), 1i);
+  var res: vec4<f32> = textureLoad(arg_0, vec2<i32>(1i), 1i);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureLoad/484344.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/484344.wgsl.expected.dxc.hlsl
index 4c68236..89d6153 100644
--- a/test/tint/builtins/gen/literal/textureLoad/484344.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/484344.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 Texture2D<float4> arg_0 : register(t0, space1);
 
 void textureLoad_484344() {
-  float4 res = arg_0.Load(int3(0, 0, 1));
+  float4 res = arg_0.Load(int3((1).xx, 1));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/484344.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/484344.wgsl.expected.fxc.hlsl
index 4c68236..89d6153 100644
--- a/test/tint/builtins/gen/literal/textureLoad/484344.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/484344.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 Texture2D<float4> arg_0 : register(t0, space1);
 
 void textureLoad_484344() {
-  float4 res = arg_0.Load(int3(0, 0, 1));
+  float4 res = arg_0.Load(int3((1).xx, 1));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/484344.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/484344.wgsl.expected.glsl
index 121a7a6..fadc4d6 100644
--- a/test/tint/builtins/gen/literal/textureLoad/484344.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/484344.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 uniform highp sampler2D arg_0_1;
 void textureLoad_484344() {
-  vec4 res = texelFetch(arg_0_1, ivec2(0), 1);
+  vec4 res = texelFetch(arg_0_1, ivec2(1), 1);
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 
 uniform highp sampler2D arg_0_1;
 void textureLoad_484344() {
-  vec4 res = texelFetch(arg_0_1, ivec2(0), 1);
+  vec4 res = texelFetch(arg_0_1, ivec2(1), 1);
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 uniform highp sampler2D arg_0_1;
 void textureLoad_484344() {
-  vec4 res = texelFetch(arg_0_1, ivec2(0), 1);
+  vec4 res = texelFetch(arg_0_1, ivec2(1), 1);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureLoad/484344.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureLoad/484344.wgsl.expected.msl
index 00171e5..c216bdd 100644
--- a/test/tint/builtins/gen/literal/textureLoad/484344.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/484344.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureLoad_484344(texture2d<float, access::sample> tint_symbol_1) {
-  float4 res = tint_symbol_1.read(uint2(int2(0)), 1);
+  float4 res = tint_symbol_1.read(uint2(int2(1)), 1);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/484344.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/484344.wgsl.expected.spvasm
index 14bf5a5..a3f3250 100644
--- a/test/tint/builtins/gen/literal/textureLoad/484344.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/484344.wgsl.expected.spvasm
@@ -38,8 +38,8 @@
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
-         %20 = OpConstantNull %v2int
       %int_1 = OpConstant %int 1
+         %21 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
          %24 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
@@ -47,7 +47,7 @@
          %15 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
          %17 = OpLoad %11 %arg_0
-         %16 = OpImageFetch %v4float %17 %20 Lod %int_1
+         %16 = OpImageFetch %v4float %17 %21 Lod %int_1
                OpStore %res %16
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureLoad/484344.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/484344.wgsl.expected.wgsl
index 2b3cc7d..d9f4d56 100644
--- a/test/tint/builtins/gen/literal/textureLoad/484344.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/484344.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_2d<f32>;
 
 fn textureLoad_484344() {
-  var res : vec4<f32> = textureLoad(arg_0, vec2<i32>(), 1i);
+  var res : vec4<f32> = textureLoad(arg_0, vec2<i32>(1i), 1i);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureLoad/49f76f.wgsl b/test/tint/builtins/gen/literal/textureLoad/49f76f.wgsl
index d4e1195..ccf8f01 100644
--- a/test/tint/builtins/gen/literal/textureLoad/49f76f.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/49f76f.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureLoad(texture: texture_multisampled_2d<u32>, coords: vec2<u32>, sample_index: u32) -> vec4<u32>
 fn textureLoad_49f76f() {
-  var res: vec4<u32> = textureLoad(arg_0, vec2<u32>(), 1u);
+  var res: vec4<u32> = textureLoad(arg_0, vec2<u32>(1u), 1u);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureLoad/49f76f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/49f76f.wgsl.expected.dxc.hlsl
index 6152f02..173f0f3 100644
--- a/test/tint/builtins/gen/literal/textureLoad/49f76f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/49f76f.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DMS<uint4> arg_0 : register(t0, space1);
 
 void textureLoad_49f76f() {
-  uint4 res = arg_0.Load((0u).xx, 1u);
+  uint4 res = arg_0.Load((1u).xx, 1u);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/49f76f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/49f76f.wgsl.expected.fxc.hlsl
index 6152f02..173f0f3 100644
--- a/test/tint/builtins/gen/literal/textureLoad/49f76f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/49f76f.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DMS<uint4> arg_0 : register(t0, space1);
 
 void textureLoad_49f76f() {
-  uint4 res = arg_0.Load((0u).xx, 1u);
+  uint4 res = arg_0.Load((1u).xx, 1u);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/49f76f.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/49f76f.wgsl.expected.glsl
index 4f67942..345b3ce 100644
--- a/test/tint/builtins/gen/literal/textureLoad/49f76f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/49f76f.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 uniform highp usampler2DMS arg_0_1;
 void textureLoad_49f76f() {
-  uvec4 res = texelFetch(arg_0_1, ivec2(uvec2(0u)), int(1u));
+  uvec4 res = texelFetch(arg_0_1, ivec2(uvec2(1u)), int(1u));
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 
 uniform highp usampler2DMS arg_0_1;
 void textureLoad_49f76f() {
-  uvec4 res = texelFetch(arg_0_1, ivec2(uvec2(0u)), int(1u));
+  uvec4 res = texelFetch(arg_0_1, ivec2(uvec2(1u)), int(1u));
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 uniform highp usampler2DMS arg_0_1;
 void textureLoad_49f76f() {
-  uvec4 res = texelFetch(arg_0_1, ivec2(uvec2(0u)), int(1u));
+  uvec4 res = texelFetch(arg_0_1, ivec2(uvec2(1u)), int(1u));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureLoad/49f76f.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureLoad/49f76f.wgsl.expected.msl
index cae2ed1..b4f6aa4 100644
--- a/test/tint/builtins/gen/literal/textureLoad/49f76f.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/49f76f.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureLoad_49f76f(texture2d_ms<uint, access::read> tint_symbol_1) {
-  uint4 res = tint_symbol_1.read(uint2(uint2(0u)), 1u);
+  uint4 res = tint_symbol_1.read(uint2(uint2(1u)), 1u);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/49f76f.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/49f76f.wgsl.expected.spvasm
index 12cfa42..9e7b602 100644
--- a/test/tint/builtins/gen/literal/textureLoad/49f76f.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/49f76f.wgsl.expected.spvasm
@@ -39,8 +39,8 @@
          %13 = OpTypeFunction %void
      %v4uint = OpTypeVector %uint 4
      %v2uint = OpTypeVector %uint 2
-         %21 = OpConstantNull %v2uint
      %uint_1 = OpConstant %uint 1
+         %22 = OpConstantComposite %v2uint %uint_1 %uint_1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
          %25 = OpConstantNull %v4uint
          %26 = OpTypeFunction %v4float
@@ -49,7 +49,7 @@
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_v4uint Function %25
          %19 = OpLoad %11 %arg_0
-         %17 = OpImageFetch %v4uint %19 %21 Sample %uint_1
+         %17 = OpImageFetch %v4uint %19 %22 Sample %uint_1
                OpStore %res %17
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureLoad/49f76f.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/49f76f.wgsl.expected.wgsl
index b1ad019..11774fa 100644
--- a/test/tint/builtins/gen/literal/textureLoad/49f76f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/49f76f.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_multisampled_2d<u32>;
 
 fn textureLoad_49f76f() {
-  var res : vec4<u32> = textureLoad(arg_0, vec2<u32>(), 1u);
+  var res : vec4<u32> = textureLoad(arg_0, vec2<u32>(1u), 1u);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureLoad/4acb64.wgsl b/test/tint/builtins/gen/literal/textureLoad/4acb64.wgsl
index 82d2b57..5b9f223 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4acb64.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/4acb64.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureLoad(texture: texture_2d_array<f32>, coords: vec2<i32>, array_index: u32, level: i32) -> vec4<f32>
 fn textureLoad_4acb64() {
-  var res: vec4<f32> = textureLoad(arg_0, vec2<i32>(), 1u, 1i);
+  var res: vec4<f32> = textureLoad(arg_0, vec2<i32>(1i), 1u, 1i);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureLoad/4acb64.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/4acb64.wgsl.expected.dxc.hlsl
index 21f231b..eb2d9c4 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4acb64.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/4acb64.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 void textureLoad_4acb64() {
-  float4 res = arg_0.Load(int4(0, 0, int(1u), 1));
+  float4 res = arg_0.Load(int4(int3((1).xx, int(1u)), 1));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/4acb64.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/4acb64.wgsl.expected.fxc.hlsl
index 21f231b..eb2d9c4 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4acb64.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/4acb64.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 void textureLoad_4acb64() {
-  float4 res = arg_0.Load(int4(0, 0, int(1u), 1));
+  float4 res = arg_0.Load(int4(int3((1).xx, int(1u)), 1));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/4acb64.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/4acb64.wgsl.expected.glsl
index 0490887..af90d6c 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4acb64.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/4acb64.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 uniform highp sampler2DArray arg_0_1;
 void textureLoad_4acb64() {
-  vec4 res = texelFetch(arg_0_1, ivec3(0, 0, int(1u)), 1);
+  vec4 res = texelFetch(arg_0_1, ivec3(ivec2(1), int(1u)), 1);
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 
 uniform highp sampler2DArray arg_0_1;
 void textureLoad_4acb64() {
-  vec4 res = texelFetch(arg_0_1, ivec3(0, 0, int(1u)), 1);
+  vec4 res = texelFetch(arg_0_1, ivec3(ivec2(1), int(1u)), 1);
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 uniform highp sampler2DArray arg_0_1;
 void textureLoad_4acb64() {
-  vec4 res = texelFetch(arg_0_1, ivec3(0, 0, int(1u)), 1);
+  vec4 res = texelFetch(arg_0_1, ivec3(ivec2(1), int(1u)), 1);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureLoad/4acb64.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureLoad/4acb64.wgsl.expected.msl
index 247c9fc..390a2d2 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4acb64.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/4acb64.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureLoad_4acb64(texture2d_array<float, access::sample> tint_symbol_1) {
-  float4 res = tint_symbol_1.read(uint2(int2(0)), 1u, 1);
+  float4 res = tint_symbol_1.read(uint2(int2(1)), 1u, 1);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/4acb64.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/4acb64.wgsl.expected.spvasm
index 1fcd8ec..b77fa30 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4acb64.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/4acb64.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 42
+; Bound: 45
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -38,42 +38,45 @@
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
-      %int_0 = OpConstant %int 0
+      %v2int = OpTypeVector %int 2
+      %int_1 = OpConstant %int 1
+         %22 = OpConstantComposite %v2int %int_1 %int_1
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
-      %int_1 = OpConstant %int 1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %28 = OpTypeFunction %v4float
+         %31 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_4acb64 = OpFunction %void None %12
          %15 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
          %17 = OpLoad %11 %arg_0
-         %21 = OpBitcast %int %uint_1
-         %24 = OpCompositeConstruct %v3int %int_0 %int_0 %21
-         %16 = OpImageFetch %v4float %17 %24 Lod %int_1
+         %23 = OpCompositeExtract %int %22 0
+         %24 = OpCompositeExtract %int %22 1
+         %25 = OpBitcast %int %uint_1
+         %28 = OpCompositeConstruct %v3int %23 %24 %25
+         %16 = OpImageFetch %v4float %17 %28 Lod %int_1
                OpStore %res %16
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %28
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %textureLoad_4acb64
+%vertex_main_inner = OpFunction %v4float None %31
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureLoad_4acb64
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %33 = OpLabel
-         %34 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %34
+         %36 = OpLabel
+         %37 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %37
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureLoad_4acb64
+         %40 = OpLabel
+         %41 = OpFunctionCall %void %textureLoad_4acb64
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureLoad_4acb64
+         %43 = OpLabel
+         %44 = OpFunctionCall %void %textureLoad_4acb64
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureLoad/4acb64.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/4acb64.wgsl.expected.wgsl
index f55bd6b..b3783d9 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4acb64.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/4acb64.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_2d_array<f32>;
 
 fn textureLoad_4acb64() {
-  var res : vec4<f32> = textureLoad(arg_0, vec2<i32>(), 1u, 1i);
+  var res : vec4<f32> = textureLoad(arg_0, vec2<i32>(1i), 1u, 1i);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureLoad/4db25c.wgsl b/test/tint/builtins/gen/literal/textureLoad/4db25c.wgsl
index 3418786..c16d5b6 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4db25c.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/4db25c.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureLoad(texture: texture_depth_multisampled_2d, coords: vec2<u32>, sample_index: u32) -> f32
 fn textureLoad_4db25c() {
-  var res: f32 = textureLoad(arg_0, vec2<u32>(), 1u);
+  var res: f32 = textureLoad(arg_0, vec2<u32>(1u), 1u);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureLoad/4db25c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/4db25c.wgsl.expected.dxc.hlsl
index 13ff0ba..ba4ee5f 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4db25c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/4db25c.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DMS<float4> arg_0 : register(t0, space1);
 
 void textureLoad_4db25c() {
-  float res = arg_0.Load(uint3(0u, 0u, uint(0)), 1u).x;
+  float res = arg_0.Load(uint3((1u).xx, uint(0)), 1u).x;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/4db25c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/4db25c.wgsl.expected.fxc.hlsl
index 13ff0ba..ba4ee5f 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4db25c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/4db25c.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DMS<float4> arg_0 : register(t0, space1);
 
 void textureLoad_4db25c() {
-  float res = arg_0.Load(uint3(0u, 0u, uint(0)), 1u).x;
+  float res = arg_0.Load(uint3((1u).xx, uint(0)), 1u).x;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/4db25c.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/4db25c.wgsl.expected.glsl
index ddef4d9..2b58f65 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4db25c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/4db25c.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 uniform highp sampler2DMS arg_0_1;
 void textureLoad_4db25c() {
-  float res = texelFetch(arg_0_1, ivec2(uvec2(0u)), int(1u)).x;
+  float res = texelFetch(arg_0_1, ivec2(uvec2(1u)), int(1u)).x;
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 
 uniform highp sampler2DMS arg_0_1;
 void textureLoad_4db25c() {
-  float res = texelFetch(arg_0_1, ivec2(uvec2(0u)), int(1u)).x;
+  float res = texelFetch(arg_0_1, ivec2(uvec2(1u)), int(1u)).x;
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 uniform highp sampler2DMS arg_0_1;
 void textureLoad_4db25c() {
-  float res = texelFetch(arg_0_1, ivec2(uvec2(0u)), int(1u)).x;
+  float res = texelFetch(arg_0_1, ivec2(uvec2(1u)), int(1u)).x;
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureLoad/4db25c.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureLoad/4db25c.wgsl.expected.msl
index 28efe98..c1f80e6 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4db25c.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/4db25c.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureLoad_4db25c(depth2d_ms<float, access::read> tint_symbol_1) {
-  float res = tint_symbol_1.read(uint2(uint2(0u)), 1u);
+  float res = tint_symbol_1.read(uint2(uint2(1u)), 1u);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/4db25c.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/4db25c.wgsl.expected.spvasm
index 27c7101..32be0e4 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4db25c.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/4db25c.wgsl.expected.spvasm
@@ -38,8 +38,8 @@
          %12 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
-         %21 = OpConstantNull %v2uint
      %uint_1 = OpConstant %uint 1
+         %22 = OpConstantComposite %v2uint %uint_1 %uint_1
 %_ptr_Function_float = OpTypePointer Function %float
          %25 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
@@ -47,7 +47,7 @@
          %15 = OpLabel
         %res = OpVariable %_ptr_Function_float Function %8
          %18 = OpLoad %11 %arg_0
-         %17 = OpImageFetch %v4float %18 %21 Sample %uint_1
+         %17 = OpImageFetch %v4float %18 %22 Sample %uint_1
          %16 = OpCompositeExtract %float %17 0
                OpStore %res %16
                OpReturn
diff --git a/test/tint/builtins/gen/literal/textureLoad/4db25c.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/4db25c.wgsl.expected.wgsl
index 467f37a..016d7b3 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4db25c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/4db25c.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_depth_multisampled_2d;
 
 fn textureLoad_4db25c() {
-  var res : f32 = textureLoad(arg_0, vec2<u32>(), 1u);
+  var res : f32 = textureLoad(arg_0, vec2<u32>(1u), 1u);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureLoad/4fd803.wgsl b/test/tint/builtins/gen/literal/textureLoad/4fd803.wgsl
index fcc4f40..0cab940 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4fd803.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/4fd803.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureLoad(texture: texture_3d<i32>, coords: vec3<i32>, level: i32) -> vec4<i32>
 fn textureLoad_4fd803() {
-  var res: vec4<i32> = textureLoad(arg_0, vec3<i32>(), 1i);
+  var res: vec4<i32> = textureLoad(arg_0, vec3<i32>(1i), 1i);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureLoad/4fd803.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/4fd803.wgsl.expected.dxc.hlsl
index 2fe1770..6d0e1ca 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4fd803.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/4fd803.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 Texture3D<int4> arg_0 : register(t0, space1);
 
 void textureLoad_4fd803() {
-  int4 res = arg_0.Load(int4(0, 0, 0, 1));
+  int4 res = arg_0.Load(int4((1).xxx, 1));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/4fd803.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/4fd803.wgsl.expected.fxc.hlsl
index 2fe1770..6d0e1ca 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4fd803.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/4fd803.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 Texture3D<int4> arg_0 : register(t0, space1);
 
 void textureLoad_4fd803() {
-  int4 res = arg_0.Load(int4(0, 0, 0, 1));
+  int4 res = arg_0.Load(int4((1).xxx, 1));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/4fd803.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/4fd803.wgsl.expected.glsl
index b5ca069..6b6428c 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4fd803.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/4fd803.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 uniform highp isampler3D arg_0_1;
 void textureLoad_4fd803() {
-  ivec4 res = texelFetch(arg_0_1, ivec3(0), 1);
+  ivec4 res = texelFetch(arg_0_1, ivec3(1), 1);
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 
 uniform highp isampler3D arg_0_1;
 void textureLoad_4fd803() {
-  ivec4 res = texelFetch(arg_0_1, ivec3(0), 1);
+  ivec4 res = texelFetch(arg_0_1, ivec3(1), 1);
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 uniform highp isampler3D arg_0_1;
 void textureLoad_4fd803() {
-  ivec4 res = texelFetch(arg_0_1, ivec3(0), 1);
+  ivec4 res = texelFetch(arg_0_1, ivec3(1), 1);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureLoad/4fd803.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureLoad/4fd803.wgsl.expected.msl
index e72afeb..b3c9573 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4fd803.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/4fd803.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureLoad_4fd803(texture3d<int, access::sample> tint_symbol_1) {
-  int4 res = tint_symbol_1.read(uint3(int3(0)), 1);
+  int4 res = tint_symbol_1.read(uint3(int3(1)), 1);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/4fd803.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/4fd803.wgsl.expected.spvasm
index a288c46..09c742b 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4fd803.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/4fd803.wgsl.expected.spvasm
@@ -39,8 +39,8 @@
          %13 = OpTypeFunction %void
       %v4int = OpTypeVector %int 4
       %v3int = OpTypeVector %int 3
-         %21 = OpConstantNull %v3int
       %int_1 = OpConstant %int 1
+         %22 = OpConstantComposite %v3int %int_1 %int_1 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
          %25 = OpConstantNull %v4int
          %26 = OpTypeFunction %v4float
@@ -49,7 +49,7 @@
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_v4int Function %25
          %19 = OpLoad %11 %arg_0
-         %17 = OpImageFetch %v4int %19 %21 Lod %int_1
+         %17 = OpImageFetch %v4int %19 %22 Lod %int_1
                OpStore %res %17
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureLoad/4fd803.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/4fd803.wgsl.expected.wgsl
index 5545559..60d259e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4fd803.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/4fd803.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_3d<i32>;
 
 fn textureLoad_4fd803() {
-  var res : vec4<i32> = textureLoad(arg_0, vec3<i32>(), 1i);
+  var res : vec4<i32> = textureLoad(arg_0, vec3<i32>(1i), 1i);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureLoad/53e142.wgsl b/test/tint/builtins/gen/literal/textureLoad/53e142.wgsl
index 86eb297..c02faf2 100644
--- a/test/tint/builtins/gen/literal/textureLoad/53e142.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/53e142.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureLoad(texture: texture_2d_array<u32>, coords: vec2<u32>, array_index: i32, level: i32) -> vec4<u32>
 fn textureLoad_53e142() {
-  var res: vec4<u32> = textureLoad(arg_0, vec2<u32>(), 1i, 1i);
+  var res: vec4<u32> = textureLoad(arg_0, vec2<u32>(1u), 1i, 1i);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureLoad/53e142.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/53e142.wgsl.expected.dxc.hlsl
index 7485817..3aa59fd 100644
--- a/test/tint/builtins/gen/literal/textureLoad/53e142.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/53e142.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 void textureLoad_53e142() {
-  uint4 res = arg_0.Load(uint4(0u, 0u, uint(1), uint(1)));
+  uint4 res = arg_0.Load(uint4(uint3((1u).xx, uint(1)), uint(1)));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/53e142.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/53e142.wgsl.expected.fxc.hlsl
index 7485817..3aa59fd 100644
--- a/test/tint/builtins/gen/literal/textureLoad/53e142.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/53e142.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 void textureLoad_53e142() {
-  uint4 res = arg_0.Load(uint4(0u, 0u, uint(1), uint(1)));
+  uint4 res = arg_0.Load(uint4(uint3((1u).xx, uint(1)), uint(1)));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/53e142.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/53e142.wgsl.expected.glsl
index 60635a4..2784890 100644
--- a/test/tint/builtins/gen/literal/textureLoad/53e142.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/53e142.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 uniform highp usampler2DArray arg_0_1;
 void textureLoad_53e142() {
-  uvec4 res = texelFetch(arg_0_1, ivec3(uvec3(0u, 0u, uint(1))), 1);
+  uvec4 res = texelFetch(arg_0_1, ivec3(uvec3(uvec2(1u), uint(1))), 1);
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 
 uniform highp usampler2DArray arg_0_1;
 void textureLoad_53e142() {
-  uvec4 res = texelFetch(arg_0_1, ivec3(uvec3(0u, 0u, uint(1))), 1);
+  uvec4 res = texelFetch(arg_0_1, ivec3(uvec3(uvec2(1u), uint(1))), 1);
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 uniform highp usampler2DArray arg_0_1;
 void textureLoad_53e142() {
-  uvec4 res = texelFetch(arg_0_1, ivec3(uvec3(0u, 0u, uint(1))), 1);
+  uvec4 res = texelFetch(arg_0_1, ivec3(uvec3(uvec2(1u), uint(1))), 1);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureLoad/53e142.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureLoad/53e142.wgsl.expected.msl
index b7c7b22..bff4dce 100644
--- a/test/tint/builtins/gen/literal/textureLoad/53e142.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/53e142.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureLoad_53e142(texture2d_array<uint, access::sample> tint_symbol_1) {
-  uint4 res = tint_symbol_1.read(uint2(uint2(0u)), 1, 1);
+  uint4 res = tint_symbol_1.read(uint2(uint2(1u)), 1, 1);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/53e142.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/53e142.wgsl.expected.spvasm
index 47244e5..0d6f864 100644
--- a/test/tint/builtins/gen/literal/textureLoad/53e142.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/53e142.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 43
+; Bound: 47
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -39,42 +39,46 @@
          %13 = OpTypeFunction %void
      %v4uint = OpTypeVector %uint 4
      %v3uint = OpTypeVector %uint 3
-     %uint_0 = OpConstant %uint 0
+     %v2uint = OpTypeVector %uint 2
+     %uint_1 = OpConstant %uint 1
+         %23 = OpConstantComposite %v2uint %uint_1 %uint_1
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %28 = OpConstantNull %v4uint
-         %29 = OpTypeFunction %v4float
+         %32 = OpConstantNull %v4uint
+         %33 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_53e142 = OpFunction %void None %13
          %16 = OpLabel
-        %res = OpVariable %_ptr_Function_v4uint Function %28
+        %res = OpVariable %_ptr_Function_v4uint Function %32
          %19 = OpLoad %11 %arg_0
-         %22 = OpBitcast %uint %int_1
-         %25 = OpCompositeConstruct %v3uint %uint_0 %uint_0 %22
-         %17 = OpImageFetch %v4uint %19 %25 Lod %int_1
+         %24 = OpCompositeExtract %uint %23 0
+         %25 = OpCompositeExtract %uint %23 1
+         %26 = OpBitcast %uint %int_1
+         %29 = OpCompositeConstruct %v3uint %24 %25 %26
+         %17 = OpImageFetch %v4uint %19 %29 Lod %int_1
                OpStore %res %17
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %29
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %textureLoad_53e142
+%vertex_main_inner = OpFunction %v4float None %33
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureLoad_53e142
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %34 = OpLabel
-         %35 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %35
+         %38 = OpLabel
+         %39 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %39
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureLoad_53e142
+         %42 = OpLabel
+         %43 = OpFunctionCall %void %textureLoad_53e142
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureLoad_53e142
+         %45 = OpLabel
+         %46 = OpFunctionCall %void %textureLoad_53e142
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureLoad/53e142.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/53e142.wgsl.expected.wgsl
index 741a7f0..61ac9cd 100644
--- a/test/tint/builtins/gen/literal/textureLoad/53e142.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/53e142.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_2d_array<u32>;
 
 fn textureLoad_53e142() {
-  var res : vec4<u32> = textureLoad(arg_0, vec2<u32>(), 1i, 1i);
+  var res : vec4<u32> = textureLoad(arg_0, vec2<u32>(1u), 1i, 1i);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureLoad/54a59b.wgsl b/test/tint/builtins/gen/literal/textureLoad/54a59b.wgsl
index 0cd6406..8709118 100644
--- a/test/tint/builtins/gen/literal/textureLoad/54a59b.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/54a59b.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureLoad(texture: texture_2d_array<f32>, coords: vec2<u32>, array_index: i32, level: i32) -> vec4<f32>
 fn textureLoad_54a59b() {
-  var res: vec4<f32> = textureLoad(arg_0, vec2<u32>(), 1i, 1i);
+  var res: vec4<f32> = textureLoad(arg_0, vec2<u32>(1u), 1i, 1i);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureLoad/54a59b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/54a59b.wgsl.expected.dxc.hlsl
index 37fc597..05c3ea6 100644
--- a/test/tint/builtins/gen/literal/textureLoad/54a59b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/54a59b.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 void textureLoad_54a59b() {
-  float4 res = arg_0.Load(uint4(0u, 0u, uint(1), uint(1)));
+  float4 res = arg_0.Load(uint4(uint3((1u).xx, uint(1)), uint(1)));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/54a59b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/54a59b.wgsl.expected.fxc.hlsl
index 37fc597..05c3ea6 100644
--- a/test/tint/builtins/gen/literal/textureLoad/54a59b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/54a59b.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 void textureLoad_54a59b() {
-  float4 res = arg_0.Load(uint4(0u, 0u, uint(1), uint(1)));
+  float4 res = arg_0.Load(uint4(uint3((1u).xx, uint(1)), uint(1)));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/54a59b.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/54a59b.wgsl.expected.glsl
index 1cbdc29..d0261ec 100644
--- a/test/tint/builtins/gen/literal/textureLoad/54a59b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/54a59b.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 uniform highp sampler2DArray arg_0_1;
 void textureLoad_54a59b() {
-  vec4 res = texelFetch(arg_0_1, ivec3(uvec3(0u, 0u, uint(1))), 1);
+  vec4 res = texelFetch(arg_0_1, ivec3(uvec3(uvec2(1u), uint(1))), 1);
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 
 uniform highp sampler2DArray arg_0_1;
 void textureLoad_54a59b() {
-  vec4 res = texelFetch(arg_0_1, ivec3(uvec3(0u, 0u, uint(1))), 1);
+  vec4 res = texelFetch(arg_0_1, ivec3(uvec3(uvec2(1u), uint(1))), 1);
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 uniform highp sampler2DArray arg_0_1;
 void textureLoad_54a59b() {
-  vec4 res = texelFetch(arg_0_1, ivec3(uvec3(0u, 0u, uint(1))), 1);
+  vec4 res = texelFetch(arg_0_1, ivec3(uvec3(uvec2(1u), uint(1))), 1);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureLoad/54a59b.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureLoad/54a59b.wgsl.expected.msl
index 05527a5..76de435 100644
--- a/test/tint/builtins/gen/literal/textureLoad/54a59b.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/54a59b.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureLoad_54a59b(texture2d_array<float, access::sample> tint_symbol_1) {
-  float4 res = tint_symbol_1.read(uint2(uint2(0u)), 1, 1);
+  float4 res = tint_symbol_1.read(uint2(uint2(1u)), 1, 1);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/54a59b.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/54a59b.wgsl.expected.spvasm
index 14f2601..a74c27d 100644
--- a/test/tint/builtins/gen/literal/textureLoad/54a59b.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/54a59b.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 41
+; Bound: 45
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -38,41 +38,45 @@
          %12 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
-     %uint_0 = OpConstant %uint 0
+     %v2uint = OpTypeVector %uint 2
+     %uint_1 = OpConstant %uint 1
+         %22 = OpConstantComposite %v2uint %uint_1 %uint_1
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %27 = OpTypeFunction %v4float
+         %31 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_54a59b = OpFunction %void None %12
          %15 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
          %17 = OpLoad %11 %arg_0
-         %21 = OpBitcast %uint %int_1
-         %24 = OpCompositeConstruct %v3uint %uint_0 %uint_0 %21
-         %16 = OpImageFetch %v4float %17 %24 Lod %int_1
+         %23 = OpCompositeExtract %uint %22 0
+         %24 = OpCompositeExtract %uint %22 1
+         %25 = OpBitcast %uint %int_1
+         %28 = OpCompositeConstruct %v3uint %23 %24 %25
+         %16 = OpImageFetch %v4float %17 %28 Lod %int_1
                OpStore %res %16
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %27
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %textureLoad_54a59b
+%vertex_main_inner = OpFunction %v4float None %31
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureLoad_54a59b
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %32 = OpLabel
-         %33 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %33
+         %36 = OpLabel
+         %37 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %37
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureLoad_54a59b
+         %40 = OpLabel
+         %41 = OpFunctionCall %void %textureLoad_54a59b
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureLoad_54a59b
+         %43 = OpLabel
+         %44 = OpFunctionCall %void %textureLoad_54a59b
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureLoad/54a59b.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/54a59b.wgsl.expected.wgsl
index bf69b5d..501de96 100644
--- a/test/tint/builtins/gen/literal/textureLoad/54a59b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/54a59b.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_2d_array<f32>;
 
 fn textureLoad_54a59b() {
-  var res : vec4<f32> = textureLoad(arg_0, vec2<u32>(), 1i, 1i);
+  var res : vec4<f32> = textureLoad(arg_0, vec2<u32>(1u), 1i, 1i);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureLoad/6154d4.wgsl b/test/tint/builtins/gen/literal/textureLoad/6154d4.wgsl
index 0e460bb..6a412e6 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6154d4.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/6154d4.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureLoad(texture: texture_2d<u32>, coords: vec2<i32>, level: i32) -> vec4<u32>
 fn textureLoad_6154d4() {
-  var res: vec4<u32> = textureLoad(arg_0, vec2<i32>(), 1i);
+  var res: vec4<u32> = textureLoad(arg_0, vec2<i32>(1i), 1i);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureLoad/6154d4.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/6154d4.wgsl.expected.dxc.hlsl
index 1aedcd2..515b575 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6154d4.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/6154d4.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 Texture2D<uint4> arg_0 : register(t0, space1);
 
 void textureLoad_6154d4() {
-  uint4 res = arg_0.Load(int3(0, 0, 1));
+  uint4 res = arg_0.Load(int3((1).xx, 1));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/6154d4.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/6154d4.wgsl.expected.fxc.hlsl
index 1aedcd2..515b575 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6154d4.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/6154d4.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 Texture2D<uint4> arg_0 : register(t0, space1);
 
 void textureLoad_6154d4() {
-  uint4 res = arg_0.Load(int3(0, 0, 1));
+  uint4 res = arg_0.Load(int3((1).xx, 1));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/6154d4.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/6154d4.wgsl.expected.glsl
index 017e004..7ec67ea 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6154d4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/6154d4.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 uniform highp usampler2D arg_0_1;
 void textureLoad_6154d4() {
-  uvec4 res = texelFetch(arg_0_1, ivec2(0), 1);
+  uvec4 res = texelFetch(arg_0_1, ivec2(1), 1);
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 
 uniform highp usampler2D arg_0_1;
 void textureLoad_6154d4() {
-  uvec4 res = texelFetch(arg_0_1, ivec2(0), 1);
+  uvec4 res = texelFetch(arg_0_1, ivec2(1), 1);
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 uniform highp usampler2D arg_0_1;
 void textureLoad_6154d4() {
-  uvec4 res = texelFetch(arg_0_1, ivec2(0), 1);
+  uvec4 res = texelFetch(arg_0_1, ivec2(1), 1);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureLoad/6154d4.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureLoad/6154d4.wgsl.expected.msl
index d71292e..26372cd 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6154d4.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/6154d4.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureLoad_6154d4(texture2d<uint, access::sample> tint_symbol_1) {
-  uint4 res = tint_symbol_1.read(uint2(int2(0)), 1);
+  uint4 res = tint_symbol_1.read(uint2(int2(1)), 1);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/6154d4.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/6154d4.wgsl.expected.spvasm
index 5720f46..9601d63 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6154d4.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/6154d4.wgsl.expected.spvasm
@@ -40,8 +40,8 @@
      %v4uint = OpTypeVector %uint 4
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
-         %22 = OpConstantNull %v2int
       %int_1 = OpConstant %int 1
+         %23 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
          %26 = OpConstantNull %v4uint
          %27 = OpTypeFunction %v4float
@@ -50,7 +50,7 @@
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_v4uint Function %26
          %19 = OpLoad %11 %arg_0
-         %17 = OpImageFetch %v4uint %19 %22 Lod %int_1
+         %17 = OpImageFetch %v4uint %19 %23 Lod %int_1
                OpStore %res %17
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureLoad/6154d4.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/6154d4.wgsl.expected.wgsl
index 8238d07..59fe73e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6154d4.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/6154d4.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_2d<u32>;
 
 fn textureLoad_6154d4() {
-  var res : vec4<u32> = textureLoad(arg_0, vec2<i32>(), 1i);
+  var res : vec4<u32> = textureLoad(arg_0, vec2<i32>(1i), 1i);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureLoad/6273b1.wgsl b/test/tint/builtins/gen/literal/textureLoad/6273b1.wgsl
index 988633f..a30de18 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6273b1.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/6273b1.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureLoad(texture: texture_depth_multisampled_2d, coords: vec2<i32>, sample_index: i32) -> f32
 fn textureLoad_6273b1() {
-  var res: f32 = textureLoad(arg_0, vec2<i32>(), 1i);
+  var res: f32 = textureLoad(arg_0, vec2<i32>(1i), 1i);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureLoad/6273b1.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/6273b1.wgsl.expected.dxc.hlsl
index fafcd35..599f9fb 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6273b1.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/6273b1.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DMS<float4> arg_0 : register(t0, space1);
 
 void textureLoad_6273b1() {
-  float res = arg_0.Load(int3(0, 0, 0), 1).x;
+  float res = arg_0.Load(int3((1).xx, 0), 1).x;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/6273b1.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/6273b1.wgsl.expected.fxc.hlsl
index fafcd35..599f9fb 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6273b1.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/6273b1.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DMS<float4> arg_0 : register(t0, space1);
 
 void textureLoad_6273b1() {
-  float res = arg_0.Load(int3(0, 0, 0), 1).x;
+  float res = arg_0.Load(int3((1).xx, 0), 1).x;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/6273b1.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/6273b1.wgsl.expected.glsl
index 3cfe277..9da482c 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6273b1.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/6273b1.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 uniform highp sampler2DMS arg_0_1;
 void textureLoad_6273b1() {
-  float res = texelFetch(arg_0_1, ivec2(0), 1).x;
+  float res = texelFetch(arg_0_1, ivec2(1), 1).x;
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 
 uniform highp sampler2DMS arg_0_1;
 void textureLoad_6273b1() {
-  float res = texelFetch(arg_0_1, ivec2(0), 1).x;
+  float res = texelFetch(arg_0_1, ivec2(1), 1).x;
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 uniform highp sampler2DMS arg_0_1;
 void textureLoad_6273b1() {
-  float res = texelFetch(arg_0_1, ivec2(0), 1).x;
+  float res = texelFetch(arg_0_1, ivec2(1), 1).x;
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureLoad/6273b1.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureLoad/6273b1.wgsl.expected.msl
index e39caca..fd32c20 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6273b1.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/6273b1.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureLoad_6273b1(depth2d_ms<float, access::read> tint_symbol_1) {
-  float res = tint_symbol_1.read(uint2(int2(0)), 1);
+  float res = tint_symbol_1.read(uint2(int2(1)), 1);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/6273b1.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/6273b1.wgsl.expected.spvasm
index 5db1880..58aacb9 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6273b1.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/6273b1.wgsl.expected.spvasm
@@ -38,8 +38,8 @@
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
-         %21 = OpConstantNull %v2int
       %int_1 = OpConstant %int 1
+         %22 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_float = OpTypePointer Function %float
          %25 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
@@ -47,7 +47,7 @@
          %15 = OpLabel
         %res = OpVariable %_ptr_Function_float Function %8
          %18 = OpLoad %11 %arg_0
-         %17 = OpImageFetch %v4float %18 %21 Sample %int_1
+         %17 = OpImageFetch %v4float %18 %22 Sample %int_1
          %16 = OpCompositeExtract %float %17 0
                OpStore %res %16
                OpReturn
diff --git a/test/tint/builtins/gen/literal/textureLoad/6273b1.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/6273b1.wgsl.expected.wgsl
index 6c19c4a..ad54e19 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6273b1.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/6273b1.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_depth_multisampled_2d;
 
 fn textureLoad_6273b1() {
-  var res : f32 = textureLoad(arg_0, vec2<i32>(), 1i);
+  var res : f32 = textureLoad(arg_0, vec2<i32>(1i), 1i);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureLoad/639962.wgsl b/test/tint/builtins/gen/literal/textureLoad/639962.wgsl
index 9311705..464ee33 100644
--- a/test/tint/builtins/gen/literal/textureLoad/639962.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/639962.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureLoad(texture: texture_multisampled_2d<i32>, coords: vec2<u32>, sample_index: u32) -> vec4<i32>
 fn textureLoad_639962() {
-  var res: vec4<i32> = textureLoad(arg_0, vec2<u32>(), 1u);
+  var res: vec4<i32> = textureLoad(arg_0, vec2<u32>(1u), 1u);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureLoad/639962.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/639962.wgsl.expected.dxc.hlsl
index 42bb7f1..135287e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/639962.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/639962.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DMS<int4> arg_0 : register(t0, space1);
 
 void textureLoad_639962() {
-  int4 res = arg_0.Load((0u).xx, 1u);
+  int4 res = arg_0.Load((1u).xx, 1u);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/639962.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/639962.wgsl.expected.fxc.hlsl
index 42bb7f1..135287e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/639962.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/639962.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DMS<int4> arg_0 : register(t0, space1);
 
 void textureLoad_639962() {
-  int4 res = arg_0.Load((0u).xx, 1u);
+  int4 res = arg_0.Load((1u).xx, 1u);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/639962.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/639962.wgsl.expected.glsl
index 40ede06..b7f55c8 100644
--- a/test/tint/builtins/gen/literal/textureLoad/639962.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/639962.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 uniform highp isampler2DMS arg_0_1;
 void textureLoad_639962() {
-  ivec4 res = texelFetch(arg_0_1, ivec2(uvec2(0u)), int(1u));
+  ivec4 res = texelFetch(arg_0_1, ivec2(uvec2(1u)), int(1u));
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 
 uniform highp isampler2DMS arg_0_1;
 void textureLoad_639962() {
-  ivec4 res = texelFetch(arg_0_1, ivec2(uvec2(0u)), int(1u));
+  ivec4 res = texelFetch(arg_0_1, ivec2(uvec2(1u)), int(1u));
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 uniform highp isampler2DMS arg_0_1;
 void textureLoad_639962() {
-  ivec4 res = texelFetch(arg_0_1, ivec2(uvec2(0u)), int(1u));
+  ivec4 res = texelFetch(arg_0_1, ivec2(uvec2(1u)), int(1u));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureLoad/639962.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureLoad/639962.wgsl.expected.msl
index c0022d9..ac9b81f 100644
--- a/test/tint/builtins/gen/literal/textureLoad/639962.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/639962.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureLoad_639962(texture2d_ms<int, access::read> tint_symbol_1) {
-  int4 res = tint_symbol_1.read(uint2(uint2(0u)), 1u);
+  int4 res = tint_symbol_1.read(uint2(uint2(1u)), 1u);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/639962.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/639962.wgsl.expected.spvasm
index 2c8ccab..9dab4a0 100644
--- a/test/tint/builtins/gen/literal/textureLoad/639962.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/639962.wgsl.expected.spvasm
@@ -40,8 +40,8 @@
       %v4int = OpTypeVector %int 4
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
-         %22 = OpConstantNull %v2uint
      %uint_1 = OpConstant %uint 1
+         %23 = OpConstantComposite %v2uint %uint_1 %uint_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
          %26 = OpConstantNull %v4int
          %27 = OpTypeFunction %v4float
@@ -50,7 +50,7 @@
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_v4int Function %26
          %19 = OpLoad %11 %arg_0
-         %17 = OpImageFetch %v4int %19 %22 Sample %uint_1
+         %17 = OpImageFetch %v4int %19 %23 Sample %uint_1
                OpStore %res %17
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureLoad/639962.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/639962.wgsl.expected.wgsl
index f7aa89a..1b47969 100644
--- a/test/tint/builtins/gen/literal/textureLoad/639962.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/639962.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_multisampled_2d<i32>;
 
 fn textureLoad_639962() {
-  var res : vec4<i32> = textureLoad(arg_0, vec2<u32>(), 1u);
+  var res : vec4<i32> = textureLoad(arg_0, vec2<u32>(1u), 1u);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureLoad/656d76.wgsl b/test/tint/builtins/gen/literal/textureLoad/656d76.wgsl
index 11c7cb5..34e2fd1 100644
--- a/test/tint/builtins/gen/literal/textureLoad/656d76.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/656d76.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureLoad(texture: texture_2d_array<u32>, coords: vec2<i32>, array_index: i32, level: u32) -> vec4<u32>
 fn textureLoad_656d76() {
-  var res: vec4<u32> = textureLoad(arg_0, vec2<i32>(), 1i, 1u);
+  var res: vec4<u32> = textureLoad(arg_0, vec2<i32>(1i), 1i, 1u);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureLoad/656d76.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/656d76.wgsl.expected.dxc.hlsl
index bf91da0..3d3a154 100644
--- a/test/tint/builtins/gen/literal/textureLoad/656d76.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/656d76.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 void textureLoad_656d76() {
-  uint4 res = arg_0.Load(int4(0, 0, 1, int(1u)));
+  uint4 res = arg_0.Load(int4(int3((1).xx, 1), int(1u)));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/656d76.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/656d76.wgsl.expected.fxc.hlsl
index bf91da0..3d3a154 100644
--- a/test/tint/builtins/gen/literal/textureLoad/656d76.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/656d76.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 void textureLoad_656d76() {
-  uint4 res = arg_0.Load(int4(0, 0, 1, int(1u)));
+  uint4 res = arg_0.Load(int4(int3((1).xx, 1), int(1u)));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/656d76.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/656d76.wgsl.expected.glsl
index 3aad010..28f6396 100644
--- a/test/tint/builtins/gen/literal/textureLoad/656d76.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/656d76.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 uniform highp usampler2DArray arg_0_1;
 void textureLoad_656d76() {
-  uvec4 res = texelFetch(arg_0_1, ivec3(0, 0, 1), int(1u));
+  uvec4 res = texelFetch(arg_0_1, ivec3(ivec2(1), 1), int(1u));
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 
 uniform highp usampler2DArray arg_0_1;
 void textureLoad_656d76() {
-  uvec4 res = texelFetch(arg_0_1, ivec3(0, 0, 1), int(1u));
+  uvec4 res = texelFetch(arg_0_1, ivec3(ivec2(1), 1), int(1u));
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 uniform highp usampler2DArray arg_0_1;
 void textureLoad_656d76() {
-  uvec4 res = texelFetch(arg_0_1, ivec3(0, 0, 1), int(1u));
+  uvec4 res = texelFetch(arg_0_1, ivec3(ivec2(1), 1), int(1u));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureLoad/656d76.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureLoad/656d76.wgsl.expected.msl
index a992774..bc1b598 100644
--- a/test/tint/builtins/gen/literal/textureLoad/656d76.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/656d76.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureLoad_656d76(texture2d_array<uint, access::sample> tint_symbol_1) {
-  uint4 res = tint_symbol_1.read(uint2(int2(0)), 1, 1u);
+  uint4 res = tint_symbol_1.read(uint2(int2(1)), 1, 1u);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/656d76.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/656d76.wgsl.expected.spvasm
index 0b2bd2b..29e4722 100644
--- a/test/tint/builtins/gen/literal/textureLoad/656d76.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/656d76.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 43
+; Bound: 46
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -40,41 +40,44 @@
      %v4uint = OpTypeVector %uint 4
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
-      %int_0 = OpConstant %int 0
+      %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %24 = OpConstantComposite %v3int %int_0 %int_0 %int_1
+         %24 = OpConstantComposite %v2int %int_1 %int_1
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %28 = OpConstantNull %v4uint
-         %29 = OpTypeFunction %v4float
+         %31 = OpConstantNull %v4uint
+         %32 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_656d76 = OpFunction %void None %13
          %16 = OpLabel
-        %res = OpVariable %_ptr_Function_v4uint Function %28
+        %res = OpVariable %_ptr_Function_v4uint Function %31
          %19 = OpLoad %11 %arg_0
-         %17 = OpImageFetch %v4uint %19 %24 Lod %uint_1
+         %25 = OpCompositeExtract %int %24 0
+         %26 = OpCompositeExtract %int %24 1
+         %27 = OpCompositeConstruct %v3int %25 %26 %int_1
+         %17 = OpImageFetch %v4uint %19 %27 Lod %uint_1
                OpStore %res %17
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %29
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %textureLoad_656d76
+%vertex_main_inner = OpFunction %v4float None %32
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %textureLoad_656d76
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %34 = OpLabel
-         %35 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %35
+         %37 = OpLabel
+         %38 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %38
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureLoad_656d76
+         %41 = OpLabel
+         %42 = OpFunctionCall %void %textureLoad_656d76
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureLoad_656d76
+         %44 = OpLabel
+         %45 = OpFunctionCall %void %textureLoad_656d76
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureLoad/656d76.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/656d76.wgsl.expected.wgsl
index a7a3ebd..8f0880b 100644
--- a/test/tint/builtins/gen/literal/textureLoad/656d76.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/656d76.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_2d_array<u32>;
 
 fn textureLoad_656d76() {
-  var res : vec4<u32> = textureLoad(arg_0, vec2<i32>(), 1i, 1u);
+  var res : vec4<u32> = textureLoad(arg_0, vec2<i32>(1i), 1i, 1u);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureLoad/66be47.wgsl b/test/tint/builtins/gen/literal/textureLoad/66be47.wgsl
index 7014871..88c8732 100644
--- a/test/tint/builtins/gen/literal/textureLoad/66be47.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/66be47.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureLoad(texture: texture_depth_2d_array, coords: vec2<i32>, array_index: u32, level: u32) -> f32
 fn textureLoad_66be47() {
-  var res: f32 = textureLoad(arg_0, vec2<i32>(), 1u, 1u);
+  var res: f32 = textureLoad(arg_0, vec2<i32>(1i), 1u, 1u);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureLoad/66be47.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/66be47.wgsl.expected.dxc.hlsl
index 73885a2..d8dfa1d 100644
--- a/test/tint/builtins/gen/literal/textureLoad/66be47.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/66be47.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DArray arg_0 : register(t0, space1);
 
 void textureLoad_66be47() {
-  float res = arg_0.Load(int4(0, 0, int(1u), int(1u))).x;
+  float res = arg_0.Load(int4(int3((1).xx, int(1u)), int(1u))).x;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/66be47.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/66be47.wgsl.expected.fxc.hlsl
index 73885a2..d8dfa1d 100644
--- a/test/tint/builtins/gen/literal/textureLoad/66be47.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/66be47.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DArray arg_0 : register(t0, space1);
 
 void textureLoad_66be47() {
-  float res = arg_0.Load(int4(0, 0, int(1u), int(1u))).x;
+  float res = arg_0.Load(int4(int3((1).xx, int(1u)), int(1u))).x;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/66be47.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/66be47.wgsl.expected.glsl
index f8185c1..5ae469f 100644
--- a/test/tint/builtins/gen/literal/textureLoad/66be47.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/66be47.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 uniform highp sampler2DArray arg_0_1;
 void textureLoad_66be47() {
-  float res = texelFetch(arg_0_1, ivec3(0, 0, int(1u)), int(1u)).x;
+  float res = texelFetch(arg_0_1, ivec3(ivec2(1), int(1u)), int(1u)).x;
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 
 uniform highp sampler2DArray arg_0_1;
 void textureLoad_66be47() {
-  float res = texelFetch(arg_0_1, ivec3(0, 0, int(1u)), int(1u)).x;
+  float res = texelFetch(arg_0_1, ivec3(ivec2(1), int(1u)), int(1u)).x;
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 uniform highp sampler2DArray arg_0_1;
 void textureLoad_66be47() {
-  float res = texelFetch(arg_0_1, ivec3(0, 0, int(1u)), int(1u)).x;
+  float res = texelFetch(arg_0_1, ivec3(ivec2(1), int(1u)), int(1u)).x;
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureLoad/66be47.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureLoad/66be47.wgsl.expected.msl
index 17fef2f..f939f98 100644
--- a/test/tint/builtins/gen/literal/textureLoad/66be47.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/66be47.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureLoad_66be47(depth2d_array<float, access::sample> tint_symbol_1) {
-  float res = tint_symbol_1.read(uint2(int2(0)), 1u, 1u);
+  float res = tint_symbol_1.read(uint2(int2(1)), 1u, 1u);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/66be47.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/66be47.wgsl.expected.spvasm
index 990ebb0..75d29e2 100644
--- a/test/tint/builtins/gen/literal/textureLoad/66be47.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/66be47.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 42
+; Bound: 46
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -38,42 +38,46 @@
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
-      %int_0 = OpConstant %int 0
+      %v2int = OpTypeVector %int 2
+      %int_1 = OpConstant %int 1
+         %23 = OpConstantComposite %v2int %int_1 %int_1
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_float = OpTypePointer Function %float
-         %28 = OpTypeFunction %v4float
+         %32 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_66be47 = OpFunction %void None %12
          %15 = OpLabel
         %res = OpVariable %_ptr_Function_float Function %8
          %18 = OpLoad %11 %arg_0
-         %22 = OpBitcast %int %uint_1
-         %25 = OpCompositeConstruct %v3int %int_0 %int_0 %22
-         %17 = OpImageFetch %v4float %18 %25 Lod %uint_1
+         %24 = OpCompositeExtract %int %23 0
+         %25 = OpCompositeExtract %int %23 1
+         %26 = OpBitcast %int %uint_1
+         %29 = OpCompositeConstruct %v3int %24 %25 %26
+         %17 = OpImageFetch %v4float %18 %29 Lod %uint_1
          %16 = OpCompositeExtract %float %17 0
                OpStore %res %16
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %28
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %textureLoad_66be47
+%vertex_main_inner = OpFunction %v4float None %32
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %textureLoad_66be47
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %33 = OpLabel
-         %34 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %34
+         %37 = OpLabel
+         %38 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %38
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureLoad_66be47
+         %41 = OpLabel
+         %42 = OpFunctionCall %void %textureLoad_66be47
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureLoad_66be47
+         %44 = OpLabel
+         %45 = OpFunctionCall %void %textureLoad_66be47
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureLoad/66be47.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/66be47.wgsl.expected.wgsl
index 1832e29..74559b9 100644
--- a/test/tint/builtins/gen/literal/textureLoad/66be47.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/66be47.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_depth_2d_array;
 
 fn textureLoad_66be47() {
-  var res : f32 = textureLoad(arg_0, vec2<i32>(), 1u, 1u);
+  var res : f32 = textureLoad(arg_0, vec2<i32>(1i), 1u, 1u);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureLoad/6925bc.wgsl b/test/tint/builtins/gen/literal/textureLoad/6925bc.wgsl
index 2b8177e..9ddd349 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6925bc.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/6925bc.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureLoad(texture: texture_depth_multisampled_2d, coords: vec2<i32>, sample_index: u32) -> f32
 fn textureLoad_6925bc() {
-  var res: f32 = textureLoad(arg_0, vec2<i32>(), 1u);
+  var res: f32 = textureLoad(arg_0, vec2<i32>(1i), 1u);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureLoad/6925bc.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/6925bc.wgsl.expected.dxc.hlsl
index ccd6a22..f0c82ff 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6925bc.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/6925bc.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DMS<float4> arg_0 : register(t0, space1);
 
 void textureLoad_6925bc() {
-  float res = arg_0.Load(int3(0, 0, 0), 1u).x;
+  float res = arg_0.Load(int3((1).xx, 0), 1u).x;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/6925bc.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/6925bc.wgsl.expected.fxc.hlsl
index ccd6a22..f0c82ff 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6925bc.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/6925bc.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DMS<float4> arg_0 : register(t0, space1);
 
 void textureLoad_6925bc() {
-  float res = arg_0.Load(int3(0, 0, 0), 1u).x;
+  float res = arg_0.Load(int3((1).xx, 0), 1u).x;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/6925bc.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/6925bc.wgsl.expected.glsl
index 76b2acd..0dec904 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6925bc.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/6925bc.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 uniform highp sampler2DMS arg_0_1;
 void textureLoad_6925bc() {
-  float res = texelFetch(arg_0_1, ivec2(0), int(1u)).x;
+  float res = texelFetch(arg_0_1, ivec2(1), int(1u)).x;
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 
 uniform highp sampler2DMS arg_0_1;
 void textureLoad_6925bc() {
-  float res = texelFetch(arg_0_1, ivec2(0), int(1u)).x;
+  float res = texelFetch(arg_0_1, ivec2(1), int(1u)).x;
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 uniform highp sampler2DMS arg_0_1;
 void textureLoad_6925bc() {
-  float res = texelFetch(arg_0_1, ivec2(0), int(1u)).x;
+  float res = texelFetch(arg_0_1, ivec2(1), int(1u)).x;
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureLoad/6925bc.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureLoad/6925bc.wgsl.expected.msl
index 97acbd3..2ffbebe 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6925bc.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/6925bc.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureLoad_6925bc(depth2d_ms<float, access::read> tint_symbol_1) {
-  float res = tint_symbol_1.read(uint2(int2(0)), 1u);
+  float res = tint_symbol_1.read(uint2(int2(1)), 1u);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/6925bc.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/6925bc.wgsl.expected.spvasm
index cda1ac2..7a5ea4e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6925bc.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/6925bc.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 40
+; Bound: 41
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -38,40 +38,41 @@
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
-         %21 = OpConstantNull %v2int
+      %int_1 = OpConstant %int 1
+         %22 = OpConstantComposite %v2int %int_1 %int_1
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_float = OpTypePointer Function %float
-         %26 = OpTypeFunction %v4float
+         %27 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_6925bc = OpFunction %void None %12
          %15 = OpLabel
         %res = OpVariable %_ptr_Function_float Function %8
          %18 = OpLoad %11 %arg_0
-         %17 = OpImageFetch %v4float %18 %21 Sample %uint_1
+         %17 = OpImageFetch %v4float %18 %22 Sample %uint_1
          %16 = OpCompositeExtract %float %17 0
                OpStore %res %16
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %26
-         %28 = OpLabel
-         %29 = OpFunctionCall %void %textureLoad_6925bc
+%vertex_main_inner = OpFunction %v4float None %27
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %textureLoad_6925bc
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %31 = OpLabel
-         %32 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %32
+         %32 = OpLabel
+         %33 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %33
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureLoad_6925bc
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureLoad_6925bc
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureLoad_6925bc
+         %39 = OpLabel
+         %40 = OpFunctionCall %void %textureLoad_6925bc
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureLoad/6925bc.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/6925bc.wgsl.expected.wgsl
index 14dd184..e75432f 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6925bc.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/6925bc.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_depth_multisampled_2d;
 
 fn textureLoad_6925bc() {
-  var res : f32 = textureLoad(arg_0, vec2<i32>(), 1u);
+  var res : f32 = textureLoad(arg_0, vec2<i32>(1i), 1u);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureLoad/6bf4b7.wgsl b/test/tint/builtins/gen/literal/textureLoad/6bf4b7.wgsl
index 3ef2937..43e349c 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6bf4b7.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/6bf4b7.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureLoad(texture: texture_3d<u32>, coords: vec3<i32>, level: u32) -> vec4<u32>
 fn textureLoad_6bf4b7() {
-  var res: vec4<u32> = textureLoad(arg_0, vec3<i32>(), 1u);
+  var res: vec4<u32> = textureLoad(arg_0, vec3<i32>(1i), 1u);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureLoad/6bf4b7.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/6bf4b7.wgsl.expected.dxc.hlsl
index 8012b52..8a41510 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6bf4b7.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/6bf4b7.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 Texture3D<uint4> arg_0 : register(t0, space1);
 
 void textureLoad_6bf4b7() {
-  uint4 res = arg_0.Load(int4(0, 0, 0, int(1u)));
+  uint4 res = arg_0.Load(int4((1).xxx, int(1u)));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/6bf4b7.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/6bf4b7.wgsl.expected.fxc.hlsl
index 8012b52..8a41510 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6bf4b7.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/6bf4b7.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 Texture3D<uint4> arg_0 : register(t0, space1);
 
 void textureLoad_6bf4b7() {
-  uint4 res = arg_0.Load(int4(0, 0, 0, int(1u)));
+  uint4 res = arg_0.Load(int4((1).xxx, int(1u)));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/6bf4b7.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/6bf4b7.wgsl.expected.glsl
index 87a337c..5ae612b 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6bf4b7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/6bf4b7.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 uniform highp usampler3D arg_0_1;
 void textureLoad_6bf4b7() {
-  uvec4 res = texelFetch(arg_0_1, ivec3(0), int(1u));
+  uvec4 res = texelFetch(arg_0_1, ivec3(1), int(1u));
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 
 uniform highp usampler3D arg_0_1;
 void textureLoad_6bf4b7() {
-  uvec4 res = texelFetch(arg_0_1, ivec3(0), int(1u));
+  uvec4 res = texelFetch(arg_0_1, ivec3(1), int(1u));
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 uniform highp usampler3D arg_0_1;
 void textureLoad_6bf4b7() {
-  uvec4 res = texelFetch(arg_0_1, ivec3(0), int(1u));
+  uvec4 res = texelFetch(arg_0_1, ivec3(1), int(1u));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureLoad/6bf4b7.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureLoad/6bf4b7.wgsl.expected.msl
index 0fa3b97..ddac3e7 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6bf4b7.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/6bf4b7.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureLoad_6bf4b7(texture3d<uint, access::sample> tint_symbol_1) {
-  uint4 res = tint_symbol_1.read(uint3(int3(0)), 1u);
+  uint4 res = tint_symbol_1.read(uint3(int3(1)), 1u);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/6bf4b7.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/6bf4b7.wgsl.expected.spvasm
index 74c96d6..4f756fc 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6bf4b7.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/6bf4b7.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 41
+; Bound: 42
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -40,39 +40,40 @@
      %v4uint = OpTypeVector %uint 4
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
-         %22 = OpConstantNull %v3int
+      %int_1 = OpConstant %int 1
+         %23 = OpConstantComposite %v3int %int_1 %int_1 %int_1
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %26 = OpConstantNull %v4uint
-         %27 = OpTypeFunction %v4float
+         %27 = OpConstantNull %v4uint
+         %28 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_6bf4b7 = OpFunction %void None %13
          %16 = OpLabel
-        %res = OpVariable %_ptr_Function_v4uint Function %26
+        %res = OpVariable %_ptr_Function_v4uint Function %27
          %19 = OpLoad %11 %arg_0
-         %17 = OpImageFetch %v4uint %19 %22 Lod %uint_1
+         %17 = OpImageFetch %v4uint %19 %23 Lod %uint_1
                OpStore %res %17
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %27
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %textureLoad_6bf4b7
+%vertex_main_inner = OpFunction %v4float None %28
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %textureLoad_6bf4b7
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %32 = OpLabel
-         %33 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %33
+         %33 = OpLabel
+         %34 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %34
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureLoad_6bf4b7
+         %37 = OpLabel
+         %38 = OpFunctionCall %void %textureLoad_6bf4b7
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureLoad_6bf4b7
+         %40 = OpLabel
+         %41 = OpFunctionCall %void %textureLoad_6bf4b7
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureLoad/6bf4b7.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/6bf4b7.wgsl.expected.wgsl
index 87ee760..07d7ba6 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6bf4b7.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/6bf4b7.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_3d<u32>;
 
 fn textureLoad_6bf4b7() {
-  var res : vec4<u32> = textureLoad(arg_0, vec3<i32>(), 1u);
+  var res : vec4<u32> = textureLoad(arg_0, vec3<i32>(1i), 1u);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureLoad/714471.wgsl b/test/tint/builtins/gen/literal/textureLoad/714471.wgsl
index 784ea18..2e6d30a 100644
--- a/test/tint/builtins/gen/literal/textureLoad/714471.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/714471.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureLoad(texture: texture_2d<i32>, coords: vec2<u32>, level: u32) -> vec4<i32>
 fn textureLoad_714471() {
-  var res: vec4<i32> = textureLoad(arg_0, vec2<u32>(), 1u);
+  var res: vec4<i32> = textureLoad(arg_0, vec2<u32>(1u), 1u);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureLoad/714471.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/714471.wgsl.expected.dxc.hlsl
index c201b76..7982262 100644
--- a/test/tint/builtins/gen/literal/textureLoad/714471.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/714471.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 Texture2D<int4> arg_0 : register(t0, space1);
 
 void textureLoad_714471() {
-  int4 res = arg_0.Load(uint3(0u, 0u, 1u));
+  int4 res = arg_0.Load(uint3((1u).xx, 1u));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/714471.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/714471.wgsl.expected.fxc.hlsl
index c201b76..7982262 100644
--- a/test/tint/builtins/gen/literal/textureLoad/714471.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/714471.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 Texture2D<int4> arg_0 : register(t0, space1);
 
 void textureLoad_714471() {
-  int4 res = arg_0.Load(uint3(0u, 0u, 1u));
+  int4 res = arg_0.Load(uint3((1u).xx, 1u));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/714471.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/714471.wgsl.expected.glsl
index 16a781c..3131d47 100644
--- a/test/tint/builtins/gen/literal/textureLoad/714471.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/714471.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 uniform highp isampler2D arg_0_1;
 void textureLoad_714471() {
-  ivec4 res = texelFetch(arg_0_1, ivec2(uvec2(0u)), int(1u));
+  ivec4 res = texelFetch(arg_0_1, ivec2(uvec2(1u)), int(1u));
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 
 uniform highp isampler2D arg_0_1;
 void textureLoad_714471() {
-  ivec4 res = texelFetch(arg_0_1, ivec2(uvec2(0u)), int(1u));
+  ivec4 res = texelFetch(arg_0_1, ivec2(uvec2(1u)), int(1u));
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 uniform highp isampler2D arg_0_1;
 void textureLoad_714471() {
-  ivec4 res = texelFetch(arg_0_1, ivec2(uvec2(0u)), int(1u));
+  ivec4 res = texelFetch(arg_0_1, ivec2(uvec2(1u)), int(1u));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureLoad/714471.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureLoad/714471.wgsl.expected.msl
index dfe204f..cf68b69 100644
--- a/test/tint/builtins/gen/literal/textureLoad/714471.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/714471.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureLoad_714471(texture2d<int, access::sample> tint_symbol_1) {
-  int4 res = tint_symbol_1.read(uint2(uint2(0u)), 1u);
+  int4 res = tint_symbol_1.read(uint2(uint2(1u)), 1u);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/714471.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/714471.wgsl.expected.spvasm
index 845ee95..12ce134 100644
--- a/test/tint/builtins/gen/literal/textureLoad/714471.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/714471.wgsl.expected.spvasm
@@ -40,8 +40,8 @@
       %v4int = OpTypeVector %int 4
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
-         %22 = OpConstantNull %v2uint
      %uint_1 = OpConstant %uint 1
+         %23 = OpConstantComposite %v2uint %uint_1 %uint_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
          %26 = OpConstantNull %v4int
          %27 = OpTypeFunction %v4float
@@ -50,7 +50,7 @@
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_v4int Function %26
          %19 = OpLoad %11 %arg_0
-         %17 = OpImageFetch %v4int %19 %22 Lod %uint_1
+         %17 = OpImageFetch %v4int %19 %23 Lod %uint_1
                OpStore %res %17
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureLoad/714471.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/714471.wgsl.expected.wgsl
index b6f83de..638bd91 100644
--- a/test/tint/builtins/gen/literal/textureLoad/714471.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/714471.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_2d<i32>;
 
 fn textureLoad_714471() {
-  var res : vec4<i32> = textureLoad(arg_0, vec2<u32>(), 1u);
+  var res : vec4<i32> = textureLoad(arg_0, vec2<u32>(1u), 1u);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureLoad/789045.wgsl b/test/tint/builtins/gen/literal/textureLoad/789045.wgsl
index dcfb039..a3698ed 100644
--- a/test/tint/builtins/gen/literal/textureLoad/789045.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/789045.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureLoad(texture: texture_2d_array<f32>, coords: vec2<i32>, array_index: i32, level: u32) -> vec4<f32>
 fn textureLoad_789045() {
-  var res: vec4<f32> = textureLoad(arg_0, vec2<i32>(), 1i, 1u);
+  var res: vec4<f32> = textureLoad(arg_0, vec2<i32>(1i), 1i, 1u);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureLoad/789045.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/789045.wgsl.expected.dxc.hlsl
index 7c7ed8d..4ff5d93 100644
--- a/test/tint/builtins/gen/literal/textureLoad/789045.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/789045.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 void textureLoad_789045() {
-  float4 res = arg_0.Load(int4(0, 0, 1, int(1u)));
+  float4 res = arg_0.Load(int4(int3((1).xx, 1), int(1u)));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/789045.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/789045.wgsl.expected.fxc.hlsl
index 7c7ed8d..4ff5d93 100644
--- a/test/tint/builtins/gen/literal/textureLoad/789045.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/789045.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 void textureLoad_789045() {
-  float4 res = arg_0.Load(int4(0, 0, 1, int(1u)));
+  float4 res = arg_0.Load(int4(int3((1).xx, 1), int(1u)));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/789045.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/789045.wgsl.expected.glsl
index 9e596c1..4e4fbf8 100644
--- a/test/tint/builtins/gen/literal/textureLoad/789045.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/789045.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 uniform highp sampler2DArray arg_0_1;
 void textureLoad_789045() {
-  vec4 res = texelFetch(arg_0_1, ivec3(0, 0, 1), int(1u));
+  vec4 res = texelFetch(arg_0_1, ivec3(ivec2(1), 1), int(1u));
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 
 uniform highp sampler2DArray arg_0_1;
 void textureLoad_789045() {
-  vec4 res = texelFetch(arg_0_1, ivec3(0, 0, 1), int(1u));
+  vec4 res = texelFetch(arg_0_1, ivec3(ivec2(1), 1), int(1u));
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 uniform highp sampler2DArray arg_0_1;
 void textureLoad_789045() {
-  vec4 res = texelFetch(arg_0_1, ivec3(0, 0, 1), int(1u));
+  vec4 res = texelFetch(arg_0_1, ivec3(ivec2(1), 1), int(1u));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureLoad/789045.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureLoad/789045.wgsl.expected.msl
index 903adf9..be0339f 100644
--- a/test/tint/builtins/gen/literal/textureLoad/789045.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/789045.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureLoad_789045(texture2d_array<float, access::sample> tint_symbol_1) {
-  float4 res = tint_symbol_1.read(uint2(int2(0)), 1, 1u);
+  float4 res = tint_symbol_1.read(uint2(int2(1)), 1, 1u);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/789045.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/789045.wgsl.expected.spvasm
index 7398fc6..013a260 100644
--- a/test/tint/builtins/gen/literal/textureLoad/789045.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/789045.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 41
+; Bound: 44
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -38,41 +38,44 @@
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
-      %int_0 = OpConstant %int 0
+      %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %22 = OpConstantComposite %v3int %int_0 %int_0 %int_1
+         %22 = OpConstantComposite %v2int %int_1 %int_1
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %27 = OpTypeFunction %v4float
+         %30 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_789045 = OpFunction %void None %12
          %15 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
          %17 = OpLoad %11 %arg_0
-         %16 = OpImageFetch %v4float %17 %22 Lod %uint_1
+         %23 = OpCompositeExtract %int %22 0
+         %24 = OpCompositeExtract %int %22 1
+         %25 = OpCompositeConstruct %v3int %23 %24 %int_1
+         %16 = OpImageFetch %v4float %17 %25 Lod %uint_1
                OpStore %res %16
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %27
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %textureLoad_789045
+%vertex_main_inner = OpFunction %v4float None %30
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %textureLoad_789045
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %32 = OpLabel
-         %33 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %33
+         %35 = OpLabel
+         %36 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %36
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureLoad_789045
+         %39 = OpLabel
+         %40 = OpFunctionCall %void %textureLoad_789045
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureLoad_789045
+         %42 = OpLabel
+         %43 = OpFunctionCall %void %textureLoad_789045
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureLoad/789045.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/789045.wgsl.expected.wgsl
index 10a00a2..d104278 100644
--- a/test/tint/builtins/gen/literal/textureLoad/789045.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/789045.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_2d_array<f32>;
 
 fn textureLoad_789045() {
-  var res : vec4<f32> = textureLoad(arg_0, vec2<i32>(), 1i, 1u);
+  var res : vec4<f32> = textureLoad(arg_0, vec2<i32>(1i), 1i, 1u);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureLoad/79e697.wgsl b/test/tint/builtins/gen/literal/textureLoad/79e697.wgsl
index 5e359e3..c966379 100644
--- a/test/tint/builtins/gen/literal/textureLoad/79e697.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/79e697.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureLoad(texture: texture_2d_array<i32>, coords: vec2<i32>, array_index: i32, level: i32) -> vec4<i32>
 fn textureLoad_79e697() {
-  var res: vec4<i32> = textureLoad(arg_0, vec2<i32>(), 1i, 1i);
+  var res: vec4<i32> = textureLoad(arg_0, vec2<i32>(1i), 1i, 1i);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureLoad/79e697.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/79e697.wgsl.expected.dxc.hlsl
index 336b2ab..0c1d428 100644
--- a/test/tint/builtins/gen/literal/textureLoad/79e697.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/79e697.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 void textureLoad_79e697() {
-  int4 res = arg_0.Load(int4(0, 0, 1, 1));
+  int4 res = arg_0.Load(int4(int3((1).xx, 1), 1));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/79e697.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/79e697.wgsl.expected.fxc.hlsl
index 336b2ab..0c1d428 100644
--- a/test/tint/builtins/gen/literal/textureLoad/79e697.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/79e697.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 void textureLoad_79e697() {
-  int4 res = arg_0.Load(int4(0, 0, 1, 1));
+  int4 res = arg_0.Load(int4(int3((1).xx, 1), 1));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/79e697.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/79e697.wgsl.expected.glsl
index 4e5a1df..82d11ca 100644
--- a/test/tint/builtins/gen/literal/textureLoad/79e697.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/79e697.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 uniform highp isampler2DArray arg_0_1;
 void textureLoad_79e697() {
-  ivec4 res = texelFetch(arg_0_1, ivec3(0, 0, 1), 1);
+  ivec4 res = texelFetch(arg_0_1, ivec3(ivec2(1), 1), 1);
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 
 uniform highp isampler2DArray arg_0_1;
 void textureLoad_79e697() {
-  ivec4 res = texelFetch(arg_0_1, ivec3(0, 0, 1), 1);
+  ivec4 res = texelFetch(arg_0_1, ivec3(ivec2(1), 1), 1);
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 uniform highp isampler2DArray arg_0_1;
 void textureLoad_79e697() {
-  ivec4 res = texelFetch(arg_0_1, ivec3(0, 0, 1), 1);
+  ivec4 res = texelFetch(arg_0_1, ivec3(ivec2(1), 1), 1);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureLoad/79e697.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureLoad/79e697.wgsl.expected.msl
index 3e8f37d..cb7faf1 100644
--- a/test/tint/builtins/gen/literal/textureLoad/79e697.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/79e697.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureLoad_79e697(texture2d_array<int, access::sample> tint_symbol_1) {
-  int4 res = tint_symbol_1.read(uint2(int2(0)), 1, 1);
+  int4 res = tint_symbol_1.read(uint2(int2(1)), 1, 1);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/79e697.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/79e697.wgsl.expected.spvasm
index 8a90068..3e48766 100644
--- a/test/tint/builtins/gen/literal/textureLoad/79e697.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/79e697.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 41
+; Bound: 44
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -39,40 +39,43 @@
          %13 = OpTypeFunction %void
       %v4int = OpTypeVector %int 4
       %v3int = OpTypeVector %int 3
-      %int_0 = OpConstant %int 0
+      %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %23 = OpConstantComposite %v3int %int_0 %int_0 %int_1
+         %23 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %26 = OpConstantNull %v4int
-         %27 = OpTypeFunction %v4float
+         %29 = OpConstantNull %v4int
+         %30 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_79e697 = OpFunction %void None %13
          %16 = OpLabel
-        %res = OpVariable %_ptr_Function_v4int Function %26
+        %res = OpVariable %_ptr_Function_v4int Function %29
          %19 = OpLoad %11 %arg_0
-         %17 = OpImageFetch %v4int %19 %23 Lod %int_1
+         %24 = OpCompositeExtract %int %23 0
+         %25 = OpCompositeExtract %int %23 1
+         %26 = OpCompositeConstruct %v3int %24 %25 %int_1
+         %17 = OpImageFetch %v4int %19 %26 Lod %int_1
                OpStore %res %17
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %27
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %textureLoad_79e697
+%vertex_main_inner = OpFunction %v4float None %30
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %textureLoad_79e697
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %32 = OpLabel
-         %33 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %33
+         %35 = OpLabel
+         %36 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %36
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureLoad_79e697
+         %39 = OpLabel
+         %40 = OpFunctionCall %void %textureLoad_79e697
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureLoad_79e697
+         %42 = OpLabel
+         %43 = OpFunctionCall %void %textureLoad_79e697
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureLoad/79e697.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/79e697.wgsl.expected.wgsl
index c2cda3d..fd39584 100644
--- a/test/tint/builtins/gen/literal/textureLoad/79e697.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/79e697.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_2d_array<i32>;
 
 fn textureLoad_79e697() {
-  var res : vec4<i32> = textureLoad(arg_0, vec2<i32>(), 1i, 1i);
+  var res : vec4<i32> = textureLoad(arg_0, vec2<i32>(1i), 1i, 1i);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureLoad/7ab4df.wgsl b/test/tint/builtins/gen/literal/textureLoad/7ab4df.wgsl
index efd577e..266c389 100644
--- a/test/tint/builtins/gen/literal/textureLoad/7ab4df.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/7ab4df.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureLoad(texture: texture_2d_array<u32>, coords: vec2<i32>, array_index: u32, level: i32) -> vec4<u32>
 fn textureLoad_7ab4df() {
-  var res: vec4<u32> = textureLoad(arg_0, vec2<i32>(), 1u, 1i);
+  var res: vec4<u32> = textureLoad(arg_0, vec2<i32>(1i), 1u, 1i);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureLoad/7ab4df.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/7ab4df.wgsl.expected.dxc.hlsl
index b6d28d8..30e23b4 100644
--- a/test/tint/builtins/gen/literal/textureLoad/7ab4df.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/7ab4df.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 void textureLoad_7ab4df() {
-  uint4 res = arg_0.Load(int4(0, 0, int(1u), 1));
+  uint4 res = arg_0.Load(int4(int3((1).xx, int(1u)), 1));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/7ab4df.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/7ab4df.wgsl.expected.fxc.hlsl
index b6d28d8..30e23b4 100644
--- a/test/tint/builtins/gen/literal/textureLoad/7ab4df.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/7ab4df.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 void textureLoad_7ab4df() {
-  uint4 res = arg_0.Load(int4(0, 0, int(1u), 1));
+  uint4 res = arg_0.Load(int4(int3((1).xx, int(1u)), 1));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/7ab4df.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/7ab4df.wgsl.expected.glsl
index ec80f3b..66522c5 100644
--- a/test/tint/builtins/gen/literal/textureLoad/7ab4df.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/7ab4df.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 uniform highp usampler2DArray arg_0_1;
 void textureLoad_7ab4df() {
-  uvec4 res = texelFetch(arg_0_1, ivec3(0, 0, int(1u)), 1);
+  uvec4 res = texelFetch(arg_0_1, ivec3(ivec2(1), int(1u)), 1);
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 
 uniform highp usampler2DArray arg_0_1;
 void textureLoad_7ab4df() {
-  uvec4 res = texelFetch(arg_0_1, ivec3(0, 0, int(1u)), 1);
+  uvec4 res = texelFetch(arg_0_1, ivec3(ivec2(1), int(1u)), 1);
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 uniform highp usampler2DArray arg_0_1;
 void textureLoad_7ab4df() {
-  uvec4 res = texelFetch(arg_0_1, ivec3(0, 0, int(1u)), 1);
+  uvec4 res = texelFetch(arg_0_1, ivec3(ivec2(1), int(1u)), 1);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureLoad/7ab4df.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureLoad/7ab4df.wgsl.expected.msl
index b4ea0ff..f9e6924 100644
--- a/test/tint/builtins/gen/literal/textureLoad/7ab4df.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/7ab4df.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureLoad_7ab4df(texture2d_array<uint, access::sample> tint_symbol_1) {
-  uint4 res = tint_symbol_1.read(uint2(int2(0)), 1u, 1);
+  uint4 res = tint_symbol_1.read(uint2(int2(1)), 1u, 1);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/7ab4df.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/7ab4df.wgsl.expected.spvasm
index 14ec9cc..5239cbe 100644
--- a/test/tint/builtins/gen/literal/textureLoad/7ab4df.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/7ab4df.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 47
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -40,42 +40,45 @@
      %v4uint = OpTypeVector %uint 4
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
-      %int_0 = OpConstant %int 0
-     %uint_1 = OpConstant %uint 1
+      %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
+         %24 = OpConstantComposite %v2int %int_1 %int_1
+     %uint_1 = OpConstant %uint 1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %29 = OpConstantNull %v4uint
-         %30 = OpTypeFunction %v4float
+         %32 = OpConstantNull %v4uint
+         %33 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_7ab4df = OpFunction %void None %13
          %16 = OpLabel
-        %res = OpVariable %_ptr_Function_v4uint Function %29
+        %res = OpVariable %_ptr_Function_v4uint Function %32
          %19 = OpLoad %11 %arg_0
-         %23 = OpBitcast %int %uint_1
-         %25 = OpCompositeConstruct %v3int %int_0 %int_0 %23
-         %17 = OpImageFetch %v4uint %19 %25 Lod %int_1
+         %25 = OpCompositeExtract %int %24 0
+         %26 = OpCompositeExtract %int %24 1
+         %27 = OpBitcast %int %uint_1
+         %29 = OpCompositeConstruct %v3int %25 %26 %27
+         %17 = OpImageFetch %v4uint %19 %29 Lod %int_1
                OpStore %res %17
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %30
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureLoad_7ab4df
+%vertex_main_inner = OpFunction %v4float None %33
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureLoad_7ab4df
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %36
+         %38 = OpLabel
+         %39 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %39
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureLoad_7ab4df
+         %42 = OpLabel
+         %43 = OpFunctionCall %void %textureLoad_7ab4df
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureLoad_7ab4df
+         %45 = OpLabel
+         %46 = OpFunctionCall %void %textureLoad_7ab4df
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureLoad/7ab4df.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/7ab4df.wgsl.expected.wgsl
index 1641a45..5377bd3 100644
--- a/test/tint/builtins/gen/literal/textureLoad/7ab4df.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/7ab4df.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_2d_array<u32>;
 
 fn textureLoad_7ab4df() {
-  var res : vec4<u32> = textureLoad(arg_0, vec2<i32>(), 1u, 1i);
+  var res : vec4<u32> = textureLoad(arg_0, vec2<i32>(1i), 1u, 1i);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureLoad/7b63e0.wgsl b/test/tint/builtins/gen/literal/textureLoad/7b63e0.wgsl
index 0c629f1..beea60d 100644
--- a/test/tint/builtins/gen/literal/textureLoad/7b63e0.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/7b63e0.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureLoad(texture: texture_depth_2d_array, coords: vec2<u32>, array_index: u32, level: u32) -> f32
 fn textureLoad_7b63e0() {
-  var res: f32 = textureLoad(arg_0, vec2<u32>(), 1u, 1u);
+  var res: f32 = textureLoad(arg_0, vec2<u32>(1u), 1u, 1u);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureLoad/7b63e0.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/7b63e0.wgsl.expected.dxc.hlsl
index fd429fc..8244761 100644
--- a/test/tint/builtins/gen/literal/textureLoad/7b63e0.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/7b63e0.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DArray arg_0 : register(t0, space1);
 
 void textureLoad_7b63e0() {
-  float res = arg_0.Load(uint4(0u, 0u, 1u, 1u)).x;
+  float res = arg_0.Load(uint4(uint3((1u).xx, 1u), 1u)).x;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/7b63e0.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/7b63e0.wgsl.expected.fxc.hlsl
index fd429fc..8244761 100644
--- a/test/tint/builtins/gen/literal/textureLoad/7b63e0.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/7b63e0.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DArray arg_0 : register(t0, space1);
 
 void textureLoad_7b63e0() {
-  float res = arg_0.Load(uint4(0u, 0u, 1u, 1u)).x;
+  float res = arg_0.Load(uint4(uint3((1u).xx, 1u), 1u)).x;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/7b63e0.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/7b63e0.wgsl.expected.glsl
index 9e3335b..ff50479 100644
--- a/test/tint/builtins/gen/literal/textureLoad/7b63e0.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/7b63e0.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 uniform highp sampler2DArray arg_0_1;
 void textureLoad_7b63e0() {
-  float res = texelFetch(arg_0_1, ivec3(uvec3(0u, 0u, 1u)), int(1u)).x;
+  float res = texelFetch(arg_0_1, ivec3(uvec3(uvec2(1u), 1u)), int(1u)).x;
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 
 uniform highp sampler2DArray arg_0_1;
 void textureLoad_7b63e0() {
-  float res = texelFetch(arg_0_1, ivec3(uvec3(0u, 0u, 1u)), int(1u)).x;
+  float res = texelFetch(arg_0_1, ivec3(uvec3(uvec2(1u), 1u)), int(1u)).x;
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 uniform highp sampler2DArray arg_0_1;
 void textureLoad_7b63e0() {
-  float res = texelFetch(arg_0_1, ivec3(uvec3(0u, 0u, 1u)), int(1u)).x;
+  float res = texelFetch(arg_0_1, ivec3(uvec3(uvec2(1u), 1u)), int(1u)).x;
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureLoad/7b63e0.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureLoad/7b63e0.wgsl.expected.msl
index 16c3883..9abd6c7 100644
--- a/test/tint/builtins/gen/literal/textureLoad/7b63e0.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/7b63e0.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureLoad_7b63e0(depth2d_array<float, access::sample> tint_symbol_1) {
-  float res = tint_symbol_1.read(uint2(uint2(0u)), 1u, 1u);
+  float res = tint_symbol_1.read(uint2(uint2(1u)), 1u, 1u);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/7b63e0.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/7b63e0.wgsl.expected.spvasm
index 7619398..6656cd0 100644
--- a/test/tint/builtins/gen/literal/textureLoad/7b63e0.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/7b63e0.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 40
+; Bound: 43
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -38,40 +38,43 @@
          %12 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
-     %uint_0 = OpConstant %uint 0
+     %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %23 = OpConstantComposite %v3uint %uint_0 %uint_0 %uint_1
+         %23 = OpConstantComposite %v2uint %uint_1 %uint_1
 %_ptr_Function_float = OpTypePointer Function %float
-         %26 = OpTypeFunction %v4float
+         %29 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_7b63e0 = OpFunction %void None %12
          %15 = OpLabel
         %res = OpVariable %_ptr_Function_float Function %8
          %18 = OpLoad %11 %arg_0
-         %17 = OpImageFetch %v4float %18 %23 Lod %uint_1
+         %24 = OpCompositeExtract %uint %23 0
+         %25 = OpCompositeExtract %uint %23 1
+         %26 = OpCompositeConstruct %v3uint %24 %25 %uint_1
+         %17 = OpImageFetch %v4float %18 %26 Lod %uint_1
          %16 = OpCompositeExtract %float %17 0
                OpStore %res %16
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %26
-         %28 = OpLabel
-         %29 = OpFunctionCall %void %textureLoad_7b63e0
+%vertex_main_inner = OpFunction %v4float None %29
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %textureLoad_7b63e0
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %31 = OpLabel
-         %32 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %32
+         %34 = OpLabel
+         %35 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %35
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureLoad_7b63e0
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %textureLoad_7b63e0
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureLoad_7b63e0
+         %41 = OpLabel
+         %42 = OpFunctionCall %void %textureLoad_7b63e0
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureLoad/7b63e0.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/7b63e0.wgsl.expected.wgsl
index 9f9e633..239a544 100644
--- a/test/tint/builtins/gen/literal/textureLoad/7b63e0.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/7b63e0.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_depth_2d_array;
 
 fn textureLoad_7b63e0() {
-  var res : f32 = textureLoad(arg_0, vec2<u32>(), 1u, 1u);
+  var res : f32 = textureLoad(arg_0, vec2<u32>(1u), 1u, 1u);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureLoad/7bee94.wgsl b/test/tint/builtins/gen/literal/textureLoad/7bee94.wgsl
index 9f17dfd..748948b 100644
--- a/test/tint/builtins/gen/literal/textureLoad/7bee94.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/7bee94.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureLoad(texture: texture_multisampled_2d<i32>, coords: vec2<u32>, sample_index: i32) -> vec4<i32>
 fn textureLoad_7bee94() {
-  var res: vec4<i32> = textureLoad(arg_0, vec2<u32>(), 1i);
+  var res: vec4<i32> = textureLoad(arg_0, vec2<u32>(1u), 1i);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureLoad/7bee94.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/7bee94.wgsl.expected.dxc.hlsl
index 637fedd..693590e1a 100644
--- a/test/tint/builtins/gen/literal/textureLoad/7bee94.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/7bee94.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DMS<int4> arg_0 : register(t0, space1);
 
 void textureLoad_7bee94() {
-  int4 res = arg_0.Load((0u).xx, 1);
+  int4 res = arg_0.Load((1u).xx, 1);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/7bee94.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/7bee94.wgsl.expected.fxc.hlsl
index 637fedd..693590e1a 100644
--- a/test/tint/builtins/gen/literal/textureLoad/7bee94.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/7bee94.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DMS<int4> arg_0 : register(t0, space1);
 
 void textureLoad_7bee94() {
-  int4 res = arg_0.Load((0u).xx, 1);
+  int4 res = arg_0.Load((1u).xx, 1);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/7bee94.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/7bee94.wgsl.expected.glsl
index 0b65e8b..bfebea4 100644
--- a/test/tint/builtins/gen/literal/textureLoad/7bee94.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/7bee94.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 uniform highp isampler2DMS arg_0_1;
 void textureLoad_7bee94() {
-  ivec4 res = texelFetch(arg_0_1, ivec2(uvec2(0u)), 1);
+  ivec4 res = texelFetch(arg_0_1, ivec2(uvec2(1u)), 1);
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 
 uniform highp isampler2DMS arg_0_1;
 void textureLoad_7bee94() {
-  ivec4 res = texelFetch(arg_0_1, ivec2(uvec2(0u)), 1);
+  ivec4 res = texelFetch(arg_0_1, ivec2(uvec2(1u)), 1);
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 uniform highp isampler2DMS arg_0_1;
 void textureLoad_7bee94() {
-  ivec4 res = texelFetch(arg_0_1, ivec2(uvec2(0u)), 1);
+  ivec4 res = texelFetch(arg_0_1, ivec2(uvec2(1u)), 1);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureLoad/7bee94.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureLoad/7bee94.wgsl.expected.msl
index 3b6dd3b..dfa9ee3 100644
--- a/test/tint/builtins/gen/literal/textureLoad/7bee94.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/7bee94.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureLoad_7bee94(texture2d_ms<int, access::read> tint_symbol_1) {
-  int4 res = tint_symbol_1.read(uint2(uint2(0u)), 1);
+  int4 res = tint_symbol_1.read(uint2(uint2(1u)), 1);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/7bee94.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/7bee94.wgsl.expected.spvasm
index 6cebf88..e0dee27 100644
--- a/test/tint/builtins/gen/literal/textureLoad/7bee94.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/7bee94.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 41
+; Bound: 42
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -40,39 +40,40 @@
       %v4int = OpTypeVector %int 4
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
-         %22 = OpConstantNull %v2uint
+     %uint_1 = OpConstant %uint 1
+         %23 = OpConstantComposite %v2uint %uint_1 %uint_1
       %int_1 = OpConstant %int 1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %26 = OpConstantNull %v4int
-         %27 = OpTypeFunction %v4float
+         %27 = OpConstantNull %v4int
+         %28 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_7bee94 = OpFunction %void None %13
          %16 = OpLabel
-        %res = OpVariable %_ptr_Function_v4int Function %26
+        %res = OpVariable %_ptr_Function_v4int Function %27
          %19 = OpLoad %11 %arg_0
-         %17 = OpImageFetch %v4int %19 %22 Sample %int_1
+         %17 = OpImageFetch %v4int %19 %23 Sample %int_1
                OpStore %res %17
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %27
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %textureLoad_7bee94
+%vertex_main_inner = OpFunction %v4float None %28
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %textureLoad_7bee94
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %32 = OpLabel
-         %33 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %33
+         %33 = OpLabel
+         %34 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %34
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureLoad_7bee94
+         %37 = OpLabel
+         %38 = OpFunctionCall %void %textureLoad_7bee94
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureLoad_7bee94
+         %40 = OpLabel
+         %41 = OpFunctionCall %void %textureLoad_7bee94
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureLoad/7bee94.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/7bee94.wgsl.expected.wgsl
index a0dce1f..8c33199 100644
--- a/test/tint/builtins/gen/literal/textureLoad/7bee94.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/7bee94.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_multisampled_2d<i32>;
 
 fn textureLoad_7bee94() {
-  var res : vec4<i32> = textureLoad(arg_0, vec2<u32>(), 1i);
+  var res : vec4<i32> = textureLoad(arg_0, vec2<u32>(1u), 1i);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureLoad/7c90e5.wgsl b/test/tint/builtins/gen/literal/textureLoad/7c90e5.wgsl
index 83f84c1..8964b48 100644
--- a/test/tint/builtins/gen/literal/textureLoad/7c90e5.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/7c90e5.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureLoad(texture: texture_2d_array<u32>, coords: vec2<i32>, array_index: i32, level: i32) -> vec4<u32>
 fn textureLoad_7c90e5() {
-  var res: vec4<u32> = textureLoad(arg_0, vec2<i32>(), 1i, 1i);
+  var res: vec4<u32> = textureLoad(arg_0, vec2<i32>(1i), 1i, 1i);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureLoad/7c90e5.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/7c90e5.wgsl.expected.dxc.hlsl
index 789b7c2..2f4abe7 100644
--- a/test/tint/builtins/gen/literal/textureLoad/7c90e5.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/7c90e5.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 void textureLoad_7c90e5() {
-  uint4 res = arg_0.Load(int4(0, 0, 1, 1));
+  uint4 res = arg_0.Load(int4(int3((1).xx, 1), 1));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/7c90e5.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/7c90e5.wgsl.expected.fxc.hlsl
index 789b7c2..2f4abe7 100644
--- a/test/tint/builtins/gen/literal/textureLoad/7c90e5.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/7c90e5.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 void textureLoad_7c90e5() {
-  uint4 res = arg_0.Load(int4(0, 0, 1, 1));
+  uint4 res = arg_0.Load(int4(int3((1).xx, 1), 1));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/7c90e5.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/7c90e5.wgsl.expected.glsl
index f215804..1df83b0 100644
--- a/test/tint/builtins/gen/literal/textureLoad/7c90e5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/7c90e5.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 uniform highp usampler2DArray arg_0_1;
 void textureLoad_7c90e5() {
-  uvec4 res = texelFetch(arg_0_1, ivec3(0, 0, 1), 1);
+  uvec4 res = texelFetch(arg_0_1, ivec3(ivec2(1), 1), 1);
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 
 uniform highp usampler2DArray arg_0_1;
 void textureLoad_7c90e5() {
-  uvec4 res = texelFetch(arg_0_1, ivec3(0, 0, 1), 1);
+  uvec4 res = texelFetch(arg_0_1, ivec3(ivec2(1), 1), 1);
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 uniform highp usampler2DArray arg_0_1;
 void textureLoad_7c90e5() {
-  uvec4 res = texelFetch(arg_0_1, ivec3(0, 0, 1), 1);
+  uvec4 res = texelFetch(arg_0_1, ivec3(ivec2(1), 1), 1);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureLoad/7c90e5.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureLoad/7c90e5.wgsl.expected.msl
index 845b819..234f4e9 100644
--- a/test/tint/builtins/gen/literal/textureLoad/7c90e5.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/7c90e5.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureLoad_7c90e5(texture2d_array<uint, access::sample> tint_symbol_1) {
-  uint4 res = tint_symbol_1.read(uint2(int2(0)), 1, 1);
+  uint4 res = tint_symbol_1.read(uint2(int2(1)), 1, 1);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/7c90e5.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/7c90e5.wgsl.expected.spvasm
index eca2714..03d6263 100644
--- a/test/tint/builtins/gen/literal/textureLoad/7c90e5.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/7c90e5.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 42
+; Bound: 45
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -40,40 +40,43 @@
      %v4uint = OpTypeVector %uint 4
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
-      %int_0 = OpConstant %int 0
+      %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %24 = OpConstantComposite %v3int %int_0 %int_0 %int_1
+         %24 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %27 = OpConstantNull %v4uint
-         %28 = OpTypeFunction %v4float
+         %30 = OpConstantNull %v4uint
+         %31 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_7c90e5 = OpFunction %void None %13
          %16 = OpLabel
-        %res = OpVariable %_ptr_Function_v4uint Function %27
+        %res = OpVariable %_ptr_Function_v4uint Function %30
          %19 = OpLoad %11 %arg_0
-         %17 = OpImageFetch %v4uint %19 %24 Lod %int_1
+         %25 = OpCompositeExtract %int %24 0
+         %26 = OpCompositeExtract %int %24 1
+         %27 = OpCompositeConstruct %v3int %25 %26 %int_1
+         %17 = OpImageFetch %v4uint %19 %27 Lod %int_1
                OpStore %res %17
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %28
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %textureLoad_7c90e5
+%vertex_main_inner = OpFunction %v4float None %31
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureLoad_7c90e5
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %33 = OpLabel
-         %34 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %34
+         %36 = OpLabel
+         %37 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %37
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureLoad_7c90e5
+         %40 = OpLabel
+         %41 = OpFunctionCall %void %textureLoad_7c90e5
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureLoad_7c90e5
+         %43 = OpLabel
+         %44 = OpFunctionCall %void %textureLoad_7c90e5
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureLoad/7c90e5.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/7c90e5.wgsl.expected.wgsl
index 4e9bfb5..4a75a29 100644
--- a/test/tint/builtins/gen/literal/textureLoad/7c90e5.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/7c90e5.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_2d_array<u32>;
 
 fn textureLoad_7c90e5() {
-  var res : vec4<u32> = textureLoad(arg_0, vec2<i32>(), 1i, 1i);
+  var res : vec4<u32> = textureLoad(arg_0, vec2<i32>(1i), 1i, 1i);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureLoad/7fd822.wgsl b/test/tint/builtins/gen/literal/textureLoad/7fd822.wgsl
index 114529e..70a9779 100644
--- a/test/tint/builtins/gen/literal/textureLoad/7fd822.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/7fd822.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureLoad(texture: texture_depth_2d, coords: vec2<u32>, level: i32) -> f32
 fn textureLoad_7fd822() {
-  var res: f32 = textureLoad(arg_0, vec2<u32>(), 1i);
+  var res: f32 = textureLoad(arg_0, vec2<u32>(1u), 1i);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureLoad/7fd822.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/7fd822.wgsl.expected.dxc.hlsl
index c7fda0b..873d58f 100644
--- a/test/tint/builtins/gen/literal/textureLoad/7fd822.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/7fd822.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 Texture2D arg_0 : register(t0, space1);
 
 void textureLoad_7fd822() {
-  float res = arg_0.Load(uint3(0u, 0u, uint(1))).x;
+  float res = arg_0.Load(uint3((1u).xx, uint(1))).x;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/7fd822.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/7fd822.wgsl.expected.fxc.hlsl
index c7fda0b..873d58f 100644
--- a/test/tint/builtins/gen/literal/textureLoad/7fd822.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/7fd822.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 Texture2D arg_0 : register(t0, space1);
 
 void textureLoad_7fd822() {
-  float res = arg_0.Load(uint3(0u, 0u, uint(1))).x;
+  float res = arg_0.Load(uint3((1u).xx, uint(1))).x;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/7fd822.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/7fd822.wgsl.expected.glsl
index 190b3ba..fd8f548 100644
--- a/test/tint/builtins/gen/literal/textureLoad/7fd822.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/7fd822.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 uniform highp sampler2D arg_0_1;
 void textureLoad_7fd822() {
-  float res = texelFetch(arg_0_1, ivec2(uvec2(0u)), 1).x;
+  float res = texelFetch(arg_0_1, ivec2(uvec2(1u)), 1).x;
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 
 uniform highp sampler2D arg_0_1;
 void textureLoad_7fd822() {
-  float res = texelFetch(arg_0_1, ivec2(uvec2(0u)), 1).x;
+  float res = texelFetch(arg_0_1, ivec2(uvec2(1u)), 1).x;
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 uniform highp sampler2D arg_0_1;
 void textureLoad_7fd822() {
-  float res = texelFetch(arg_0_1, ivec2(uvec2(0u)), 1).x;
+  float res = texelFetch(arg_0_1, ivec2(uvec2(1u)), 1).x;
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureLoad/7fd822.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureLoad/7fd822.wgsl.expected.msl
index ae2db23..6d825c1 100644
--- a/test/tint/builtins/gen/literal/textureLoad/7fd822.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/7fd822.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureLoad_7fd822(depth2d<float, access::sample> tint_symbol_1) {
-  float res = tint_symbol_1.read(uint2(uint2(0u)), 1);
+  float res = tint_symbol_1.read(uint2(uint2(1u)), 1);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/7fd822.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/7fd822.wgsl.expected.spvasm
index afc51da..8eb5347 100644
--- a/test/tint/builtins/gen/literal/textureLoad/7fd822.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/7fd822.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 40
+; Bound: 41
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -38,40 +38,41 @@
          %12 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
-         %21 = OpConstantNull %v2uint
+     %uint_1 = OpConstant %uint 1
+         %22 = OpConstantComposite %v2uint %uint_1 %uint_1
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_float = OpTypePointer Function %float
-         %26 = OpTypeFunction %v4float
+         %27 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_7fd822 = OpFunction %void None %12
          %15 = OpLabel
         %res = OpVariable %_ptr_Function_float Function %8
          %18 = OpLoad %11 %arg_0
-         %17 = OpImageFetch %v4float %18 %21 Lod %int_1
+         %17 = OpImageFetch %v4float %18 %22 Lod %int_1
          %16 = OpCompositeExtract %float %17 0
                OpStore %res %16
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %26
-         %28 = OpLabel
-         %29 = OpFunctionCall %void %textureLoad_7fd822
+%vertex_main_inner = OpFunction %v4float None %27
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %textureLoad_7fd822
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %31 = OpLabel
-         %32 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %32
+         %32 = OpLabel
+         %33 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %33
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureLoad_7fd822
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureLoad_7fd822
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureLoad_7fd822
+         %39 = OpLabel
+         %40 = OpFunctionCall %void %textureLoad_7fd822
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureLoad/7fd822.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/7fd822.wgsl.expected.wgsl
index 27d783f..8085a1c 100644
--- a/test/tint/builtins/gen/literal/textureLoad/7fd822.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/7fd822.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_depth_2d;
 
 fn textureLoad_7fd822() {
-  var res : f32 = textureLoad(arg_0, vec2<u32>(), 1i);
+  var res : f32 = textureLoad(arg_0, vec2<u32>(1u), 1i);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureLoad/84dee1.wgsl b/test/tint/builtins/gen/literal/textureLoad/84dee1.wgsl
index 8a57894..d2acc42 100644
--- a/test/tint/builtins/gen/literal/textureLoad/84dee1.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/84dee1.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureLoad(texture: texture_2d<f32>, coords: vec2<u32>, level: u32) -> vec4<f32>
 fn textureLoad_84dee1() {
-  var res: vec4<f32> = textureLoad(arg_0, vec2<u32>(), 1u);
+  var res: vec4<f32> = textureLoad(arg_0, vec2<u32>(1u), 1u);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureLoad/84dee1.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/84dee1.wgsl.expected.dxc.hlsl
index 44ec101..ff8c041 100644
--- a/test/tint/builtins/gen/literal/textureLoad/84dee1.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/84dee1.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 Texture2D<float4> arg_0 : register(t0, space1);
 
 void textureLoad_84dee1() {
-  float4 res = arg_0.Load(uint3(0u, 0u, 1u));
+  float4 res = arg_0.Load(uint3((1u).xx, 1u));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/84dee1.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/84dee1.wgsl.expected.fxc.hlsl
index 44ec101..ff8c041 100644
--- a/test/tint/builtins/gen/literal/textureLoad/84dee1.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/84dee1.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 Texture2D<float4> arg_0 : register(t0, space1);
 
 void textureLoad_84dee1() {
-  float4 res = arg_0.Load(uint3(0u, 0u, 1u));
+  float4 res = arg_0.Load(uint3((1u).xx, 1u));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/84dee1.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/84dee1.wgsl.expected.glsl
index 61255d3..7591aea 100644
--- a/test/tint/builtins/gen/literal/textureLoad/84dee1.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/84dee1.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 uniform highp sampler2D arg_0_1;
 void textureLoad_84dee1() {
-  vec4 res = texelFetch(arg_0_1, ivec2(uvec2(0u)), int(1u));
+  vec4 res = texelFetch(arg_0_1, ivec2(uvec2(1u)), int(1u));
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 
 uniform highp sampler2D arg_0_1;
 void textureLoad_84dee1() {
-  vec4 res = texelFetch(arg_0_1, ivec2(uvec2(0u)), int(1u));
+  vec4 res = texelFetch(arg_0_1, ivec2(uvec2(1u)), int(1u));
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 uniform highp sampler2D arg_0_1;
 void textureLoad_84dee1() {
-  vec4 res = texelFetch(arg_0_1, ivec2(uvec2(0u)), int(1u));
+  vec4 res = texelFetch(arg_0_1, ivec2(uvec2(1u)), int(1u));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureLoad/84dee1.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureLoad/84dee1.wgsl.expected.msl
index f487844..f078b11 100644
--- a/test/tint/builtins/gen/literal/textureLoad/84dee1.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/84dee1.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureLoad_84dee1(texture2d<float, access::sample> tint_symbol_1) {
-  float4 res = tint_symbol_1.read(uint2(uint2(0u)), 1u);
+  float4 res = tint_symbol_1.read(uint2(uint2(1u)), 1u);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/84dee1.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/84dee1.wgsl.expected.spvasm
index 06cffb7..0ec3c1c 100644
--- a/test/tint/builtins/gen/literal/textureLoad/84dee1.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/84dee1.wgsl.expected.spvasm
@@ -38,8 +38,8 @@
          %12 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
-         %20 = OpConstantNull %v2uint
      %uint_1 = OpConstant %uint 1
+         %21 = OpConstantComposite %v2uint %uint_1 %uint_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
          %24 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
@@ -47,7 +47,7 @@
          %15 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
          %17 = OpLoad %11 %arg_0
-         %16 = OpImageFetch %v4float %17 %20 Lod %uint_1
+         %16 = OpImageFetch %v4float %17 %21 Lod %uint_1
                OpStore %res %16
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureLoad/84dee1.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/84dee1.wgsl.expected.wgsl
index 8c71828..208a704 100644
--- a/test/tint/builtins/gen/literal/textureLoad/84dee1.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/84dee1.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_2d<f32>;
 
 fn textureLoad_84dee1() {
-  var res : vec4<f32> = textureLoad(arg_0, vec2<u32>(), 1u);
+  var res : vec4<f32> = textureLoad(arg_0, vec2<u32>(1u), 1u);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureLoad/8527b1.wgsl b/test/tint/builtins/gen/literal/textureLoad/8527b1.wgsl
index 30e2321..538bce5 100644
--- a/test/tint/builtins/gen/literal/textureLoad/8527b1.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/8527b1.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureLoad(texture: texture_2d_array<u32>, coords: vec2<u32>, array_index: u32, level: u32) -> vec4<u32>
 fn textureLoad_8527b1() {
-  var res: vec4<u32> = textureLoad(arg_0, vec2<u32>(), 1u, 1u);
+  var res: vec4<u32> = textureLoad(arg_0, vec2<u32>(1u), 1u, 1u);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureLoad/8527b1.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/8527b1.wgsl.expected.dxc.hlsl
index 996ba2b..efe6675 100644
--- a/test/tint/builtins/gen/literal/textureLoad/8527b1.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/8527b1.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 void textureLoad_8527b1() {
-  uint4 res = arg_0.Load(uint4(0u, 0u, 1u, 1u));
+  uint4 res = arg_0.Load(uint4(uint3((1u).xx, 1u), 1u));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/8527b1.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/8527b1.wgsl.expected.fxc.hlsl
index 996ba2b..efe6675 100644
--- a/test/tint/builtins/gen/literal/textureLoad/8527b1.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/8527b1.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 void textureLoad_8527b1() {
-  uint4 res = arg_0.Load(uint4(0u, 0u, 1u, 1u));
+  uint4 res = arg_0.Load(uint4(uint3((1u).xx, 1u), 1u));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/8527b1.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/8527b1.wgsl.expected.glsl
index d8b25ad..b2dd9c5 100644
--- a/test/tint/builtins/gen/literal/textureLoad/8527b1.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/8527b1.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 uniform highp usampler2DArray arg_0_1;
 void textureLoad_8527b1() {
-  uvec4 res = texelFetch(arg_0_1, ivec3(uvec3(0u, 0u, 1u)), int(1u));
+  uvec4 res = texelFetch(arg_0_1, ivec3(uvec3(uvec2(1u), 1u)), int(1u));
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 
 uniform highp usampler2DArray arg_0_1;
 void textureLoad_8527b1() {
-  uvec4 res = texelFetch(arg_0_1, ivec3(uvec3(0u, 0u, 1u)), int(1u));
+  uvec4 res = texelFetch(arg_0_1, ivec3(uvec3(uvec2(1u), 1u)), int(1u));
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 uniform highp usampler2DArray arg_0_1;
 void textureLoad_8527b1() {
-  uvec4 res = texelFetch(arg_0_1, ivec3(uvec3(0u, 0u, 1u)), int(1u));
+  uvec4 res = texelFetch(arg_0_1, ivec3(uvec3(uvec2(1u), 1u)), int(1u));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureLoad/8527b1.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureLoad/8527b1.wgsl.expected.msl
index 925232e..90a940f 100644
--- a/test/tint/builtins/gen/literal/textureLoad/8527b1.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/8527b1.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureLoad_8527b1(texture2d_array<uint, access::sample> tint_symbol_1) {
-  uint4 res = tint_symbol_1.read(uint2(uint2(0u)), 1u, 1u);
+  uint4 res = tint_symbol_1.read(uint2(uint2(1u)), 1u, 1u);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/8527b1.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/8527b1.wgsl.expected.spvasm
index a5774fc..a761158 100644
--- a/test/tint/builtins/gen/literal/textureLoad/8527b1.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/8527b1.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 41
+; Bound: 44
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -39,40 +39,43 @@
          %13 = OpTypeFunction %void
      %v4uint = OpTypeVector %uint 4
      %v3uint = OpTypeVector %uint 3
-     %uint_0 = OpConstant %uint 0
+     %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %23 = OpConstantComposite %v3uint %uint_0 %uint_0 %uint_1
+         %23 = OpConstantComposite %v2uint %uint_1 %uint_1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %26 = OpConstantNull %v4uint
-         %27 = OpTypeFunction %v4float
+         %29 = OpConstantNull %v4uint
+         %30 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_8527b1 = OpFunction %void None %13
          %16 = OpLabel
-        %res = OpVariable %_ptr_Function_v4uint Function %26
+        %res = OpVariable %_ptr_Function_v4uint Function %29
          %19 = OpLoad %11 %arg_0
-         %17 = OpImageFetch %v4uint %19 %23 Lod %uint_1
+         %24 = OpCompositeExtract %uint %23 0
+         %25 = OpCompositeExtract %uint %23 1
+         %26 = OpCompositeConstruct %v3uint %24 %25 %uint_1
+         %17 = OpImageFetch %v4uint %19 %26 Lod %uint_1
                OpStore %res %17
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %27
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %textureLoad_8527b1
+%vertex_main_inner = OpFunction %v4float None %30
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %textureLoad_8527b1
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %32 = OpLabel
-         %33 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %33
+         %35 = OpLabel
+         %36 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %36
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureLoad_8527b1
+         %39 = OpLabel
+         %40 = OpFunctionCall %void %textureLoad_8527b1
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureLoad_8527b1
+         %42 = OpLabel
+         %43 = OpFunctionCall %void %textureLoad_8527b1
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureLoad/8527b1.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/8527b1.wgsl.expected.wgsl
index 0c8f290..b54aad1 100644
--- a/test/tint/builtins/gen/literal/textureLoad/8527b1.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/8527b1.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_2d_array<u32>;
 
 fn textureLoad_8527b1() {
-  var res : vec4<u32> = textureLoad(arg_0, vec2<u32>(), 1u, 1u);
+  var res : vec4<u32> = textureLoad(arg_0, vec2<u32>(1u), 1u, 1u);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureLoad/87be85.wgsl b/test/tint/builtins/gen/literal/textureLoad/87be85.wgsl
index 764a1c5..8d2249e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/87be85.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/87be85.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureLoad(texture: texture_2d_array<f32>, coords: vec2<i32>, array_index: i32, level: i32) -> vec4<f32>
 fn textureLoad_87be85() {
-  var res: vec4<f32> = textureLoad(arg_0, vec2<i32>(), 1i, 1i);
+  var res: vec4<f32> = textureLoad(arg_0, vec2<i32>(1i), 1i, 1i);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureLoad/87be85.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/87be85.wgsl.expected.dxc.hlsl
index 630c1d1..46729c6 100644
--- a/test/tint/builtins/gen/literal/textureLoad/87be85.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/87be85.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 void textureLoad_87be85() {
-  float4 res = arg_0.Load(int4(0, 0, 1, 1));
+  float4 res = arg_0.Load(int4(int3((1).xx, 1), 1));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/87be85.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/87be85.wgsl.expected.fxc.hlsl
index 630c1d1..46729c6 100644
--- a/test/tint/builtins/gen/literal/textureLoad/87be85.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/87be85.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 void textureLoad_87be85() {
-  float4 res = arg_0.Load(int4(0, 0, 1, 1));
+  float4 res = arg_0.Load(int4(int3((1).xx, 1), 1));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/87be85.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/87be85.wgsl.expected.glsl
index 4d27344..29b9790 100644
--- a/test/tint/builtins/gen/literal/textureLoad/87be85.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/87be85.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 uniform highp sampler2DArray arg_0_1;
 void textureLoad_87be85() {
-  vec4 res = texelFetch(arg_0_1, ivec3(0, 0, 1), 1);
+  vec4 res = texelFetch(arg_0_1, ivec3(ivec2(1), 1), 1);
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 
 uniform highp sampler2DArray arg_0_1;
 void textureLoad_87be85() {
-  vec4 res = texelFetch(arg_0_1, ivec3(0, 0, 1), 1);
+  vec4 res = texelFetch(arg_0_1, ivec3(ivec2(1), 1), 1);
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 uniform highp sampler2DArray arg_0_1;
 void textureLoad_87be85() {
-  vec4 res = texelFetch(arg_0_1, ivec3(0, 0, 1), 1);
+  vec4 res = texelFetch(arg_0_1, ivec3(ivec2(1), 1), 1);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureLoad/87be85.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureLoad/87be85.wgsl.expected.msl
index 7d1b36f8..91e436d 100644
--- a/test/tint/builtins/gen/literal/textureLoad/87be85.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/87be85.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureLoad_87be85(texture2d_array<float, access::sample> tint_symbol_1) {
-  float4 res = tint_symbol_1.read(uint2(int2(0)), 1, 1);
+  float4 res = tint_symbol_1.read(uint2(int2(1)), 1, 1);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/87be85.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/87be85.wgsl.expected.spvasm
index 398d48c..cf811e4 100644
--- a/test/tint/builtins/gen/literal/textureLoad/87be85.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/87be85.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 39
+; Bound: 42
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -38,39 +38,42 @@
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
-      %int_0 = OpConstant %int 0
+      %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %22 = OpConstantComposite %v3int %int_0 %int_0 %int_1
+         %22 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %25 = OpTypeFunction %v4float
+         %28 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_87be85 = OpFunction %void None %12
          %15 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
          %17 = OpLoad %11 %arg_0
-         %16 = OpImageFetch %v4float %17 %22 Lod %int_1
+         %23 = OpCompositeExtract %int %22 0
+         %24 = OpCompositeExtract %int %22 1
+         %25 = OpCompositeConstruct %v3int %23 %24 %int_1
+         %16 = OpImageFetch %v4float %17 %25 Lod %int_1
                OpStore %res %16
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %25
-         %27 = OpLabel
-         %28 = OpFunctionCall %void %textureLoad_87be85
+%vertex_main_inner = OpFunction %v4float None %28
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %textureLoad_87be85
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %30 = OpLabel
-         %31 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %31
+         %33 = OpLabel
+         %34 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %34
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureLoad_87be85
+         %37 = OpLabel
+         %38 = OpFunctionCall %void %textureLoad_87be85
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureLoad_87be85
+         %40 = OpLabel
+         %41 = OpFunctionCall %void %textureLoad_87be85
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureLoad/87be85.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/87be85.wgsl.expected.wgsl
index 1aa41cb..d99ca4e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/87be85.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/87be85.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_2d_array<f32>;
 
 fn textureLoad_87be85() {
-  var res : vec4<f32> = textureLoad(arg_0, vec2<i32>(), 1i, 1i);
+  var res : vec4<f32> = textureLoad(arg_0, vec2<i32>(1i), 1i, 1i);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureLoad/897cf3.wgsl b/test/tint/builtins/gen/literal/textureLoad/897cf3.wgsl
index 1f056a2..4e672d3 100644
--- a/test/tint/builtins/gen/literal/textureLoad/897cf3.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/897cf3.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureLoad(texture: texture_2d<u32>, coords: vec2<u32>, level: u32) -> vec4<u32>
 fn textureLoad_897cf3() {
-  var res: vec4<u32> = textureLoad(arg_0, vec2<u32>(), 1u);
+  var res: vec4<u32> = textureLoad(arg_0, vec2<u32>(1u), 1u);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureLoad/897cf3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/897cf3.wgsl.expected.dxc.hlsl
index c099bb5..af0a0d2 100644
--- a/test/tint/builtins/gen/literal/textureLoad/897cf3.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/897cf3.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 Texture2D<uint4> arg_0 : register(t0, space1);
 
 void textureLoad_897cf3() {
-  uint4 res = arg_0.Load(uint3(0u, 0u, 1u));
+  uint4 res = arg_0.Load(uint3((1u).xx, 1u));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/897cf3.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/897cf3.wgsl.expected.fxc.hlsl
index c099bb5..af0a0d2 100644
--- a/test/tint/builtins/gen/literal/textureLoad/897cf3.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/897cf3.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 Texture2D<uint4> arg_0 : register(t0, space1);
 
 void textureLoad_897cf3() {
-  uint4 res = arg_0.Load(uint3(0u, 0u, 1u));
+  uint4 res = arg_0.Load(uint3((1u).xx, 1u));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/897cf3.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/897cf3.wgsl.expected.glsl
index e77f26b..cf52a14 100644
--- a/test/tint/builtins/gen/literal/textureLoad/897cf3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/897cf3.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 uniform highp usampler2D arg_0_1;
 void textureLoad_897cf3() {
-  uvec4 res = texelFetch(arg_0_1, ivec2(uvec2(0u)), int(1u));
+  uvec4 res = texelFetch(arg_0_1, ivec2(uvec2(1u)), int(1u));
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 
 uniform highp usampler2D arg_0_1;
 void textureLoad_897cf3() {
-  uvec4 res = texelFetch(arg_0_1, ivec2(uvec2(0u)), int(1u));
+  uvec4 res = texelFetch(arg_0_1, ivec2(uvec2(1u)), int(1u));
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 uniform highp usampler2D arg_0_1;
 void textureLoad_897cf3() {
-  uvec4 res = texelFetch(arg_0_1, ivec2(uvec2(0u)), int(1u));
+  uvec4 res = texelFetch(arg_0_1, ivec2(uvec2(1u)), int(1u));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureLoad/897cf3.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureLoad/897cf3.wgsl.expected.msl
index dfbe3e3..d0a6e41 100644
--- a/test/tint/builtins/gen/literal/textureLoad/897cf3.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/897cf3.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureLoad_897cf3(texture2d<uint, access::sample> tint_symbol_1) {
-  uint4 res = tint_symbol_1.read(uint2(uint2(0u)), 1u);
+  uint4 res = tint_symbol_1.read(uint2(uint2(1u)), 1u);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/897cf3.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/897cf3.wgsl.expected.spvasm
index d6fb44d..1203f24 100644
--- a/test/tint/builtins/gen/literal/textureLoad/897cf3.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/897cf3.wgsl.expected.spvasm
@@ -39,8 +39,8 @@
          %13 = OpTypeFunction %void
      %v4uint = OpTypeVector %uint 4
      %v2uint = OpTypeVector %uint 2
-         %21 = OpConstantNull %v2uint
      %uint_1 = OpConstant %uint 1
+         %22 = OpConstantComposite %v2uint %uint_1 %uint_1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
          %25 = OpConstantNull %v4uint
          %26 = OpTypeFunction %v4float
@@ -49,7 +49,7 @@
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_v4uint Function %25
          %19 = OpLoad %11 %arg_0
-         %17 = OpImageFetch %v4uint %19 %21 Lod %uint_1
+         %17 = OpImageFetch %v4uint %19 %22 Lod %uint_1
                OpStore %res %17
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureLoad/897cf3.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/897cf3.wgsl.expected.wgsl
index 4acf456..abaebd3 100644
--- a/test/tint/builtins/gen/literal/textureLoad/897cf3.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/897cf3.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_2d<u32>;
 
 fn textureLoad_897cf3() {
-  var res : vec4<u32> = textureLoad(arg_0, vec2<u32>(), 1u);
+  var res : vec4<u32> = textureLoad(arg_0, vec2<u32>(1u), 1u);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureLoad/8acf41.wgsl b/test/tint/builtins/gen/literal/textureLoad/8acf41.wgsl
index c0a16ad..7b35415 100644
--- a/test/tint/builtins/gen/literal/textureLoad/8acf41.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/8acf41.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureLoad(texture: texture_external, coords: vec2<i32>) -> vec4<f32>
 fn textureLoad_8acf41() {
-  var res: vec4<f32> = textureLoad(arg_0, vec2<i32>());
+  var res: vec4<f32> = textureLoad(arg_0, vec2<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureLoad/8acf41.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/8acf41.wgsl.expected.dxc.hlsl
index 33ee497..ef621cb 100644
--- a/test/tint/builtins/gen/literal/textureLoad/8acf41.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/8acf41.wgsl.expected.dxc.hlsl
@@ -80,7 +80,7 @@
 }
 
 void textureLoad_8acf41() {
-  float4 res = textureLoadExternal(arg_0, ext_tex_plane_1, (0).xx, tint_symbol_1(ext_tex_params, 0u));
+  float4 res = textureLoadExternal(arg_0, ext_tex_plane_1, (1).xx, tint_symbol_1(ext_tex_params, 0u));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/8acf41.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/8acf41.wgsl.expected.fxc.hlsl
index 33ee497..ef621cb 100644
--- a/test/tint/builtins/gen/literal/textureLoad/8acf41.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/8acf41.wgsl.expected.fxc.hlsl
@@ -80,7 +80,7 @@
 }
 
 void textureLoad_8acf41() {
-  float4 res = textureLoadExternal(arg_0, ext_tex_plane_1, (0).xx, tint_symbol_1(ext_tex_params, 0u));
+  float4 res = textureLoadExternal(arg_0, ext_tex_plane_1, (1).xx, tint_symbol_1(ext_tex_params, 0u));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/8acf41.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/8acf41.wgsl.expected.glsl
index 2667743..88a7e3e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/8acf41.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/8acf41.wgsl.expected.glsl
@@ -49,7 +49,7 @@
 uniform highp sampler2D arg_0_1;
 uniform highp sampler2D ext_tex_plane_1_1;
 void textureLoad_8acf41() {
-  vec4 res = textureLoadExternal(arg_0_1, ext_tex_plane_1_1, ivec2(0), ext_tex_params.inner);
+  vec4 res = textureLoadExternal(arg_0_1, ext_tex_plane_1_1, ivec2(1), ext_tex_params.inner);
 }
 
 vec4 vertex_main() {
@@ -117,7 +117,7 @@
 uniform highp sampler2D arg_0_1;
 uniform highp sampler2D ext_tex_plane_1_1;
 void textureLoad_8acf41() {
-  vec4 res = textureLoadExternal(arg_0_1, ext_tex_plane_1_1, ivec2(0), ext_tex_params.inner);
+  vec4 res = textureLoadExternal(arg_0_1, ext_tex_plane_1_1, ivec2(1), ext_tex_params.inner);
 }
 
 void fragment_main() {
@@ -179,7 +179,7 @@
 uniform highp sampler2D arg_0_1;
 uniform highp sampler2D ext_tex_plane_1_1;
 void textureLoad_8acf41() {
-  vec4 res = textureLoadExternal(arg_0_1, ext_tex_plane_1_1, ivec2(0), ext_tex_params.inner);
+  vec4 res = textureLoadExternal(arg_0_1, ext_tex_plane_1_1, ivec2(1), ext_tex_params.inner);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureLoad/8acf41.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureLoad/8acf41.wgsl.expected.msl
index 617b8df..93bf9c8 100644
--- a/test/tint/builtins/gen/literal/textureLoad/8acf41.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/8acf41.wgsl.expected.msl
@@ -58,7 +58,7 @@
 }
 
 void textureLoad_8acf41(texture2d<float, access::sample> tint_symbol_1, texture2d<float, access::sample> tint_symbol_2, const constant ExternalTextureParams* const tint_symbol_3) {
-  float4 res = textureLoadExternal(tint_symbol_1, tint_symbol_2, int2(0), *(tint_symbol_3));
+  float4 res = textureLoadExternal(tint_symbol_1, tint_symbol_2, int2(1), *(tint_symbol_3));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/8acf41.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/8acf41.wgsl.expected.spvasm
index 6eba59e..9929412 100644
--- a/test/tint/builtins/gen/literal/textureLoad/8acf41.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/8acf41.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 138
+; Bound: 139
 ; Schema: 0
                OpCapability Shader
          %28 = OpExtInstImport "GLSL.std.450"
@@ -114,11 +114,12 @@
          %93 = OpConstantNull %uint
        %void = OpTypeVoid
         %111 = OpTypeFunction %void
-        %118 = OpConstantNull %v2int
+      %int_1 = OpConstant %int 1
+        %119 = OpConstantComposite %v2int %int_1 %int_1
      %uint_0 = OpConstant %uint 0
 %_ptr_Uniform_ExternalTextureParams = OpTypePointer Uniform %ExternalTextureParams
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-        %125 = OpTypeFunction %v4float
+        %126 = OpTypeFunction %v4float
 %gammaCorrection = OpFunction %v3float None %22
           %v = OpFunctionParameter %v3float
      %params = OpFunctionParameter %GammaTransferParams
@@ -215,31 +216,31 @@
         %res = OpVariable %_ptr_Function_v4float Function %5
         %116 = OpLoad %11 %arg_0
         %117 = OpLoad %11 %ext_tex_plane_1
-        %121 = OpAccessChain %_ptr_Uniform_ExternalTextureParams %ext_tex_params %uint_0
-        %122 = OpLoad %ExternalTextureParams %121
-        %115 = OpFunctionCall %v4float %textureLoadExternal %116 %117 %118 %122
+        %122 = OpAccessChain %_ptr_Uniform_ExternalTextureParams %ext_tex_params %uint_0
+        %123 = OpLoad %ExternalTextureParams %122
+        %115 = OpFunctionCall %v4float %textureLoadExternal %116 %117 %119 %123
                OpStore %res %115
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %125
-        %127 = OpLabel
-        %128 = OpFunctionCall %void %textureLoad_8acf41
+%vertex_main_inner = OpFunction %v4float None %126
+        %128 = OpLabel
+        %129 = OpFunctionCall %void %textureLoad_8acf41
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %111
-        %130 = OpLabel
-        %131 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %131
+        %131 = OpLabel
+        %132 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %132
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %111
-        %133 = OpLabel
-        %134 = OpFunctionCall %void %textureLoad_8acf41
+        %134 = OpLabel
+        %135 = OpFunctionCall %void %textureLoad_8acf41
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %111
-        %136 = OpLabel
-        %137 = OpFunctionCall %void %textureLoad_8acf41
+        %137 = OpLabel
+        %138 = OpFunctionCall %void %textureLoad_8acf41
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureLoad/8acf41.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/8acf41.wgsl.expected.wgsl
index 9539b70..5577b26 100644
--- a/test/tint/builtins/gen/literal/textureLoad/8acf41.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/8acf41.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_external;
 
 fn textureLoad_8acf41() {
-  var res : vec4<f32> = textureLoad(arg_0, vec2<i32>());
+  var res : vec4<f32> = textureLoad(arg_0, vec2<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureLoad/8ccbe3.wgsl b/test/tint/builtins/gen/literal/textureLoad/8ccbe3.wgsl
index b5d0434..436c43a 100644
--- a/test/tint/builtins/gen/literal/textureLoad/8ccbe3.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/8ccbe3.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureLoad(texture: texture_depth_2d, coords: vec2<i32>, level: u32) -> f32
 fn textureLoad_8ccbe3() {
-  var res: f32 = textureLoad(arg_0, vec2<i32>(), 1u);
+  var res: f32 = textureLoad(arg_0, vec2<i32>(1i), 1u);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureLoad/8ccbe3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/8ccbe3.wgsl.expected.dxc.hlsl
index 6f96b70..bd1f283 100644
--- a/test/tint/builtins/gen/literal/textureLoad/8ccbe3.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/8ccbe3.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 Texture2D arg_0 : register(t0, space1);
 
 void textureLoad_8ccbe3() {
-  float res = arg_0.Load(int3(0, 0, int(1u))).x;
+  float res = arg_0.Load(int3((1).xx, int(1u))).x;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/8ccbe3.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/8ccbe3.wgsl.expected.fxc.hlsl
index 6f96b70..bd1f283 100644
--- a/test/tint/builtins/gen/literal/textureLoad/8ccbe3.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/8ccbe3.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 Texture2D arg_0 : register(t0, space1);
 
 void textureLoad_8ccbe3() {
-  float res = arg_0.Load(int3(0, 0, int(1u))).x;
+  float res = arg_0.Load(int3((1).xx, int(1u))).x;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/8ccbe3.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/8ccbe3.wgsl.expected.glsl
index ece7afb..d700b3e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/8ccbe3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/8ccbe3.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 uniform highp sampler2D arg_0_1;
 void textureLoad_8ccbe3() {
-  float res = texelFetch(arg_0_1, ivec2(0), int(1u)).x;
+  float res = texelFetch(arg_0_1, ivec2(1), int(1u)).x;
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 
 uniform highp sampler2D arg_0_1;
 void textureLoad_8ccbe3() {
-  float res = texelFetch(arg_0_1, ivec2(0), int(1u)).x;
+  float res = texelFetch(arg_0_1, ivec2(1), int(1u)).x;
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 uniform highp sampler2D arg_0_1;
 void textureLoad_8ccbe3() {
-  float res = texelFetch(arg_0_1, ivec2(0), int(1u)).x;
+  float res = texelFetch(arg_0_1, ivec2(1), int(1u)).x;
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureLoad/8ccbe3.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureLoad/8ccbe3.wgsl.expected.msl
index ac493ed..b53534c 100644
--- a/test/tint/builtins/gen/literal/textureLoad/8ccbe3.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/8ccbe3.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureLoad_8ccbe3(depth2d<float, access::sample> tint_symbol_1) {
-  float res = tint_symbol_1.read(uint2(int2(0)), 1u);
+  float res = tint_symbol_1.read(uint2(int2(1)), 1u);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/8ccbe3.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/8ccbe3.wgsl.expected.spvasm
index 74a1be6..4333057 100644
--- a/test/tint/builtins/gen/literal/textureLoad/8ccbe3.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/8ccbe3.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 40
+; Bound: 41
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -38,40 +38,41 @@
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
-         %21 = OpConstantNull %v2int
+      %int_1 = OpConstant %int 1
+         %22 = OpConstantComposite %v2int %int_1 %int_1
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_float = OpTypePointer Function %float
-         %26 = OpTypeFunction %v4float
+         %27 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_8ccbe3 = OpFunction %void None %12
          %15 = OpLabel
         %res = OpVariable %_ptr_Function_float Function %8
          %18 = OpLoad %11 %arg_0
-         %17 = OpImageFetch %v4float %18 %21 Lod %uint_1
+         %17 = OpImageFetch %v4float %18 %22 Lod %uint_1
          %16 = OpCompositeExtract %float %17 0
                OpStore %res %16
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %26
-         %28 = OpLabel
-         %29 = OpFunctionCall %void %textureLoad_8ccbe3
+%vertex_main_inner = OpFunction %v4float None %27
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %textureLoad_8ccbe3
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %31 = OpLabel
-         %32 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %32
+         %32 = OpLabel
+         %33 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %33
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureLoad_8ccbe3
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureLoad_8ccbe3
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureLoad_8ccbe3
+         %39 = OpLabel
+         %40 = OpFunctionCall %void %textureLoad_8ccbe3
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureLoad/8ccbe3.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/8ccbe3.wgsl.expected.wgsl
index ed51a5e..3128d1e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/8ccbe3.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/8ccbe3.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_depth_2d;
 
 fn textureLoad_8ccbe3() {
-  var res : f32 = textureLoad(arg_0, vec2<i32>(), 1u);
+  var res : f32 = textureLoad(arg_0, vec2<i32>(1i), 1u);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureLoad/92eb1f.wgsl b/test/tint/builtins/gen/literal/textureLoad/92eb1f.wgsl
index caf7225..75a6136 100644
--- a/test/tint/builtins/gen/literal/textureLoad/92eb1f.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/92eb1f.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureLoad(texture: texture_3d<u32>, coords: vec3<u32>, level: i32) -> vec4<u32>
 fn textureLoad_92eb1f() {
-  var res: vec4<u32> = textureLoad(arg_0, vec3<u32>(), 1i);
+  var res: vec4<u32> = textureLoad(arg_0, vec3<u32>(1u), 1i);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureLoad/92eb1f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/92eb1f.wgsl.expected.dxc.hlsl
index f6223be..27f26d4 100644
--- a/test/tint/builtins/gen/literal/textureLoad/92eb1f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/92eb1f.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 Texture3D<uint4> arg_0 : register(t0, space1);
 
 void textureLoad_92eb1f() {
-  uint4 res = arg_0.Load(uint4(0u, 0u, 0u, uint(1)));
+  uint4 res = arg_0.Load(uint4((1u).xxx, uint(1)));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/92eb1f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/92eb1f.wgsl.expected.fxc.hlsl
index f6223be..27f26d4 100644
--- a/test/tint/builtins/gen/literal/textureLoad/92eb1f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/92eb1f.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 Texture3D<uint4> arg_0 : register(t0, space1);
 
 void textureLoad_92eb1f() {
-  uint4 res = arg_0.Load(uint4(0u, 0u, 0u, uint(1)));
+  uint4 res = arg_0.Load(uint4((1u).xxx, uint(1)));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/92eb1f.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/92eb1f.wgsl.expected.glsl
index 17377b3..03a01dc 100644
--- a/test/tint/builtins/gen/literal/textureLoad/92eb1f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/92eb1f.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 uniform highp usampler3D arg_0_1;
 void textureLoad_92eb1f() {
-  uvec4 res = texelFetch(arg_0_1, ivec3(uvec3(0u)), 1);
+  uvec4 res = texelFetch(arg_0_1, ivec3(uvec3(1u)), 1);
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 
 uniform highp usampler3D arg_0_1;
 void textureLoad_92eb1f() {
-  uvec4 res = texelFetch(arg_0_1, ivec3(uvec3(0u)), 1);
+  uvec4 res = texelFetch(arg_0_1, ivec3(uvec3(1u)), 1);
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 uniform highp usampler3D arg_0_1;
 void textureLoad_92eb1f() {
-  uvec4 res = texelFetch(arg_0_1, ivec3(uvec3(0u)), 1);
+  uvec4 res = texelFetch(arg_0_1, ivec3(uvec3(1u)), 1);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureLoad/92eb1f.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureLoad/92eb1f.wgsl.expected.msl
index 1ccb382..a71ae9c 100644
--- a/test/tint/builtins/gen/literal/textureLoad/92eb1f.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/92eb1f.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureLoad_92eb1f(texture3d<uint, access::sample> tint_symbol_1) {
-  uint4 res = tint_symbol_1.read(uint3(uint3(0u)), 1);
+  uint4 res = tint_symbol_1.read(uint3(uint3(1u)), 1);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/92eb1f.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/92eb1f.wgsl.expected.spvasm
index 0660252..f9adb7a 100644
--- a/test/tint/builtins/gen/literal/textureLoad/92eb1f.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/92eb1f.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 41
+; Bound: 42
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -39,40 +39,41 @@
          %13 = OpTypeFunction %void
      %v4uint = OpTypeVector %uint 4
      %v3uint = OpTypeVector %uint 3
-         %21 = OpConstantNull %v3uint
+     %uint_1 = OpConstant %uint 1
+         %22 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %26 = OpConstantNull %v4uint
-         %27 = OpTypeFunction %v4float
+         %27 = OpConstantNull %v4uint
+         %28 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_92eb1f = OpFunction %void None %13
          %16 = OpLabel
-        %res = OpVariable %_ptr_Function_v4uint Function %26
+        %res = OpVariable %_ptr_Function_v4uint Function %27
          %19 = OpLoad %11 %arg_0
-         %17 = OpImageFetch %v4uint %19 %21 Lod %int_1
+         %17 = OpImageFetch %v4uint %19 %22 Lod %int_1
                OpStore %res %17
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %27
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %textureLoad_92eb1f
+%vertex_main_inner = OpFunction %v4float None %28
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %textureLoad_92eb1f
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %32 = OpLabel
-         %33 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %33
+         %33 = OpLabel
+         %34 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %34
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureLoad_92eb1f
+         %37 = OpLabel
+         %38 = OpFunctionCall %void %textureLoad_92eb1f
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureLoad_92eb1f
+         %40 = OpLabel
+         %41 = OpFunctionCall %void %textureLoad_92eb1f
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureLoad/92eb1f.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/92eb1f.wgsl.expected.wgsl
index e6000a2..a09f3b3 100644
--- a/test/tint/builtins/gen/literal/textureLoad/92eb1f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/92eb1f.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_3d<u32>;
 
 fn textureLoad_92eb1f() {
-  var res : vec4<u32> = textureLoad(arg_0, vec3<u32>(), 1i);
+  var res : vec4<u32> = textureLoad(arg_0, vec3<u32>(1u), 1i);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureLoad/96efd5.wgsl b/test/tint/builtins/gen/literal/textureLoad/96efd5.wgsl
index 2a5a5d7..6702db2 100644
--- a/test/tint/builtins/gen/literal/textureLoad/96efd5.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/96efd5.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureLoad(texture: texture_2d_array<f32>, coords: vec2<u32>, array_index: u32, level: u32) -> vec4<f32>
 fn textureLoad_96efd5() {
-  var res: vec4<f32> = textureLoad(arg_0, vec2<u32>(), 1u, 1u);
+  var res: vec4<f32> = textureLoad(arg_0, vec2<u32>(1u), 1u, 1u);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureLoad/96efd5.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/96efd5.wgsl.expected.dxc.hlsl
index 67c4f1b..d31d27a 100644
--- a/test/tint/builtins/gen/literal/textureLoad/96efd5.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/96efd5.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 void textureLoad_96efd5() {
-  float4 res = arg_0.Load(uint4(0u, 0u, 1u, 1u));
+  float4 res = arg_0.Load(uint4(uint3((1u).xx, 1u), 1u));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/96efd5.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/96efd5.wgsl.expected.fxc.hlsl
index 67c4f1b..d31d27a 100644
--- a/test/tint/builtins/gen/literal/textureLoad/96efd5.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/96efd5.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 void textureLoad_96efd5() {
-  float4 res = arg_0.Load(uint4(0u, 0u, 1u, 1u));
+  float4 res = arg_0.Load(uint4(uint3((1u).xx, 1u), 1u));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/96efd5.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/96efd5.wgsl.expected.glsl
index f3f8f17..93f63df 100644
--- a/test/tint/builtins/gen/literal/textureLoad/96efd5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/96efd5.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 uniform highp sampler2DArray arg_0_1;
 void textureLoad_96efd5() {
-  vec4 res = texelFetch(arg_0_1, ivec3(uvec3(0u, 0u, 1u)), int(1u));
+  vec4 res = texelFetch(arg_0_1, ivec3(uvec3(uvec2(1u), 1u)), int(1u));
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 
 uniform highp sampler2DArray arg_0_1;
 void textureLoad_96efd5() {
-  vec4 res = texelFetch(arg_0_1, ivec3(uvec3(0u, 0u, 1u)), int(1u));
+  vec4 res = texelFetch(arg_0_1, ivec3(uvec3(uvec2(1u), 1u)), int(1u));
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 uniform highp sampler2DArray arg_0_1;
 void textureLoad_96efd5() {
-  vec4 res = texelFetch(arg_0_1, ivec3(uvec3(0u, 0u, 1u)), int(1u));
+  vec4 res = texelFetch(arg_0_1, ivec3(uvec3(uvec2(1u), 1u)), int(1u));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureLoad/96efd5.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureLoad/96efd5.wgsl.expected.msl
index 3f9f55f..68bce43 100644
--- a/test/tint/builtins/gen/literal/textureLoad/96efd5.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/96efd5.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureLoad_96efd5(texture2d_array<float, access::sample> tint_symbol_1) {
-  float4 res = tint_symbol_1.read(uint2(uint2(0u)), 1u, 1u);
+  float4 res = tint_symbol_1.read(uint2(uint2(1u)), 1u, 1u);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/96efd5.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/96efd5.wgsl.expected.spvasm
index e75371c..95d4da6 100644
--- a/test/tint/builtins/gen/literal/textureLoad/96efd5.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/96efd5.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 39
+; Bound: 42
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -38,39 +38,42 @@
          %12 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
-     %uint_0 = OpConstant %uint 0
+     %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %22 = OpConstantComposite %v3uint %uint_0 %uint_0 %uint_1
+         %22 = OpConstantComposite %v2uint %uint_1 %uint_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %25 = OpTypeFunction %v4float
+         %28 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_96efd5 = OpFunction %void None %12
          %15 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
          %17 = OpLoad %11 %arg_0
-         %16 = OpImageFetch %v4float %17 %22 Lod %uint_1
+         %23 = OpCompositeExtract %uint %22 0
+         %24 = OpCompositeExtract %uint %22 1
+         %25 = OpCompositeConstruct %v3uint %23 %24 %uint_1
+         %16 = OpImageFetch %v4float %17 %25 Lod %uint_1
                OpStore %res %16
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %25
-         %27 = OpLabel
-         %28 = OpFunctionCall %void %textureLoad_96efd5
+%vertex_main_inner = OpFunction %v4float None %28
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %textureLoad_96efd5
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %30 = OpLabel
-         %31 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %31
+         %33 = OpLabel
+         %34 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %34
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureLoad_96efd5
+         %37 = OpLabel
+         %38 = OpFunctionCall %void %textureLoad_96efd5
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureLoad_96efd5
+         %40 = OpLabel
+         %41 = OpFunctionCall %void %textureLoad_96efd5
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureLoad/96efd5.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/96efd5.wgsl.expected.wgsl
index d6f1fec..c335e7c 100644
--- a/test/tint/builtins/gen/literal/textureLoad/96efd5.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/96efd5.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_2d_array<f32>;
 
 fn textureLoad_96efd5() {
-  var res : vec4<f32> = textureLoad(arg_0, vec2<u32>(), 1u, 1u);
+  var res : vec4<f32> = textureLoad(arg_0, vec2<u32>(1u), 1u, 1u);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureLoad/9885b0.wgsl b/test/tint/builtins/gen/literal/textureLoad/9885b0.wgsl
index 7932e4f..41979d9 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9885b0.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/9885b0.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureLoad(texture: texture_2d_array<i32>, coords: vec2<u32>, array_index: u32, level: u32) -> vec4<i32>
 fn textureLoad_9885b0() {
-  var res: vec4<i32> = textureLoad(arg_0, vec2<u32>(), 1u, 1u);
+  var res: vec4<i32> = textureLoad(arg_0, vec2<u32>(1u), 1u, 1u);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureLoad/9885b0.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/9885b0.wgsl.expected.dxc.hlsl
index 1362ee5..a284ba8 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9885b0.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/9885b0.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 void textureLoad_9885b0() {
-  int4 res = arg_0.Load(uint4(0u, 0u, 1u, 1u));
+  int4 res = arg_0.Load(uint4(uint3((1u).xx, 1u), 1u));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/9885b0.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/9885b0.wgsl.expected.fxc.hlsl
index 1362ee5..a284ba8 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9885b0.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/9885b0.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 void textureLoad_9885b0() {
-  int4 res = arg_0.Load(uint4(0u, 0u, 1u, 1u));
+  int4 res = arg_0.Load(uint4(uint3((1u).xx, 1u), 1u));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/9885b0.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/9885b0.wgsl.expected.glsl
index 37d02a3..8ae9074 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9885b0.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/9885b0.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 uniform highp isampler2DArray arg_0_1;
 void textureLoad_9885b0() {
-  ivec4 res = texelFetch(arg_0_1, ivec3(uvec3(0u, 0u, 1u)), int(1u));
+  ivec4 res = texelFetch(arg_0_1, ivec3(uvec3(uvec2(1u), 1u)), int(1u));
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 
 uniform highp isampler2DArray arg_0_1;
 void textureLoad_9885b0() {
-  ivec4 res = texelFetch(arg_0_1, ivec3(uvec3(0u, 0u, 1u)), int(1u));
+  ivec4 res = texelFetch(arg_0_1, ivec3(uvec3(uvec2(1u), 1u)), int(1u));
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 uniform highp isampler2DArray arg_0_1;
 void textureLoad_9885b0() {
-  ivec4 res = texelFetch(arg_0_1, ivec3(uvec3(0u, 0u, 1u)), int(1u));
+  ivec4 res = texelFetch(arg_0_1, ivec3(uvec3(uvec2(1u), 1u)), int(1u));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureLoad/9885b0.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureLoad/9885b0.wgsl.expected.msl
index 9962116..843028c 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9885b0.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/9885b0.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureLoad_9885b0(texture2d_array<int, access::sample> tint_symbol_1) {
-  int4 res = tint_symbol_1.read(uint2(uint2(0u)), 1u, 1u);
+  int4 res = tint_symbol_1.read(uint2(uint2(1u)), 1u, 1u);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/9885b0.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/9885b0.wgsl.expected.spvasm
index 4f1bcb5..95cbcb3 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9885b0.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/9885b0.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 42
+; Bound: 45
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -40,40 +40,43 @@
       %v4int = OpTypeVector %int 4
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
-     %uint_0 = OpConstant %uint 0
+     %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %24 = OpConstantComposite %v3uint %uint_0 %uint_0 %uint_1
+         %24 = OpConstantComposite %v2uint %uint_1 %uint_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %27 = OpConstantNull %v4int
-         %28 = OpTypeFunction %v4float
+         %30 = OpConstantNull %v4int
+         %31 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_9885b0 = OpFunction %void None %13
          %16 = OpLabel
-        %res = OpVariable %_ptr_Function_v4int Function %27
+        %res = OpVariable %_ptr_Function_v4int Function %30
          %19 = OpLoad %11 %arg_0
-         %17 = OpImageFetch %v4int %19 %24 Lod %uint_1
+         %25 = OpCompositeExtract %uint %24 0
+         %26 = OpCompositeExtract %uint %24 1
+         %27 = OpCompositeConstruct %v3uint %25 %26 %uint_1
+         %17 = OpImageFetch %v4int %19 %27 Lod %uint_1
                OpStore %res %17
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %28
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %textureLoad_9885b0
+%vertex_main_inner = OpFunction %v4float None %31
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureLoad_9885b0
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %33 = OpLabel
-         %34 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %34
+         %36 = OpLabel
+         %37 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %37
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureLoad_9885b0
+         %40 = OpLabel
+         %41 = OpFunctionCall %void %textureLoad_9885b0
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureLoad_9885b0
+         %43 = OpLabel
+         %44 = OpFunctionCall %void %textureLoad_9885b0
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureLoad/9885b0.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/9885b0.wgsl.expected.wgsl
index 0c52bf4..5f84beb 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9885b0.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/9885b0.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_2d_array<i32>;
 
 fn textureLoad_9885b0() {
-  var res : vec4<i32> = textureLoad(arg_0, vec2<u32>(), 1u, 1u);
+  var res : vec4<i32> = textureLoad(arg_0, vec2<u32>(1u), 1u, 1u);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureLoad/9aa733.wgsl b/test/tint/builtins/gen/literal/textureLoad/9aa733.wgsl
index 35fef29..80fb11e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9aa733.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/9aa733.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureLoad(texture: texture_2d<i32>, coords: vec2<u32>, level: i32) -> vec4<i32>
 fn textureLoad_9aa733() {
-  var res: vec4<i32> = textureLoad(arg_0, vec2<u32>(), 1i);
+  var res: vec4<i32> = textureLoad(arg_0, vec2<u32>(1u), 1i);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureLoad/9aa733.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/9aa733.wgsl.expected.dxc.hlsl
index 79162bd..8862e3e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9aa733.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/9aa733.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 Texture2D<int4> arg_0 : register(t0, space1);
 
 void textureLoad_9aa733() {
-  int4 res = arg_0.Load(uint3(0u, 0u, uint(1)));
+  int4 res = arg_0.Load(uint3((1u).xx, uint(1)));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/9aa733.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/9aa733.wgsl.expected.fxc.hlsl
index 79162bd..8862e3e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9aa733.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/9aa733.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 Texture2D<int4> arg_0 : register(t0, space1);
 
 void textureLoad_9aa733() {
-  int4 res = arg_0.Load(uint3(0u, 0u, uint(1)));
+  int4 res = arg_0.Load(uint3((1u).xx, uint(1)));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/9aa733.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/9aa733.wgsl.expected.glsl
index 217cfa1..79c181b 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9aa733.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/9aa733.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 uniform highp isampler2D arg_0_1;
 void textureLoad_9aa733() {
-  ivec4 res = texelFetch(arg_0_1, ivec2(uvec2(0u)), 1);
+  ivec4 res = texelFetch(arg_0_1, ivec2(uvec2(1u)), 1);
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 
 uniform highp isampler2D arg_0_1;
 void textureLoad_9aa733() {
-  ivec4 res = texelFetch(arg_0_1, ivec2(uvec2(0u)), 1);
+  ivec4 res = texelFetch(arg_0_1, ivec2(uvec2(1u)), 1);
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 uniform highp isampler2D arg_0_1;
 void textureLoad_9aa733() {
-  ivec4 res = texelFetch(arg_0_1, ivec2(uvec2(0u)), 1);
+  ivec4 res = texelFetch(arg_0_1, ivec2(uvec2(1u)), 1);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureLoad/9aa733.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureLoad/9aa733.wgsl.expected.msl
index 961e4e3..b159851 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9aa733.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/9aa733.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureLoad_9aa733(texture2d<int, access::sample> tint_symbol_1) {
-  int4 res = tint_symbol_1.read(uint2(uint2(0u)), 1);
+  int4 res = tint_symbol_1.read(uint2(uint2(1u)), 1);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/9aa733.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/9aa733.wgsl.expected.spvasm
index 6e614d2..d58cf9e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9aa733.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/9aa733.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 41
+; Bound: 42
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -40,39 +40,40 @@
       %v4int = OpTypeVector %int 4
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
-         %22 = OpConstantNull %v2uint
+     %uint_1 = OpConstant %uint 1
+         %23 = OpConstantComposite %v2uint %uint_1 %uint_1
       %int_1 = OpConstant %int 1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %26 = OpConstantNull %v4int
-         %27 = OpTypeFunction %v4float
+         %27 = OpConstantNull %v4int
+         %28 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_9aa733 = OpFunction %void None %13
          %16 = OpLabel
-        %res = OpVariable %_ptr_Function_v4int Function %26
+        %res = OpVariable %_ptr_Function_v4int Function %27
          %19 = OpLoad %11 %arg_0
-         %17 = OpImageFetch %v4int %19 %22 Lod %int_1
+         %17 = OpImageFetch %v4int %19 %23 Lod %int_1
                OpStore %res %17
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %27
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %textureLoad_9aa733
+%vertex_main_inner = OpFunction %v4float None %28
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %textureLoad_9aa733
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %32 = OpLabel
-         %33 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %33
+         %33 = OpLabel
+         %34 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %34
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureLoad_9aa733
+         %37 = OpLabel
+         %38 = OpFunctionCall %void %textureLoad_9aa733
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureLoad_9aa733
+         %40 = OpLabel
+         %41 = OpFunctionCall %void %textureLoad_9aa733
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureLoad/9aa733.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/9aa733.wgsl.expected.wgsl
index 10a785e..16e206d 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9aa733.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/9aa733.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_2d<i32>;
 
 fn textureLoad_9aa733() {
-  var res : vec4<i32> = textureLoad(arg_0, vec2<u32>(), 1i);
+  var res : vec4<i32> = textureLoad(arg_0, vec2<u32>(1u), 1i);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureLoad/9b2667.wgsl b/test/tint/builtins/gen/literal/textureLoad/9b2667.wgsl
index 5949f7d..d3628ce 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9b2667.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/9b2667.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureLoad(texture: texture_depth_2d_array, coords: vec2<i32>, array_index: i32, level: i32) -> f32
 fn textureLoad_9b2667() {
-  var res: f32 = textureLoad(arg_0, vec2<i32>(), 1i, 1i);
+  var res: f32 = textureLoad(arg_0, vec2<i32>(1i), 1i, 1i);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureLoad/9b2667.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/9b2667.wgsl.expected.dxc.hlsl
index a17fb57..6504431 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9b2667.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/9b2667.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DArray arg_0 : register(t0, space1);
 
 void textureLoad_9b2667() {
-  float res = arg_0.Load(int4(0, 0, 1, 1)).x;
+  float res = arg_0.Load(int4(int3((1).xx, 1), 1)).x;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/9b2667.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/9b2667.wgsl.expected.fxc.hlsl
index a17fb57..6504431 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9b2667.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/9b2667.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DArray arg_0 : register(t0, space1);
 
 void textureLoad_9b2667() {
-  float res = arg_0.Load(int4(0, 0, 1, 1)).x;
+  float res = arg_0.Load(int4(int3((1).xx, 1), 1)).x;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/9b2667.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/9b2667.wgsl.expected.glsl
index bc2e629..6b28c51 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9b2667.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/9b2667.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 uniform highp sampler2DArray arg_0_1;
 void textureLoad_9b2667() {
-  float res = texelFetch(arg_0_1, ivec3(0, 0, 1), 1).x;
+  float res = texelFetch(arg_0_1, ivec3(ivec2(1), 1), 1).x;
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 
 uniform highp sampler2DArray arg_0_1;
 void textureLoad_9b2667() {
-  float res = texelFetch(arg_0_1, ivec3(0, 0, 1), 1).x;
+  float res = texelFetch(arg_0_1, ivec3(ivec2(1), 1), 1).x;
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 uniform highp sampler2DArray arg_0_1;
 void textureLoad_9b2667() {
-  float res = texelFetch(arg_0_1, ivec3(0, 0, 1), 1).x;
+  float res = texelFetch(arg_0_1, ivec3(ivec2(1), 1), 1).x;
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureLoad/9b2667.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureLoad/9b2667.wgsl.expected.msl
index 5b2788d..594a572 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9b2667.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/9b2667.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureLoad_9b2667(depth2d_array<float, access::sample> tint_symbol_1) {
-  float res = tint_symbol_1.read(uint2(int2(0)), 1, 1);
+  float res = tint_symbol_1.read(uint2(int2(1)), 1, 1);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/9b2667.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/9b2667.wgsl.expected.spvasm
index 7b99003..83123f0 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9b2667.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/9b2667.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 40
+; Bound: 43
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -38,40 +38,43 @@
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
-      %int_0 = OpConstant %int 0
+      %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %23 = OpConstantComposite %v3int %int_0 %int_0 %int_1
+         %23 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_float = OpTypePointer Function %float
-         %26 = OpTypeFunction %v4float
+         %29 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_9b2667 = OpFunction %void None %12
          %15 = OpLabel
         %res = OpVariable %_ptr_Function_float Function %8
          %18 = OpLoad %11 %arg_0
-         %17 = OpImageFetch %v4float %18 %23 Lod %int_1
+         %24 = OpCompositeExtract %int %23 0
+         %25 = OpCompositeExtract %int %23 1
+         %26 = OpCompositeConstruct %v3int %24 %25 %int_1
+         %17 = OpImageFetch %v4float %18 %26 Lod %int_1
          %16 = OpCompositeExtract %float %17 0
                OpStore %res %16
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %26
-         %28 = OpLabel
-         %29 = OpFunctionCall %void %textureLoad_9b2667
+%vertex_main_inner = OpFunction %v4float None %29
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %textureLoad_9b2667
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %31 = OpLabel
-         %32 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %32
+         %34 = OpLabel
+         %35 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %35
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureLoad_9b2667
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %textureLoad_9b2667
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureLoad_9b2667
+         %41 = OpLabel
+         %42 = OpFunctionCall %void %textureLoad_9b2667
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureLoad/9b2667.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/9b2667.wgsl.expected.wgsl
index 16ef986..1cf5e1c 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9b2667.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/9b2667.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_depth_2d_array;
 
 fn textureLoad_9b2667() {
-  var res : f32 = textureLoad(arg_0, vec2<i32>(), 1i, 1i);
+  var res : f32 = textureLoad(arg_0, vec2<i32>(1i), 1i, 1i);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureLoad/9d70e9.wgsl b/test/tint/builtins/gen/literal/textureLoad/9d70e9.wgsl
index e666bb0..0902bff 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9d70e9.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/9d70e9.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureLoad(texture: texture_2d_array<i32>, coords: vec2<i32>, array_index: i32, level: u32) -> vec4<i32>
 fn textureLoad_9d70e9() {
-  var res: vec4<i32> = textureLoad(arg_0, vec2<i32>(), 1i, 1u);
+  var res: vec4<i32> = textureLoad(arg_0, vec2<i32>(1i), 1i, 1u);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureLoad/9d70e9.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/9d70e9.wgsl.expected.dxc.hlsl
index 0e3ab66..0f72bb7 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9d70e9.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/9d70e9.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 void textureLoad_9d70e9() {
-  int4 res = arg_0.Load(int4(0, 0, 1, int(1u)));
+  int4 res = arg_0.Load(int4(int3((1).xx, 1), int(1u)));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/9d70e9.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/9d70e9.wgsl.expected.fxc.hlsl
index 0e3ab66..0f72bb7 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9d70e9.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/9d70e9.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 void textureLoad_9d70e9() {
-  int4 res = arg_0.Load(int4(0, 0, 1, int(1u)));
+  int4 res = arg_0.Load(int4(int3((1).xx, 1), int(1u)));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/9d70e9.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/9d70e9.wgsl.expected.glsl
index 3d13c69..9db5445 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9d70e9.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/9d70e9.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 uniform highp isampler2DArray arg_0_1;
 void textureLoad_9d70e9() {
-  ivec4 res = texelFetch(arg_0_1, ivec3(0, 0, 1), int(1u));
+  ivec4 res = texelFetch(arg_0_1, ivec3(ivec2(1), 1), int(1u));
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 
 uniform highp isampler2DArray arg_0_1;
 void textureLoad_9d70e9() {
-  ivec4 res = texelFetch(arg_0_1, ivec3(0, 0, 1), int(1u));
+  ivec4 res = texelFetch(arg_0_1, ivec3(ivec2(1), 1), int(1u));
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 uniform highp isampler2DArray arg_0_1;
 void textureLoad_9d70e9() {
-  ivec4 res = texelFetch(arg_0_1, ivec3(0, 0, 1), int(1u));
+  ivec4 res = texelFetch(arg_0_1, ivec3(ivec2(1), 1), int(1u));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureLoad/9d70e9.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureLoad/9d70e9.wgsl.expected.msl
index da97933..4571e17 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9d70e9.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/9d70e9.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureLoad_9d70e9(texture2d_array<int, access::sample> tint_symbol_1) {
-  int4 res = tint_symbol_1.read(uint2(int2(0)), 1, 1u);
+  int4 res = tint_symbol_1.read(uint2(int2(1)), 1, 1u);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/9d70e9.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/9d70e9.wgsl.expected.spvasm
index ef88f71..935921c 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9d70e9.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/9d70e9.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 43
+; Bound: 46
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -39,42 +39,45 @@
          %13 = OpTypeFunction %void
       %v4int = OpTypeVector %int 4
       %v3int = OpTypeVector %int 3
-      %int_0 = OpConstant %int 0
+      %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %23 = OpConstantComposite %v3int %int_0 %int_0 %int_1
+         %23 = OpConstantComposite %v2int %int_1 %int_1
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %28 = OpConstantNull %v4int
-         %29 = OpTypeFunction %v4float
+         %31 = OpConstantNull %v4int
+         %32 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_9d70e9 = OpFunction %void None %13
          %16 = OpLabel
-        %res = OpVariable %_ptr_Function_v4int Function %28
+        %res = OpVariable %_ptr_Function_v4int Function %31
          %19 = OpLoad %11 %arg_0
-         %17 = OpImageFetch %v4int %19 %23 Lod %uint_1
+         %24 = OpCompositeExtract %int %23 0
+         %25 = OpCompositeExtract %int %23 1
+         %26 = OpCompositeConstruct %v3int %24 %25 %int_1
+         %17 = OpImageFetch %v4int %19 %26 Lod %uint_1
                OpStore %res %17
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %29
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %textureLoad_9d70e9
+%vertex_main_inner = OpFunction %v4float None %32
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %textureLoad_9d70e9
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %34 = OpLabel
-         %35 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %35
+         %37 = OpLabel
+         %38 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %38
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureLoad_9d70e9
+         %41 = OpLabel
+         %42 = OpFunctionCall %void %textureLoad_9d70e9
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureLoad_9d70e9
+         %44 = OpLabel
+         %45 = OpFunctionCall %void %textureLoad_9d70e9
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureLoad/9d70e9.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/9d70e9.wgsl.expected.wgsl
index d1bbb29..4e40023 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9d70e9.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/9d70e9.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_2d_array<i32>;
 
 fn textureLoad_9d70e9() {
-  var res : vec4<i32> = textureLoad(arg_0, vec2<i32>(), 1i, 1u);
+  var res : vec4<i32> = textureLoad(arg_0, vec2<i32>(1i), 1i, 1u);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureLoad/9ed19e.wgsl b/test/tint/builtins/gen/literal/textureLoad/9ed19e.wgsl
index d14a733..d371de4 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9ed19e.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/9ed19e.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureLoad(texture: texture_depth_2d, coords: vec2<u32>, level: u32) -> f32
 fn textureLoad_9ed19e() {
-  var res: f32 = textureLoad(arg_0, vec2<u32>(), 1u);
+  var res: f32 = textureLoad(arg_0, vec2<u32>(1u), 1u);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureLoad/9ed19e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/9ed19e.wgsl.expected.dxc.hlsl
index 589c875..097458e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9ed19e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/9ed19e.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 Texture2D arg_0 : register(t0, space1);
 
 void textureLoad_9ed19e() {
-  float res = arg_0.Load(uint3(0u, 0u, 1u)).x;
+  float res = arg_0.Load(uint3((1u).xx, 1u)).x;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/9ed19e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/9ed19e.wgsl.expected.fxc.hlsl
index 589c875..097458e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9ed19e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/9ed19e.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 Texture2D arg_0 : register(t0, space1);
 
 void textureLoad_9ed19e() {
-  float res = arg_0.Load(uint3(0u, 0u, 1u)).x;
+  float res = arg_0.Load(uint3((1u).xx, 1u)).x;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/9ed19e.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/9ed19e.wgsl.expected.glsl
index a973885..3e9d565 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9ed19e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/9ed19e.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 uniform highp sampler2D arg_0_1;
 void textureLoad_9ed19e() {
-  float res = texelFetch(arg_0_1, ivec2(uvec2(0u)), int(1u)).x;
+  float res = texelFetch(arg_0_1, ivec2(uvec2(1u)), int(1u)).x;
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 
 uniform highp sampler2D arg_0_1;
 void textureLoad_9ed19e() {
-  float res = texelFetch(arg_0_1, ivec2(uvec2(0u)), int(1u)).x;
+  float res = texelFetch(arg_0_1, ivec2(uvec2(1u)), int(1u)).x;
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 uniform highp sampler2D arg_0_1;
 void textureLoad_9ed19e() {
-  float res = texelFetch(arg_0_1, ivec2(uvec2(0u)), int(1u)).x;
+  float res = texelFetch(arg_0_1, ivec2(uvec2(1u)), int(1u)).x;
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureLoad/9ed19e.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureLoad/9ed19e.wgsl.expected.msl
index 0e15d47..e602994 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9ed19e.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/9ed19e.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureLoad_9ed19e(depth2d<float, access::sample> tint_symbol_1) {
-  float res = tint_symbol_1.read(uint2(uint2(0u)), 1u);
+  float res = tint_symbol_1.read(uint2(uint2(1u)), 1u);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/9ed19e.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/9ed19e.wgsl.expected.spvasm
index c4d6e10..1732f24 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9ed19e.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/9ed19e.wgsl.expected.spvasm
@@ -38,8 +38,8 @@
          %12 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
-         %21 = OpConstantNull %v2uint
      %uint_1 = OpConstant %uint 1
+         %22 = OpConstantComposite %v2uint %uint_1 %uint_1
 %_ptr_Function_float = OpTypePointer Function %float
          %25 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
@@ -47,7 +47,7 @@
          %15 = OpLabel
         %res = OpVariable %_ptr_Function_float Function %8
          %18 = OpLoad %11 %arg_0
-         %17 = OpImageFetch %v4float %18 %21 Lod %uint_1
+         %17 = OpImageFetch %v4float %18 %22 Lod %uint_1
          %16 = OpCompositeExtract %float %17 0
                OpStore %res %16
                OpReturn
diff --git a/test/tint/builtins/gen/literal/textureLoad/9ed19e.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/9ed19e.wgsl.expected.wgsl
index a4f6f1f..616cbee 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9ed19e.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/9ed19e.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_depth_2d;
 
 fn textureLoad_9ed19e() {
-  var res : f32 = textureLoad(arg_0, vec2<u32>(), 1u);
+  var res : f32 = textureLoad(arg_0, vec2<u32>(1u), 1u);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureLoad/9fbfd9.wgsl b/test/tint/builtins/gen/literal/textureLoad/9fbfd9.wgsl
index 1cd4b77..83c3e93 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9fbfd9.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/9fbfd9.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureLoad(texture: texture_2d_array<i32>, coords: vec2<i32>, array_index: u32, level: u32) -> vec4<i32>
 fn textureLoad_9fbfd9() {
-  var res: vec4<i32> = textureLoad(arg_0, vec2<i32>(), 1u, 1u);
+  var res: vec4<i32> = textureLoad(arg_0, vec2<i32>(1i), 1u, 1u);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureLoad/9fbfd9.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/9fbfd9.wgsl.expected.dxc.hlsl
index cc0b741..80664b9 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9fbfd9.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/9fbfd9.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 void textureLoad_9fbfd9() {
-  int4 res = arg_0.Load(int4(0, 0, int(1u), int(1u)));
+  int4 res = arg_0.Load(int4(int3((1).xx, int(1u)), int(1u)));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/9fbfd9.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/9fbfd9.wgsl.expected.fxc.hlsl
index cc0b741..80664b9 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9fbfd9.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/9fbfd9.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 void textureLoad_9fbfd9() {
-  int4 res = arg_0.Load(int4(0, 0, int(1u), int(1u)));
+  int4 res = arg_0.Load(int4(int3((1).xx, int(1u)), int(1u)));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/9fbfd9.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/9fbfd9.wgsl.expected.glsl
index 8cdbcc7..56966fe 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9fbfd9.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/9fbfd9.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 uniform highp isampler2DArray arg_0_1;
 void textureLoad_9fbfd9() {
-  ivec4 res = texelFetch(arg_0_1, ivec3(0, 0, int(1u)), int(1u));
+  ivec4 res = texelFetch(arg_0_1, ivec3(ivec2(1), int(1u)), int(1u));
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 
 uniform highp isampler2DArray arg_0_1;
 void textureLoad_9fbfd9() {
-  ivec4 res = texelFetch(arg_0_1, ivec3(0, 0, int(1u)), int(1u));
+  ivec4 res = texelFetch(arg_0_1, ivec3(ivec2(1), int(1u)), int(1u));
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 uniform highp isampler2DArray arg_0_1;
 void textureLoad_9fbfd9() {
-  ivec4 res = texelFetch(arg_0_1, ivec3(0, 0, int(1u)), int(1u));
+  ivec4 res = texelFetch(arg_0_1, ivec3(ivec2(1), int(1u)), int(1u));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureLoad/9fbfd9.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureLoad/9fbfd9.wgsl.expected.msl
index 4c392b8..3ce02b0 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9fbfd9.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/9fbfd9.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureLoad_9fbfd9(texture2d_array<int, access::sample> tint_symbol_1) {
-  int4 res = tint_symbol_1.read(uint2(int2(0)), 1u, 1u);
+  int4 res = tint_symbol_1.read(uint2(int2(1)), 1u, 1u);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/9fbfd9.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/9fbfd9.wgsl.expected.spvasm
index b76f91a..d7b72c9 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9fbfd9.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/9fbfd9.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 43
+; Bound: 47
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -39,42 +39,46 @@
          %13 = OpTypeFunction %void
       %v4int = OpTypeVector %int 4
       %v3int = OpTypeVector %int 3
-      %int_0 = OpConstant %int 0
+      %v2int = OpTypeVector %int 2
+      %int_1 = OpConstant %int 1
+         %23 = OpConstantComposite %v2int %int_1 %int_1
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %28 = OpConstantNull %v4int
-         %29 = OpTypeFunction %v4float
+         %32 = OpConstantNull %v4int
+         %33 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_9fbfd9 = OpFunction %void None %13
          %16 = OpLabel
-        %res = OpVariable %_ptr_Function_v4int Function %28
+        %res = OpVariable %_ptr_Function_v4int Function %32
          %19 = OpLoad %11 %arg_0
-         %22 = OpBitcast %int %uint_1
-         %25 = OpCompositeConstruct %v3int %int_0 %int_0 %22
-         %17 = OpImageFetch %v4int %19 %25 Lod %uint_1
+         %24 = OpCompositeExtract %int %23 0
+         %25 = OpCompositeExtract %int %23 1
+         %26 = OpBitcast %int %uint_1
+         %29 = OpCompositeConstruct %v3int %24 %25 %26
+         %17 = OpImageFetch %v4int %19 %29 Lod %uint_1
                OpStore %res %17
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %29
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %textureLoad_9fbfd9
+%vertex_main_inner = OpFunction %v4float None %33
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureLoad_9fbfd9
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %34 = OpLabel
-         %35 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %35
+         %38 = OpLabel
+         %39 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %39
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureLoad_9fbfd9
+         %42 = OpLabel
+         %43 = OpFunctionCall %void %textureLoad_9fbfd9
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureLoad_9fbfd9
+         %45 = OpLabel
+         %46 = OpFunctionCall %void %textureLoad_9fbfd9
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureLoad/9fbfd9.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/9fbfd9.wgsl.expected.wgsl
index 6de6866..de62644 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9fbfd9.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/9fbfd9.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_2d_array<i32>;
 
 fn textureLoad_9fbfd9() {
-  var res : vec4<i32> = textureLoad(arg_0, vec2<i32>(), 1u, 1u);
+  var res : vec4<i32> = textureLoad(arg_0, vec2<i32>(1i), 1u, 1u);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureLoad/a24be1.wgsl b/test/tint/builtins/gen/literal/textureLoad/a24be1.wgsl
index 6b197d8..ac921a3 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a24be1.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/a24be1.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureLoad(texture: texture_2d_array<u32>, coords: vec2<u32>, array_index: i32, level: u32) -> vec4<u32>
 fn textureLoad_a24be1() {
-  var res: vec4<u32> = textureLoad(arg_0, vec2<u32>(), 1i, 1u);
+  var res: vec4<u32> = textureLoad(arg_0, vec2<u32>(1u), 1i, 1u);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureLoad/a24be1.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/a24be1.wgsl.expected.dxc.hlsl
index 1570879..bb3431e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a24be1.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/a24be1.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 void textureLoad_a24be1() {
-  uint4 res = arg_0.Load(uint4(0u, 0u, uint(1), 1u));
+  uint4 res = arg_0.Load(uint4(uint3((1u).xx, uint(1)), 1u));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/a24be1.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/a24be1.wgsl.expected.fxc.hlsl
index 1570879..bb3431e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a24be1.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/a24be1.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 void textureLoad_a24be1() {
-  uint4 res = arg_0.Load(uint4(0u, 0u, uint(1), 1u));
+  uint4 res = arg_0.Load(uint4(uint3((1u).xx, uint(1)), 1u));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/a24be1.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/a24be1.wgsl.expected.glsl
index 1e9bb6c..f0ccba1 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a24be1.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/a24be1.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 uniform highp usampler2DArray arg_0_1;
 void textureLoad_a24be1() {
-  uvec4 res = texelFetch(arg_0_1, ivec3(uvec3(0u, 0u, uint(1))), int(1u));
+  uvec4 res = texelFetch(arg_0_1, ivec3(uvec3(uvec2(1u), uint(1))), int(1u));
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 
 uniform highp usampler2DArray arg_0_1;
 void textureLoad_a24be1() {
-  uvec4 res = texelFetch(arg_0_1, ivec3(uvec3(0u, 0u, uint(1))), int(1u));
+  uvec4 res = texelFetch(arg_0_1, ivec3(uvec3(uvec2(1u), uint(1))), int(1u));
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 uniform highp usampler2DArray arg_0_1;
 void textureLoad_a24be1() {
-  uvec4 res = texelFetch(arg_0_1, ivec3(uvec3(0u, 0u, uint(1))), int(1u));
+  uvec4 res = texelFetch(arg_0_1, ivec3(uvec3(uvec2(1u), uint(1))), int(1u));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureLoad/a24be1.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureLoad/a24be1.wgsl.expected.msl
index c025426..d23a41d 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a24be1.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/a24be1.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureLoad_a24be1(texture2d_array<uint, access::sample> tint_symbol_1) {
-  uint4 res = tint_symbol_1.read(uint2(uint2(0u)), 1, 1u);
+  uint4 res = tint_symbol_1.read(uint2(uint2(1u)), 1, 1u);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/a24be1.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/a24be1.wgsl.expected.spvasm
index 4182dea..76b41b4 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a24be1.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/a24be1.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 47
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -39,43 +39,46 @@
          %13 = OpTypeFunction %void
      %v4uint = OpTypeVector %uint 4
      %v3uint = OpTypeVector %uint 3
-     %uint_0 = OpConstant %uint 0
+     %v2uint = OpTypeVector %uint 2
+     %uint_1 = OpConstant %uint 1
+         %23 = OpConstantComposite %v2uint %uint_1 %uint_1
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
-     %uint_1 = OpConstant %uint 1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %29 = OpConstantNull %v4uint
-         %30 = OpTypeFunction %v4float
+         %32 = OpConstantNull %v4uint
+         %33 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_a24be1 = OpFunction %void None %13
          %16 = OpLabel
-        %res = OpVariable %_ptr_Function_v4uint Function %29
+        %res = OpVariable %_ptr_Function_v4uint Function %32
          %19 = OpLoad %11 %arg_0
-         %22 = OpBitcast %uint %int_1
-         %25 = OpCompositeConstruct %v3uint %uint_0 %uint_0 %22
-         %17 = OpImageFetch %v4uint %19 %25 Lod %uint_1
+         %24 = OpCompositeExtract %uint %23 0
+         %25 = OpCompositeExtract %uint %23 1
+         %26 = OpBitcast %uint %int_1
+         %29 = OpCompositeConstruct %v3uint %24 %25 %26
+         %17 = OpImageFetch %v4uint %19 %29 Lod %uint_1
                OpStore %res %17
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %30
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureLoad_a24be1
+%vertex_main_inner = OpFunction %v4float None %33
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureLoad_a24be1
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %36
+         %38 = OpLabel
+         %39 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %39
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureLoad_a24be1
+         %42 = OpLabel
+         %43 = OpFunctionCall %void %textureLoad_a24be1
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureLoad_a24be1
+         %45 = OpLabel
+         %46 = OpFunctionCall %void %textureLoad_a24be1
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureLoad/a24be1.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/a24be1.wgsl.expected.wgsl
index e938574..626e827 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a24be1.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/a24be1.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_2d_array<u32>;
 
 fn textureLoad_a24be1() {
-  var res : vec4<u32> = textureLoad(arg_0, vec2<u32>(), 1i, 1u);
+  var res : vec4<u32> = textureLoad(arg_0, vec2<u32>(1u), 1i, 1u);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureLoad/a583c9.wgsl b/test/tint/builtins/gen/literal/textureLoad/a583c9.wgsl
index 5a7af60..ecf3176 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a583c9.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/a583c9.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureLoad(texture: texture_multisampled_2d<f32>, coords: vec2<i32>, sample_index: i32) -> vec4<f32>
 fn textureLoad_a583c9() {
-  var res: vec4<f32> = textureLoad(arg_0, vec2<i32>(), 1i);
+  var res: vec4<f32> = textureLoad(arg_0, vec2<i32>(1i), 1i);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureLoad/a583c9.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/a583c9.wgsl.expected.dxc.hlsl
index e7bcc42..899ff24 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a583c9.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/a583c9.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DMS<float4> arg_0 : register(t0, space1);
 
 void textureLoad_a583c9() {
-  float4 res = arg_0.Load((0).xx, 1);
+  float4 res = arg_0.Load((1).xx, 1);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/a583c9.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/a583c9.wgsl.expected.fxc.hlsl
index e7bcc42..899ff24 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a583c9.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/a583c9.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DMS<float4> arg_0 : register(t0, space1);
 
 void textureLoad_a583c9() {
-  float4 res = arg_0.Load((0).xx, 1);
+  float4 res = arg_0.Load((1).xx, 1);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/a583c9.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/a583c9.wgsl.expected.glsl
index af89b5f..946647d 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a583c9.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/a583c9.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 uniform highp sampler2DMS arg_0_1;
 void textureLoad_a583c9() {
-  vec4 res = texelFetch(arg_0_1, ivec2(0), 1);
+  vec4 res = texelFetch(arg_0_1, ivec2(1), 1);
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 
 uniform highp sampler2DMS arg_0_1;
 void textureLoad_a583c9() {
-  vec4 res = texelFetch(arg_0_1, ivec2(0), 1);
+  vec4 res = texelFetch(arg_0_1, ivec2(1), 1);
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 uniform highp sampler2DMS arg_0_1;
 void textureLoad_a583c9() {
-  vec4 res = texelFetch(arg_0_1, ivec2(0), 1);
+  vec4 res = texelFetch(arg_0_1, ivec2(1), 1);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureLoad/a583c9.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureLoad/a583c9.wgsl.expected.msl
index 7bcc2d6..a80c05e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a583c9.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/a583c9.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureLoad_a583c9(texture2d_ms<float, access::read> tint_symbol_1) {
-  float4 res = tint_symbol_1.read(uint2(int2(0)), 1);
+  float4 res = tint_symbol_1.read(uint2(int2(1)), 1);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/a583c9.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/a583c9.wgsl.expected.spvasm
index 92defe1..e87546e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a583c9.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/a583c9.wgsl.expected.spvasm
@@ -38,8 +38,8 @@
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
-         %20 = OpConstantNull %v2int
       %int_1 = OpConstant %int 1
+         %21 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
          %24 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
@@ -47,7 +47,7 @@
          %15 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
          %17 = OpLoad %11 %arg_0
-         %16 = OpImageFetch %v4float %17 %20 Sample %int_1
+         %16 = OpImageFetch %v4float %17 %21 Sample %int_1
                OpStore %res %16
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureLoad/a583c9.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/a583c9.wgsl.expected.wgsl
index 4fadbce..14a43a6 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a583c9.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/a583c9.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_multisampled_2d<f32>;
 
 fn textureLoad_a583c9() {
-  var res : vec4<f32> = textureLoad(arg_0, vec2<i32>(), 1i);
+  var res : vec4<f32> = textureLoad(arg_0, vec2<i32>(1i), 1i);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureLoad/a9a9f5.wgsl b/test/tint/builtins/gen/literal/textureLoad/a9a9f5.wgsl
index 8618d3c..200ddd1 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a9a9f5.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/a9a9f5.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureLoad(texture: texture_3d<u32>, coords: vec3<i32>, level: i32) -> vec4<u32>
 fn textureLoad_a9a9f5() {
-  var res: vec4<u32> = textureLoad(arg_0, vec3<i32>(), 1i);
+  var res: vec4<u32> = textureLoad(arg_0, vec3<i32>(1i), 1i);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureLoad/a9a9f5.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/a9a9f5.wgsl.expected.dxc.hlsl
index 9673f0e..49cda15 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a9a9f5.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/a9a9f5.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 Texture3D<uint4> arg_0 : register(t0, space1);
 
 void textureLoad_a9a9f5() {
-  uint4 res = arg_0.Load(int4(0, 0, 0, 1));
+  uint4 res = arg_0.Load(int4((1).xxx, 1));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/a9a9f5.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/a9a9f5.wgsl.expected.fxc.hlsl
index 9673f0e..49cda15 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a9a9f5.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/a9a9f5.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 Texture3D<uint4> arg_0 : register(t0, space1);
 
 void textureLoad_a9a9f5() {
-  uint4 res = arg_0.Load(int4(0, 0, 0, 1));
+  uint4 res = arg_0.Load(int4((1).xxx, 1));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/a9a9f5.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/a9a9f5.wgsl.expected.glsl
index 6749d78..aa54ff3 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a9a9f5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/a9a9f5.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 uniform highp usampler3D arg_0_1;
 void textureLoad_a9a9f5() {
-  uvec4 res = texelFetch(arg_0_1, ivec3(0), 1);
+  uvec4 res = texelFetch(arg_0_1, ivec3(1), 1);
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 
 uniform highp usampler3D arg_0_1;
 void textureLoad_a9a9f5() {
-  uvec4 res = texelFetch(arg_0_1, ivec3(0), 1);
+  uvec4 res = texelFetch(arg_0_1, ivec3(1), 1);
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 uniform highp usampler3D arg_0_1;
 void textureLoad_a9a9f5() {
-  uvec4 res = texelFetch(arg_0_1, ivec3(0), 1);
+  uvec4 res = texelFetch(arg_0_1, ivec3(1), 1);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureLoad/a9a9f5.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureLoad/a9a9f5.wgsl.expected.msl
index 16840f0..f6c9bdb 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a9a9f5.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/a9a9f5.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureLoad_a9a9f5(texture3d<uint, access::sample> tint_symbol_1) {
-  uint4 res = tint_symbol_1.read(uint3(int3(0)), 1);
+  uint4 res = tint_symbol_1.read(uint3(int3(1)), 1);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/a9a9f5.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/a9a9f5.wgsl.expected.spvasm
index c635f15..0c42002 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a9a9f5.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/a9a9f5.wgsl.expected.spvasm
@@ -40,8 +40,8 @@
      %v4uint = OpTypeVector %uint 4
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
-         %22 = OpConstantNull %v3int
       %int_1 = OpConstant %int 1
+         %23 = OpConstantComposite %v3int %int_1 %int_1 %int_1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
          %26 = OpConstantNull %v4uint
          %27 = OpTypeFunction %v4float
@@ -50,7 +50,7 @@
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_v4uint Function %26
          %19 = OpLoad %11 %arg_0
-         %17 = OpImageFetch %v4uint %19 %22 Lod %int_1
+         %17 = OpImageFetch %v4uint %19 %23 Lod %int_1
                OpStore %res %17
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureLoad/a9a9f5.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/a9a9f5.wgsl.expected.wgsl
index 03686f0..f6df350 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a9a9f5.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/a9a9f5.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_3d<u32>;
 
 fn textureLoad_a9a9f5() {
-  var res : vec4<u32> = textureLoad(arg_0, vec3<i32>(), 1i);
+  var res : vec4<u32> = textureLoad(arg_0, vec3<i32>(1i), 1i);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureLoad/b29f71.wgsl b/test/tint/builtins/gen/literal/textureLoad/b29f71.wgsl
index 0430762..3dfd2f1 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b29f71.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/b29f71.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureLoad(texture: texture_2d_array<i32>, coords: vec2<i32>, array_index: u32, level: i32) -> vec4<i32>
 fn textureLoad_b29f71() {
-  var res: vec4<i32> = textureLoad(arg_0, vec2<i32>(), 1u, 1i);
+  var res: vec4<i32> = textureLoad(arg_0, vec2<i32>(1i), 1u, 1i);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureLoad/b29f71.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/b29f71.wgsl.expected.dxc.hlsl
index 6e13a63..3a5de15 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b29f71.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/b29f71.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 void textureLoad_b29f71() {
-  int4 res = arg_0.Load(int4(0, 0, int(1u), 1));
+  int4 res = arg_0.Load(int4(int3((1).xx, int(1u)), 1));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/b29f71.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/b29f71.wgsl.expected.fxc.hlsl
index 6e13a63..3a5de15 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b29f71.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/b29f71.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 void textureLoad_b29f71() {
-  int4 res = arg_0.Load(int4(0, 0, int(1u), 1));
+  int4 res = arg_0.Load(int4(int3((1).xx, int(1u)), 1));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/b29f71.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/b29f71.wgsl.expected.glsl
index 68402f9..f6920c3 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b29f71.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/b29f71.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 uniform highp isampler2DArray arg_0_1;
 void textureLoad_b29f71() {
-  ivec4 res = texelFetch(arg_0_1, ivec3(0, 0, int(1u)), 1);
+  ivec4 res = texelFetch(arg_0_1, ivec3(ivec2(1), int(1u)), 1);
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 
 uniform highp isampler2DArray arg_0_1;
 void textureLoad_b29f71() {
-  ivec4 res = texelFetch(arg_0_1, ivec3(0, 0, int(1u)), 1);
+  ivec4 res = texelFetch(arg_0_1, ivec3(ivec2(1), int(1u)), 1);
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 uniform highp isampler2DArray arg_0_1;
 void textureLoad_b29f71() {
-  ivec4 res = texelFetch(arg_0_1, ivec3(0, 0, int(1u)), 1);
+  ivec4 res = texelFetch(arg_0_1, ivec3(ivec2(1), int(1u)), 1);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureLoad/b29f71.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureLoad/b29f71.wgsl.expected.msl
index 2ee5823..9a49097 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b29f71.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/b29f71.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureLoad_b29f71(texture2d_array<int, access::sample> tint_symbol_1) {
-  int4 res = tint_symbol_1.read(uint2(int2(0)), 1u, 1);
+  int4 res = tint_symbol_1.read(uint2(int2(1)), 1u, 1);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/b29f71.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/b29f71.wgsl.expected.spvasm
index dc7ad1c..8df6b91 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b29f71.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/b29f71.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 47
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -39,43 +39,46 @@
          %13 = OpTypeFunction %void
       %v4int = OpTypeVector %int 4
       %v3int = OpTypeVector %int 3
-      %int_0 = OpConstant %int 0
+      %v2int = OpTypeVector %int 2
+      %int_1 = OpConstant %int 1
+         %23 = OpConstantComposite %v2int %int_1 %int_1
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
-      %int_1 = OpConstant %int 1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %29 = OpConstantNull %v4int
-         %30 = OpTypeFunction %v4float
+         %32 = OpConstantNull %v4int
+         %33 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_b29f71 = OpFunction %void None %13
          %16 = OpLabel
-        %res = OpVariable %_ptr_Function_v4int Function %29
+        %res = OpVariable %_ptr_Function_v4int Function %32
          %19 = OpLoad %11 %arg_0
-         %22 = OpBitcast %int %uint_1
-         %25 = OpCompositeConstruct %v3int %int_0 %int_0 %22
-         %17 = OpImageFetch %v4int %19 %25 Lod %int_1
+         %24 = OpCompositeExtract %int %23 0
+         %25 = OpCompositeExtract %int %23 1
+         %26 = OpBitcast %int %uint_1
+         %29 = OpCompositeConstruct %v3int %24 %25 %26
+         %17 = OpImageFetch %v4int %19 %29 Lod %int_1
                OpStore %res %17
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %30
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureLoad_b29f71
+%vertex_main_inner = OpFunction %v4float None %33
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureLoad_b29f71
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %36
+         %38 = OpLabel
+         %39 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %39
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureLoad_b29f71
+         %42 = OpLabel
+         %43 = OpFunctionCall %void %textureLoad_b29f71
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureLoad_b29f71
+         %45 = OpLabel
+         %46 = OpFunctionCall %void %textureLoad_b29f71
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureLoad/b29f71.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/b29f71.wgsl.expected.wgsl
index ff9172d..c83bd68 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b29f71.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/b29f71.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_2d_array<i32>;
 
 fn textureLoad_b29f71() {
-  var res : vec4<i32> = textureLoad(arg_0, vec2<i32>(), 1u, 1i);
+  var res : vec4<i32> = textureLoad(arg_0, vec2<i32>(1i), 1u, 1i);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureLoad/b6ba5d.wgsl b/test/tint/builtins/gen/literal/textureLoad/b6ba5d.wgsl
index 3839395..68177d1 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b6ba5d.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/b6ba5d.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureLoad(texture: texture_depth_2d_array, coords: vec2<u32>, array_index: i32, level: i32) -> f32
 fn textureLoad_b6ba5d() {
-  var res: f32 = textureLoad(arg_0, vec2<u32>(), 1i, 1i);
+  var res: f32 = textureLoad(arg_0, vec2<u32>(1u), 1i, 1i);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureLoad/b6ba5d.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/b6ba5d.wgsl.expected.dxc.hlsl
index e01eb1d..3631e3b 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b6ba5d.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/b6ba5d.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DArray arg_0 : register(t0, space1);
 
 void textureLoad_b6ba5d() {
-  float res = arg_0.Load(uint4(0u, 0u, uint(1), uint(1))).x;
+  float res = arg_0.Load(uint4(uint3((1u).xx, uint(1)), uint(1))).x;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/b6ba5d.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/b6ba5d.wgsl.expected.fxc.hlsl
index e01eb1d..3631e3b 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b6ba5d.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/b6ba5d.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DArray arg_0 : register(t0, space1);
 
 void textureLoad_b6ba5d() {
-  float res = arg_0.Load(uint4(0u, 0u, uint(1), uint(1))).x;
+  float res = arg_0.Load(uint4(uint3((1u).xx, uint(1)), uint(1))).x;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/b6ba5d.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/b6ba5d.wgsl.expected.glsl
index aa48aab..183125f 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b6ba5d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/b6ba5d.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 uniform highp sampler2DArray arg_0_1;
 void textureLoad_b6ba5d() {
-  float res = texelFetch(arg_0_1, ivec3(uvec3(0u, 0u, uint(1))), 1).x;
+  float res = texelFetch(arg_0_1, ivec3(uvec3(uvec2(1u), uint(1))), 1).x;
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 
 uniform highp sampler2DArray arg_0_1;
 void textureLoad_b6ba5d() {
-  float res = texelFetch(arg_0_1, ivec3(uvec3(0u, 0u, uint(1))), 1).x;
+  float res = texelFetch(arg_0_1, ivec3(uvec3(uvec2(1u), uint(1))), 1).x;
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 uniform highp sampler2DArray arg_0_1;
 void textureLoad_b6ba5d() {
-  float res = texelFetch(arg_0_1, ivec3(uvec3(0u, 0u, uint(1))), 1).x;
+  float res = texelFetch(arg_0_1, ivec3(uvec3(uvec2(1u), uint(1))), 1).x;
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureLoad/b6ba5d.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureLoad/b6ba5d.wgsl.expected.msl
index e2c7340..965aea7 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b6ba5d.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/b6ba5d.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureLoad_b6ba5d(depth2d_array<float, access::sample> tint_symbol_1) {
-  float res = tint_symbol_1.read(uint2(uint2(0u)), 1, 1);
+  float res = tint_symbol_1.read(uint2(uint2(1u)), 1, 1);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/b6ba5d.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/b6ba5d.wgsl.expected.spvasm
index d0063b9..f93a99a 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b6ba5d.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/b6ba5d.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 42
+; Bound: 46
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -38,42 +38,46 @@
          %12 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
-     %uint_0 = OpConstant %uint 0
+     %v2uint = OpTypeVector %uint 2
+     %uint_1 = OpConstant %uint 1
+         %23 = OpConstantComposite %v2uint %uint_1 %uint_1
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_float = OpTypePointer Function %float
-         %28 = OpTypeFunction %v4float
+         %32 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_b6ba5d = OpFunction %void None %12
          %15 = OpLabel
         %res = OpVariable %_ptr_Function_float Function %8
          %18 = OpLoad %11 %arg_0
-         %22 = OpBitcast %uint %int_1
-         %25 = OpCompositeConstruct %v3uint %uint_0 %uint_0 %22
-         %17 = OpImageFetch %v4float %18 %25 Lod %int_1
+         %24 = OpCompositeExtract %uint %23 0
+         %25 = OpCompositeExtract %uint %23 1
+         %26 = OpBitcast %uint %int_1
+         %29 = OpCompositeConstruct %v3uint %24 %25 %26
+         %17 = OpImageFetch %v4float %18 %29 Lod %int_1
          %16 = OpCompositeExtract %float %17 0
                OpStore %res %16
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %28
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %textureLoad_b6ba5d
+%vertex_main_inner = OpFunction %v4float None %32
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %textureLoad_b6ba5d
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %33 = OpLabel
-         %34 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %34
+         %37 = OpLabel
+         %38 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %38
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureLoad_b6ba5d
+         %41 = OpLabel
+         %42 = OpFunctionCall %void %textureLoad_b6ba5d
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureLoad_b6ba5d
+         %44 = OpLabel
+         %45 = OpFunctionCall %void %textureLoad_b6ba5d
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureLoad/b6ba5d.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/b6ba5d.wgsl.expected.wgsl
index 03eb225..bb45604 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b6ba5d.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/b6ba5d.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_depth_2d_array;
 
 fn textureLoad_b6ba5d() {
-  var res : f32 = textureLoad(arg_0, vec2<u32>(), 1i, 1i);
+  var res : f32 = textureLoad(arg_0, vec2<u32>(1u), 1i, 1i);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureLoad/b73f6b.wgsl b/test/tint/builtins/gen/literal/textureLoad/b73f6b.wgsl
index 23f48da..7b360ac 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b73f6b.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/b73f6b.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureLoad(texture: texture_2d<u32>, coords: vec2<u32>, level: i32) -> vec4<u32>
 fn textureLoad_b73f6b() {
-  var res: vec4<u32> = textureLoad(arg_0, vec2<u32>(), 1i);
+  var res: vec4<u32> = textureLoad(arg_0, vec2<u32>(1u), 1i);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureLoad/b73f6b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/b73f6b.wgsl.expected.dxc.hlsl
index 9d694aa..40bf70c 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b73f6b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/b73f6b.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 Texture2D<uint4> arg_0 : register(t0, space1);
 
 void textureLoad_b73f6b() {
-  uint4 res = arg_0.Load(uint3(0u, 0u, uint(1)));
+  uint4 res = arg_0.Load(uint3((1u).xx, uint(1)));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/b73f6b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/b73f6b.wgsl.expected.fxc.hlsl
index 9d694aa..40bf70c 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b73f6b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/b73f6b.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 Texture2D<uint4> arg_0 : register(t0, space1);
 
 void textureLoad_b73f6b() {
-  uint4 res = arg_0.Load(uint3(0u, 0u, uint(1)));
+  uint4 res = arg_0.Load(uint3((1u).xx, uint(1)));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/b73f6b.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/b73f6b.wgsl.expected.glsl
index b9f8285..9129c98 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b73f6b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/b73f6b.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 uniform highp usampler2D arg_0_1;
 void textureLoad_b73f6b() {
-  uvec4 res = texelFetch(arg_0_1, ivec2(uvec2(0u)), 1);
+  uvec4 res = texelFetch(arg_0_1, ivec2(uvec2(1u)), 1);
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 
 uniform highp usampler2D arg_0_1;
 void textureLoad_b73f6b() {
-  uvec4 res = texelFetch(arg_0_1, ivec2(uvec2(0u)), 1);
+  uvec4 res = texelFetch(arg_0_1, ivec2(uvec2(1u)), 1);
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 uniform highp usampler2D arg_0_1;
 void textureLoad_b73f6b() {
-  uvec4 res = texelFetch(arg_0_1, ivec2(uvec2(0u)), 1);
+  uvec4 res = texelFetch(arg_0_1, ivec2(uvec2(1u)), 1);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureLoad/b73f6b.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureLoad/b73f6b.wgsl.expected.msl
index 2515e7f..fb6414e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b73f6b.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/b73f6b.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureLoad_b73f6b(texture2d<uint, access::sample> tint_symbol_1) {
-  uint4 res = tint_symbol_1.read(uint2(uint2(0u)), 1);
+  uint4 res = tint_symbol_1.read(uint2(uint2(1u)), 1);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/b73f6b.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/b73f6b.wgsl.expected.spvasm
index 991603f..c258b1f 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b73f6b.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/b73f6b.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 41
+; Bound: 42
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -39,40 +39,41 @@
          %13 = OpTypeFunction %void
      %v4uint = OpTypeVector %uint 4
      %v2uint = OpTypeVector %uint 2
-         %21 = OpConstantNull %v2uint
+     %uint_1 = OpConstant %uint 1
+         %22 = OpConstantComposite %v2uint %uint_1 %uint_1
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %26 = OpConstantNull %v4uint
-         %27 = OpTypeFunction %v4float
+         %27 = OpConstantNull %v4uint
+         %28 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_b73f6b = OpFunction %void None %13
          %16 = OpLabel
-        %res = OpVariable %_ptr_Function_v4uint Function %26
+        %res = OpVariable %_ptr_Function_v4uint Function %27
          %19 = OpLoad %11 %arg_0
-         %17 = OpImageFetch %v4uint %19 %21 Lod %int_1
+         %17 = OpImageFetch %v4uint %19 %22 Lod %int_1
                OpStore %res %17
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %27
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %textureLoad_b73f6b
+%vertex_main_inner = OpFunction %v4float None %28
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %textureLoad_b73f6b
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %32 = OpLabel
-         %33 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %33
+         %33 = OpLabel
+         %34 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %34
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureLoad_b73f6b
+         %37 = OpLabel
+         %38 = OpFunctionCall %void %textureLoad_b73f6b
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureLoad_b73f6b
+         %40 = OpLabel
+         %41 = OpFunctionCall %void %textureLoad_b73f6b
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureLoad/b73f6b.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/b73f6b.wgsl.expected.wgsl
index 074690f..fbfde8a 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b73f6b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/b73f6b.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_2d<u32>;
 
 fn textureLoad_b73f6b() {
-  var res : vec4<u32> = textureLoad(arg_0, vec2<u32>(), 1i);
+  var res : vec4<u32> = textureLoad(arg_0, vec2<u32>(1u), 1i);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureLoad/b75d4a.wgsl b/test/tint/builtins/gen/literal/textureLoad/b75d4a.wgsl
index 6a6a232..7c1b11c 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b75d4a.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/b75d4a.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureLoad(texture: texture_multisampled_2d<f32>, coords: vec2<i32>, sample_index: u32) -> vec4<f32>
 fn textureLoad_b75d4a() {
-  var res: vec4<f32> = textureLoad(arg_0, vec2<i32>(), 1u);
+  var res: vec4<f32> = textureLoad(arg_0, vec2<i32>(1i), 1u);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureLoad/b75d4a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/b75d4a.wgsl.expected.dxc.hlsl
index 1b77601..8d6034b 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b75d4a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/b75d4a.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DMS<float4> arg_0 : register(t0, space1);
 
 void textureLoad_b75d4a() {
-  float4 res = arg_0.Load((0).xx, 1u);
+  float4 res = arg_0.Load((1).xx, 1u);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/b75d4a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/b75d4a.wgsl.expected.fxc.hlsl
index 1b77601..8d6034b 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b75d4a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/b75d4a.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DMS<float4> arg_0 : register(t0, space1);
 
 void textureLoad_b75d4a() {
-  float4 res = arg_0.Load((0).xx, 1u);
+  float4 res = arg_0.Load((1).xx, 1u);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/b75d4a.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/b75d4a.wgsl.expected.glsl
index 29de15d..c73b745 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b75d4a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/b75d4a.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 uniform highp sampler2DMS arg_0_1;
 void textureLoad_b75d4a() {
-  vec4 res = texelFetch(arg_0_1, ivec2(0), int(1u));
+  vec4 res = texelFetch(arg_0_1, ivec2(1), int(1u));
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 
 uniform highp sampler2DMS arg_0_1;
 void textureLoad_b75d4a() {
-  vec4 res = texelFetch(arg_0_1, ivec2(0), int(1u));
+  vec4 res = texelFetch(arg_0_1, ivec2(1), int(1u));
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 uniform highp sampler2DMS arg_0_1;
 void textureLoad_b75d4a() {
-  vec4 res = texelFetch(arg_0_1, ivec2(0), int(1u));
+  vec4 res = texelFetch(arg_0_1, ivec2(1), int(1u));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureLoad/b75d4a.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureLoad/b75d4a.wgsl.expected.msl
index cb1c017..9e6c646 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b75d4a.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/b75d4a.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureLoad_b75d4a(texture2d_ms<float, access::read> tint_symbol_1) {
-  float4 res = tint_symbol_1.read(uint2(int2(0)), 1u);
+  float4 res = tint_symbol_1.read(uint2(int2(1)), 1u);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/b75d4a.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/b75d4a.wgsl.expected.spvasm
index 56442d6..2c00abc 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b75d4a.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/b75d4a.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 39
+; Bound: 40
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -38,39 +38,40 @@
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
-         %20 = OpConstantNull %v2int
+      %int_1 = OpConstant %int 1
+         %21 = OpConstantComposite %v2int %int_1 %int_1
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %25 = OpTypeFunction %v4float
+         %26 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_b75d4a = OpFunction %void None %12
          %15 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
          %17 = OpLoad %11 %arg_0
-         %16 = OpImageFetch %v4float %17 %20 Sample %uint_1
+         %16 = OpImageFetch %v4float %17 %21 Sample %uint_1
                OpStore %res %16
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %25
-         %27 = OpLabel
-         %28 = OpFunctionCall %void %textureLoad_b75d4a
+%vertex_main_inner = OpFunction %v4float None %26
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %textureLoad_b75d4a
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %30 = OpLabel
-         %31 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %31
+         %31 = OpLabel
+         %32 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %32
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureLoad_b75d4a
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureLoad_b75d4a
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureLoad_b75d4a
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %textureLoad_b75d4a
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureLoad/b75d4a.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/b75d4a.wgsl.expected.wgsl
index 9a592a6..e0ac92c 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b75d4a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/b75d4a.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_multisampled_2d<f32>;
 
 fn textureLoad_b75d4a() {
-  var res : vec4<f32> = textureLoad(arg_0, vec2<i32>(), 1u);
+  var res : vec4<f32> = textureLoad(arg_0, vec2<i32>(1i), 1u);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureLoad/bcbb3c.wgsl b/test/tint/builtins/gen/literal/textureLoad/bcbb3c.wgsl
index ae600b1..72bc65a 100644
--- a/test/tint/builtins/gen/literal/textureLoad/bcbb3c.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/bcbb3c.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureLoad(texture: texture_3d<f32>, coords: vec3<u32>, level: i32) -> vec4<f32>
 fn textureLoad_bcbb3c() {
-  var res: vec4<f32> = textureLoad(arg_0, vec3<u32>(), 1i);
+  var res: vec4<f32> = textureLoad(arg_0, vec3<u32>(1u), 1i);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureLoad/bcbb3c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/bcbb3c.wgsl.expected.dxc.hlsl
index 8a88e0f..d1270b1 100644
--- a/test/tint/builtins/gen/literal/textureLoad/bcbb3c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/bcbb3c.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 Texture3D<float4> arg_0 : register(t0, space1);
 
 void textureLoad_bcbb3c() {
-  float4 res = arg_0.Load(uint4(0u, 0u, 0u, uint(1)));
+  float4 res = arg_0.Load(uint4((1u).xxx, uint(1)));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/bcbb3c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/bcbb3c.wgsl.expected.fxc.hlsl
index 8a88e0f..d1270b1 100644
--- a/test/tint/builtins/gen/literal/textureLoad/bcbb3c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/bcbb3c.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 Texture3D<float4> arg_0 : register(t0, space1);
 
 void textureLoad_bcbb3c() {
-  float4 res = arg_0.Load(uint4(0u, 0u, 0u, uint(1)));
+  float4 res = arg_0.Load(uint4((1u).xxx, uint(1)));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/bcbb3c.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/bcbb3c.wgsl.expected.glsl
index 008c403..12d1532 100644
--- a/test/tint/builtins/gen/literal/textureLoad/bcbb3c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/bcbb3c.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 uniform highp sampler3D arg_0_1;
 void textureLoad_bcbb3c() {
-  vec4 res = texelFetch(arg_0_1, ivec3(uvec3(0u)), 1);
+  vec4 res = texelFetch(arg_0_1, ivec3(uvec3(1u)), 1);
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 
 uniform highp sampler3D arg_0_1;
 void textureLoad_bcbb3c() {
-  vec4 res = texelFetch(arg_0_1, ivec3(uvec3(0u)), 1);
+  vec4 res = texelFetch(arg_0_1, ivec3(uvec3(1u)), 1);
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 uniform highp sampler3D arg_0_1;
 void textureLoad_bcbb3c() {
-  vec4 res = texelFetch(arg_0_1, ivec3(uvec3(0u)), 1);
+  vec4 res = texelFetch(arg_0_1, ivec3(uvec3(1u)), 1);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureLoad/bcbb3c.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureLoad/bcbb3c.wgsl.expected.msl
index c22a9b9..bb6243e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/bcbb3c.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/bcbb3c.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureLoad_bcbb3c(texture3d<float, access::sample> tint_symbol_1) {
-  float4 res = tint_symbol_1.read(uint3(uint3(0u)), 1);
+  float4 res = tint_symbol_1.read(uint3(uint3(1u)), 1);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/bcbb3c.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/bcbb3c.wgsl.expected.spvasm
index 637018c..f73237b 100644
--- a/test/tint/builtins/gen/literal/textureLoad/bcbb3c.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/bcbb3c.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 39
+; Bound: 40
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -38,39 +38,40 @@
          %12 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
-         %20 = OpConstantNull %v3uint
+     %uint_1 = OpConstant %uint 1
+         %21 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %25 = OpTypeFunction %v4float
+         %26 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_bcbb3c = OpFunction %void None %12
          %15 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
          %17 = OpLoad %11 %arg_0
-         %16 = OpImageFetch %v4float %17 %20 Lod %int_1
+         %16 = OpImageFetch %v4float %17 %21 Lod %int_1
                OpStore %res %16
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %25
-         %27 = OpLabel
-         %28 = OpFunctionCall %void %textureLoad_bcbb3c
+%vertex_main_inner = OpFunction %v4float None %26
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %textureLoad_bcbb3c
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %30 = OpLabel
-         %31 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %31
+         %31 = OpLabel
+         %32 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %32
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureLoad_bcbb3c
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureLoad_bcbb3c
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureLoad_bcbb3c
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %textureLoad_bcbb3c
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureLoad/bcbb3c.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/bcbb3c.wgsl.expected.wgsl
index a968218..6760114 100644
--- a/test/tint/builtins/gen/literal/textureLoad/bcbb3c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/bcbb3c.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_3d<f32>;
 
 fn textureLoad_bcbb3c() {
-  var res : vec4<f32> = textureLoad(arg_0, vec3<u32>(), 1i);
+  var res : vec4<f32> = textureLoad(arg_0, vec3<u32>(1u), 1i);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureLoad/c16e00.wgsl b/test/tint/builtins/gen/literal/textureLoad/c16e00.wgsl
index 75e8289..c653ca5 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c16e00.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/c16e00.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureLoad(texture: texture_depth_2d_array, coords: vec2<i32>, array_index: u32, level: i32) -> f32
 fn textureLoad_c16e00() {
-  var res: f32 = textureLoad(arg_0, vec2<i32>(), 1u, 1i);
+  var res: f32 = textureLoad(arg_0, vec2<i32>(1i), 1u, 1i);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureLoad/c16e00.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/c16e00.wgsl.expected.dxc.hlsl
index 322a9ec..2cc06f6 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c16e00.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/c16e00.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DArray arg_0 : register(t0, space1);
 
 void textureLoad_c16e00() {
-  float res = arg_0.Load(int4(0, 0, int(1u), 1)).x;
+  float res = arg_0.Load(int4(int3((1).xx, int(1u)), 1)).x;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/c16e00.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/c16e00.wgsl.expected.fxc.hlsl
index 322a9ec..2cc06f6 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c16e00.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/c16e00.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DArray arg_0 : register(t0, space1);
 
 void textureLoad_c16e00() {
-  float res = arg_0.Load(int4(0, 0, int(1u), 1)).x;
+  float res = arg_0.Load(int4(int3((1).xx, int(1u)), 1)).x;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/c16e00.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/c16e00.wgsl.expected.glsl
index 62fbdb9..3871cbc 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c16e00.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/c16e00.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 uniform highp sampler2DArray arg_0_1;
 void textureLoad_c16e00() {
-  float res = texelFetch(arg_0_1, ivec3(0, 0, int(1u)), 1).x;
+  float res = texelFetch(arg_0_1, ivec3(ivec2(1), int(1u)), 1).x;
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 
 uniform highp sampler2DArray arg_0_1;
 void textureLoad_c16e00() {
-  float res = texelFetch(arg_0_1, ivec3(0, 0, int(1u)), 1).x;
+  float res = texelFetch(arg_0_1, ivec3(ivec2(1), int(1u)), 1).x;
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 uniform highp sampler2DArray arg_0_1;
 void textureLoad_c16e00() {
-  float res = texelFetch(arg_0_1, ivec3(0, 0, int(1u)), 1).x;
+  float res = texelFetch(arg_0_1, ivec3(ivec2(1), int(1u)), 1).x;
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureLoad/c16e00.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureLoad/c16e00.wgsl.expected.msl
index 8159c0f..0172359 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c16e00.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/c16e00.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureLoad_c16e00(depth2d_array<float, access::sample> tint_symbol_1) {
-  float res = tint_symbol_1.read(uint2(int2(0)), 1u, 1);
+  float res = tint_symbol_1.read(uint2(int2(1)), 1u, 1);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/c16e00.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/c16e00.wgsl.expected.spvasm
index 64906d9..a26dedc 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c16e00.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/c16e00.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 43
+; Bound: 46
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -38,43 +38,46 @@
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
-      %int_0 = OpConstant %int 0
+      %v2int = OpTypeVector %int 2
+      %int_1 = OpConstant %int 1
+         %23 = OpConstantComposite %v2int %int_1 %int_1
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
-      %int_1 = OpConstant %int 1
 %_ptr_Function_float = OpTypePointer Function %float
-         %29 = OpTypeFunction %v4float
+         %32 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_c16e00 = OpFunction %void None %12
          %15 = OpLabel
         %res = OpVariable %_ptr_Function_float Function %8
          %18 = OpLoad %11 %arg_0
-         %22 = OpBitcast %int %uint_1
-         %25 = OpCompositeConstruct %v3int %int_0 %int_0 %22
-         %17 = OpImageFetch %v4float %18 %25 Lod %int_1
+         %24 = OpCompositeExtract %int %23 0
+         %25 = OpCompositeExtract %int %23 1
+         %26 = OpBitcast %int %uint_1
+         %29 = OpCompositeConstruct %v3int %24 %25 %26
+         %17 = OpImageFetch %v4float %18 %29 Lod %int_1
          %16 = OpCompositeExtract %float %17 0
                OpStore %res %16
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %29
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %textureLoad_c16e00
+%vertex_main_inner = OpFunction %v4float None %32
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %textureLoad_c16e00
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %34 = OpLabel
-         %35 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %35
+         %37 = OpLabel
+         %38 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %38
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureLoad_c16e00
+         %41 = OpLabel
+         %42 = OpFunctionCall %void %textureLoad_c16e00
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureLoad_c16e00
+         %44 = OpLabel
+         %45 = OpFunctionCall %void %textureLoad_c16e00
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureLoad/c16e00.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/c16e00.wgsl.expected.wgsl
index 6a7cf77..a2b063b 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c16e00.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/c16e00.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_depth_2d_array;
 
 fn textureLoad_c16e00() {
-  var res : f32 = textureLoad(arg_0, vec2<i32>(), 1u, 1i);
+  var res : f32 = textureLoad(arg_0, vec2<i32>(1i), 1u, 1i);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureLoad/c2a480.wgsl b/test/tint/builtins/gen/literal/textureLoad/c2a480.wgsl
index 5b373ac..a112e75 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c2a480.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/c2a480.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureLoad(texture: texture_2d<i32>, coords: vec2<i32>, level: i32) -> vec4<i32>
 fn textureLoad_c2a480() {
-  var res: vec4<i32> = textureLoad(arg_0, vec2<i32>(), 1i);
+  var res: vec4<i32> = textureLoad(arg_0, vec2<i32>(1i), 1i);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureLoad/c2a480.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/c2a480.wgsl.expected.dxc.hlsl
index 4d4bde4..12025bf 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c2a480.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/c2a480.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 Texture2D<int4> arg_0 : register(t0, space1);
 
 void textureLoad_c2a480() {
-  int4 res = arg_0.Load(int3(0, 0, 1));
+  int4 res = arg_0.Load(int3((1).xx, 1));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/c2a480.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/c2a480.wgsl.expected.fxc.hlsl
index 4d4bde4..12025bf 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c2a480.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/c2a480.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 Texture2D<int4> arg_0 : register(t0, space1);
 
 void textureLoad_c2a480() {
-  int4 res = arg_0.Load(int3(0, 0, 1));
+  int4 res = arg_0.Load(int3((1).xx, 1));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/c2a480.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/c2a480.wgsl.expected.glsl
index 3e70878..cb7e8df 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c2a480.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/c2a480.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 uniform highp isampler2D arg_0_1;
 void textureLoad_c2a480() {
-  ivec4 res = texelFetch(arg_0_1, ivec2(0), 1);
+  ivec4 res = texelFetch(arg_0_1, ivec2(1), 1);
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 
 uniform highp isampler2D arg_0_1;
 void textureLoad_c2a480() {
-  ivec4 res = texelFetch(arg_0_1, ivec2(0), 1);
+  ivec4 res = texelFetch(arg_0_1, ivec2(1), 1);
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 uniform highp isampler2D arg_0_1;
 void textureLoad_c2a480() {
-  ivec4 res = texelFetch(arg_0_1, ivec2(0), 1);
+  ivec4 res = texelFetch(arg_0_1, ivec2(1), 1);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureLoad/c2a480.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureLoad/c2a480.wgsl.expected.msl
index 0088df6..ca4ac4e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c2a480.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/c2a480.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureLoad_c2a480(texture2d<int, access::sample> tint_symbol_1) {
-  int4 res = tint_symbol_1.read(uint2(int2(0)), 1);
+  int4 res = tint_symbol_1.read(uint2(int2(1)), 1);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/c2a480.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/c2a480.wgsl.expected.spvasm
index 36ee782..c5f9924 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c2a480.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/c2a480.wgsl.expected.spvasm
@@ -39,8 +39,8 @@
          %13 = OpTypeFunction %void
       %v4int = OpTypeVector %int 4
       %v2int = OpTypeVector %int 2
-         %21 = OpConstantNull %v2int
       %int_1 = OpConstant %int 1
+         %22 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
          %25 = OpConstantNull %v4int
          %26 = OpTypeFunction %v4float
@@ -49,7 +49,7 @@
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_v4int Function %25
          %19 = OpLoad %11 %arg_0
-         %17 = OpImageFetch %v4int %19 %21 Lod %int_1
+         %17 = OpImageFetch %v4int %19 %22 Lod %int_1
                OpStore %res %17
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureLoad/c2a480.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/c2a480.wgsl.expected.wgsl
index 3f1aefe..3e94689 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c2a480.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/c2a480.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_2d<i32>;
 
 fn textureLoad_c2a480() {
-  var res : vec4<i32> = textureLoad(arg_0, vec2<i32>(), 1i);
+  var res : vec4<i32> = textureLoad(arg_0, vec2<i32>(1i), 1i);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureLoad/c378ee.wgsl b/test/tint/builtins/gen/literal/textureLoad/c378ee.wgsl
index 618ca49..a1cc531 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c378ee.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/c378ee.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureLoad(texture: texture_multisampled_2d<u32>, coords: vec2<i32>, sample_index: i32) -> vec4<u32>
 fn textureLoad_c378ee() {
-  var res: vec4<u32> = textureLoad(arg_0, vec2<i32>(), 1i);
+  var res: vec4<u32> = textureLoad(arg_0, vec2<i32>(1i), 1i);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureLoad/c378ee.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/c378ee.wgsl.expected.dxc.hlsl
index fc7d1b6..1d70b91 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c378ee.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/c378ee.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DMS<uint4> arg_0 : register(t0, space1);
 
 void textureLoad_c378ee() {
-  uint4 res = arg_0.Load((0).xx, 1);
+  uint4 res = arg_0.Load((1).xx, 1);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/c378ee.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/c378ee.wgsl.expected.fxc.hlsl
index fc7d1b6..1d70b91 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c378ee.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/c378ee.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DMS<uint4> arg_0 : register(t0, space1);
 
 void textureLoad_c378ee() {
-  uint4 res = arg_0.Load((0).xx, 1);
+  uint4 res = arg_0.Load((1).xx, 1);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/c378ee.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/c378ee.wgsl.expected.glsl
index cdb2ca0..7578fc0 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c378ee.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/c378ee.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 uniform highp usampler2DMS arg_0_1;
 void textureLoad_c378ee() {
-  uvec4 res = texelFetch(arg_0_1, ivec2(0), 1);
+  uvec4 res = texelFetch(arg_0_1, ivec2(1), 1);
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 
 uniform highp usampler2DMS arg_0_1;
 void textureLoad_c378ee() {
-  uvec4 res = texelFetch(arg_0_1, ivec2(0), 1);
+  uvec4 res = texelFetch(arg_0_1, ivec2(1), 1);
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 uniform highp usampler2DMS arg_0_1;
 void textureLoad_c378ee() {
-  uvec4 res = texelFetch(arg_0_1, ivec2(0), 1);
+  uvec4 res = texelFetch(arg_0_1, ivec2(1), 1);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureLoad/c378ee.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureLoad/c378ee.wgsl.expected.msl
index efdc2c2..5d9e980 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c378ee.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/c378ee.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureLoad_c378ee(texture2d_ms<uint, access::read> tint_symbol_1) {
-  uint4 res = tint_symbol_1.read(uint2(int2(0)), 1);
+  uint4 res = tint_symbol_1.read(uint2(int2(1)), 1);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/c378ee.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/c378ee.wgsl.expected.spvasm
index 7190f78..67eaa27 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c378ee.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/c378ee.wgsl.expected.spvasm
@@ -40,8 +40,8 @@
      %v4uint = OpTypeVector %uint 4
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
-         %22 = OpConstantNull %v2int
       %int_1 = OpConstant %int 1
+         %23 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
          %26 = OpConstantNull %v4uint
          %27 = OpTypeFunction %v4float
@@ -50,7 +50,7 @@
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_v4uint Function %26
          %19 = OpLoad %11 %arg_0
-         %17 = OpImageFetch %v4uint %19 %22 Sample %int_1
+         %17 = OpImageFetch %v4uint %19 %23 Sample %int_1
                OpStore %res %17
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureLoad/c378ee.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/c378ee.wgsl.expected.wgsl
index 2f84fbc..3a19878 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c378ee.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/c378ee.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_multisampled_2d<u32>;
 
 fn textureLoad_c378ee() {
-  var res : vec4<u32> = textureLoad(arg_0, vec2<i32>(), 1i);
+  var res : vec4<u32> = textureLoad(arg_0, vec2<i32>(1i), 1i);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureLoad/cad5f2.wgsl b/test/tint/builtins/gen/literal/textureLoad/cad5f2.wgsl
index 25ac317..21d4579 100644
--- a/test/tint/builtins/gen/literal/textureLoad/cad5f2.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/cad5f2.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureLoad(texture: texture_multisampled_2d<u32>, coords: vec2<i32>, sample_index: u32) -> vec4<u32>
 fn textureLoad_cad5f2() {
-  var res: vec4<u32> = textureLoad(arg_0, vec2<i32>(), 1u);
+  var res: vec4<u32> = textureLoad(arg_0, vec2<i32>(1i), 1u);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureLoad/cad5f2.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/cad5f2.wgsl.expected.dxc.hlsl
index 0f93cc8..35323e9 100644
--- a/test/tint/builtins/gen/literal/textureLoad/cad5f2.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/cad5f2.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DMS<uint4> arg_0 : register(t0, space1);
 
 void textureLoad_cad5f2() {
-  uint4 res = arg_0.Load((0).xx, 1u);
+  uint4 res = arg_0.Load((1).xx, 1u);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/cad5f2.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/cad5f2.wgsl.expected.fxc.hlsl
index 0f93cc8..35323e9 100644
--- a/test/tint/builtins/gen/literal/textureLoad/cad5f2.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/cad5f2.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DMS<uint4> arg_0 : register(t0, space1);
 
 void textureLoad_cad5f2() {
-  uint4 res = arg_0.Load((0).xx, 1u);
+  uint4 res = arg_0.Load((1).xx, 1u);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/cad5f2.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/cad5f2.wgsl.expected.glsl
index 9e82ddf..212df3b 100644
--- a/test/tint/builtins/gen/literal/textureLoad/cad5f2.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/cad5f2.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 uniform highp usampler2DMS arg_0_1;
 void textureLoad_cad5f2() {
-  uvec4 res = texelFetch(arg_0_1, ivec2(0), int(1u));
+  uvec4 res = texelFetch(arg_0_1, ivec2(1), int(1u));
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 
 uniform highp usampler2DMS arg_0_1;
 void textureLoad_cad5f2() {
-  uvec4 res = texelFetch(arg_0_1, ivec2(0), int(1u));
+  uvec4 res = texelFetch(arg_0_1, ivec2(1), int(1u));
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 uniform highp usampler2DMS arg_0_1;
 void textureLoad_cad5f2() {
-  uvec4 res = texelFetch(arg_0_1, ivec2(0), int(1u));
+  uvec4 res = texelFetch(arg_0_1, ivec2(1), int(1u));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureLoad/cad5f2.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureLoad/cad5f2.wgsl.expected.msl
index 8cc1c1b..d2d03a0 100644
--- a/test/tint/builtins/gen/literal/textureLoad/cad5f2.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/cad5f2.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureLoad_cad5f2(texture2d_ms<uint, access::read> tint_symbol_1) {
-  uint4 res = tint_symbol_1.read(uint2(int2(0)), 1u);
+  uint4 res = tint_symbol_1.read(uint2(int2(1)), 1u);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/cad5f2.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/cad5f2.wgsl.expected.spvasm
index 7097846..770f50b 100644
--- a/test/tint/builtins/gen/literal/textureLoad/cad5f2.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/cad5f2.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 41
+; Bound: 42
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -40,39 +40,40 @@
      %v4uint = OpTypeVector %uint 4
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
-         %22 = OpConstantNull %v2int
+      %int_1 = OpConstant %int 1
+         %23 = OpConstantComposite %v2int %int_1 %int_1
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %26 = OpConstantNull %v4uint
-         %27 = OpTypeFunction %v4float
+         %27 = OpConstantNull %v4uint
+         %28 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_cad5f2 = OpFunction %void None %13
          %16 = OpLabel
-        %res = OpVariable %_ptr_Function_v4uint Function %26
+        %res = OpVariable %_ptr_Function_v4uint Function %27
          %19 = OpLoad %11 %arg_0
-         %17 = OpImageFetch %v4uint %19 %22 Sample %uint_1
+         %17 = OpImageFetch %v4uint %19 %23 Sample %uint_1
                OpStore %res %17
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %27
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %textureLoad_cad5f2
+%vertex_main_inner = OpFunction %v4float None %28
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %textureLoad_cad5f2
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %32 = OpLabel
-         %33 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %33
+         %33 = OpLabel
+         %34 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %34
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureLoad_cad5f2
+         %37 = OpLabel
+         %38 = OpFunctionCall %void %textureLoad_cad5f2
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureLoad_cad5f2
+         %40 = OpLabel
+         %41 = OpFunctionCall %void %textureLoad_cad5f2
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureLoad/cad5f2.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/cad5f2.wgsl.expected.wgsl
index 1420f61..c1ff4e1 100644
--- a/test/tint/builtins/gen/literal/textureLoad/cad5f2.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/cad5f2.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_multisampled_2d<u32>;
 
 fn textureLoad_cad5f2() {
-  var res : vec4<u32> = textureLoad(arg_0, vec2<i32>(), 1u);
+  var res : vec4<u32> = textureLoad(arg_0, vec2<i32>(1i), 1u);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureLoad/cb57c2.wgsl b/test/tint/builtins/gen/literal/textureLoad/cb57c2.wgsl
index 89a146b..b2a49a0 100644
--- a/test/tint/builtins/gen/literal/textureLoad/cb57c2.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/cb57c2.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureLoad(texture: texture_depth_2d_array, coords: vec2<u32>, array_index: u32, level: i32) -> f32
 fn textureLoad_cb57c2() {
-  var res: f32 = textureLoad(arg_0, vec2<u32>(), 1u, 1i);
+  var res: f32 = textureLoad(arg_0, vec2<u32>(1u), 1u, 1i);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureLoad/cb57c2.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/cb57c2.wgsl.expected.dxc.hlsl
index 79442d0..17a6eb8 100644
--- a/test/tint/builtins/gen/literal/textureLoad/cb57c2.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/cb57c2.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DArray arg_0 : register(t0, space1);
 
 void textureLoad_cb57c2() {
-  float res = arg_0.Load(uint4(0u, 0u, 1u, uint(1))).x;
+  float res = arg_0.Load(uint4(uint3((1u).xx, 1u), uint(1))).x;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/cb57c2.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/cb57c2.wgsl.expected.fxc.hlsl
index 79442d0..17a6eb8 100644
--- a/test/tint/builtins/gen/literal/textureLoad/cb57c2.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/cb57c2.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DArray arg_0 : register(t0, space1);
 
 void textureLoad_cb57c2() {
-  float res = arg_0.Load(uint4(0u, 0u, 1u, uint(1))).x;
+  float res = arg_0.Load(uint4(uint3((1u).xx, 1u), uint(1))).x;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/cb57c2.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/cb57c2.wgsl.expected.glsl
index f71215d..1b6e405 100644
--- a/test/tint/builtins/gen/literal/textureLoad/cb57c2.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/cb57c2.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 uniform highp sampler2DArray arg_0_1;
 void textureLoad_cb57c2() {
-  float res = texelFetch(arg_0_1, ivec3(uvec3(0u, 0u, 1u)), 1).x;
+  float res = texelFetch(arg_0_1, ivec3(uvec3(uvec2(1u), 1u)), 1).x;
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 
 uniform highp sampler2DArray arg_0_1;
 void textureLoad_cb57c2() {
-  float res = texelFetch(arg_0_1, ivec3(uvec3(0u, 0u, 1u)), 1).x;
+  float res = texelFetch(arg_0_1, ivec3(uvec3(uvec2(1u), 1u)), 1).x;
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 uniform highp sampler2DArray arg_0_1;
 void textureLoad_cb57c2() {
-  float res = texelFetch(arg_0_1, ivec3(uvec3(0u, 0u, 1u)), 1).x;
+  float res = texelFetch(arg_0_1, ivec3(uvec3(uvec2(1u), 1u)), 1).x;
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureLoad/cb57c2.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureLoad/cb57c2.wgsl.expected.msl
index 893d800..9b10a8a 100644
--- a/test/tint/builtins/gen/literal/textureLoad/cb57c2.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/cb57c2.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureLoad_cb57c2(depth2d_array<float, access::sample> tint_symbol_1) {
-  float res = tint_symbol_1.read(uint2(uint2(0u)), 1u, 1);
+  float res = tint_symbol_1.read(uint2(uint2(1u)), 1u, 1);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/cb57c2.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/cb57c2.wgsl.expected.spvasm
index 68a2176..aabd47f 100644
--- a/test/tint/builtins/gen/literal/textureLoad/cb57c2.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/cb57c2.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 42
+; Bound: 45
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -38,42 +38,45 @@
          %12 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
-     %uint_0 = OpConstant %uint 0
+     %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %23 = OpConstantComposite %v3uint %uint_0 %uint_0 %uint_1
+         %23 = OpConstantComposite %v2uint %uint_1 %uint_1
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_float = OpTypePointer Function %float
-         %28 = OpTypeFunction %v4float
+         %31 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_cb57c2 = OpFunction %void None %12
          %15 = OpLabel
         %res = OpVariable %_ptr_Function_float Function %8
          %18 = OpLoad %11 %arg_0
-         %17 = OpImageFetch %v4float %18 %23 Lod %int_1
+         %24 = OpCompositeExtract %uint %23 0
+         %25 = OpCompositeExtract %uint %23 1
+         %26 = OpCompositeConstruct %v3uint %24 %25 %uint_1
+         %17 = OpImageFetch %v4float %18 %26 Lod %int_1
          %16 = OpCompositeExtract %float %17 0
                OpStore %res %16
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %28
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %textureLoad_cb57c2
+%vertex_main_inner = OpFunction %v4float None %31
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureLoad_cb57c2
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %33 = OpLabel
-         %34 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %34
+         %36 = OpLabel
+         %37 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %37
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureLoad_cb57c2
+         %40 = OpLabel
+         %41 = OpFunctionCall %void %textureLoad_cb57c2
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureLoad_cb57c2
+         %43 = OpLabel
+         %44 = OpFunctionCall %void %textureLoad_cb57c2
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureLoad/cb57c2.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/cb57c2.wgsl.expected.wgsl
index 3cd1cd3..8aa33ed 100644
--- a/test/tint/builtins/gen/literal/textureLoad/cb57c2.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/cb57c2.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_depth_2d_array;
 
 fn textureLoad_cb57c2() {
-  var res : f32 = textureLoad(arg_0, vec2<u32>(), 1u, 1i);
+  var res : f32 = textureLoad(arg_0, vec2<u32>(1u), 1u, 1i);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureLoad/e35f72.wgsl b/test/tint/builtins/gen/literal/textureLoad/e35f72.wgsl
index 68abe1f..785f37c 100644
--- a/test/tint/builtins/gen/literal/textureLoad/e35f72.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/e35f72.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureLoad(texture: texture_3d<i32>, coords: vec3<i32>, level: u32) -> vec4<i32>
 fn textureLoad_e35f72() {
-  var res: vec4<i32> = textureLoad(arg_0, vec3<i32>(), 1u);
+  var res: vec4<i32> = textureLoad(arg_0, vec3<i32>(1i), 1u);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureLoad/e35f72.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/e35f72.wgsl.expected.dxc.hlsl
index de8d7fe..314a8cd 100644
--- a/test/tint/builtins/gen/literal/textureLoad/e35f72.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/e35f72.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 Texture3D<int4> arg_0 : register(t0, space1);
 
 void textureLoad_e35f72() {
-  int4 res = arg_0.Load(int4(0, 0, 0, int(1u)));
+  int4 res = arg_0.Load(int4((1).xxx, int(1u)));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/e35f72.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/e35f72.wgsl.expected.fxc.hlsl
index de8d7fe..314a8cd 100644
--- a/test/tint/builtins/gen/literal/textureLoad/e35f72.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/e35f72.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 Texture3D<int4> arg_0 : register(t0, space1);
 
 void textureLoad_e35f72() {
-  int4 res = arg_0.Load(int4(0, 0, 0, int(1u)));
+  int4 res = arg_0.Load(int4((1).xxx, int(1u)));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/e35f72.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/e35f72.wgsl.expected.glsl
index 0117c1a..c76b195 100644
--- a/test/tint/builtins/gen/literal/textureLoad/e35f72.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/e35f72.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 uniform highp isampler3D arg_0_1;
 void textureLoad_e35f72() {
-  ivec4 res = texelFetch(arg_0_1, ivec3(0), int(1u));
+  ivec4 res = texelFetch(arg_0_1, ivec3(1), int(1u));
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 
 uniform highp isampler3D arg_0_1;
 void textureLoad_e35f72() {
-  ivec4 res = texelFetch(arg_0_1, ivec3(0), int(1u));
+  ivec4 res = texelFetch(arg_0_1, ivec3(1), int(1u));
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 uniform highp isampler3D arg_0_1;
 void textureLoad_e35f72() {
-  ivec4 res = texelFetch(arg_0_1, ivec3(0), int(1u));
+  ivec4 res = texelFetch(arg_0_1, ivec3(1), int(1u));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureLoad/e35f72.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureLoad/e35f72.wgsl.expected.msl
index d26d358..8d90d9d 100644
--- a/test/tint/builtins/gen/literal/textureLoad/e35f72.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/e35f72.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureLoad_e35f72(texture3d<int, access::sample> tint_symbol_1) {
-  int4 res = tint_symbol_1.read(uint3(int3(0)), 1u);
+  int4 res = tint_symbol_1.read(uint3(int3(1)), 1u);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/e35f72.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/e35f72.wgsl.expected.spvasm
index 69920c5..d2e44af 100644
--- a/test/tint/builtins/gen/literal/textureLoad/e35f72.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/e35f72.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 41
+; Bound: 42
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -39,40 +39,41 @@
          %13 = OpTypeFunction %void
       %v4int = OpTypeVector %int 4
       %v3int = OpTypeVector %int 3
-         %21 = OpConstantNull %v3int
+      %int_1 = OpConstant %int 1
+         %22 = OpConstantComposite %v3int %int_1 %int_1 %int_1
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %26 = OpConstantNull %v4int
-         %27 = OpTypeFunction %v4float
+         %27 = OpConstantNull %v4int
+         %28 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_e35f72 = OpFunction %void None %13
          %16 = OpLabel
-        %res = OpVariable %_ptr_Function_v4int Function %26
+        %res = OpVariable %_ptr_Function_v4int Function %27
          %19 = OpLoad %11 %arg_0
-         %17 = OpImageFetch %v4int %19 %21 Lod %uint_1
+         %17 = OpImageFetch %v4int %19 %22 Lod %uint_1
                OpStore %res %17
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %27
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %textureLoad_e35f72
+%vertex_main_inner = OpFunction %v4float None %28
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %textureLoad_e35f72
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %32 = OpLabel
-         %33 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %33
+         %33 = OpLabel
+         %34 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %34
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureLoad_e35f72
+         %37 = OpLabel
+         %38 = OpFunctionCall %void %textureLoad_e35f72
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureLoad_e35f72
+         %40 = OpLabel
+         %41 = OpFunctionCall %void %textureLoad_e35f72
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureLoad/e35f72.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/e35f72.wgsl.expected.wgsl
index 2e8197d..9f98211 100644
--- a/test/tint/builtins/gen/literal/textureLoad/e35f72.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/e35f72.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_3d<i32>;
 
 fn textureLoad_e35f72() {
-  var res : vec4<i32> = textureLoad(arg_0, vec3<i32>(), 1u);
+  var res : vec4<i32> = textureLoad(arg_0, vec3<i32>(1i), 1u);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureLoad/e3d2cc.wgsl b/test/tint/builtins/gen/literal/textureLoad/e3d2cc.wgsl
index 1869efe..5f75cfc 100644
--- a/test/tint/builtins/gen/literal/textureLoad/e3d2cc.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/e3d2cc.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureLoad(texture: texture_multisampled_2d<i32>, coords: vec2<i32>, sample_index: i32) -> vec4<i32>
 fn textureLoad_e3d2cc() {
-  var res: vec4<i32> = textureLoad(arg_0, vec2<i32>(), 1i);
+  var res: vec4<i32> = textureLoad(arg_0, vec2<i32>(1i), 1i);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureLoad/e3d2cc.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/e3d2cc.wgsl.expected.dxc.hlsl
index 6d097d4..e6d2e54 100644
--- a/test/tint/builtins/gen/literal/textureLoad/e3d2cc.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/e3d2cc.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DMS<int4> arg_0 : register(t0, space1);
 
 void textureLoad_e3d2cc() {
-  int4 res = arg_0.Load((0).xx, 1);
+  int4 res = arg_0.Load((1).xx, 1);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/e3d2cc.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/e3d2cc.wgsl.expected.fxc.hlsl
index 6d097d4..e6d2e54 100644
--- a/test/tint/builtins/gen/literal/textureLoad/e3d2cc.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/e3d2cc.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DMS<int4> arg_0 : register(t0, space1);
 
 void textureLoad_e3d2cc() {
-  int4 res = arg_0.Load((0).xx, 1);
+  int4 res = arg_0.Load((1).xx, 1);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/e3d2cc.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/e3d2cc.wgsl.expected.glsl
index 7dc1ade..0a3f39b 100644
--- a/test/tint/builtins/gen/literal/textureLoad/e3d2cc.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/e3d2cc.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 uniform highp isampler2DMS arg_0_1;
 void textureLoad_e3d2cc() {
-  ivec4 res = texelFetch(arg_0_1, ivec2(0), 1);
+  ivec4 res = texelFetch(arg_0_1, ivec2(1), 1);
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 
 uniform highp isampler2DMS arg_0_1;
 void textureLoad_e3d2cc() {
-  ivec4 res = texelFetch(arg_0_1, ivec2(0), 1);
+  ivec4 res = texelFetch(arg_0_1, ivec2(1), 1);
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 uniform highp isampler2DMS arg_0_1;
 void textureLoad_e3d2cc() {
-  ivec4 res = texelFetch(arg_0_1, ivec2(0), 1);
+  ivec4 res = texelFetch(arg_0_1, ivec2(1), 1);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureLoad/e3d2cc.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureLoad/e3d2cc.wgsl.expected.msl
index 024057e..219ced8 100644
--- a/test/tint/builtins/gen/literal/textureLoad/e3d2cc.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/e3d2cc.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureLoad_e3d2cc(texture2d_ms<int, access::read> tint_symbol_1) {
-  int4 res = tint_symbol_1.read(uint2(int2(0)), 1);
+  int4 res = tint_symbol_1.read(uint2(int2(1)), 1);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/e3d2cc.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/e3d2cc.wgsl.expected.spvasm
index 87d98ce..b675216 100644
--- a/test/tint/builtins/gen/literal/textureLoad/e3d2cc.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/e3d2cc.wgsl.expected.spvasm
@@ -39,8 +39,8 @@
          %13 = OpTypeFunction %void
       %v4int = OpTypeVector %int 4
       %v2int = OpTypeVector %int 2
-         %21 = OpConstantNull %v2int
       %int_1 = OpConstant %int 1
+         %22 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
          %25 = OpConstantNull %v4int
          %26 = OpTypeFunction %v4float
@@ -49,7 +49,7 @@
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_v4int Function %25
          %19 = OpLoad %11 %arg_0
-         %17 = OpImageFetch %v4int %19 %21 Sample %int_1
+         %17 = OpImageFetch %v4int %19 %22 Sample %int_1
                OpStore %res %17
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureLoad/e3d2cc.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/e3d2cc.wgsl.expected.wgsl
index d41a2bb..bcca84f 100644
--- a/test/tint/builtins/gen/literal/textureLoad/e3d2cc.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/e3d2cc.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_multisampled_2d<i32>;
 
 fn textureLoad_e3d2cc() {
-  var res : vec4<i32> = textureLoad(arg_0, vec2<i32>(), 1i);
+  var res : vec4<i32> = textureLoad(arg_0, vec2<i32>(1i), 1i);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureLoad/ebfb92.wgsl b/test/tint/builtins/gen/literal/textureLoad/ebfb92.wgsl
index 4ee85a0..a148c96 100644
--- a/test/tint/builtins/gen/literal/textureLoad/ebfb92.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/ebfb92.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureLoad(texture: texture_2d<u32>, coords: vec2<i32>, level: u32) -> vec4<u32>
 fn textureLoad_ebfb92() {
-  var res: vec4<u32> = textureLoad(arg_0, vec2<i32>(), 1u);
+  var res: vec4<u32> = textureLoad(arg_0, vec2<i32>(1i), 1u);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureLoad/ebfb92.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/ebfb92.wgsl.expected.dxc.hlsl
index ef22fda..b5068f8 100644
--- a/test/tint/builtins/gen/literal/textureLoad/ebfb92.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/ebfb92.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 Texture2D<uint4> arg_0 : register(t0, space1);
 
 void textureLoad_ebfb92() {
-  uint4 res = arg_0.Load(int3(0, 0, int(1u)));
+  uint4 res = arg_0.Load(int3((1).xx, int(1u)));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/ebfb92.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/ebfb92.wgsl.expected.fxc.hlsl
index ef22fda..b5068f8 100644
--- a/test/tint/builtins/gen/literal/textureLoad/ebfb92.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/ebfb92.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 Texture2D<uint4> arg_0 : register(t0, space1);
 
 void textureLoad_ebfb92() {
-  uint4 res = arg_0.Load(int3(0, 0, int(1u)));
+  uint4 res = arg_0.Load(int3((1).xx, int(1u)));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/ebfb92.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/ebfb92.wgsl.expected.glsl
index 6176e8d..3304740 100644
--- a/test/tint/builtins/gen/literal/textureLoad/ebfb92.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/ebfb92.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 uniform highp usampler2D arg_0_1;
 void textureLoad_ebfb92() {
-  uvec4 res = texelFetch(arg_0_1, ivec2(0), int(1u));
+  uvec4 res = texelFetch(arg_0_1, ivec2(1), int(1u));
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 
 uniform highp usampler2D arg_0_1;
 void textureLoad_ebfb92() {
-  uvec4 res = texelFetch(arg_0_1, ivec2(0), int(1u));
+  uvec4 res = texelFetch(arg_0_1, ivec2(1), int(1u));
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 uniform highp usampler2D arg_0_1;
 void textureLoad_ebfb92() {
-  uvec4 res = texelFetch(arg_0_1, ivec2(0), int(1u));
+  uvec4 res = texelFetch(arg_0_1, ivec2(1), int(1u));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureLoad/ebfb92.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureLoad/ebfb92.wgsl.expected.msl
index 1310118..150e05f 100644
--- a/test/tint/builtins/gen/literal/textureLoad/ebfb92.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/ebfb92.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureLoad_ebfb92(texture2d<uint, access::sample> tint_symbol_1) {
-  uint4 res = tint_symbol_1.read(uint2(int2(0)), 1u);
+  uint4 res = tint_symbol_1.read(uint2(int2(1)), 1u);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/ebfb92.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/ebfb92.wgsl.expected.spvasm
index 4e03907..2d2b7c1 100644
--- a/test/tint/builtins/gen/literal/textureLoad/ebfb92.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/ebfb92.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 41
+; Bound: 42
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -40,39 +40,40 @@
      %v4uint = OpTypeVector %uint 4
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
-         %22 = OpConstantNull %v2int
+      %int_1 = OpConstant %int 1
+         %23 = OpConstantComposite %v2int %int_1 %int_1
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %26 = OpConstantNull %v4uint
-         %27 = OpTypeFunction %v4float
+         %27 = OpConstantNull %v4uint
+         %28 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_ebfb92 = OpFunction %void None %13
          %16 = OpLabel
-        %res = OpVariable %_ptr_Function_v4uint Function %26
+        %res = OpVariable %_ptr_Function_v4uint Function %27
          %19 = OpLoad %11 %arg_0
-         %17 = OpImageFetch %v4uint %19 %22 Lod %uint_1
+         %17 = OpImageFetch %v4uint %19 %23 Lod %uint_1
                OpStore %res %17
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %27
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %textureLoad_ebfb92
+%vertex_main_inner = OpFunction %v4float None %28
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %textureLoad_ebfb92
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %32 = OpLabel
-         %33 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %33
+         %33 = OpLabel
+         %34 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %34
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureLoad_ebfb92
+         %37 = OpLabel
+         %38 = OpFunctionCall %void %textureLoad_ebfb92
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureLoad_ebfb92
+         %40 = OpLabel
+         %41 = OpFunctionCall %void %textureLoad_ebfb92
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureLoad/ebfb92.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/ebfb92.wgsl.expected.wgsl
index c2dd172..ba62a2d 100644
--- a/test/tint/builtins/gen/literal/textureLoad/ebfb92.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/ebfb92.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_2d<u32>;
 
 fn textureLoad_ebfb92() {
-  var res : vec4<u32> = textureLoad(arg_0, vec2<i32>(), 1u);
+  var res : vec4<u32> = textureLoad(arg_0, vec2<i32>(1i), 1u);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureLoad/f0abad.wgsl b/test/tint/builtins/gen/literal/textureLoad/f0abad.wgsl
index 96f2bca..c40b098 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f0abad.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f0abad.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureLoad(texture: texture_multisampled_2d<f32>, coords: vec2<u32>, sample_index: i32) -> vec4<f32>
 fn textureLoad_f0abad() {
-  var res: vec4<f32> = textureLoad(arg_0, vec2<u32>(), 1i);
+  var res: vec4<f32> = textureLoad(arg_0, vec2<u32>(1u), 1i);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureLoad/f0abad.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/f0abad.wgsl.expected.dxc.hlsl
index 0612336..87dd503 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f0abad.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f0abad.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DMS<float4> arg_0 : register(t0, space1);
 
 void textureLoad_f0abad() {
-  float4 res = arg_0.Load((0u).xx, 1);
+  float4 res = arg_0.Load((1u).xx, 1);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/f0abad.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/f0abad.wgsl.expected.fxc.hlsl
index 0612336..87dd503 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f0abad.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f0abad.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DMS<float4> arg_0 : register(t0, space1);
 
 void textureLoad_f0abad() {
-  float4 res = arg_0.Load((0u).xx, 1);
+  float4 res = arg_0.Load((1u).xx, 1);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/f0abad.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/f0abad.wgsl.expected.glsl
index d5d441c..e3f38e3 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f0abad.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f0abad.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 uniform highp sampler2DMS arg_0_1;
 void textureLoad_f0abad() {
-  vec4 res = texelFetch(arg_0_1, ivec2(uvec2(0u)), 1);
+  vec4 res = texelFetch(arg_0_1, ivec2(uvec2(1u)), 1);
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 
 uniform highp sampler2DMS arg_0_1;
 void textureLoad_f0abad() {
-  vec4 res = texelFetch(arg_0_1, ivec2(uvec2(0u)), 1);
+  vec4 res = texelFetch(arg_0_1, ivec2(uvec2(1u)), 1);
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 uniform highp sampler2DMS arg_0_1;
 void textureLoad_f0abad() {
-  vec4 res = texelFetch(arg_0_1, ivec2(uvec2(0u)), 1);
+  vec4 res = texelFetch(arg_0_1, ivec2(uvec2(1u)), 1);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureLoad/f0abad.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureLoad/f0abad.wgsl.expected.msl
index 75cdfbf..cb62355 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f0abad.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/f0abad.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureLoad_f0abad(texture2d_ms<float, access::read> tint_symbol_1) {
-  float4 res = tint_symbol_1.read(uint2(uint2(0u)), 1);
+  float4 res = tint_symbol_1.read(uint2(uint2(1u)), 1);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/f0abad.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/f0abad.wgsl.expected.spvasm
index e60070d..2ee3f4d 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f0abad.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/f0abad.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 39
+; Bound: 40
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -38,39 +38,40 @@
          %12 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
-         %20 = OpConstantNull %v2uint
+     %uint_1 = OpConstant %uint 1
+         %21 = OpConstantComposite %v2uint %uint_1 %uint_1
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %25 = OpTypeFunction %v4float
+         %26 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_f0abad = OpFunction %void None %12
          %15 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
          %17 = OpLoad %11 %arg_0
-         %16 = OpImageFetch %v4float %17 %20 Sample %int_1
+         %16 = OpImageFetch %v4float %17 %21 Sample %int_1
                OpStore %res %16
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %25
-         %27 = OpLabel
-         %28 = OpFunctionCall %void %textureLoad_f0abad
+%vertex_main_inner = OpFunction %v4float None %26
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %textureLoad_f0abad
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %30 = OpLabel
-         %31 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %31
+         %31 = OpLabel
+         %32 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %32
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureLoad_f0abad
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureLoad_f0abad
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureLoad_f0abad
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %textureLoad_f0abad
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureLoad/f0abad.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/f0abad.wgsl.expected.wgsl
index f422c02..39a6743 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f0abad.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f0abad.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_multisampled_2d<f32>;
 
 fn textureLoad_f0abad() {
-  var res : vec4<f32> = textureLoad(arg_0, vec2<u32>(), 1i);
+  var res : vec4<f32> = textureLoad(arg_0, vec2<u32>(1u), 1i);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureLoad/f348d9.wgsl b/test/tint/builtins/gen/literal/textureLoad/f348d9.wgsl
index 105dab7..8ded634 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f348d9.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f348d9.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureLoad(texture: texture_2d_array<f32>, coords: vec2<u32>, array_index: u32, level: i32) -> vec4<f32>
 fn textureLoad_f348d9() {
-  var res: vec4<f32> = textureLoad(arg_0, vec2<u32>(), 1u, 1i);
+  var res: vec4<f32> = textureLoad(arg_0, vec2<u32>(1u), 1u, 1i);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureLoad/f348d9.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/f348d9.wgsl.expected.dxc.hlsl
index cc20744..3ed4094 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f348d9.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f348d9.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 void textureLoad_f348d9() {
-  float4 res = arg_0.Load(uint4(0u, 0u, 1u, uint(1)));
+  float4 res = arg_0.Load(uint4(uint3((1u).xx, 1u), uint(1)));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/f348d9.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/f348d9.wgsl.expected.fxc.hlsl
index cc20744..3ed4094 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f348d9.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f348d9.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 void textureLoad_f348d9() {
-  float4 res = arg_0.Load(uint4(0u, 0u, 1u, uint(1)));
+  float4 res = arg_0.Load(uint4(uint3((1u).xx, 1u), uint(1)));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/f348d9.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/f348d9.wgsl.expected.glsl
index 9302278..8ee158a 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f348d9.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f348d9.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 uniform highp sampler2DArray arg_0_1;
 void textureLoad_f348d9() {
-  vec4 res = texelFetch(arg_0_1, ivec3(uvec3(0u, 0u, 1u)), 1);
+  vec4 res = texelFetch(arg_0_1, ivec3(uvec3(uvec2(1u), 1u)), 1);
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 
 uniform highp sampler2DArray arg_0_1;
 void textureLoad_f348d9() {
-  vec4 res = texelFetch(arg_0_1, ivec3(uvec3(0u, 0u, 1u)), 1);
+  vec4 res = texelFetch(arg_0_1, ivec3(uvec3(uvec2(1u), 1u)), 1);
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 uniform highp sampler2DArray arg_0_1;
 void textureLoad_f348d9() {
-  vec4 res = texelFetch(arg_0_1, ivec3(uvec3(0u, 0u, 1u)), 1);
+  vec4 res = texelFetch(arg_0_1, ivec3(uvec3(uvec2(1u), 1u)), 1);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureLoad/f348d9.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureLoad/f348d9.wgsl.expected.msl
index 65f4407..fc4b059 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f348d9.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/f348d9.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureLoad_f348d9(texture2d_array<float, access::sample> tint_symbol_1) {
-  float4 res = tint_symbol_1.read(uint2(uint2(0u)), 1u, 1);
+  float4 res = tint_symbol_1.read(uint2(uint2(1u)), 1u, 1);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/f348d9.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/f348d9.wgsl.expected.spvasm
index 0c617c7..dda8c12 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f348d9.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/f348d9.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 41
+; Bound: 44
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -38,41 +38,44 @@
          %12 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
-     %uint_0 = OpConstant %uint 0
+     %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %22 = OpConstantComposite %v3uint %uint_0 %uint_0 %uint_1
+         %22 = OpConstantComposite %v2uint %uint_1 %uint_1
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %27 = OpTypeFunction %v4float
+         %30 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_f348d9 = OpFunction %void None %12
          %15 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
          %17 = OpLoad %11 %arg_0
-         %16 = OpImageFetch %v4float %17 %22 Lod %int_1
+         %23 = OpCompositeExtract %uint %22 0
+         %24 = OpCompositeExtract %uint %22 1
+         %25 = OpCompositeConstruct %v3uint %23 %24 %uint_1
+         %16 = OpImageFetch %v4float %17 %25 Lod %int_1
                OpStore %res %16
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %27
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %textureLoad_f348d9
+%vertex_main_inner = OpFunction %v4float None %30
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %textureLoad_f348d9
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %32 = OpLabel
-         %33 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %33
+         %35 = OpLabel
+         %36 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %36
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureLoad_f348d9
+         %39 = OpLabel
+         %40 = OpFunctionCall %void %textureLoad_f348d9
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureLoad_f348d9
+         %42 = OpLabel
+         %43 = OpFunctionCall %void %textureLoad_f348d9
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureLoad/f348d9.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/f348d9.wgsl.expected.wgsl
index 7b599f1..e36ca47 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f348d9.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f348d9.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_2d_array<f32>;
 
 fn textureLoad_f348d9() {
-  var res : vec4<f32> = textureLoad(arg_0, vec2<u32>(), 1u, 1i);
+  var res : vec4<f32> = textureLoad(arg_0, vec2<u32>(1u), 1u, 1i);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureLoad/f85291.wgsl b/test/tint/builtins/gen/literal/textureLoad/f85291.wgsl
index fcd1f60..deaef28 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f85291.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f85291.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureLoad(texture: texture_2d<i32>, coords: vec2<i32>, level: u32) -> vec4<i32>
 fn textureLoad_f85291() {
-  var res: vec4<i32> = textureLoad(arg_0, vec2<i32>(), 1u);
+  var res: vec4<i32> = textureLoad(arg_0, vec2<i32>(1i), 1u);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureLoad/f85291.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/f85291.wgsl.expected.dxc.hlsl
index 2f163b0..f506fc9 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f85291.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f85291.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 Texture2D<int4> arg_0 : register(t0, space1);
 
 void textureLoad_f85291() {
-  int4 res = arg_0.Load(int3(0, 0, int(1u)));
+  int4 res = arg_0.Load(int3((1).xx, int(1u)));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/f85291.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/f85291.wgsl.expected.fxc.hlsl
index 2f163b0..f506fc9 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f85291.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f85291.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 Texture2D<int4> arg_0 : register(t0, space1);
 
 void textureLoad_f85291() {
-  int4 res = arg_0.Load(int3(0, 0, int(1u)));
+  int4 res = arg_0.Load(int3((1).xx, int(1u)));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/f85291.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/f85291.wgsl.expected.glsl
index 8051539..7aaf2b6 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f85291.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f85291.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 uniform highp isampler2D arg_0_1;
 void textureLoad_f85291() {
-  ivec4 res = texelFetch(arg_0_1, ivec2(0), int(1u));
+  ivec4 res = texelFetch(arg_0_1, ivec2(1), int(1u));
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 
 uniform highp isampler2D arg_0_1;
 void textureLoad_f85291() {
-  ivec4 res = texelFetch(arg_0_1, ivec2(0), int(1u));
+  ivec4 res = texelFetch(arg_0_1, ivec2(1), int(1u));
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 uniform highp isampler2D arg_0_1;
 void textureLoad_f85291() {
-  ivec4 res = texelFetch(arg_0_1, ivec2(0), int(1u));
+  ivec4 res = texelFetch(arg_0_1, ivec2(1), int(1u));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureLoad/f85291.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureLoad/f85291.wgsl.expected.msl
index 5c0fefd..4a0ede2 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f85291.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/f85291.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureLoad_f85291(texture2d<int, access::sample> tint_symbol_1) {
-  int4 res = tint_symbol_1.read(uint2(int2(0)), 1u);
+  int4 res = tint_symbol_1.read(uint2(int2(1)), 1u);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/f85291.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/f85291.wgsl.expected.spvasm
index 00b2ab5..72f452b 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f85291.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/f85291.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 41
+; Bound: 42
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -39,40 +39,41 @@
          %13 = OpTypeFunction %void
       %v4int = OpTypeVector %int 4
       %v2int = OpTypeVector %int 2
-         %21 = OpConstantNull %v2int
+      %int_1 = OpConstant %int 1
+         %22 = OpConstantComposite %v2int %int_1 %int_1
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %26 = OpConstantNull %v4int
-         %27 = OpTypeFunction %v4float
+         %27 = OpConstantNull %v4int
+         %28 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_f85291 = OpFunction %void None %13
          %16 = OpLabel
-        %res = OpVariable %_ptr_Function_v4int Function %26
+        %res = OpVariable %_ptr_Function_v4int Function %27
          %19 = OpLoad %11 %arg_0
-         %17 = OpImageFetch %v4int %19 %21 Lod %uint_1
+         %17 = OpImageFetch %v4int %19 %22 Lod %uint_1
                OpStore %res %17
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %27
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %textureLoad_f85291
+%vertex_main_inner = OpFunction %v4float None %28
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %textureLoad_f85291
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %32 = OpLabel
-         %33 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %33
+         %33 = OpLabel
+         %34 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %34
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureLoad_f85291
+         %37 = OpLabel
+         %38 = OpFunctionCall %void %textureLoad_f85291
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureLoad_f85291
+         %40 = OpLabel
+         %41 = OpFunctionCall %void %textureLoad_f85291
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureLoad/f85291.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/f85291.wgsl.expected.wgsl
index 56f3c1b..7fcdc5b 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f85291.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f85291.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_2d<i32>;
 
 fn textureLoad_f85291() {
-  var res : vec4<i32> = textureLoad(arg_0, vec2<i32>(), 1u);
+  var res : vec4<i32> = textureLoad(arg_0, vec2<i32>(1i), 1u);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureLoad/fcd23d.wgsl b/test/tint/builtins/gen/literal/textureLoad/fcd23d.wgsl
index b8e63aa..8e6c0ac 100644
--- a/test/tint/builtins/gen/literal/textureLoad/fcd23d.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/fcd23d.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureLoad(texture: texture_depth_multisampled_2d, coords: vec2<u32>, sample_index: i32) -> f32
 fn textureLoad_fcd23d() {
-  var res: f32 = textureLoad(arg_0, vec2<u32>(), 1i);
+  var res: f32 = textureLoad(arg_0, vec2<u32>(1u), 1i);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureLoad/fcd23d.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/fcd23d.wgsl.expected.dxc.hlsl
index 8ca9a66..c684738 100644
--- a/test/tint/builtins/gen/literal/textureLoad/fcd23d.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/fcd23d.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DMS<float4> arg_0 : register(t0, space1);
 
 void textureLoad_fcd23d() {
-  float res = arg_0.Load(uint3(0u, 0u, uint(0)), 1).x;
+  float res = arg_0.Load(uint3((1u).xx, uint(0)), 1).x;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/fcd23d.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/fcd23d.wgsl.expected.fxc.hlsl
index 8ca9a66..c684738 100644
--- a/test/tint/builtins/gen/literal/textureLoad/fcd23d.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/fcd23d.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DMS<float4> arg_0 : register(t0, space1);
 
 void textureLoad_fcd23d() {
-  float res = arg_0.Load(uint3(0u, 0u, uint(0)), 1).x;
+  float res = arg_0.Load(uint3((1u).xx, uint(0)), 1).x;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/fcd23d.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/fcd23d.wgsl.expected.glsl
index 87e28c88..d812b0d 100644
--- a/test/tint/builtins/gen/literal/textureLoad/fcd23d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/fcd23d.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 uniform highp sampler2DMS arg_0_1;
 void textureLoad_fcd23d() {
-  float res = texelFetch(arg_0_1, ivec2(uvec2(0u)), 1).x;
+  float res = texelFetch(arg_0_1, ivec2(uvec2(1u)), 1).x;
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 
 uniform highp sampler2DMS arg_0_1;
 void textureLoad_fcd23d() {
-  float res = texelFetch(arg_0_1, ivec2(uvec2(0u)), 1).x;
+  float res = texelFetch(arg_0_1, ivec2(uvec2(1u)), 1).x;
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 uniform highp sampler2DMS arg_0_1;
 void textureLoad_fcd23d() {
-  float res = texelFetch(arg_0_1, ivec2(uvec2(0u)), 1).x;
+  float res = texelFetch(arg_0_1, ivec2(uvec2(1u)), 1).x;
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureLoad/fcd23d.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureLoad/fcd23d.wgsl.expected.msl
index 159dd8d..db62b99 100644
--- a/test/tint/builtins/gen/literal/textureLoad/fcd23d.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/fcd23d.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureLoad_fcd23d(depth2d_ms<float, access::read> tint_symbol_1) {
-  float res = tint_symbol_1.read(uint2(uint2(0u)), 1);
+  float res = tint_symbol_1.read(uint2(uint2(1u)), 1);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/fcd23d.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/fcd23d.wgsl.expected.spvasm
index c504a4e..57fb66f 100644
--- a/test/tint/builtins/gen/literal/textureLoad/fcd23d.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/fcd23d.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 40
+; Bound: 41
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -38,40 +38,41 @@
          %12 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
-         %21 = OpConstantNull %v2uint
+     %uint_1 = OpConstant %uint 1
+         %22 = OpConstantComposite %v2uint %uint_1 %uint_1
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_float = OpTypePointer Function %float
-         %26 = OpTypeFunction %v4float
+         %27 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_fcd23d = OpFunction %void None %12
          %15 = OpLabel
         %res = OpVariable %_ptr_Function_float Function %8
          %18 = OpLoad %11 %arg_0
-         %17 = OpImageFetch %v4float %18 %21 Sample %int_1
+         %17 = OpImageFetch %v4float %18 %22 Sample %int_1
          %16 = OpCompositeExtract %float %17 0
                OpStore %res %16
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %26
-         %28 = OpLabel
-         %29 = OpFunctionCall %void %textureLoad_fcd23d
+%vertex_main_inner = OpFunction %v4float None %27
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %textureLoad_fcd23d
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %31 = OpLabel
-         %32 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %32
+         %32 = OpLabel
+         %33 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %33
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureLoad_fcd23d
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureLoad_fcd23d
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureLoad_fcd23d
+         %39 = OpLabel
+         %40 = OpFunctionCall %void %textureLoad_fcd23d
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureLoad/fcd23d.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/fcd23d.wgsl.expected.wgsl
index 8c90ff7..bb55cae 100644
--- a/test/tint/builtins/gen/literal/textureLoad/fcd23d.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/fcd23d.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_depth_multisampled_2d;
 
 fn textureLoad_fcd23d() {
-  var res : f32 = textureLoad(arg_0, vec2<u32>(), 1i);
+  var res : f32 = textureLoad(arg_0, vec2<u32>(1u), 1i);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureLoad/fe0565.wgsl b/test/tint/builtins/gen/literal/textureLoad/fe0565.wgsl
index a85f8c2..0d15c85 100644
--- a/test/tint/builtins/gen/literal/textureLoad/fe0565.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/fe0565.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureLoad(texture: texture_multisampled_2d<u32>, coords: vec2<u32>, sample_index: i32) -> vec4<u32>
 fn textureLoad_fe0565() {
-  var res: vec4<u32> = textureLoad(arg_0, vec2<u32>(), 1i);
+  var res: vec4<u32> = textureLoad(arg_0, vec2<u32>(1u), 1i);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureLoad/fe0565.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/fe0565.wgsl.expected.dxc.hlsl
index d4b0633..85598d6 100644
--- a/test/tint/builtins/gen/literal/textureLoad/fe0565.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/fe0565.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DMS<uint4> arg_0 : register(t0, space1);
 
 void textureLoad_fe0565() {
-  uint4 res = arg_0.Load((0u).xx, 1);
+  uint4 res = arg_0.Load((1u).xx, 1);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/fe0565.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/fe0565.wgsl.expected.fxc.hlsl
index d4b0633..85598d6 100644
--- a/test/tint/builtins/gen/literal/textureLoad/fe0565.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/fe0565.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DMS<uint4> arg_0 : register(t0, space1);
 
 void textureLoad_fe0565() {
-  uint4 res = arg_0.Load((0u).xx, 1);
+  uint4 res = arg_0.Load((1u).xx, 1);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/fe0565.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/fe0565.wgsl.expected.glsl
index 5447511..a805a77 100644
--- a/test/tint/builtins/gen/literal/textureLoad/fe0565.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/fe0565.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 uniform highp usampler2DMS arg_0_1;
 void textureLoad_fe0565() {
-  uvec4 res = texelFetch(arg_0_1, ivec2(uvec2(0u)), 1);
+  uvec4 res = texelFetch(arg_0_1, ivec2(uvec2(1u)), 1);
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 
 uniform highp usampler2DMS arg_0_1;
 void textureLoad_fe0565() {
-  uvec4 res = texelFetch(arg_0_1, ivec2(uvec2(0u)), 1);
+  uvec4 res = texelFetch(arg_0_1, ivec2(uvec2(1u)), 1);
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 uniform highp usampler2DMS arg_0_1;
 void textureLoad_fe0565() {
-  uvec4 res = texelFetch(arg_0_1, ivec2(uvec2(0u)), 1);
+  uvec4 res = texelFetch(arg_0_1, ivec2(uvec2(1u)), 1);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureLoad/fe0565.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureLoad/fe0565.wgsl.expected.msl
index 7e87a5c..ab16eeb 100644
--- a/test/tint/builtins/gen/literal/textureLoad/fe0565.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/fe0565.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureLoad_fe0565(texture2d_ms<uint, access::read> tint_symbol_1) {
-  uint4 res = tint_symbol_1.read(uint2(uint2(0u)), 1);
+  uint4 res = tint_symbol_1.read(uint2(uint2(1u)), 1);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/fe0565.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/fe0565.wgsl.expected.spvasm
index 9a345fb..4ba192b 100644
--- a/test/tint/builtins/gen/literal/textureLoad/fe0565.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/fe0565.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 41
+; Bound: 42
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -39,40 +39,41 @@
          %13 = OpTypeFunction %void
      %v4uint = OpTypeVector %uint 4
      %v2uint = OpTypeVector %uint 2
-         %21 = OpConstantNull %v2uint
+     %uint_1 = OpConstant %uint 1
+         %22 = OpConstantComposite %v2uint %uint_1 %uint_1
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %26 = OpConstantNull %v4uint
-         %27 = OpTypeFunction %v4float
+         %27 = OpConstantNull %v4uint
+         %28 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_fe0565 = OpFunction %void None %13
          %16 = OpLabel
-        %res = OpVariable %_ptr_Function_v4uint Function %26
+        %res = OpVariable %_ptr_Function_v4uint Function %27
          %19 = OpLoad %11 %arg_0
-         %17 = OpImageFetch %v4uint %19 %21 Sample %int_1
+         %17 = OpImageFetch %v4uint %19 %22 Sample %int_1
                OpStore %res %17
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %27
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %textureLoad_fe0565
+%vertex_main_inner = OpFunction %v4float None %28
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %textureLoad_fe0565
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %32 = OpLabel
-         %33 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %33
+         %33 = OpLabel
+         %34 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %34
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureLoad_fe0565
+         %37 = OpLabel
+         %38 = OpFunctionCall %void %textureLoad_fe0565
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureLoad_fe0565
+         %40 = OpLabel
+         %41 = OpFunctionCall %void %textureLoad_fe0565
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureLoad/fe0565.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/fe0565.wgsl.expected.wgsl
index 6aba3a6..1fc5a55 100644
--- a/test/tint/builtins/gen/literal/textureLoad/fe0565.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/fe0565.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_multisampled_2d<u32>;
 
 fn textureLoad_fe0565() {
-  var res : vec4<u32> = textureLoad(arg_0, vec2<u32>(), 1i);
+  var res : vec4<u32> = textureLoad(arg_0, vec2<u32>(1u), 1i);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureLoad/ff1119.wgsl b/test/tint/builtins/gen/literal/textureLoad/ff1119.wgsl
index 4c5826b..13bdf40 100644
--- a/test/tint/builtins/gen/literal/textureLoad/ff1119.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/ff1119.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureLoad(texture: texture_depth_2d_array, coords: vec2<i32>, array_index: i32, level: u32) -> f32
 fn textureLoad_ff1119() {
-  var res: f32 = textureLoad(arg_0, vec2<i32>(), 1i, 1u);
+  var res: f32 = textureLoad(arg_0, vec2<i32>(1i), 1i, 1u);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureLoad/ff1119.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/ff1119.wgsl.expected.dxc.hlsl
index 4b0e14e..9563888 100644
--- a/test/tint/builtins/gen/literal/textureLoad/ff1119.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/ff1119.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DArray arg_0 : register(t0, space1);
 
 void textureLoad_ff1119() {
-  float res = arg_0.Load(int4(0, 0, 1, int(1u))).x;
+  float res = arg_0.Load(int4(int3((1).xx, 1), int(1u))).x;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/ff1119.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/ff1119.wgsl.expected.fxc.hlsl
index 4b0e14e..9563888 100644
--- a/test/tint/builtins/gen/literal/textureLoad/ff1119.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/ff1119.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DArray arg_0 : register(t0, space1);
 
 void textureLoad_ff1119() {
-  float res = arg_0.Load(int4(0, 0, 1, int(1u))).x;
+  float res = arg_0.Load(int4(int3((1).xx, 1), int(1u))).x;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/ff1119.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/ff1119.wgsl.expected.glsl
index 3a05870..7a186c9 100644
--- a/test/tint/builtins/gen/literal/textureLoad/ff1119.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/ff1119.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 uniform highp sampler2DArray arg_0_1;
 void textureLoad_ff1119() {
-  float res = texelFetch(arg_0_1, ivec3(0, 0, 1), int(1u)).x;
+  float res = texelFetch(arg_0_1, ivec3(ivec2(1), 1), int(1u)).x;
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 
 uniform highp sampler2DArray arg_0_1;
 void textureLoad_ff1119() {
-  float res = texelFetch(arg_0_1, ivec3(0, 0, 1), int(1u)).x;
+  float res = texelFetch(arg_0_1, ivec3(ivec2(1), 1), int(1u)).x;
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 uniform highp sampler2DArray arg_0_1;
 void textureLoad_ff1119() {
-  float res = texelFetch(arg_0_1, ivec3(0, 0, 1), int(1u)).x;
+  float res = texelFetch(arg_0_1, ivec3(ivec2(1), 1), int(1u)).x;
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureLoad/ff1119.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureLoad/ff1119.wgsl.expected.msl
index f136a44..e8df23c 100644
--- a/test/tint/builtins/gen/literal/textureLoad/ff1119.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/ff1119.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureLoad_ff1119(depth2d_array<float, access::sample> tint_symbol_1) {
-  float res = tint_symbol_1.read(uint2(int2(0)), 1, 1u);
+  float res = tint_symbol_1.read(uint2(int2(1)), 1, 1u);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureLoad/ff1119.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/ff1119.wgsl.expected.spvasm
index faa0652..c95bc7e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/ff1119.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/ff1119.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 42
+; Bound: 45
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -38,42 +38,45 @@
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
-      %int_0 = OpConstant %int 0
+      %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %23 = OpConstantComposite %v3int %int_0 %int_0 %int_1
+         %23 = OpConstantComposite %v2int %int_1 %int_1
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_float = OpTypePointer Function %float
-         %28 = OpTypeFunction %v4float
+         %31 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_ff1119 = OpFunction %void None %12
          %15 = OpLabel
         %res = OpVariable %_ptr_Function_float Function %8
          %18 = OpLoad %11 %arg_0
-         %17 = OpImageFetch %v4float %18 %23 Lod %uint_1
+         %24 = OpCompositeExtract %int %23 0
+         %25 = OpCompositeExtract %int %23 1
+         %26 = OpCompositeConstruct %v3int %24 %25 %int_1
+         %17 = OpImageFetch %v4float %18 %26 Lod %uint_1
          %16 = OpCompositeExtract %float %17 0
                OpStore %res %16
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %28
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %textureLoad_ff1119
+%vertex_main_inner = OpFunction %v4float None %31
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureLoad_ff1119
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %33 = OpLabel
-         %34 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %34
+         %36 = OpLabel
+         %37 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %37
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureLoad_ff1119
+         %40 = OpLabel
+         %41 = OpFunctionCall %void %textureLoad_ff1119
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureLoad_ff1119
+         %43 = OpLabel
+         %44 = OpFunctionCall %void %textureLoad_ff1119
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureLoad/ff1119.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/ff1119.wgsl.expected.wgsl
index de0e81a..54b519f 100644
--- a/test/tint/builtins/gen/literal/textureLoad/ff1119.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/ff1119.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_depth_2d_array;
 
 fn textureLoad_ff1119() {
-  var res : f32 = textureLoad(arg_0, vec2<i32>(), 1i, 1u);
+  var res : f32 = textureLoad(arg_0, vec2<i32>(1i), 1i, 1u);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureSample/0dff6c.wgsl b/test/tint/builtins/gen/literal/textureSample/0dff6c.wgsl
index 99f28fb..a85b019 100644
--- a/test/tint/builtins/gen/literal/textureSample/0dff6c.wgsl
+++ b/test/tint/builtins/gen/literal/textureSample/0dff6c.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureSample(texture: texture_depth_2d, sampler: sampler, coords: vec2<f32>, @const offset: vec2<i32>) -> f32
 fn textureSample_0dff6c() {
-  var res: f32 = textureSample(arg_0, arg_1, vec2<f32>(), vec2<i32>());
+  var res: f32 = textureSample(arg_0, arg_1, vec2<f32>(1.f), vec2<i32>(1i));
 }
 
 @fragment
diff --git a/test/tint/builtins/gen/literal/textureSample/0dff6c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSample/0dff6c.wgsl.expected.dxc.hlsl
index 5e03f88..b1bd4db 100644
--- a/test/tint/builtins/gen/literal/textureSample/0dff6c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSample/0dff6c.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSample_0dff6c() {
-  float res = arg_0.Sample(arg_1, (0.0f).xx, (0).xx).x;
+  float res = arg_0.Sample(arg_1, (1.0f).xx, (1).xx).x;
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/literal/textureSample/0dff6c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSample/0dff6c.wgsl.expected.fxc.hlsl
index 5e03f88..b1bd4db 100644
--- a/test/tint/builtins/gen/literal/textureSample/0dff6c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSample/0dff6c.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSample_0dff6c() {
-  float res = arg_0.Sample(arg_1, (0.0f).xx, (0).xx).x;
+  float res = arg_0.Sample(arg_1, (1.0f).xx, (1).xx).x;
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/literal/textureSample/0dff6c.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureSample/0dff6c.wgsl.expected.glsl
index f090792..569c11d 100644
--- a/test/tint/builtins/gen/literal/textureSample/0dff6c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureSample/0dff6c.wgsl.expected.glsl
@@ -4,7 +4,7 @@
 uniform highp sampler2DShadow arg_0_arg_1;
 
 void textureSample_0dff6c() {
-  float res = textureOffset(arg_0_arg_1, vec3(0.0f, 0.0f, 0.0f), ivec2(0));
+  float res = textureOffset(arg_0_arg_1, vec3(vec2(1.0f), 0.0f), ivec2(1));
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/literal/textureSample/0dff6c.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureSample/0dff6c.wgsl.expected.msl
index ea808ae..921da0e 100644
--- a/test/tint/builtins/gen/literal/textureSample/0dff6c.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureSample/0dff6c.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureSample_0dff6c(depth2d<float, access::sample> tint_symbol, sampler tint_symbol_1) {
-  float res = tint_symbol.sample(tint_symbol_1, float2(0.0f), int2(0));
+  float res = tint_symbol.sample(tint_symbol_1, float2(1.0f), int2(1));
 }
 
 fragment void fragment_main(depth2d<float, access::sample> tint_symbol_2 [[texture(0)]], sampler tint_symbol_3 [[sampler(0)]]) {
diff --git a/test/tint/builtins/gen/literal/textureSample/0dff6c.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSample/0dff6c.wgsl.expected.spvasm
index e555843..f904425 100644
--- a/test/tint/builtins/gen/literal/textureSample/0dff6c.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSample/0dff6c.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 30
+; Bound: 32
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -28,25 +28,27 @@
     %v4float = OpTypeVector %float 4
          %17 = OpTypeSampledImage %3
     %v2float = OpTypeVector %float 2
-         %20 = OpConstantNull %v2float
+    %float_1 = OpConstant %float 1
+         %21 = OpConstantComposite %v2float %float_1 %float_1
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
-         %23 = OpConstantNull %v2int
+      %int_1 = OpConstant %int 1
+         %25 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_float = OpTypePointer Function %float
-         %26 = OpConstantNull %float
+         %28 = OpConstantNull %float
 %textureSample_0dff6c = OpFunction %void None %8
          %11 = OpLabel
-        %res = OpVariable %_ptr_Function_float Function %26
+        %res = OpVariable %_ptr_Function_float Function %28
          %15 = OpLoad %7 %arg_1
          %16 = OpLoad %3 %arg_0
          %18 = OpSampledImage %17 %16 %15
-         %13 = OpImageSampleImplicitLod %v4float %18 %20 ConstOffset %23
+         %13 = OpImageSampleImplicitLod %v4float %18 %21 ConstOffset %25
          %12 = OpCompositeExtract %float %13 0
                OpStore %res %12
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %8
-         %28 = OpLabel
-         %29 = OpFunctionCall %void %textureSample_0dff6c
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %textureSample_0dff6c
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureSample/0dff6c.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSample/0dff6c.wgsl.expected.wgsl
index 5dff612..077f24e 100644
--- a/test/tint/builtins/gen/literal/textureSample/0dff6c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSample/0dff6c.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(1) var arg_1 : sampler;
 
 fn textureSample_0dff6c() {
-  var res : f32 = textureSample(arg_0, arg_1, vec2<f32>(), vec2<i32>());
+  var res : f32 = textureSample(arg_0, arg_1, vec2<f32>(1.0f), vec2<i32>(1i));
 }
 
 @fragment
diff --git a/test/tint/builtins/gen/literal/textureSample/17e988.wgsl b/test/tint/builtins/gen/literal/textureSample/17e988.wgsl
index 75d604c..270ed3c 100644
--- a/test/tint/builtins/gen/literal/textureSample/17e988.wgsl
+++ b/test/tint/builtins/gen/literal/textureSample/17e988.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureSample(texture: texture_2d_array<f32>, sampler: sampler, coords: vec2<f32>, array_index: i32, @const offset: vec2<i32>) -> vec4<f32>
 fn textureSample_17e988() {
-  var res: vec4<f32> = textureSample(arg_0, arg_1, vec2<f32>(), 1i, vec2<i32>());
+  var res: vec4<f32> = textureSample(arg_0, arg_1, vec2<f32>(1.f), 1i, vec2<i32>(1i));
 }
 
 @fragment
diff --git a/test/tint/builtins/gen/literal/textureSample/17e988.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSample/17e988.wgsl.expected.dxc.hlsl
index fc8a980..0d08b8a 100644
--- a/test/tint/builtins/gen/literal/textureSample/17e988.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSample/17e988.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSample_17e988() {
-  float4 res = arg_0.Sample(arg_1, float3(0.0f, 0.0f, float(1)), (0).xx);
+  float4 res = arg_0.Sample(arg_1, float3((1.0f).xx, float(1)), (1).xx);
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/literal/textureSample/17e988.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSample/17e988.wgsl.expected.fxc.hlsl
index fc8a980..0d08b8a 100644
--- a/test/tint/builtins/gen/literal/textureSample/17e988.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSample/17e988.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSample_17e988() {
-  float4 res = arg_0.Sample(arg_1, float3(0.0f, 0.0f, float(1)), (0).xx);
+  float4 res = arg_0.Sample(arg_1, float3((1.0f).xx, float(1)), (1).xx);
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/literal/textureSample/17e988.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureSample/17e988.wgsl.expected.glsl
index fdfe3c00..e7e4671 100644
--- a/test/tint/builtins/gen/literal/textureSample/17e988.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureSample/17e988.wgsl.expected.glsl
@@ -4,7 +4,7 @@
 uniform highp sampler2DArray arg_0_arg_1;
 
 void textureSample_17e988() {
-  vec4 res = textureOffset(arg_0_arg_1, vec3(0.0f, 0.0f, float(1)), ivec2(0));
+  vec4 res = textureOffset(arg_0_arg_1, vec3(vec2(1.0f), float(1)), ivec2(1));
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/literal/textureSample/17e988.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureSample/17e988.wgsl.expected.msl
index 167ac7b..a0488ff 100644
--- a/test/tint/builtins/gen/literal/textureSample/17e988.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureSample/17e988.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureSample_17e988(texture2d_array<float, access::sample> tint_symbol, sampler tint_symbol_1) {
-  float4 res = tint_symbol.sample(tint_symbol_1, float2(0.0f), 1, int2(0));
+  float4 res = tint_symbol.sample(tint_symbol_1, float2(1.0f), 1, int2(1));
 }
 
 fragment void fragment_main(texture2d_array<float, access::sample> tint_symbol_2 [[texture(0)]], sampler tint_symbol_3 [[sampler(0)]]) {
diff --git a/test/tint/builtins/gen/literal/textureSample/17e988.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSample/17e988.wgsl.expected.spvasm
index 576ac75..577289c 100644
--- a/test/tint/builtins/gen/literal/textureSample/17e988.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSample/17e988.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
@@ -28,27 +28,31 @@
     %v4float = OpTypeVector %float 4
          %16 = OpTypeSampledImage %3
     %v3float = OpTypeVector %float 3
-    %float_0 = OpConstant %float 0
+    %v2float = OpTypeVector %float 2
+    %float_1 = OpConstant %float 1
+         %21 = OpConstantComposite %v2float %float_1 %float_1
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
       %v2int = OpTypeVector %int 2
-         %25 = OpConstantNull %v2int
+         %29 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %28 = OpConstantNull %v4float
+         %32 = OpConstantNull %v4float
 %textureSample_17e988 = OpFunction %void None %8
          %11 = OpLabel
-        %res = OpVariable %_ptr_Function_v4float Function %28
+        %res = OpVariable %_ptr_Function_v4float Function %32
          %14 = OpLoad %7 %arg_1
          %15 = OpLoad %3 %arg_0
          %17 = OpSampledImage %16 %15 %14
-         %20 = OpConvertSToF %float %int_1
-         %23 = OpCompositeConstruct %v3float %float_0 %float_0 %20
-         %12 = OpImageSampleImplicitLod %v4float %17 %23 ConstOffset %25
+         %22 = OpCompositeExtract %float %21 0
+         %23 = OpCompositeExtract %float %21 1
+         %24 = OpConvertSToF %float %int_1
+         %27 = OpCompositeConstruct %v3float %22 %23 %24
+         %12 = OpImageSampleImplicitLod %v4float %17 %27 ConstOffset %29
                OpStore %res %12
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %8
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %textureSample_17e988
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %textureSample_17e988
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureSample/17e988.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSample/17e988.wgsl.expected.wgsl
index d65f739..4f40854 100644
--- a/test/tint/builtins/gen/literal/textureSample/17e988.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSample/17e988.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(1) var arg_1 : sampler;
 
 fn textureSample_17e988() {
-  var res : vec4<f32> = textureSample(arg_0, arg_1, vec2<f32>(), 1i, vec2<i32>());
+  var res : vec4<f32> = textureSample(arg_0, arg_1, vec2<f32>(1.0f), 1i, vec2<i32>(1i));
 }
 
 @fragment
diff --git a/test/tint/builtins/gen/literal/textureSample/193203.wgsl b/test/tint/builtins/gen/literal/textureSample/193203.wgsl
index da6cdf5..7e6f166 100644
--- a/test/tint/builtins/gen/literal/textureSample/193203.wgsl
+++ b/test/tint/builtins/gen/literal/textureSample/193203.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureSample(texture: texture_2d_array<f32>, sampler: sampler, coords: vec2<f32>, array_index: u32, @const offset: vec2<i32>) -> vec4<f32>
 fn textureSample_193203() {
-  var res: vec4<f32> = textureSample(arg_0, arg_1, vec2<f32>(), 1u, vec2<i32>());
+  var res: vec4<f32> = textureSample(arg_0, arg_1, vec2<f32>(1.f), 1u, vec2<i32>(1i));
 }
 
 @fragment
diff --git a/test/tint/builtins/gen/literal/textureSample/193203.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSample/193203.wgsl.expected.dxc.hlsl
index 187167c..6c65bd9 100644
--- a/test/tint/builtins/gen/literal/textureSample/193203.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSample/193203.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSample_193203() {
-  float4 res = arg_0.Sample(arg_1, float3(0.0f, 0.0f, float(1u)), (0).xx);
+  float4 res = arg_0.Sample(arg_1, float3((1.0f).xx, float(1u)), (1).xx);
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/literal/textureSample/193203.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSample/193203.wgsl.expected.fxc.hlsl
index 187167c..6c65bd9 100644
--- a/test/tint/builtins/gen/literal/textureSample/193203.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSample/193203.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSample_193203() {
-  float4 res = arg_0.Sample(arg_1, float3(0.0f, 0.0f, float(1u)), (0).xx);
+  float4 res = arg_0.Sample(arg_1, float3((1.0f).xx, float(1u)), (1).xx);
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/literal/textureSample/193203.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureSample/193203.wgsl.expected.glsl
index ef540d8..d937f89 100644
--- a/test/tint/builtins/gen/literal/textureSample/193203.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureSample/193203.wgsl.expected.glsl
@@ -4,7 +4,7 @@
 uniform highp sampler2DArray arg_0_arg_1;
 
 void textureSample_193203() {
-  vec4 res = textureOffset(arg_0_arg_1, vec3(0.0f, 0.0f, float(1u)), ivec2(0));
+  vec4 res = textureOffset(arg_0_arg_1, vec3(vec2(1.0f), float(1u)), ivec2(1));
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/literal/textureSample/193203.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureSample/193203.wgsl.expected.msl
index c558b32..94f0b02 100644
--- a/test/tint/builtins/gen/literal/textureSample/193203.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureSample/193203.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureSample_193203(texture2d_array<float, access::sample> tint_symbol, sampler tint_symbol_1) {
-  float4 res = tint_symbol.sample(tint_symbol_1, float2(0.0f), 1u, int2(0));
+  float4 res = tint_symbol.sample(tint_symbol_1, float2(1.0f), 1u, int2(1));
 }
 
 fragment void fragment_main(texture2d_array<float, access::sample> tint_symbol_2 [[texture(0)]], sampler tint_symbol_3 [[sampler(0)]]) {
diff --git a/test/tint/builtins/gen/literal/textureSample/193203.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSample/193203.wgsl.expected.spvasm
index 8804d99..23ed9ec 100644
--- a/test/tint/builtins/gen/literal/textureSample/193203.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSample/193203.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 33
+; Bound: 38
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -28,28 +28,33 @@
     %v4float = OpTypeVector %float 4
          %16 = OpTypeSampledImage %3
     %v3float = OpTypeVector %float 3
-    %float_0 = OpConstant %float 0
+    %v2float = OpTypeVector %float 2
+    %float_1 = OpConstant %float 1
+         %21 = OpConstantComposite %v2float %float_1 %float_1
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
-         %26 = OpConstantNull %v2int
+      %int_1 = OpConstant %int 1
+         %31 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %29 = OpConstantNull %v4float
+         %34 = OpConstantNull %v4float
 %textureSample_193203 = OpFunction %void None %8
          %11 = OpLabel
-        %res = OpVariable %_ptr_Function_v4float Function %29
+        %res = OpVariable %_ptr_Function_v4float Function %34
          %14 = OpLoad %7 %arg_1
          %15 = OpLoad %3 %arg_0
          %17 = OpSampledImage %16 %15 %14
-         %20 = OpConvertUToF %float %uint_1
-         %23 = OpCompositeConstruct %v3float %float_0 %float_0 %20
-         %12 = OpImageSampleImplicitLod %v4float %17 %23 ConstOffset %26
+         %22 = OpCompositeExtract %float %21 0
+         %23 = OpCompositeExtract %float %21 1
+         %24 = OpConvertUToF %float %uint_1
+         %27 = OpCompositeConstruct %v3float %22 %23 %24
+         %12 = OpImageSampleImplicitLod %v4float %17 %27 ConstOffset %31
                OpStore %res %12
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %8
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %textureSample_193203
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureSample_193203
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureSample/193203.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSample/193203.wgsl.expected.wgsl
index 3413bbc..1338058 100644
--- a/test/tint/builtins/gen/literal/textureSample/193203.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSample/193203.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(1) var arg_1 : sampler;
 
 fn textureSample_193203() {
-  var res : vec4<f32> = textureSample(arg_0, arg_1, vec2<f32>(), 1u, vec2<i32>());
+  var res : vec4<f32> = textureSample(arg_0, arg_1, vec2<f32>(1.0f), 1u, vec2<i32>(1i));
 }
 
 @fragment
diff --git a/test/tint/builtins/gen/literal/textureSample/1a4e1b.wgsl b/test/tint/builtins/gen/literal/textureSample/1a4e1b.wgsl
index 852f2bd..ecd6c55 100644
--- a/test/tint/builtins/gen/literal/textureSample/1a4e1b.wgsl
+++ b/test/tint/builtins/gen/literal/textureSample/1a4e1b.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureSample(texture: texture_depth_2d_array, sampler: sampler, coords: vec2<f32>, array_index: u32) -> f32
 fn textureSample_1a4e1b() {
-  var res: f32 = textureSample(arg_0, arg_1, vec2<f32>(), 1u);
+  var res: f32 = textureSample(arg_0, arg_1, vec2<f32>(1.f), 1u);
 }
 
 @fragment
diff --git a/test/tint/builtins/gen/literal/textureSample/1a4e1b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSample/1a4e1b.wgsl.expected.dxc.hlsl
index 4c9c23a..48c3a12 100644
--- a/test/tint/builtins/gen/literal/textureSample/1a4e1b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSample/1a4e1b.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSample_1a4e1b() {
-  float res = arg_0.Sample(arg_1, float3(0.0f, 0.0f, float(1u))).x;
+  float res = arg_0.Sample(arg_1, float3((1.0f).xx, float(1u))).x;
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/literal/textureSample/1a4e1b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSample/1a4e1b.wgsl.expected.fxc.hlsl
index 4c9c23a..48c3a12 100644
--- a/test/tint/builtins/gen/literal/textureSample/1a4e1b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSample/1a4e1b.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSample_1a4e1b() {
-  float res = arg_0.Sample(arg_1, float3(0.0f, 0.0f, float(1u))).x;
+  float res = arg_0.Sample(arg_1, float3((1.0f).xx, float(1u))).x;
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/literal/textureSample/1a4e1b.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureSample/1a4e1b.wgsl.expected.glsl
index 492bbc0..eb3bbf5 100644
--- a/test/tint/builtins/gen/literal/textureSample/1a4e1b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureSample/1a4e1b.wgsl.expected.glsl
@@ -4,7 +4,7 @@
 uniform highp sampler2DArrayShadow arg_0_arg_1;
 
 void textureSample_1a4e1b() {
-  float res = texture(arg_0_arg_1, vec4(0.0f, 0.0f, float(1u), 0.0f));
+  float res = texture(arg_0_arg_1, vec4(vec3(vec2(1.0f), float(1u)), 0.0f));
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/literal/textureSample/1a4e1b.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureSample/1a4e1b.wgsl.expected.msl
index efc575c..f128704 100644
--- a/test/tint/builtins/gen/literal/textureSample/1a4e1b.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureSample/1a4e1b.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureSample_1a4e1b(depth2d_array<float, access::sample> tint_symbol, sampler tint_symbol_1) {
-  float res = tint_symbol.sample(tint_symbol_1, float2(0.0f), 1u);
+  float res = tint_symbol.sample(tint_symbol_1, float2(1.0f), 1u);
 }
 
 fragment void fragment_main(depth2d_array<float, access::sample> tint_symbol_2 [[texture(0)]], sampler tint_symbol_3 [[sampler(0)]]) {
diff --git a/test/tint/builtins/gen/literal/textureSample/1a4e1b.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSample/1a4e1b.wgsl.expected.spvasm
index 2da95e8..bfb607d 100644
--- a/test/tint/builtins/gen/literal/textureSample/1a4e1b.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSample/1a4e1b.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 31
+; Bound: 35
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -28,26 +28,30 @@
     %v4float = OpTypeVector %float 4
          %17 = OpTypeSampledImage %3
     %v3float = OpTypeVector %float 3
-    %float_0 = OpConstant %float 0
+    %v2float = OpTypeVector %float 2
+    %float_1 = OpConstant %float 1
+         %22 = OpConstantComposite %v2float %float_1 %float_1
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_float = OpTypePointer Function %float
-         %27 = OpConstantNull %float
+         %31 = OpConstantNull %float
 %textureSample_1a4e1b = OpFunction %void None %8
          %11 = OpLabel
-        %res = OpVariable %_ptr_Function_float Function %27
+        %res = OpVariable %_ptr_Function_float Function %31
          %15 = OpLoad %7 %arg_1
          %16 = OpLoad %3 %arg_0
          %18 = OpSampledImage %17 %16 %15
-         %21 = OpConvertUToF %float %uint_1
-         %24 = OpCompositeConstruct %v3float %float_0 %float_0 %21
-         %13 = OpImageSampleImplicitLod %v4float %18 %24
+         %23 = OpCompositeExtract %float %22 0
+         %24 = OpCompositeExtract %float %22 1
+         %25 = OpConvertUToF %float %uint_1
+         %28 = OpCompositeConstruct %v3float %23 %24 %25
+         %13 = OpImageSampleImplicitLod %v4float %18 %28
          %12 = OpCompositeExtract %float %13 0
                OpStore %res %12
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %8
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %textureSample_1a4e1b
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureSample_1a4e1b
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureSample/1a4e1b.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSample/1a4e1b.wgsl.expected.wgsl
index 7bc414e..ddcf5c1 100644
--- a/test/tint/builtins/gen/literal/textureSample/1a4e1b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSample/1a4e1b.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(1) var arg_1 : sampler;
 
 fn textureSample_1a4e1b() {
-  var res : f32 = textureSample(arg_0, arg_1, vec2<f32>(), 1u);
+  var res : f32 = textureSample(arg_0, arg_1, vec2<f32>(1.0f), 1u);
 }
 
 @fragment
diff --git a/test/tint/builtins/gen/literal/textureSample/2149ec.wgsl b/test/tint/builtins/gen/literal/textureSample/2149ec.wgsl
index ccab6e5..28cf0ec 100644
--- a/test/tint/builtins/gen/literal/textureSample/2149ec.wgsl
+++ b/test/tint/builtins/gen/literal/textureSample/2149ec.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureSample(texture: texture_3d<f32>, sampler: sampler, coords: vec3<f32>, @const offset: vec3<i32>) -> vec4<f32>
 fn textureSample_2149ec() {
-  var res: vec4<f32> = textureSample(arg_0, arg_1, vec3<f32>(), vec3<i32>());
+  var res: vec4<f32> = textureSample(arg_0, arg_1, vec3<f32>(1.f), vec3<i32>(1i));
 }
 
 @fragment
diff --git a/test/tint/builtins/gen/literal/textureSample/2149ec.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSample/2149ec.wgsl.expected.dxc.hlsl
index 137a2ff..3d19892 100644
--- a/test/tint/builtins/gen/literal/textureSample/2149ec.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSample/2149ec.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSample_2149ec() {
-  float4 res = arg_0.Sample(arg_1, (0.0f).xxx, (0).xxx);
+  float4 res = arg_0.Sample(arg_1, (1.0f).xxx, (1).xxx);
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/literal/textureSample/2149ec.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSample/2149ec.wgsl.expected.fxc.hlsl
index 137a2ff..3d19892 100644
--- a/test/tint/builtins/gen/literal/textureSample/2149ec.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSample/2149ec.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSample_2149ec() {
-  float4 res = arg_0.Sample(arg_1, (0.0f).xxx, (0).xxx);
+  float4 res = arg_0.Sample(arg_1, (1.0f).xxx, (1).xxx);
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/literal/textureSample/2149ec.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureSample/2149ec.wgsl.expected.glsl
index 2592c4f..f84b20c 100644
--- a/test/tint/builtins/gen/literal/textureSample/2149ec.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureSample/2149ec.wgsl.expected.glsl
@@ -4,7 +4,7 @@
 uniform highp sampler3D arg_0_arg_1;
 
 void textureSample_2149ec() {
-  vec4 res = textureOffset(arg_0_arg_1, vec3(0.0f), ivec3(0));
+  vec4 res = textureOffset(arg_0_arg_1, vec3(1.0f), ivec3(1));
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/literal/textureSample/2149ec.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureSample/2149ec.wgsl.expected.msl
index b6ec309..8a65f3f 100644
--- a/test/tint/builtins/gen/literal/textureSample/2149ec.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureSample/2149ec.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureSample_2149ec(texture3d<float, access::sample> tint_symbol, sampler tint_symbol_1) {
-  float4 res = tint_symbol.sample(tint_symbol_1, float3(0.0f), int3(0));
+  float4 res = tint_symbol.sample(tint_symbol_1, float3(1.0f), int3(1));
 }
 
 fragment void fragment_main(texture3d<float, access::sample> tint_symbol_2 [[texture(0)]], sampler tint_symbol_3 [[sampler(0)]]) {
diff --git a/test/tint/builtins/gen/literal/textureSample/2149ec.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSample/2149ec.wgsl.expected.spvasm
index 21ae9c0..a239621 100644
--- a/test/tint/builtins/gen/literal/textureSample/2149ec.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSample/2149ec.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
@@ -28,24 +28,26 @@
     %v4float = OpTypeVector %float 4
          %16 = OpTypeSampledImage %3
     %v3float = OpTypeVector %float 3
-         %19 = OpConstantNull %v3float
+    %float_1 = OpConstant %float 1
+         %20 = OpConstantComposite %v3float %float_1 %float_1 %float_1
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
-         %22 = OpConstantNull %v3int
+      %int_1 = OpConstant %int 1
+         %24 = OpConstantComposite %v3int %int_1 %int_1 %int_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %25 = OpConstantNull %v4float
+         %27 = OpConstantNull %v4float
 %textureSample_2149ec = OpFunction %void None %8
          %11 = OpLabel
-        %res = OpVariable %_ptr_Function_v4float Function %25
+        %res = OpVariable %_ptr_Function_v4float Function %27
          %14 = OpLoad %7 %arg_1
          %15 = OpLoad %3 %arg_0
          %17 = OpSampledImage %16 %15 %14
-         %12 = OpImageSampleImplicitLod %v4float %17 %19 ConstOffset %22
+         %12 = OpImageSampleImplicitLod %v4float %17 %20 ConstOffset %24
                OpStore %res %12
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %8
-         %27 = OpLabel
-         %28 = OpFunctionCall %void %textureSample_2149ec
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %textureSample_2149ec
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureSample/2149ec.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSample/2149ec.wgsl.expected.wgsl
index 0b47e89..35374f7 100644
--- a/test/tint/builtins/gen/literal/textureSample/2149ec.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSample/2149ec.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(1) var arg_1 : sampler;
 
 fn textureSample_2149ec() {
-  var res : vec4<f32> = textureSample(arg_0, arg_1, vec3<f32>(), vec3<i32>());
+  var res : vec4<f32> = textureSample(arg_0, arg_1, vec3<f32>(1.0f), vec3<i32>(1i));
 }
 
 @fragment
diff --git a/test/tint/builtins/gen/literal/textureSample/38bbb9.wgsl b/test/tint/builtins/gen/literal/textureSample/38bbb9.wgsl
index 373481c..051eaf5 100644
--- a/test/tint/builtins/gen/literal/textureSample/38bbb9.wgsl
+++ b/test/tint/builtins/gen/literal/textureSample/38bbb9.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureSample(texture: texture_depth_2d, sampler: sampler, coords: vec2<f32>) -> f32
 fn textureSample_38bbb9() {
-  var res: f32 = textureSample(arg_0, arg_1, vec2<f32>());
+  var res: f32 = textureSample(arg_0, arg_1, vec2<f32>(1.f));
 }
 
 @fragment
diff --git a/test/tint/builtins/gen/literal/textureSample/38bbb9.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSample/38bbb9.wgsl.expected.dxc.hlsl
index aeb2754..e03d4c2 100644
--- a/test/tint/builtins/gen/literal/textureSample/38bbb9.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSample/38bbb9.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSample_38bbb9() {
-  float res = arg_0.Sample(arg_1, (0.0f).xx).x;
+  float res = arg_0.Sample(arg_1, (1.0f).xx).x;
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/literal/textureSample/38bbb9.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSample/38bbb9.wgsl.expected.fxc.hlsl
index aeb2754..e03d4c2 100644
--- a/test/tint/builtins/gen/literal/textureSample/38bbb9.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSample/38bbb9.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSample_38bbb9() {
-  float res = arg_0.Sample(arg_1, (0.0f).xx).x;
+  float res = arg_0.Sample(arg_1, (1.0f).xx).x;
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/literal/textureSample/38bbb9.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureSample/38bbb9.wgsl.expected.glsl
index b2554c9..416111a 100644
--- a/test/tint/builtins/gen/literal/textureSample/38bbb9.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureSample/38bbb9.wgsl.expected.glsl
@@ -4,7 +4,7 @@
 uniform highp sampler2DShadow arg_0_arg_1;
 
 void textureSample_38bbb9() {
-  float res = texture(arg_0_arg_1, vec3(0.0f, 0.0f, 0.0f));
+  float res = texture(arg_0_arg_1, vec3(vec2(1.0f), 0.0f));
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/literal/textureSample/38bbb9.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureSample/38bbb9.wgsl.expected.msl
index 7884b31..cf5b10f 100644
--- a/test/tint/builtins/gen/literal/textureSample/38bbb9.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureSample/38bbb9.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureSample_38bbb9(depth2d<float, access::sample> tint_symbol, sampler tint_symbol_1) {
-  float res = tint_symbol.sample(tint_symbol_1, float2(0.0f));
+  float res = tint_symbol.sample(tint_symbol_1, float2(1.0f));
 }
 
 fragment void fragment_main(depth2d<float, access::sample> tint_symbol_2 [[texture(0)]], sampler tint_symbol_3 [[sampler(0)]]) {
diff --git a/test/tint/builtins/gen/literal/textureSample/38bbb9.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSample/38bbb9.wgsl.expected.spvasm
index 788cf86..dea5bc7 100644
--- a/test/tint/builtins/gen/literal/textureSample/38bbb9.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSample/38bbb9.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 27
+; Bound: 28
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -28,22 +28,23 @@
     %v4float = OpTypeVector %float 4
          %17 = OpTypeSampledImage %3
     %v2float = OpTypeVector %float 2
-         %20 = OpConstantNull %v2float
+    %float_1 = OpConstant %float 1
+         %21 = OpConstantComposite %v2float %float_1 %float_1
 %_ptr_Function_float = OpTypePointer Function %float
-         %23 = OpConstantNull %float
+         %24 = OpConstantNull %float
 %textureSample_38bbb9 = OpFunction %void None %8
          %11 = OpLabel
-        %res = OpVariable %_ptr_Function_float Function %23
+        %res = OpVariable %_ptr_Function_float Function %24
          %15 = OpLoad %7 %arg_1
          %16 = OpLoad %3 %arg_0
          %18 = OpSampledImage %17 %16 %15
-         %13 = OpImageSampleImplicitLod %v4float %18 %20
+         %13 = OpImageSampleImplicitLod %v4float %18 %21
          %12 = OpCompositeExtract %float %13 0
                OpStore %res %12
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %8
-         %25 = OpLabel
-         %26 = OpFunctionCall %void %textureSample_38bbb9
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %textureSample_38bbb9
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureSample/38bbb9.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSample/38bbb9.wgsl.expected.wgsl
index 6edb215..5289739 100644
--- a/test/tint/builtins/gen/literal/textureSample/38bbb9.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSample/38bbb9.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(1) var arg_1 : sampler;
 
 fn textureSample_38bbb9() {
-  var res : f32 = textureSample(arg_0, arg_1, vec2<f32>());
+  var res : f32 = textureSample(arg_0, arg_1, vec2<f32>(1.0f));
 }
 
 @fragment
diff --git a/test/tint/builtins/gen/literal/textureSample/3b50bd.wgsl b/test/tint/builtins/gen/literal/textureSample/3b50bd.wgsl
index bbfc116..788c36c 100644
--- a/test/tint/builtins/gen/literal/textureSample/3b50bd.wgsl
+++ b/test/tint/builtins/gen/literal/textureSample/3b50bd.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureSample(texture: texture_3d<f32>, sampler: sampler, coords: vec3<f32>) -> vec4<f32>
 fn textureSample_3b50bd() {
-  var res: vec4<f32> = textureSample(arg_0, arg_1, vec3<f32>());
+  var res: vec4<f32> = textureSample(arg_0, arg_1, vec3<f32>(1.f));
 }
 
 @fragment
diff --git a/test/tint/builtins/gen/literal/textureSample/3b50bd.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSample/3b50bd.wgsl.expected.dxc.hlsl
index 7b99e2a..e0704fc 100644
--- a/test/tint/builtins/gen/literal/textureSample/3b50bd.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSample/3b50bd.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSample_3b50bd() {
-  float4 res = arg_0.Sample(arg_1, (0.0f).xxx);
+  float4 res = arg_0.Sample(arg_1, (1.0f).xxx);
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/literal/textureSample/3b50bd.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSample/3b50bd.wgsl.expected.fxc.hlsl
index 7b99e2a..e0704fc 100644
--- a/test/tint/builtins/gen/literal/textureSample/3b50bd.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSample/3b50bd.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSample_3b50bd() {
-  float4 res = arg_0.Sample(arg_1, (0.0f).xxx);
+  float4 res = arg_0.Sample(arg_1, (1.0f).xxx);
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/literal/textureSample/3b50bd.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureSample/3b50bd.wgsl.expected.glsl
index 8d1d18d..dee9372 100644
--- a/test/tint/builtins/gen/literal/textureSample/3b50bd.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureSample/3b50bd.wgsl.expected.glsl
@@ -4,7 +4,7 @@
 uniform highp sampler3D arg_0_arg_1;
 
 void textureSample_3b50bd() {
-  vec4 res = texture(arg_0_arg_1, vec3(0.0f));
+  vec4 res = texture(arg_0_arg_1, vec3(1.0f));
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/literal/textureSample/3b50bd.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureSample/3b50bd.wgsl.expected.msl
index a63d38d..a468d12 100644
--- a/test/tint/builtins/gen/literal/textureSample/3b50bd.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureSample/3b50bd.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureSample_3b50bd(texture3d<float, access::sample> tint_symbol, sampler tint_symbol_1) {
-  float4 res = tint_symbol.sample(tint_symbol_1, float3(0.0f));
+  float4 res = tint_symbol.sample(tint_symbol_1, float3(1.0f));
 }
 
 fragment void fragment_main(texture3d<float, access::sample> tint_symbol_2 [[texture(0)]], sampler tint_symbol_3 [[sampler(0)]]) {
diff --git a/test/tint/builtins/gen/literal/textureSample/3b50bd.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSample/3b50bd.wgsl.expected.spvasm
index c41cc4d..688f51c 100644
--- a/test/tint/builtins/gen/literal/textureSample/3b50bd.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSample/3b50bd.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 26
+; Bound: 27
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -28,21 +28,22 @@
     %v4float = OpTypeVector %float 4
          %16 = OpTypeSampledImage %3
     %v3float = OpTypeVector %float 3
-         %19 = OpConstantNull %v3float
+    %float_1 = OpConstant %float 1
+         %20 = OpConstantComposite %v3float %float_1 %float_1 %float_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %22 = OpConstantNull %v4float
+         %23 = OpConstantNull %v4float
 %textureSample_3b50bd = OpFunction %void None %8
          %11 = OpLabel
-        %res = OpVariable %_ptr_Function_v4float Function %22
+        %res = OpVariable %_ptr_Function_v4float Function %23
          %14 = OpLoad %7 %arg_1
          %15 = OpLoad %3 %arg_0
          %17 = OpSampledImage %16 %15 %14
-         %12 = OpImageSampleImplicitLod %v4float %17 %19
+         %12 = OpImageSampleImplicitLod %v4float %17 %20
                OpStore %res %12
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %8
-         %24 = OpLabel
-         %25 = OpFunctionCall %void %textureSample_3b50bd
+         %25 = OpLabel
+         %26 = OpFunctionCall %void %textureSample_3b50bd
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureSample/3b50bd.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSample/3b50bd.wgsl.expected.wgsl
index 43bc582..8c8a881 100644
--- a/test/tint/builtins/gen/literal/textureSample/3b50bd.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSample/3b50bd.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(1) var arg_1 : sampler;
 
 fn textureSample_3b50bd() {
-  var res : vec4<f32> = textureSample(arg_0, arg_1, vec3<f32>());
+  var res : vec4<f32> = textureSample(arg_0, arg_1, vec3<f32>(1.0f));
 }
 
 @fragment
diff --git a/test/tint/builtins/gen/literal/textureSample/4703d0.wgsl b/test/tint/builtins/gen/literal/textureSample/4703d0.wgsl
index 3e7b95d..9ba4e8b 100644
--- a/test/tint/builtins/gen/literal/textureSample/4703d0.wgsl
+++ b/test/tint/builtins/gen/literal/textureSample/4703d0.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureSample(texture: texture_depth_2d_array, sampler: sampler, coords: vec2<f32>, array_index: u32, @const offset: vec2<i32>) -> f32
 fn textureSample_4703d0() {
-  var res: f32 = textureSample(arg_0, arg_1, vec2<f32>(), 1u, vec2<i32>());
+  var res: f32 = textureSample(arg_0, arg_1, vec2<f32>(1.f), 1u, vec2<i32>(1i));
 }
 
 @fragment
diff --git a/test/tint/builtins/gen/literal/textureSample/4703d0.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSample/4703d0.wgsl.expected.dxc.hlsl
index 6d8b7dd..fc84a42 100644
--- a/test/tint/builtins/gen/literal/textureSample/4703d0.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSample/4703d0.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSample_4703d0() {
-  float res = arg_0.Sample(arg_1, float3(0.0f, 0.0f, float(1u)), (0).xx).x;
+  float res = arg_0.Sample(arg_1, float3((1.0f).xx, float(1u)), (1).xx).x;
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/literal/textureSample/4703d0.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSample/4703d0.wgsl.expected.fxc.hlsl
index 6d8b7dd..fc84a42 100644
--- a/test/tint/builtins/gen/literal/textureSample/4703d0.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSample/4703d0.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSample_4703d0() {
-  float res = arg_0.Sample(arg_1, float3(0.0f, 0.0f, float(1u)), (0).xx).x;
+  float res = arg_0.Sample(arg_1, float3((1.0f).xx, float(1u)), (1).xx).x;
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/literal/textureSample/4703d0.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureSample/4703d0.wgsl.expected.msl
index e412a9c..4fb976b 100644
--- a/test/tint/builtins/gen/literal/textureSample/4703d0.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureSample/4703d0.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureSample_4703d0(depth2d_array<float, access::sample> tint_symbol, sampler tint_symbol_1) {
-  float res = tint_symbol.sample(tint_symbol_1, float2(0.0f), 1u, int2(0));
+  float res = tint_symbol.sample(tint_symbol_1, float2(1.0f), 1u, int2(1));
 }
 
 fragment void fragment_main(depth2d_array<float, access::sample> tint_symbol_2 [[texture(0)]], sampler tint_symbol_3 [[sampler(0)]]) {
diff --git a/test/tint/builtins/gen/literal/textureSample/4703d0.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSample/4703d0.wgsl.expected.spvasm
index 178481b..e0a5ff8 100644
--- a/test/tint/builtins/gen/literal/textureSample/4703d0.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSample/4703d0.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 34
+; Bound: 39
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -28,29 +28,34 @@
     %v4float = OpTypeVector %float 4
          %17 = OpTypeSampledImage %3
     %v3float = OpTypeVector %float 3
-    %float_0 = OpConstant %float 0
+    %v2float = OpTypeVector %float 2
+    %float_1 = OpConstant %float 1
+         %22 = OpConstantComposite %v2float %float_1 %float_1
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
-         %27 = OpConstantNull %v2int
+      %int_1 = OpConstant %int 1
+         %32 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_float = OpTypePointer Function %float
-         %30 = OpConstantNull %float
+         %35 = OpConstantNull %float
 %textureSample_4703d0 = OpFunction %void None %8
          %11 = OpLabel
-        %res = OpVariable %_ptr_Function_float Function %30
+        %res = OpVariable %_ptr_Function_float Function %35
          %15 = OpLoad %7 %arg_1
          %16 = OpLoad %3 %arg_0
          %18 = OpSampledImage %17 %16 %15
-         %21 = OpConvertUToF %float %uint_1
-         %24 = OpCompositeConstruct %v3float %float_0 %float_0 %21
-         %13 = OpImageSampleImplicitLod %v4float %18 %24 ConstOffset %27
+         %23 = OpCompositeExtract %float %22 0
+         %24 = OpCompositeExtract %float %22 1
+         %25 = OpConvertUToF %float %uint_1
+         %28 = OpCompositeConstruct %v3float %23 %24 %25
+         %13 = OpImageSampleImplicitLod %v4float %18 %28 ConstOffset %32
          %12 = OpCompositeExtract %float %13 0
                OpStore %res %12
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %8
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureSample_4703d0
+         %37 = OpLabel
+         %38 = OpFunctionCall %void %textureSample_4703d0
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureSample/4703d0.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSample/4703d0.wgsl.expected.wgsl
index 0ee6598..26fc828 100644
--- a/test/tint/builtins/gen/literal/textureSample/4703d0.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSample/4703d0.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(1) var arg_1 : sampler;
 
 fn textureSample_4703d0() {
-  var res : f32 = textureSample(arg_0, arg_1, vec2<f32>(), 1u, vec2<i32>());
+  var res : f32 = textureSample(arg_0, arg_1, vec2<f32>(1.0f), 1u, vec2<i32>(1i));
 }
 
 @fragment
diff --git a/test/tint/builtins/gen/literal/textureSample/4dd1bf.wgsl b/test/tint/builtins/gen/literal/textureSample/4dd1bf.wgsl
index 2bb8379..a7caecb 100644
--- a/test/tint/builtins/gen/literal/textureSample/4dd1bf.wgsl
+++ b/test/tint/builtins/gen/literal/textureSample/4dd1bf.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureSample(texture: texture_cube_array<f32>, sampler: sampler, coords: vec3<f32>, array_index: i32) -> vec4<f32>
 fn textureSample_4dd1bf() {
-  var res: vec4<f32> = textureSample(arg_0, arg_1, vec3<f32>(), 1i);
+  var res: vec4<f32> = textureSample(arg_0, arg_1, vec3<f32>(1.f), 1i);
 }
 
 @fragment
diff --git a/test/tint/builtins/gen/literal/textureSample/4dd1bf.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSample/4dd1bf.wgsl.expected.dxc.hlsl
index 47013d2..29b4291 100644
--- a/test/tint/builtins/gen/literal/textureSample/4dd1bf.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSample/4dd1bf.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSample_4dd1bf() {
-  float4 res = arg_0.Sample(arg_1, float4(0.0f, 0.0f, 0.0f, float(1)));
+  float4 res = arg_0.Sample(arg_1, float4((1.0f).xxx, float(1)));
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/literal/textureSample/4dd1bf.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSample/4dd1bf.wgsl.expected.fxc.hlsl
index 47013d2..29b4291 100644
--- a/test/tint/builtins/gen/literal/textureSample/4dd1bf.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSample/4dd1bf.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSample_4dd1bf() {
-  float4 res = arg_0.Sample(arg_1, float4(0.0f, 0.0f, 0.0f, float(1)));
+  float4 res = arg_0.Sample(arg_1, float4((1.0f).xxx, float(1)));
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/literal/textureSample/4dd1bf.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureSample/4dd1bf.wgsl.expected.msl
index f392da9..c6fdd3b 100644
--- a/test/tint/builtins/gen/literal/textureSample/4dd1bf.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureSample/4dd1bf.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureSample_4dd1bf(texturecube_array<float, access::sample> tint_symbol, sampler tint_symbol_1) {
-  float4 res = tint_symbol.sample(tint_symbol_1, float3(0.0f), 1);
+  float4 res = tint_symbol.sample(tint_symbol_1, float3(1.0f), 1);
 }
 
 fragment void fragment_main(texturecube_array<float, access::sample> tint_symbol_2 [[texture(0)]], sampler tint_symbol_3 [[sampler(0)]]) {
diff --git a/test/tint/builtins/gen/literal/textureSample/4dd1bf.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSample/4dd1bf.wgsl.expected.spvasm
index d67b63c..5a24085 100644
--- a/test/tint/builtins/gen/literal/textureSample/4dd1bf.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSample/4dd1bf.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 29
+; Bound: 34
 ; Schema: 0
                OpCapability Shader
                OpCapability SampledCubeArray
@@ -28,25 +28,30 @@
           %8 = OpTypeFunction %void
     %v4float = OpTypeVector %float 4
          %16 = OpTypeSampledImage %3
-    %float_0 = OpConstant %float 0
+    %v3float = OpTypeVector %float 3
+    %float_1 = OpConstant %float 1
+         %20 = OpConstantComposite %v3float %float_1 %float_1 %float_1
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %25 = OpConstantNull %v4float
+         %30 = OpConstantNull %v4float
 %textureSample_4dd1bf = OpFunction %void None %8
          %11 = OpLabel
-        %res = OpVariable %_ptr_Function_v4float Function %25
+        %res = OpVariable %_ptr_Function_v4float Function %30
          %14 = OpLoad %7 %arg_1
          %15 = OpLoad %3 %arg_0
          %17 = OpSampledImage %16 %15 %14
-         %19 = OpConvertSToF %float %int_1
-         %22 = OpCompositeConstruct %v4float %float_0 %float_0 %float_0 %19
-         %12 = OpImageSampleImplicitLod %v4float %17 %22
+         %21 = OpCompositeExtract %float %20 0
+         %22 = OpCompositeExtract %float %20 1
+         %23 = OpCompositeExtract %float %20 2
+         %24 = OpConvertSToF %float %int_1
+         %27 = OpCompositeConstruct %v4float %21 %22 %23 %24
+         %12 = OpImageSampleImplicitLod %v4float %17 %27
                OpStore %res %12
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %8
-         %27 = OpLabel
-         %28 = OpFunctionCall %void %textureSample_4dd1bf
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %textureSample_4dd1bf
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureSample/4dd1bf.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSample/4dd1bf.wgsl.expected.wgsl
index cdeb313..8c22933 100644
--- a/test/tint/builtins/gen/literal/textureSample/4dd1bf.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSample/4dd1bf.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(1) var arg_1 : sampler;
 
 fn textureSample_4dd1bf() {
-  var res : vec4<f32> = textureSample(arg_0, arg_1, vec3<f32>(), 1i);
+  var res : vec4<f32> = textureSample(arg_0, arg_1, vec3<f32>(1.0f), 1i);
 }
 
 @fragment
diff --git a/test/tint/builtins/gen/literal/textureSample/51b514.wgsl b/test/tint/builtins/gen/literal/textureSample/51b514.wgsl
index e3eed03..c896790 100644
--- a/test/tint/builtins/gen/literal/textureSample/51b514.wgsl
+++ b/test/tint/builtins/gen/literal/textureSample/51b514.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureSample(texture: texture_2d<f32>, sampler: sampler, coords: vec2<f32>) -> vec4<f32>
 fn textureSample_51b514() {
-  var res: vec4<f32> = textureSample(arg_0, arg_1, vec2<f32>());
+  var res: vec4<f32> = textureSample(arg_0, arg_1, vec2<f32>(1.f));
 }
 
 @fragment
diff --git a/test/tint/builtins/gen/literal/textureSample/51b514.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSample/51b514.wgsl.expected.dxc.hlsl
index 68aa5c7..f2a4363 100644
--- a/test/tint/builtins/gen/literal/textureSample/51b514.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSample/51b514.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSample_51b514() {
-  float4 res = arg_0.Sample(arg_1, (0.0f).xx);
+  float4 res = arg_0.Sample(arg_1, (1.0f).xx);
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/literal/textureSample/51b514.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSample/51b514.wgsl.expected.fxc.hlsl
index 68aa5c7..f2a4363 100644
--- a/test/tint/builtins/gen/literal/textureSample/51b514.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSample/51b514.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSample_51b514() {
-  float4 res = arg_0.Sample(arg_1, (0.0f).xx);
+  float4 res = arg_0.Sample(arg_1, (1.0f).xx);
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/literal/textureSample/51b514.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureSample/51b514.wgsl.expected.glsl
index b04d681..f342935 100644
--- a/test/tint/builtins/gen/literal/textureSample/51b514.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureSample/51b514.wgsl.expected.glsl
@@ -4,7 +4,7 @@
 uniform highp sampler2D arg_0_arg_1;
 
 void textureSample_51b514() {
-  vec4 res = texture(arg_0_arg_1, vec2(0.0f));
+  vec4 res = texture(arg_0_arg_1, vec2(1.0f));
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/literal/textureSample/51b514.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureSample/51b514.wgsl.expected.msl
index a8e99fb..fc21a11 100644
--- a/test/tint/builtins/gen/literal/textureSample/51b514.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureSample/51b514.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureSample_51b514(texture2d<float, access::sample> tint_symbol, sampler tint_symbol_1) {
-  float4 res = tint_symbol.sample(tint_symbol_1, float2(0.0f));
+  float4 res = tint_symbol.sample(tint_symbol_1, float2(1.0f));
 }
 
 fragment void fragment_main(texture2d<float, access::sample> tint_symbol_2 [[texture(0)]], sampler tint_symbol_3 [[sampler(0)]]) {
diff --git a/test/tint/builtins/gen/literal/textureSample/51b514.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSample/51b514.wgsl.expected.spvasm
index a7f4db5..c60d0d9 100644
--- a/test/tint/builtins/gen/literal/textureSample/51b514.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSample/51b514.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 26
+; Bound: 27
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -28,21 +28,22 @@
     %v4float = OpTypeVector %float 4
          %16 = OpTypeSampledImage %3
     %v2float = OpTypeVector %float 2
-         %19 = OpConstantNull %v2float
+    %float_1 = OpConstant %float 1
+         %20 = OpConstantComposite %v2float %float_1 %float_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %22 = OpConstantNull %v4float
+         %23 = OpConstantNull %v4float
 %textureSample_51b514 = OpFunction %void None %8
          %11 = OpLabel
-        %res = OpVariable %_ptr_Function_v4float Function %22
+        %res = OpVariable %_ptr_Function_v4float Function %23
          %14 = OpLoad %7 %arg_1
          %15 = OpLoad %3 %arg_0
          %17 = OpSampledImage %16 %15 %14
-         %12 = OpImageSampleImplicitLod %v4float %17 %19
+         %12 = OpImageSampleImplicitLod %v4float %17 %20
                OpStore %res %12
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %8
-         %24 = OpLabel
-         %25 = OpFunctionCall %void %textureSample_51b514
+         %25 = OpLabel
+         %26 = OpFunctionCall %void %textureSample_51b514
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureSample/51b514.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSample/51b514.wgsl.expected.wgsl
index 7a5e264..f2c44d4 100644
--- a/test/tint/builtins/gen/literal/textureSample/51b514.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSample/51b514.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(1) var arg_1 : sampler;
 
 fn textureSample_51b514() {
-  var res : vec4<f32> = textureSample(arg_0, arg_1, vec2<f32>());
+  var res : vec4<f32> = textureSample(arg_0, arg_1, vec2<f32>(1.0f));
 }
 
 @fragment
diff --git a/test/tint/builtins/gen/literal/textureSample/60bf45.wgsl b/test/tint/builtins/gen/literal/textureSample/60bf45.wgsl
index b6c5824..c7b3649 100644
--- a/test/tint/builtins/gen/literal/textureSample/60bf45.wgsl
+++ b/test/tint/builtins/gen/literal/textureSample/60bf45.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureSample(texture: texture_depth_2d_array, sampler: sampler, coords: vec2<f32>, array_index: i32, @const offset: vec2<i32>) -> f32
 fn textureSample_60bf45() {
-  var res: f32 = textureSample(arg_0, arg_1, vec2<f32>(), 1i, vec2<i32>());
+  var res: f32 = textureSample(arg_0, arg_1, vec2<f32>(1.f), 1i, vec2<i32>(1i));
 }
 
 @fragment
diff --git a/test/tint/builtins/gen/literal/textureSample/60bf45.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSample/60bf45.wgsl.expected.dxc.hlsl
index 0575d77..cd9ed54 100644
--- a/test/tint/builtins/gen/literal/textureSample/60bf45.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSample/60bf45.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSample_60bf45() {
-  float res = arg_0.Sample(arg_1, float3(0.0f, 0.0f, float(1)), (0).xx).x;
+  float res = arg_0.Sample(arg_1, float3((1.0f).xx, float(1)), (1).xx).x;
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/literal/textureSample/60bf45.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSample/60bf45.wgsl.expected.fxc.hlsl
index 0575d77..cd9ed54 100644
--- a/test/tint/builtins/gen/literal/textureSample/60bf45.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSample/60bf45.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSample_60bf45() {
-  float res = arg_0.Sample(arg_1, float3(0.0f, 0.0f, float(1)), (0).xx).x;
+  float res = arg_0.Sample(arg_1, float3((1.0f).xx, float(1)), (1).xx).x;
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/literal/textureSample/60bf45.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureSample/60bf45.wgsl.expected.msl
index 20593ce..a1c4154 100644
--- a/test/tint/builtins/gen/literal/textureSample/60bf45.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureSample/60bf45.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureSample_60bf45(depth2d_array<float, access::sample> tint_symbol, sampler tint_symbol_1) {
-  float res = tint_symbol.sample(tint_symbol_1, float2(0.0f), 1, int2(0));
+  float res = tint_symbol.sample(tint_symbol_1, float2(1.0f), 1, int2(1));
 }
 
 fragment void fragment_main(depth2d_array<float, access::sample> tint_symbol_2 [[texture(0)]], sampler tint_symbol_3 [[sampler(0)]]) {
diff --git a/test/tint/builtins/gen/literal/textureSample/60bf45.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSample/60bf45.wgsl.expected.spvasm
index 966d12d..07330a4 100644
--- a/test/tint/builtins/gen/literal/textureSample/60bf45.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSample/60bf45.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 33
+; Bound: 37
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -28,28 +28,32 @@
     %v4float = OpTypeVector %float 4
          %17 = OpTypeSampledImage %3
     %v3float = OpTypeVector %float 3
-    %float_0 = OpConstant %float 0
+    %v2float = OpTypeVector %float 2
+    %float_1 = OpConstant %float 1
+         %22 = OpConstantComposite %v2float %float_1 %float_1
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
       %v2int = OpTypeVector %int 2
-         %26 = OpConstantNull %v2int
+         %30 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_float = OpTypePointer Function %float
-         %29 = OpConstantNull %float
+         %33 = OpConstantNull %float
 %textureSample_60bf45 = OpFunction %void None %8
          %11 = OpLabel
-        %res = OpVariable %_ptr_Function_float Function %29
+        %res = OpVariable %_ptr_Function_float Function %33
          %15 = OpLoad %7 %arg_1
          %16 = OpLoad %3 %arg_0
          %18 = OpSampledImage %17 %16 %15
-         %21 = OpConvertSToF %float %int_1
-         %24 = OpCompositeConstruct %v3float %float_0 %float_0 %21
-         %13 = OpImageSampleImplicitLod %v4float %18 %24 ConstOffset %26
+         %23 = OpCompositeExtract %float %22 0
+         %24 = OpCompositeExtract %float %22 1
+         %25 = OpConvertSToF %float %int_1
+         %28 = OpCompositeConstruct %v3float %23 %24 %25
+         %13 = OpImageSampleImplicitLod %v4float %18 %28 ConstOffset %30
          %12 = OpCompositeExtract %float %13 0
                OpStore %res %12
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %8
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %textureSample_60bf45
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureSample_60bf45
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureSample/60bf45.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSample/60bf45.wgsl.expected.wgsl
index 1f8b519..1ad211e 100644
--- a/test/tint/builtins/gen/literal/textureSample/60bf45.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSample/60bf45.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(1) var arg_1 : sampler;
 
 fn textureSample_60bf45() {
-  var res : f32 = textureSample(arg_0, arg_1, vec2<f32>(), 1i, vec2<i32>());
+  var res : f32 = textureSample(arg_0, arg_1, vec2<f32>(1.0f), 1i, vec2<i32>(1i));
 }
 
 @fragment
diff --git a/test/tint/builtins/gen/literal/textureSample/6717ca.wgsl b/test/tint/builtins/gen/literal/textureSample/6717ca.wgsl
index a4919ef..d0f47d7 100644
--- a/test/tint/builtins/gen/literal/textureSample/6717ca.wgsl
+++ b/test/tint/builtins/gen/literal/textureSample/6717ca.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureSample(texture: texture_2d_array<f32>, sampler: sampler, coords: vec2<f32>, array_index: i32) -> vec4<f32>
 fn textureSample_6717ca() {
-  var res: vec4<f32> = textureSample(arg_0, arg_1, vec2<f32>(), 1i);
+  var res: vec4<f32> = textureSample(arg_0, arg_1, vec2<f32>(1.f), 1i);
 }
 
 @fragment
diff --git a/test/tint/builtins/gen/literal/textureSample/6717ca.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSample/6717ca.wgsl.expected.dxc.hlsl
index 7b1e6e4..7bb8465 100644
--- a/test/tint/builtins/gen/literal/textureSample/6717ca.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSample/6717ca.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSample_6717ca() {
-  float4 res = arg_0.Sample(arg_1, float3(0.0f, 0.0f, float(1)));
+  float4 res = arg_0.Sample(arg_1, float3((1.0f).xx, float(1)));
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/literal/textureSample/6717ca.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSample/6717ca.wgsl.expected.fxc.hlsl
index 7b1e6e4..7bb8465 100644
--- a/test/tint/builtins/gen/literal/textureSample/6717ca.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSample/6717ca.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSample_6717ca() {
-  float4 res = arg_0.Sample(arg_1, float3(0.0f, 0.0f, float(1)));
+  float4 res = arg_0.Sample(arg_1, float3((1.0f).xx, float(1)));
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/literal/textureSample/6717ca.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureSample/6717ca.wgsl.expected.glsl
index 2698d8d..2a02847 100644
--- a/test/tint/builtins/gen/literal/textureSample/6717ca.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureSample/6717ca.wgsl.expected.glsl
@@ -4,7 +4,7 @@
 uniform highp sampler2DArray arg_0_arg_1;
 
 void textureSample_6717ca() {
-  vec4 res = texture(arg_0_arg_1, vec3(0.0f, 0.0f, float(1)));
+  vec4 res = texture(arg_0_arg_1, vec3(vec2(1.0f), float(1)));
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/literal/textureSample/6717ca.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureSample/6717ca.wgsl.expected.msl
index aa18356..4d43b99 100644
--- a/test/tint/builtins/gen/literal/textureSample/6717ca.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureSample/6717ca.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureSample_6717ca(texture2d_array<float, access::sample> tint_symbol, sampler tint_symbol_1) {
-  float4 res = tint_symbol.sample(tint_symbol_1, float2(0.0f), 1);
+  float4 res = tint_symbol.sample(tint_symbol_1, float2(1.0f), 1);
 }
 
 fragment void fragment_main(texture2d_array<float, access::sample> tint_symbol_2 [[texture(0)]], sampler tint_symbol_3 [[sampler(0)]]) {
diff --git a/test/tint/builtins/gen/literal/textureSample/6717ca.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSample/6717ca.wgsl.expected.spvasm
index 9a6f969..791030f 100644
--- a/test/tint/builtins/gen/literal/textureSample/6717ca.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSample/6717ca.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 30
+; Bound: 34
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -28,25 +28,29 @@
     %v4float = OpTypeVector %float 4
          %16 = OpTypeSampledImage %3
     %v3float = OpTypeVector %float 3
-    %float_0 = OpConstant %float 0
+    %v2float = OpTypeVector %float 2
+    %float_1 = OpConstant %float 1
+         %21 = OpConstantComposite %v2float %float_1 %float_1
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %26 = OpConstantNull %v4float
+         %30 = OpConstantNull %v4float
 %textureSample_6717ca = OpFunction %void None %8
          %11 = OpLabel
-        %res = OpVariable %_ptr_Function_v4float Function %26
+        %res = OpVariable %_ptr_Function_v4float Function %30
          %14 = OpLoad %7 %arg_1
          %15 = OpLoad %3 %arg_0
          %17 = OpSampledImage %16 %15 %14
-         %20 = OpConvertSToF %float %int_1
-         %23 = OpCompositeConstruct %v3float %float_0 %float_0 %20
-         %12 = OpImageSampleImplicitLod %v4float %17 %23
+         %22 = OpCompositeExtract %float %21 0
+         %23 = OpCompositeExtract %float %21 1
+         %24 = OpConvertSToF %float %int_1
+         %27 = OpCompositeConstruct %v3float %22 %23 %24
+         %12 = OpImageSampleImplicitLod %v4float %17 %27
                OpStore %res %12
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %8
-         %28 = OpLabel
-         %29 = OpFunctionCall %void %textureSample_6717ca
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %textureSample_6717ca
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureSample/6717ca.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSample/6717ca.wgsl.expected.wgsl
index 76ba9f7..294089d 100644
--- a/test/tint/builtins/gen/literal/textureSample/6717ca.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSample/6717ca.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(1) var arg_1 : sampler;
 
 fn textureSample_6717ca() {
-  var res : vec4<f32> = textureSample(arg_0, arg_1, vec2<f32>(), 1i);
+  var res : vec4<f32> = textureSample(arg_0, arg_1, vec2<f32>(1.0f), 1i);
 }
 
 @fragment
diff --git a/test/tint/builtins/gen/literal/textureSample/7e9ffd.wgsl b/test/tint/builtins/gen/literal/textureSample/7e9ffd.wgsl
index f774b5e..e59e22d 100644
--- a/test/tint/builtins/gen/literal/textureSample/7e9ffd.wgsl
+++ b/test/tint/builtins/gen/literal/textureSample/7e9ffd.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureSample(texture: texture_depth_2d_array, sampler: sampler, coords: vec2<f32>, array_index: i32) -> f32
 fn textureSample_7e9ffd() {
-  var res: f32 = textureSample(arg_0, arg_1, vec2<f32>(), 1i);
+  var res: f32 = textureSample(arg_0, arg_1, vec2<f32>(1.f), 1i);
 }
 
 @fragment
diff --git a/test/tint/builtins/gen/literal/textureSample/7e9ffd.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSample/7e9ffd.wgsl.expected.dxc.hlsl
index b316713..ca968eb 100644
--- a/test/tint/builtins/gen/literal/textureSample/7e9ffd.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSample/7e9ffd.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSample_7e9ffd() {
-  float res = arg_0.Sample(arg_1, float3(0.0f, 0.0f, float(1))).x;
+  float res = arg_0.Sample(arg_1, float3((1.0f).xx, float(1))).x;
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/literal/textureSample/7e9ffd.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSample/7e9ffd.wgsl.expected.fxc.hlsl
index b316713..ca968eb 100644
--- a/test/tint/builtins/gen/literal/textureSample/7e9ffd.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSample/7e9ffd.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSample_7e9ffd() {
-  float res = arg_0.Sample(arg_1, float3(0.0f, 0.0f, float(1))).x;
+  float res = arg_0.Sample(arg_1, float3((1.0f).xx, float(1))).x;
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/literal/textureSample/7e9ffd.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureSample/7e9ffd.wgsl.expected.glsl
index 08b4dee..71f476b 100644
--- a/test/tint/builtins/gen/literal/textureSample/7e9ffd.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureSample/7e9ffd.wgsl.expected.glsl
@@ -4,7 +4,7 @@
 uniform highp sampler2DArrayShadow arg_0_arg_1;
 
 void textureSample_7e9ffd() {
-  float res = texture(arg_0_arg_1, vec4(0.0f, 0.0f, float(1), 0.0f));
+  float res = texture(arg_0_arg_1, vec4(vec3(vec2(1.0f), float(1)), 0.0f));
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/literal/textureSample/7e9ffd.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureSample/7e9ffd.wgsl.expected.msl
index 7ed4a39..0c46324 100644
--- a/test/tint/builtins/gen/literal/textureSample/7e9ffd.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureSample/7e9ffd.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureSample_7e9ffd(depth2d_array<float, access::sample> tint_symbol, sampler tint_symbol_1) {
-  float res = tint_symbol.sample(tint_symbol_1, float2(0.0f), 1);
+  float res = tint_symbol.sample(tint_symbol_1, float2(1.0f), 1);
 }
 
 fragment void fragment_main(depth2d_array<float, access::sample> tint_symbol_2 [[texture(0)]], sampler tint_symbol_3 [[sampler(0)]]) {
diff --git a/test/tint/builtins/gen/literal/textureSample/7e9ffd.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSample/7e9ffd.wgsl.expected.spvasm
index 313d27d..78b2484 100644
--- a/test/tint/builtins/gen/literal/textureSample/7e9ffd.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSample/7e9ffd.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 31
+; Bound: 35
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -28,26 +28,30 @@
     %v4float = OpTypeVector %float 4
          %17 = OpTypeSampledImage %3
     %v3float = OpTypeVector %float 3
-    %float_0 = OpConstant %float 0
+    %v2float = OpTypeVector %float 2
+    %float_1 = OpConstant %float 1
+         %22 = OpConstantComposite %v2float %float_1 %float_1
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_float = OpTypePointer Function %float
-         %27 = OpConstantNull %float
+         %31 = OpConstantNull %float
 %textureSample_7e9ffd = OpFunction %void None %8
          %11 = OpLabel
-        %res = OpVariable %_ptr_Function_float Function %27
+        %res = OpVariable %_ptr_Function_float Function %31
          %15 = OpLoad %7 %arg_1
          %16 = OpLoad %3 %arg_0
          %18 = OpSampledImage %17 %16 %15
-         %21 = OpConvertSToF %float %int_1
-         %24 = OpCompositeConstruct %v3float %float_0 %float_0 %21
-         %13 = OpImageSampleImplicitLod %v4float %18 %24
+         %23 = OpCompositeExtract %float %22 0
+         %24 = OpCompositeExtract %float %22 1
+         %25 = OpConvertSToF %float %int_1
+         %28 = OpCompositeConstruct %v3float %23 %24 %25
+         %13 = OpImageSampleImplicitLod %v4float %18 %28
          %12 = OpCompositeExtract %float %13 0
                OpStore %res %12
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %8
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %textureSample_7e9ffd
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureSample_7e9ffd
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureSample/7e9ffd.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSample/7e9ffd.wgsl.expected.wgsl
index 1332fda..7b6b971 100644
--- a/test/tint/builtins/gen/literal/textureSample/7e9ffd.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSample/7e9ffd.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(1) var arg_1 : sampler;
 
 fn textureSample_7e9ffd() {
-  var res : f32 = textureSample(arg_0, arg_1, vec2<f32>(), 1i);
+  var res : f32 = textureSample(arg_0, arg_1, vec2<f32>(1.0f), 1i);
 }
 
 @fragment
diff --git a/test/tint/builtins/gen/literal/textureSample/7fd8cb.wgsl b/test/tint/builtins/gen/literal/textureSample/7fd8cb.wgsl
index f9375b6..e6e7dac 100644
--- a/test/tint/builtins/gen/literal/textureSample/7fd8cb.wgsl
+++ b/test/tint/builtins/gen/literal/textureSample/7fd8cb.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureSample(texture: texture_depth_cube_array, sampler: sampler, coords: vec3<f32>, array_index: u32) -> f32
 fn textureSample_7fd8cb() {
-  var res: f32 = textureSample(arg_0, arg_1, vec3<f32>(), 1u);
+  var res: f32 = textureSample(arg_0, arg_1, vec3<f32>(1.f), 1u);
 }
 
 @fragment
diff --git a/test/tint/builtins/gen/literal/textureSample/7fd8cb.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSample/7fd8cb.wgsl.expected.dxc.hlsl
index b5845ec..72ac331 100644
--- a/test/tint/builtins/gen/literal/textureSample/7fd8cb.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSample/7fd8cb.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSample_7fd8cb() {
-  float res = arg_0.Sample(arg_1, float4(0.0f, 0.0f, 0.0f, float(1u))).x;
+  float res = arg_0.Sample(arg_1, float4((1.0f).xxx, float(1u))).x;
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/literal/textureSample/7fd8cb.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSample/7fd8cb.wgsl.expected.fxc.hlsl
index b5845ec..72ac331 100644
--- a/test/tint/builtins/gen/literal/textureSample/7fd8cb.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSample/7fd8cb.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSample_7fd8cb() {
-  float res = arg_0.Sample(arg_1, float4(0.0f, 0.0f, 0.0f, float(1u))).x;
+  float res = arg_0.Sample(arg_1, float4((1.0f).xxx, float(1u))).x;
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/literal/textureSample/7fd8cb.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureSample/7fd8cb.wgsl.expected.msl
index d3e7dae..b4a8598 100644
--- a/test/tint/builtins/gen/literal/textureSample/7fd8cb.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureSample/7fd8cb.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureSample_7fd8cb(depthcube_array<float, access::sample> tint_symbol, sampler tint_symbol_1) {
-  float res = tint_symbol.sample(tint_symbol_1, float3(0.0f), 1u);
+  float res = tint_symbol.sample(tint_symbol_1, float3(1.0f), 1u);
 }
 
 fragment void fragment_main(depthcube_array<float, access::sample> tint_symbol_2 [[texture(0)]], sampler tint_symbol_3 [[sampler(0)]]) {
diff --git a/test/tint/builtins/gen/literal/textureSample/7fd8cb.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSample/7fd8cb.wgsl.expected.spvasm
index bf1bc8b..dd12402 100644
--- a/test/tint/builtins/gen/literal/textureSample/7fd8cb.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSample/7fd8cb.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 30
+; Bound: 35
 ; Schema: 0
                OpCapability Shader
                OpCapability SampledCubeArray
@@ -28,26 +28,31 @@
           %8 = OpTypeFunction %void
     %v4float = OpTypeVector %float 4
          %17 = OpTypeSampledImage %3
-    %float_0 = OpConstant %float 0
+    %v3float = OpTypeVector %float 3
+    %float_1 = OpConstant %float 1
+         %21 = OpConstantComposite %v3float %float_1 %float_1 %float_1
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_float = OpTypePointer Function %float
-         %26 = OpConstantNull %float
+         %31 = OpConstantNull %float
 %textureSample_7fd8cb = OpFunction %void None %8
          %11 = OpLabel
-        %res = OpVariable %_ptr_Function_float Function %26
+        %res = OpVariable %_ptr_Function_float Function %31
          %15 = OpLoad %7 %arg_1
          %16 = OpLoad %3 %arg_0
          %18 = OpSampledImage %17 %16 %15
-         %20 = OpConvertUToF %float %uint_1
-         %23 = OpCompositeConstruct %v4float %float_0 %float_0 %float_0 %20
-         %13 = OpImageSampleImplicitLod %v4float %18 %23
+         %22 = OpCompositeExtract %float %21 0
+         %23 = OpCompositeExtract %float %21 1
+         %24 = OpCompositeExtract %float %21 2
+         %25 = OpConvertUToF %float %uint_1
+         %28 = OpCompositeConstruct %v4float %22 %23 %24 %25
+         %13 = OpImageSampleImplicitLod %v4float %18 %28
          %12 = OpCompositeExtract %float %13 0
                OpStore %res %12
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %8
-         %28 = OpLabel
-         %29 = OpFunctionCall %void %textureSample_7fd8cb
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureSample_7fd8cb
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureSample/7fd8cb.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSample/7fd8cb.wgsl.expected.wgsl
index 113fb82..efb9aa8 100644
--- a/test/tint/builtins/gen/literal/textureSample/7fd8cb.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSample/7fd8cb.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(1) var arg_1 : sampler;
 
 fn textureSample_7fd8cb() {
-  var res : f32 = textureSample(arg_0, arg_1, vec3<f32>(), 1u);
+  var res : f32 = textureSample(arg_0, arg_1, vec3<f32>(1.0f), 1u);
 }
 
 @fragment
diff --git a/test/tint/builtins/gen/literal/textureSample/85c4ba.wgsl b/test/tint/builtins/gen/literal/textureSample/85c4ba.wgsl
index da9893c..62b34f6 100644
--- a/test/tint/builtins/gen/literal/textureSample/85c4ba.wgsl
+++ b/test/tint/builtins/gen/literal/textureSample/85c4ba.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureSample(texture: texture_2d<f32>, sampler: sampler, coords: vec2<f32>, @const offset: vec2<i32>) -> vec4<f32>
 fn textureSample_85c4ba() {
-  var res: vec4<f32> = textureSample(arg_0, arg_1, vec2<f32>(), vec2<i32>());
+  var res: vec4<f32> = textureSample(arg_0, arg_1, vec2<f32>(1.f), vec2<i32>(1i));
 }
 
 @fragment
diff --git a/test/tint/builtins/gen/literal/textureSample/85c4ba.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSample/85c4ba.wgsl.expected.dxc.hlsl
index f43541c..7805be0 100644
--- a/test/tint/builtins/gen/literal/textureSample/85c4ba.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSample/85c4ba.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSample_85c4ba() {
-  float4 res = arg_0.Sample(arg_1, (0.0f).xx, (0).xx);
+  float4 res = arg_0.Sample(arg_1, (1.0f).xx, (1).xx);
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/literal/textureSample/85c4ba.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSample/85c4ba.wgsl.expected.fxc.hlsl
index f43541c..7805be0 100644
--- a/test/tint/builtins/gen/literal/textureSample/85c4ba.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSample/85c4ba.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSample_85c4ba() {
-  float4 res = arg_0.Sample(arg_1, (0.0f).xx, (0).xx);
+  float4 res = arg_0.Sample(arg_1, (1.0f).xx, (1).xx);
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/literal/textureSample/85c4ba.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureSample/85c4ba.wgsl.expected.glsl
index 9c7c7b3..d2c3fdf 100644
--- a/test/tint/builtins/gen/literal/textureSample/85c4ba.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureSample/85c4ba.wgsl.expected.glsl
@@ -4,7 +4,7 @@
 uniform highp sampler2D arg_0_arg_1;
 
 void textureSample_85c4ba() {
-  vec4 res = textureOffset(arg_0_arg_1, vec2(0.0f), ivec2(0));
+  vec4 res = textureOffset(arg_0_arg_1, vec2(1.0f), ivec2(1));
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/literal/textureSample/85c4ba.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureSample/85c4ba.wgsl.expected.msl
index 50844e3..8166410 100644
--- a/test/tint/builtins/gen/literal/textureSample/85c4ba.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureSample/85c4ba.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureSample_85c4ba(texture2d<float, access::sample> tint_symbol, sampler tint_symbol_1) {
-  float4 res = tint_symbol.sample(tint_symbol_1, float2(0.0f), int2(0));
+  float4 res = tint_symbol.sample(tint_symbol_1, float2(1.0f), int2(1));
 }
 
 fragment void fragment_main(texture2d<float, access::sample> tint_symbol_2 [[texture(0)]], sampler tint_symbol_3 [[sampler(0)]]) {
diff --git a/test/tint/builtins/gen/literal/textureSample/85c4ba.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSample/85c4ba.wgsl.expected.spvasm
index 17a25fc..c10c796 100644
--- a/test/tint/builtins/gen/literal/textureSample/85c4ba.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSample/85c4ba.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
@@ -28,24 +28,26 @@
     %v4float = OpTypeVector %float 4
          %16 = OpTypeSampledImage %3
     %v2float = OpTypeVector %float 2
-         %19 = OpConstantNull %v2float
+    %float_1 = OpConstant %float 1
+         %20 = OpConstantComposite %v2float %float_1 %float_1
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
-         %22 = OpConstantNull %v2int
+      %int_1 = OpConstant %int 1
+         %24 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %25 = OpConstantNull %v4float
+         %27 = OpConstantNull %v4float
 %textureSample_85c4ba = OpFunction %void None %8
          %11 = OpLabel
-        %res = OpVariable %_ptr_Function_v4float Function %25
+        %res = OpVariable %_ptr_Function_v4float Function %27
          %14 = OpLoad %7 %arg_1
          %15 = OpLoad %3 %arg_0
          %17 = OpSampledImage %16 %15 %14
-         %12 = OpImageSampleImplicitLod %v4float %17 %19 ConstOffset %22
+         %12 = OpImageSampleImplicitLod %v4float %17 %20 ConstOffset %24
                OpStore %res %12
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %8
-         %27 = OpLabel
-         %28 = OpFunctionCall %void %textureSample_85c4ba
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %textureSample_85c4ba
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureSample/85c4ba.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSample/85c4ba.wgsl.expected.wgsl
index 8d23c15..aadd3ad 100644
--- a/test/tint/builtins/gen/literal/textureSample/85c4ba.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSample/85c4ba.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(1) var arg_1 : sampler;
 
 fn textureSample_85c4ba() {
-  var res : vec4<f32> = textureSample(arg_0, arg_1, vec2<f32>(), vec2<i32>());
+  var res : vec4<f32> = textureSample(arg_0, arg_1, vec2<f32>(1.0f), vec2<i32>(1i));
 }
 
 @fragment
diff --git a/test/tint/builtins/gen/literal/textureSample/bc7477.wgsl b/test/tint/builtins/gen/literal/textureSample/bc7477.wgsl
index b1003d5..44f9a7f 100644
--- a/test/tint/builtins/gen/literal/textureSample/bc7477.wgsl
+++ b/test/tint/builtins/gen/literal/textureSample/bc7477.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureSample(texture: texture_cube_array<f32>, sampler: sampler, coords: vec3<f32>, array_index: u32) -> vec4<f32>
 fn textureSample_bc7477() {
-  var res: vec4<f32> = textureSample(arg_0, arg_1, vec3<f32>(), 1u);
+  var res: vec4<f32> = textureSample(arg_0, arg_1, vec3<f32>(1.f), 1u);
 }
 
 @fragment
diff --git a/test/tint/builtins/gen/literal/textureSample/bc7477.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSample/bc7477.wgsl.expected.dxc.hlsl
index 9a8aa64..77241f8 100644
--- a/test/tint/builtins/gen/literal/textureSample/bc7477.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSample/bc7477.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSample_bc7477() {
-  float4 res = arg_0.Sample(arg_1, float4(0.0f, 0.0f, 0.0f, float(1u)));
+  float4 res = arg_0.Sample(arg_1, float4((1.0f).xxx, float(1u)));
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/literal/textureSample/bc7477.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSample/bc7477.wgsl.expected.fxc.hlsl
index 9a8aa64..77241f8 100644
--- a/test/tint/builtins/gen/literal/textureSample/bc7477.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSample/bc7477.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSample_bc7477() {
-  float4 res = arg_0.Sample(arg_1, float4(0.0f, 0.0f, 0.0f, float(1u)));
+  float4 res = arg_0.Sample(arg_1, float4((1.0f).xxx, float(1u)));
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/literal/textureSample/bc7477.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureSample/bc7477.wgsl.expected.msl
index e106ef0..8391338 100644
--- a/test/tint/builtins/gen/literal/textureSample/bc7477.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureSample/bc7477.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureSample_bc7477(texturecube_array<float, access::sample> tint_symbol, sampler tint_symbol_1) {
-  float4 res = tint_symbol.sample(tint_symbol_1, float3(0.0f), 1u);
+  float4 res = tint_symbol.sample(tint_symbol_1, float3(1.0f), 1u);
 }
 
 fragment void fragment_main(texturecube_array<float, access::sample> tint_symbol_2 [[texture(0)]], sampler tint_symbol_3 [[sampler(0)]]) {
diff --git a/test/tint/builtins/gen/literal/textureSample/bc7477.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSample/bc7477.wgsl.expected.spvasm
index 5c437e0..f4bea58 100644
--- a/test/tint/builtins/gen/literal/textureSample/bc7477.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSample/bc7477.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 29
+; Bound: 34
 ; Schema: 0
                OpCapability Shader
                OpCapability SampledCubeArray
@@ -28,25 +28,30 @@
           %8 = OpTypeFunction %void
     %v4float = OpTypeVector %float 4
          %16 = OpTypeSampledImage %3
-    %float_0 = OpConstant %float 0
+    %v3float = OpTypeVector %float 3
+    %float_1 = OpConstant %float 1
+         %20 = OpConstantComposite %v3float %float_1 %float_1 %float_1
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %25 = OpConstantNull %v4float
+         %30 = OpConstantNull %v4float
 %textureSample_bc7477 = OpFunction %void None %8
          %11 = OpLabel
-        %res = OpVariable %_ptr_Function_v4float Function %25
+        %res = OpVariable %_ptr_Function_v4float Function %30
          %14 = OpLoad %7 %arg_1
          %15 = OpLoad %3 %arg_0
          %17 = OpSampledImage %16 %15 %14
-         %19 = OpConvertUToF %float %uint_1
-         %22 = OpCompositeConstruct %v4float %float_0 %float_0 %float_0 %19
-         %12 = OpImageSampleImplicitLod %v4float %17 %22
+         %21 = OpCompositeExtract %float %20 0
+         %22 = OpCompositeExtract %float %20 1
+         %23 = OpCompositeExtract %float %20 2
+         %24 = OpConvertUToF %float %uint_1
+         %27 = OpCompositeConstruct %v4float %21 %22 %23 %24
+         %12 = OpImageSampleImplicitLod %v4float %17 %27
                OpStore %res %12
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %8
-         %27 = OpLabel
-         %28 = OpFunctionCall %void %textureSample_bc7477
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %textureSample_bc7477
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureSample/bc7477.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSample/bc7477.wgsl.expected.wgsl
index ed1eaf5..9dcbcfa 100644
--- a/test/tint/builtins/gen/literal/textureSample/bc7477.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSample/bc7477.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(1) var arg_1 : sampler;
 
 fn textureSample_bc7477() {
-  var res : vec4<f32> = textureSample(arg_0, arg_1, vec3<f32>(), 1u);
+  var res : vec4<f32> = textureSample(arg_0, arg_1, vec3<f32>(1.0f), 1u);
 }
 
 @fragment
diff --git a/test/tint/builtins/gen/literal/textureSample/c2f4e8.wgsl b/test/tint/builtins/gen/literal/textureSample/c2f4e8.wgsl
index 94a4b8c..f694b6d 100644
--- a/test/tint/builtins/gen/literal/textureSample/c2f4e8.wgsl
+++ b/test/tint/builtins/gen/literal/textureSample/c2f4e8.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureSample(texture: texture_depth_cube_array, sampler: sampler, coords: vec3<f32>, array_index: i32) -> f32
 fn textureSample_c2f4e8() {
-  var res: f32 = textureSample(arg_0, arg_1, vec3<f32>(), 1i);
+  var res: f32 = textureSample(arg_0, arg_1, vec3<f32>(1.f), 1i);
 }
 
 @fragment
diff --git a/test/tint/builtins/gen/literal/textureSample/c2f4e8.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSample/c2f4e8.wgsl.expected.dxc.hlsl
index c2eee5a..26b5e6f 100644
--- a/test/tint/builtins/gen/literal/textureSample/c2f4e8.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSample/c2f4e8.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSample_c2f4e8() {
-  float res = arg_0.Sample(arg_1, float4(0.0f, 0.0f, 0.0f, float(1))).x;
+  float res = arg_0.Sample(arg_1, float4((1.0f).xxx, float(1))).x;
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/literal/textureSample/c2f4e8.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSample/c2f4e8.wgsl.expected.fxc.hlsl
index c2eee5a..26b5e6f 100644
--- a/test/tint/builtins/gen/literal/textureSample/c2f4e8.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSample/c2f4e8.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSample_c2f4e8() {
-  float res = arg_0.Sample(arg_1, float4(0.0f, 0.0f, 0.0f, float(1))).x;
+  float res = arg_0.Sample(arg_1, float4((1.0f).xxx, float(1))).x;
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/literal/textureSample/c2f4e8.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureSample/c2f4e8.wgsl.expected.msl
index 812a3e0..27a85f2 100644
--- a/test/tint/builtins/gen/literal/textureSample/c2f4e8.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureSample/c2f4e8.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureSample_c2f4e8(depthcube_array<float, access::sample> tint_symbol, sampler tint_symbol_1) {
-  float res = tint_symbol.sample(tint_symbol_1, float3(0.0f), 1);
+  float res = tint_symbol.sample(tint_symbol_1, float3(1.0f), 1);
 }
 
 fragment void fragment_main(depthcube_array<float, access::sample> tint_symbol_2 [[texture(0)]], sampler tint_symbol_3 [[sampler(0)]]) {
diff --git a/test/tint/builtins/gen/literal/textureSample/c2f4e8.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSample/c2f4e8.wgsl.expected.spvasm
index 8c5f546..fde2213 100644
--- a/test/tint/builtins/gen/literal/textureSample/c2f4e8.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSample/c2f4e8.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 30
+; Bound: 35
 ; Schema: 0
                OpCapability Shader
                OpCapability SampledCubeArray
@@ -28,26 +28,31 @@
           %8 = OpTypeFunction %void
     %v4float = OpTypeVector %float 4
          %17 = OpTypeSampledImage %3
-    %float_0 = OpConstant %float 0
+    %v3float = OpTypeVector %float 3
+    %float_1 = OpConstant %float 1
+         %21 = OpConstantComposite %v3float %float_1 %float_1 %float_1
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_float = OpTypePointer Function %float
-         %26 = OpConstantNull %float
+         %31 = OpConstantNull %float
 %textureSample_c2f4e8 = OpFunction %void None %8
          %11 = OpLabel
-        %res = OpVariable %_ptr_Function_float Function %26
+        %res = OpVariable %_ptr_Function_float Function %31
          %15 = OpLoad %7 %arg_1
          %16 = OpLoad %3 %arg_0
          %18 = OpSampledImage %17 %16 %15
-         %20 = OpConvertSToF %float %int_1
-         %23 = OpCompositeConstruct %v4float %float_0 %float_0 %float_0 %20
-         %13 = OpImageSampleImplicitLod %v4float %18 %23
+         %22 = OpCompositeExtract %float %21 0
+         %23 = OpCompositeExtract %float %21 1
+         %24 = OpCompositeExtract %float %21 2
+         %25 = OpConvertSToF %float %int_1
+         %28 = OpCompositeConstruct %v4float %22 %23 %24 %25
+         %13 = OpImageSampleImplicitLod %v4float %18 %28
          %12 = OpCompositeExtract %float %13 0
                OpStore %res %12
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %8
-         %28 = OpLabel
-         %29 = OpFunctionCall %void %textureSample_c2f4e8
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureSample_c2f4e8
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureSample/c2f4e8.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSample/c2f4e8.wgsl.expected.wgsl
index 30b8049..9d26633 100644
--- a/test/tint/builtins/gen/literal/textureSample/c2f4e8.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSample/c2f4e8.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(1) var arg_1 : sampler;
 
 fn textureSample_c2f4e8() {
-  var res : f32 = textureSample(arg_0, arg_1, vec3<f32>(), 1i);
+  var res : f32 = textureSample(arg_0, arg_1, vec3<f32>(1.0f), 1i);
 }
 
 @fragment
diff --git a/test/tint/builtins/gen/literal/textureSample/d6b281.wgsl b/test/tint/builtins/gen/literal/textureSample/d6b281.wgsl
index a73972e..7aeff75 100644
--- a/test/tint/builtins/gen/literal/textureSample/d6b281.wgsl
+++ b/test/tint/builtins/gen/literal/textureSample/d6b281.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureSample(texture: texture_2d_array<f32>, sampler: sampler, coords: vec2<f32>, array_index: u32) -> vec4<f32>
 fn textureSample_d6b281() {
-  var res: vec4<f32> = textureSample(arg_0, arg_1, vec2<f32>(), 1u);
+  var res: vec4<f32> = textureSample(arg_0, arg_1, vec2<f32>(1.f), 1u);
 }
 
 @fragment
diff --git a/test/tint/builtins/gen/literal/textureSample/d6b281.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSample/d6b281.wgsl.expected.dxc.hlsl
index aea0117..969ed3d 100644
--- a/test/tint/builtins/gen/literal/textureSample/d6b281.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSample/d6b281.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSample_d6b281() {
-  float4 res = arg_0.Sample(arg_1, float3(0.0f, 0.0f, float(1u)));
+  float4 res = arg_0.Sample(arg_1, float3((1.0f).xx, float(1u)));
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/literal/textureSample/d6b281.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSample/d6b281.wgsl.expected.fxc.hlsl
index aea0117..969ed3d 100644
--- a/test/tint/builtins/gen/literal/textureSample/d6b281.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSample/d6b281.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSample_d6b281() {
-  float4 res = arg_0.Sample(arg_1, float3(0.0f, 0.0f, float(1u)));
+  float4 res = arg_0.Sample(arg_1, float3((1.0f).xx, float(1u)));
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/literal/textureSample/d6b281.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureSample/d6b281.wgsl.expected.glsl
index b375b29..e2d3e57 100644
--- a/test/tint/builtins/gen/literal/textureSample/d6b281.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureSample/d6b281.wgsl.expected.glsl
@@ -4,7 +4,7 @@
 uniform highp sampler2DArray arg_0_arg_1;
 
 void textureSample_d6b281() {
-  vec4 res = texture(arg_0_arg_1, vec3(0.0f, 0.0f, float(1u)));
+  vec4 res = texture(arg_0_arg_1, vec3(vec2(1.0f), float(1u)));
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/literal/textureSample/d6b281.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureSample/d6b281.wgsl.expected.msl
index 0819cfe..8f6e17e 100644
--- a/test/tint/builtins/gen/literal/textureSample/d6b281.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureSample/d6b281.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureSample_d6b281(texture2d_array<float, access::sample> tint_symbol, sampler tint_symbol_1) {
-  float4 res = tint_symbol.sample(tint_symbol_1, float2(0.0f), 1u);
+  float4 res = tint_symbol.sample(tint_symbol_1, float2(1.0f), 1u);
 }
 
 fragment void fragment_main(texture2d_array<float, access::sample> tint_symbol_2 [[texture(0)]], sampler tint_symbol_3 [[sampler(0)]]) {
diff --git a/test/tint/builtins/gen/literal/textureSample/d6b281.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSample/d6b281.wgsl.expected.spvasm
index f8028706..89da249 100644
--- a/test/tint/builtins/gen/literal/textureSample/d6b281.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSample/d6b281.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 30
+; Bound: 34
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -28,25 +28,29 @@
     %v4float = OpTypeVector %float 4
          %16 = OpTypeSampledImage %3
     %v3float = OpTypeVector %float 3
-    %float_0 = OpConstant %float 0
+    %v2float = OpTypeVector %float 2
+    %float_1 = OpConstant %float 1
+         %21 = OpConstantComposite %v2float %float_1 %float_1
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %26 = OpConstantNull %v4float
+         %30 = OpConstantNull %v4float
 %textureSample_d6b281 = OpFunction %void None %8
          %11 = OpLabel
-        %res = OpVariable %_ptr_Function_v4float Function %26
+        %res = OpVariable %_ptr_Function_v4float Function %30
          %14 = OpLoad %7 %arg_1
          %15 = OpLoad %3 %arg_0
          %17 = OpSampledImage %16 %15 %14
-         %20 = OpConvertUToF %float %uint_1
-         %23 = OpCompositeConstruct %v3float %float_0 %float_0 %20
-         %12 = OpImageSampleImplicitLod %v4float %17 %23
+         %22 = OpCompositeExtract %float %21 0
+         %23 = OpCompositeExtract %float %21 1
+         %24 = OpConvertUToF %float %uint_1
+         %27 = OpCompositeConstruct %v3float %22 %23 %24
+         %12 = OpImageSampleImplicitLod %v4float %17 %27
                OpStore %res %12
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %8
-         %28 = OpLabel
-         %29 = OpFunctionCall %void %textureSample_d6b281
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %textureSample_d6b281
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureSample/d6b281.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSample/d6b281.wgsl.expected.wgsl
index 63495a9..351d73e 100644
--- a/test/tint/builtins/gen/literal/textureSample/d6b281.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSample/d6b281.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(1) var arg_1 : sampler;
 
 fn textureSample_d6b281() {
-  var res : vec4<f32> = textureSample(arg_0, arg_1, vec2<f32>(), 1u);
+  var res : vec4<f32> = textureSample(arg_0, arg_1, vec2<f32>(1.0f), 1u);
 }
 
 @fragment
diff --git a/test/tint/builtins/gen/literal/textureSample/e53267.wgsl b/test/tint/builtins/gen/literal/textureSample/e53267.wgsl
index 35b2e9e..e0e2213 100644
--- a/test/tint/builtins/gen/literal/textureSample/e53267.wgsl
+++ b/test/tint/builtins/gen/literal/textureSample/e53267.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureSample(texture: texture_cube<f32>, sampler: sampler, coords: vec3<f32>) -> vec4<f32>
 fn textureSample_e53267() {
-  var res: vec4<f32> = textureSample(arg_0, arg_1, vec3<f32>());
+  var res: vec4<f32> = textureSample(arg_0, arg_1, vec3<f32>(1.f));
 }
 
 @fragment
diff --git a/test/tint/builtins/gen/literal/textureSample/e53267.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSample/e53267.wgsl.expected.dxc.hlsl
index 18cffd4..7c72e8a 100644
--- a/test/tint/builtins/gen/literal/textureSample/e53267.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSample/e53267.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSample_e53267() {
-  float4 res = arg_0.Sample(arg_1, (0.0f).xxx);
+  float4 res = arg_0.Sample(arg_1, (1.0f).xxx);
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/literal/textureSample/e53267.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSample/e53267.wgsl.expected.fxc.hlsl
index 18cffd4..7c72e8a 100644
--- a/test/tint/builtins/gen/literal/textureSample/e53267.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSample/e53267.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSample_e53267() {
-  float4 res = arg_0.Sample(arg_1, (0.0f).xxx);
+  float4 res = arg_0.Sample(arg_1, (1.0f).xxx);
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/literal/textureSample/e53267.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureSample/e53267.wgsl.expected.glsl
index 8abd834..bab2834 100644
--- a/test/tint/builtins/gen/literal/textureSample/e53267.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureSample/e53267.wgsl.expected.glsl
@@ -4,7 +4,7 @@
 uniform highp samplerCube arg_0_arg_1;
 
 void textureSample_e53267() {
-  vec4 res = texture(arg_0_arg_1, vec3(0.0f));
+  vec4 res = texture(arg_0_arg_1, vec3(1.0f));
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/literal/textureSample/e53267.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureSample/e53267.wgsl.expected.msl
index 6953ad2..273271f 100644
--- a/test/tint/builtins/gen/literal/textureSample/e53267.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureSample/e53267.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureSample_e53267(texturecube<float, access::sample> tint_symbol, sampler tint_symbol_1) {
-  float4 res = tint_symbol.sample(tint_symbol_1, float3(0.0f));
+  float4 res = tint_symbol.sample(tint_symbol_1, float3(1.0f));
 }
 
 fragment void fragment_main(texturecube<float, access::sample> tint_symbol_2 [[texture(0)]], sampler tint_symbol_3 [[sampler(0)]]) {
diff --git a/test/tint/builtins/gen/literal/textureSample/e53267.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSample/e53267.wgsl.expected.spvasm
index 814f3b6..faaae35 100644
--- a/test/tint/builtins/gen/literal/textureSample/e53267.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSample/e53267.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 26
+; Bound: 27
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -28,21 +28,22 @@
     %v4float = OpTypeVector %float 4
          %16 = OpTypeSampledImage %3
     %v3float = OpTypeVector %float 3
-         %19 = OpConstantNull %v3float
+    %float_1 = OpConstant %float 1
+         %20 = OpConstantComposite %v3float %float_1 %float_1 %float_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %22 = OpConstantNull %v4float
+         %23 = OpConstantNull %v4float
 %textureSample_e53267 = OpFunction %void None %8
          %11 = OpLabel
-        %res = OpVariable %_ptr_Function_v4float Function %22
+        %res = OpVariable %_ptr_Function_v4float Function %23
          %14 = OpLoad %7 %arg_1
          %15 = OpLoad %3 %arg_0
          %17 = OpSampledImage %16 %15 %14
-         %12 = OpImageSampleImplicitLod %v4float %17 %19
+         %12 = OpImageSampleImplicitLod %v4float %17 %20
                OpStore %res %12
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %8
-         %24 = OpLabel
-         %25 = OpFunctionCall %void %textureSample_e53267
+         %25 = OpLabel
+         %26 = OpFunctionCall %void %textureSample_e53267
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureSample/e53267.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSample/e53267.wgsl.expected.wgsl
index d4d1c10..4ed3277 100644
--- a/test/tint/builtins/gen/literal/textureSample/e53267.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSample/e53267.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(1) var arg_1 : sampler;
 
 fn textureSample_e53267() {
-  var res : vec4<f32> = textureSample(arg_0, arg_1, vec3<f32>());
+  var res : vec4<f32> = textureSample(arg_0, arg_1, vec3<f32>(1.0f));
 }
 
 @fragment
diff --git a/test/tint/builtins/gen/literal/textureSample/ea7030.wgsl b/test/tint/builtins/gen/literal/textureSample/ea7030.wgsl
index d35b7a4..9187195 100644
--- a/test/tint/builtins/gen/literal/textureSample/ea7030.wgsl
+++ b/test/tint/builtins/gen/literal/textureSample/ea7030.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureSample(texture: texture_depth_cube, sampler: sampler, coords: vec3<f32>) -> f32
 fn textureSample_ea7030() {
-  var res: f32 = textureSample(arg_0, arg_1, vec3<f32>());
+  var res: f32 = textureSample(arg_0, arg_1, vec3<f32>(1.f));
 }
 
 @fragment
diff --git a/test/tint/builtins/gen/literal/textureSample/ea7030.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSample/ea7030.wgsl.expected.dxc.hlsl
index 4f82f08..efcac93 100644
--- a/test/tint/builtins/gen/literal/textureSample/ea7030.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSample/ea7030.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSample_ea7030() {
-  float res = arg_0.Sample(arg_1, (0.0f).xxx).x;
+  float res = arg_0.Sample(arg_1, (1.0f).xxx).x;
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/literal/textureSample/ea7030.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSample/ea7030.wgsl.expected.fxc.hlsl
index 4f82f08..efcac93 100644
--- a/test/tint/builtins/gen/literal/textureSample/ea7030.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSample/ea7030.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSample_ea7030() {
-  float res = arg_0.Sample(arg_1, (0.0f).xxx).x;
+  float res = arg_0.Sample(arg_1, (1.0f).xxx).x;
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/literal/textureSample/ea7030.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureSample/ea7030.wgsl.expected.glsl
index 3803280..8fbca7b 100644
--- a/test/tint/builtins/gen/literal/textureSample/ea7030.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureSample/ea7030.wgsl.expected.glsl
@@ -4,7 +4,7 @@
 uniform highp samplerCubeShadow arg_0_arg_1;
 
 void textureSample_ea7030() {
-  float res = texture(arg_0_arg_1, vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  float res = texture(arg_0_arg_1, vec4(vec3(1.0f), 0.0f));
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/literal/textureSample/ea7030.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureSample/ea7030.wgsl.expected.msl
index 295b3ac..c5cfd80 100644
--- a/test/tint/builtins/gen/literal/textureSample/ea7030.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureSample/ea7030.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureSample_ea7030(depthcube<float, access::sample> tint_symbol, sampler tint_symbol_1) {
-  float res = tint_symbol.sample(tint_symbol_1, float3(0.0f));
+  float res = tint_symbol.sample(tint_symbol_1, float3(1.0f));
 }
 
 fragment void fragment_main(depthcube<float, access::sample> tint_symbol_2 [[texture(0)]], sampler tint_symbol_3 [[sampler(0)]]) {
diff --git a/test/tint/builtins/gen/literal/textureSample/ea7030.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSample/ea7030.wgsl.expected.spvasm
index d3c3a4e..03c157a 100644
--- a/test/tint/builtins/gen/literal/textureSample/ea7030.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSample/ea7030.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 27
+; Bound: 28
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -28,22 +28,23 @@
     %v4float = OpTypeVector %float 4
          %17 = OpTypeSampledImage %3
     %v3float = OpTypeVector %float 3
-         %20 = OpConstantNull %v3float
+    %float_1 = OpConstant %float 1
+         %21 = OpConstantComposite %v3float %float_1 %float_1 %float_1
 %_ptr_Function_float = OpTypePointer Function %float
-         %23 = OpConstantNull %float
+         %24 = OpConstantNull %float
 %textureSample_ea7030 = OpFunction %void None %8
          %11 = OpLabel
-        %res = OpVariable %_ptr_Function_float Function %23
+        %res = OpVariable %_ptr_Function_float Function %24
          %15 = OpLoad %7 %arg_1
          %16 = OpLoad %3 %arg_0
          %18 = OpSampledImage %17 %16 %15
-         %13 = OpImageSampleImplicitLod %v4float %18 %20
+         %13 = OpImageSampleImplicitLod %v4float %18 %21
          %12 = OpCompositeExtract %float %13 0
                OpStore %res %12
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %8
-         %25 = OpLabel
-         %26 = OpFunctionCall %void %textureSample_ea7030
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %textureSample_ea7030
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureSample/ea7030.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSample/ea7030.wgsl.expected.wgsl
index de2934b..5d10efe 100644
--- a/test/tint/builtins/gen/literal/textureSample/ea7030.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSample/ea7030.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(1) var arg_1 : sampler;
 
 fn textureSample_ea7030() {
-  var res : f32 = textureSample(arg_0, arg_1, vec3<f32>());
+  var res : f32 = textureSample(arg_0, arg_1, vec3<f32>(1.0f));
 }
 
 @fragment
diff --git a/test/tint/builtins/gen/literal/textureSampleBaseClampToEdge/7c04e6.wgsl b/test/tint/builtins/gen/literal/textureSampleBaseClampToEdge/7c04e6.wgsl
index 55110ea..080a6be 100644
--- a/test/tint/builtins/gen/literal/textureSampleBaseClampToEdge/7c04e6.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleBaseClampToEdge/7c04e6.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureSampleBaseClampToEdge(texture: texture_external, sampler: sampler, coords: vec2<f32>) -> vec4<f32>
 fn textureSampleBaseClampToEdge_7c04e6() {
-  var res: vec4<f32> = textureSampleBaseClampToEdge(arg_0, arg_1, vec2<f32>());
+  var res: vec4<f32> = textureSampleBaseClampToEdge(arg_0, arg_1, vec2<f32>(1.f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureSampleBaseClampToEdge/7c04e6.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleBaseClampToEdge/7c04e6.wgsl.expected.dxc.hlsl
index 2dbd2e8..6bfa0cb 100644
--- a/test/tint/builtins/gen/literal/textureSampleBaseClampToEdge/7c04e6.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleBaseClampToEdge/7c04e6.wgsl.expected.dxc.hlsl
@@ -91,7 +91,7 @@
 }
 
 void textureSampleBaseClampToEdge_7c04e6() {
-  float4 res = textureSampleExternal(arg_0, ext_tex_plane_1, arg_1, (0.0f).xx, tint_symbol_1(ext_tex_params, 0u));
+  float4 res = textureSampleExternal(arg_0, ext_tex_plane_1, arg_1, (1.0f).xx, tint_symbol_1(ext_tex_params, 0u));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureSampleBaseClampToEdge/7c04e6.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleBaseClampToEdge/7c04e6.wgsl.expected.fxc.hlsl
index 2dbd2e8..6bfa0cb 100644
--- a/test/tint/builtins/gen/literal/textureSampleBaseClampToEdge/7c04e6.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleBaseClampToEdge/7c04e6.wgsl.expected.fxc.hlsl
@@ -91,7 +91,7 @@
 }
 
 void textureSampleBaseClampToEdge_7c04e6() {
-  float4 res = textureSampleExternal(arg_0, ext_tex_plane_1, arg_1, (0.0f).xx, tint_symbol_1(ext_tex_params, 0u));
+  float4 res = textureSampleExternal(arg_0, ext_tex_plane_1, arg_1, (1.0f).xx, tint_symbol_1(ext_tex_params, 0u));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureSampleBaseClampToEdge/7c04e6.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureSampleBaseClampToEdge/7c04e6.wgsl.expected.glsl
index 8bc33df..82b6a82 100644
--- a/test/tint/builtins/gen/literal/textureSampleBaseClampToEdge/7c04e6.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureSampleBaseClampToEdge/7c04e6.wgsl.expected.glsl
@@ -58,7 +58,7 @@
 uniform highp sampler2D arg_0_arg_1;
 uniform highp sampler2D ext_tex_plane_1_arg_1;
 void textureSampleBaseClampToEdge_7c04e6() {
-  vec4 res = textureSampleExternal(arg_0_1, ext_tex_plane_1_1, arg_0_arg_1, ext_tex_plane_1_arg_1, vec2(0.0f), ext_tex_params.inner);
+  vec4 res = textureSampleExternal(arg_0_1, ext_tex_plane_1_1, arg_0_arg_1, ext_tex_plane_1_arg_1, vec2(1.0f), ext_tex_params.inner);
 }
 
 vec4 vertex_main() {
@@ -135,7 +135,7 @@
 uniform highp sampler2D arg_0_arg_1;
 uniform highp sampler2D ext_tex_plane_1_arg_1;
 void textureSampleBaseClampToEdge_7c04e6() {
-  vec4 res = textureSampleExternal(arg_0_1, ext_tex_plane_1_1, arg_0_arg_1, ext_tex_plane_1_arg_1, vec2(0.0f), ext_tex_params.inner);
+  vec4 res = textureSampleExternal(arg_0_1, ext_tex_plane_1_1, arg_0_arg_1, ext_tex_plane_1_arg_1, vec2(1.0f), ext_tex_params.inner);
 }
 
 void fragment_main() {
@@ -206,7 +206,7 @@
 uniform highp sampler2D arg_0_arg_1;
 uniform highp sampler2D ext_tex_plane_1_arg_1;
 void textureSampleBaseClampToEdge_7c04e6() {
-  vec4 res = textureSampleExternal(arg_0_1, ext_tex_plane_1_1, arg_0_arg_1, ext_tex_plane_1_arg_1, vec2(0.0f), ext_tex_params.inner);
+  vec4 res = textureSampleExternal(arg_0_1, ext_tex_plane_1_1, arg_0_arg_1, ext_tex_plane_1_arg_1, vec2(1.0f), ext_tex_params.inner);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureSampleBaseClampToEdge/7c04e6.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureSampleBaseClampToEdge/7c04e6.wgsl.expected.msl
index 70af2f8..146503a 100644
--- a/test/tint/builtins/gen/literal/textureSampleBaseClampToEdge/7c04e6.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureSampleBaseClampToEdge/7c04e6.wgsl.expected.msl
@@ -64,7 +64,7 @@
 }
 
 void textureSampleBaseClampToEdge_7c04e6(texture2d<float, access::sample> tint_symbol_1, texture2d<float, access::sample> tint_symbol_2, sampler tint_symbol_3, const constant ExternalTextureParams* const tint_symbol_4) {
-  float4 res = textureSampleExternal(tint_symbol_1, tint_symbol_2, tint_symbol_3, float2(0.0f), *(tint_symbol_4));
+  float4 res = textureSampleExternal(tint_symbol_1, tint_symbol_2, tint_symbol_3, float2(1.0f), *(tint_symbol_4));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureSampleBaseClampToEdge/7c04e6.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSampleBaseClampToEdge/7c04e6.wgsl.expected.spvasm
index 9490a32..1597eb3 100644
--- a/test/tint/builtins/gen/literal/textureSampleBaseClampToEdge/7c04e6.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSampleBaseClampToEdge/7c04e6.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 164
+; Bound: 165
 ; Schema: 0
                OpCapability Shader
                OpCapability ImageQuery
@@ -127,10 +127,11 @@
         %119 = OpConstantNull %uint
        %void = OpTypeVoid
         %137 = OpTypeFunction %void
+        %145 = OpConstantComposite %v2float %float_1 %float_1
      %uint_0 = OpConstant %uint 0
 %_ptr_Uniform_ExternalTextureParams = OpTypePointer Uniform %ExternalTextureParams
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-        %151 = OpTypeFunction %v4float
+        %152 = OpTypeFunction %v4float
 %gammaCorrection = OpFunction %v3float None %25
           %v = OpFunctionParameter %v3float
      %params = OpFunctionParameter %GammaTransferParams
@@ -246,31 +247,31 @@
         %142 = OpLoad %11 %arg_0
         %143 = OpLoad %11 %ext_tex_plane_1
         %144 = OpLoad %24 %arg_1
-        %147 = OpAccessChain %_ptr_Uniform_ExternalTextureParams %ext_tex_params %uint_0
-        %148 = OpLoad %ExternalTextureParams %147
-        %141 = OpFunctionCall %v4float %textureSampleExternal %142 %143 %144 %87 %148
+        %148 = OpAccessChain %_ptr_Uniform_ExternalTextureParams %ext_tex_params %uint_0
+        %149 = OpLoad %ExternalTextureParams %148
+        %141 = OpFunctionCall %v4float %textureSampleExternal %142 %143 %144 %145 %149
                OpStore %res %141
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %151
-        %153 = OpLabel
-        %154 = OpFunctionCall %void %textureSampleBaseClampToEdge_7c04e6
+%vertex_main_inner = OpFunction %v4float None %152
+        %154 = OpLabel
+        %155 = OpFunctionCall %void %textureSampleBaseClampToEdge_7c04e6
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %137
-        %156 = OpLabel
-        %157 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %157
+        %157 = OpLabel
+        %158 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %158
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %137
-        %159 = OpLabel
-        %160 = OpFunctionCall %void %textureSampleBaseClampToEdge_7c04e6
+        %160 = OpLabel
+        %161 = OpFunctionCall %void %textureSampleBaseClampToEdge_7c04e6
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %137
-        %162 = OpLabel
-        %163 = OpFunctionCall %void %textureSampleBaseClampToEdge_7c04e6
+        %163 = OpLabel
+        %164 = OpFunctionCall %void %textureSampleBaseClampToEdge_7c04e6
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureSampleBaseClampToEdge/7c04e6.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSampleBaseClampToEdge/7c04e6.wgsl.expected.wgsl
index f24b223..dcebcd2 100644
--- a/test/tint/builtins/gen/literal/textureSampleBaseClampToEdge/7c04e6.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleBaseClampToEdge/7c04e6.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(1) var arg_1 : sampler;
 
 fn textureSampleBaseClampToEdge_7c04e6() {
-  var res : vec4<f32> = textureSampleBaseClampToEdge(arg_0, arg_1, vec2<f32>());
+  var res : vec4<f32> = textureSampleBaseClampToEdge(arg_0, arg_1, vec2<f32>(1.0f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureSampleBaseClampToEdge/9ca02c.wgsl b/test/tint/builtins/gen/literal/textureSampleBaseClampToEdge/9ca02c.wgsl
index 2952fdc..e5e598c 100644
--- a/test/tint/builtins/gen/literal/textureSampleBaseClampToEdge/9ca02c.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleBaseClampToEdge/9ca02c.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureSampleBaseClampToEdge(texture: texture_2d<f32>, sampler: sampler, coords: vec2<f32>) -> vec4<f32>
 fn textureSampleBaseClampToEdge_9ca02c() {
-  var res: vec4<f32> = textureSampleBaseClampToEdge(arg_0, arg_1, vec2<f32>());
+  var res: vec4<f32> = textureSampleBaseClampToEdge(arg_0, arg_1, vec2<f32>(1.f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureSampleBaseClampToEdge/9ca02c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleBaseClampToEdge/9ca02c.wgsl.expected.dxc.hlsl
index 2799157..c868b5e 100644
--- a/test/tint/builtins/gen/literal/textureSampleBaseClampToEdge/9ca02c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleBaseClampToEdge/9ca02c.wgsl.expected.dxc.hlsl
@@ -11,7 +11,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleBaseClampToEdge_9ca02c() {
-  float4 res = tint_textureSampleBaseClampToEdge(arg_0, arg_1, (0.0f).xx);
+  float4 res = tint_textureSampleBaseClampToEdge(arg_0, arg_1, (1.0f).xx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureSampleBaseClampToEdge/9ca02c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleBaseClampToEdge/9ca02c.wgsl.expected.fxc.hlsl
index 2799157..c868b5e 100644
--- a/test/tint/builtins/gen/literal/textureSampleBaseClampToEdge/9ca02c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleBaseClampToEdge/9ca02c.wgsl.expected.fxc.hlsl
@@ -11,7 +11,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleBaseClampToEdge_9ca02c() {
-  float4 res = tint_textureSampleBaseClampToEdge(arg_0, arg_1, (0.0f).xx);
+  float4 res = tint_textureSampleBaseClampToEdge(arg_0, arg_1, (1.0f).xx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureSampleBaseClampToEdge/9ca02c.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureSampleBaseClampToEdge/9ca02c.wgsl.expected.glsl
index baa94b2..2d912aa 100644
--- a/test/tint/builtins/gen/literal/textureSampleBaseClampToEdge/9ca02c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureSampleBaseClampToEdge/9ca02c.wgsl.expected.glsl
@@ -11,7 +11,7 @@
 uniform highp sampler2D arg_0_1;
 uniform highp sampler2D arg_0_arg_1;
 void textureSampleBaseClampToEdge_9ca02c() {
-  vec4 res = tint_textureSampleBaseClampToEdge(arg_0_1, arg_0_arg_1, vec2(0.0f));
+  vec4 res = tint_textureSampleBaseClampToEdge(arg_0_1, arg_0_arg_1, vec2(1.0f));
 }
 
 vec4 vertex_main() {
@@ -41,7 +41,7 @@
 uniform highp sampler2D arg_0_1;
 uniform highp sampler2D arg_0_arg_1;
 void textureSampleBaseClampToEdge_9ca02c() {
-  vec4 res = tint_textureSampleBaseClampToEdge(arg_0_1, arg_0_arg_1, vec2(0.0f));
+  vec4 res = tint_textureSampleBaseClampToEdge(arg_0_1, arg_0_arg_1, vec2(1.0f));
 }
 
 void fragment_main() {
@@ -65,7 +65,7 @@
 uniform highp sampler2D arg_0_1;
 uniform highp sampler2D arg_0_arg_1;
 void textureSampleBaseClampToEdge_9ca02c() {
-  vec4 res = tint_textureSampleBaseClampToEdge(arg_0_1, arg_0_arg_1, vec2(0.0f));
+  vec4 res = tint_textureSampleBaseClampToEdge(arg_0_1, arg_0_arg_1, vec2(1.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureSampleBaseClampToEdge/9ca02c.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureSampleBaseClampToEdge/9ca02c.wgsl.expected.msl
index 221a88d..f1d03f2 100644
--- a/test/tint/builtins/gen/literal/textureSampleBaseClampToEdge/9ca02c.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureSampleBaseClampToEdge/9ca02c.wgsl.expected.msl
@@ -9,7 +9,7 @@
 }
 
 void textureSampleBaseClampToEdge_9ca02c(texture2d<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float4 res = tint_textureSampleBaseClampToEdge(tint_symbol_1, tint_symbol_2, float2(0.0f));
+  float4 res = tint_textureSampleBaseClampToEdge(tint_symbol_1, tint_symbol_2, float2(1.0f));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureSampleBaseClampToEdge/9ca02c.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSampleBaseClampToEdge/9ca02c.wgsl.expected.spvasm
index 154fae2..cb680b0 100644
--- a/test/tint/builtins/gen/literal/textureSampleBaseClampToEdge/9ca02c.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSampleBaseClampToEdge/9ca02c.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 64
+; Bound: 65
 ; Schema: 0
                OpCapability Shader
                OpCapability ImageQuery
@@ -60,8 +60,9 @@
          %40 = OpTypeSampledImage %11
        %void = OpTypeVoid
          %42 = OpTypeFunction %void
+         %49 = OpConstantComposite %v2float %float_1 %float_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %51 = OpTypeFunction %v4float
+         %52 = OpTypeFunction %v4float
 %tint_textureSampleBaseClampToEdge = OpFunction %v4float None %15
           %t = OpFunctionParameter %11
           %s = OpFunctionParameter %14
@@ -83,29 +84,29 @@
         %res = OpVariable %_ptr_Function_v4float Function %5
          %47 = OpLoad %11 %arg_0
          %48 = OpLoad %14 %arg_1
-         %46 = OpFunctionCall %v4float %tint_textureSampleBaseClampToEdge %47 %48 %37
+         %46 = OpFunctionCall %v4float %tint_textureSampleBaseClampToEdge %47 %48 %49
                OpStore %res %46
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %51
-         %53 = OpLabel
-         %54 = OpFunctionCall %void %textureSampleBaseClampToEdge_9ca02c
+%vertex_main_inner = OpFunction %v4float None %52
+         %54 = OpLabel
+         %55 = OpFunctionCall %void %textureSampleBaseClampToEdge_9ca02c
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %42
-         %56 = OpLabel
-         %57 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %57
+         %57 = OpLabel
+         %58 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %58
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %42
-         %59 = OpLabel
-         %60 = OpFunctionCall %void %textureSampleBaseClampToEdge_9ca02c
+         %60 = OpLabel
+         %61 = OpFunctionCall %void %textureSampleBaseClampToEdge_9ca02c
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %42
-         %62 = OpLabel
-         %63 = OpFunctionCall %void %textureSampleBaseClampToEdge_9ca02c
+         %63 = OpLabel
+         %64 = OpFunctionCall %void %textureSampleBaseClampToEdge_9ca02c
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureSampleBaseClampToEdge/9ca02c.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSampleBaseClampToEdge/9ca02c.wgsl.expected.wgsl
index 4d1b105..9ec6ff6 100644
--- a/test/tint/builtins/gen/literal/textureSampleBaseClampToEdge/9ca02c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleBaseClampToEdge/9ca02c.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(1) var arg_1 : sampler;
 
 fn textureSampleBaseClampToEdge_9ca02c() {
-  var res : vec4<f32> = textureSampleBaseClampToEdge(arg_0, arg_1, vec2<f32>());
+  var res : vec4<f32> = textureSampleBaseClampToEdge(arg_0, arg_1, vec2<f32>(1.0f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureSampleBias/1c707e.wgsl b/test/tint/builtins/gen/literal/textureSampleBias/1c707e.wgsl
index f76a6b2..1272f7f 100644
--- a/test/tint/builtins/gen/literal/textureSampleBias/1c707e.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleBias/1c707e.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureSampleBias(texture: texture_2d_array<f32>, sampler: sampler, coords: vec2<f32>, array_index: u32, bias: f32) -> vec4<f32>
 fn textureSampleBias_1c707e() {
-  var res: vec4<f32> = textureSampleBias(arg_0, arg_1, vec2<f32>(), 1u, 1.f);
+  var res: vec4<f32> = textureSampleBias(arg_0, arg_1, vec2<f32>(1.f), 1u, 1.f);
 }
 
 @fragment
diff --git a/test/tint/builtins/gen/literal/textureSampleBias/1c707e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleBias/1c707e.wgsl.expected.dxc.hlsl
index f0c0f28..07f6325 100644
--- a/test/tint/builtins/gen/literal/textureSampleBias/1c707e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleBias/1c707e.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleBias_1c707e() {
-  float4 res = arg_0.SampleBias(arg_1, float3(0.0f, 0.0f, float(1u)), 1.0f);
+  float4 res = arg_0.SampleBias(arg_1, float3((1.0f).xx, float(1u)), 1.0f);
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/literal/textureSampleBias/1c707e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleBias/1c707e.wgsl.expected.fxc.hlsl
index f0c0f28..07f6325 100644
--- a/test/tint/builtins/gen/literal/textureSampleBias/1c707e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleBias/1c707e.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleBias_1c707e() {
-  float4 res = arg_0.SampleBias(arg_1, float3(0.0f, 0.0f, float(1u)), 1.0f);
+  float4 res = arg_0.SampleBias(arg_1, float3((1.0f).xx, float(1u)), 1.0f);
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/literal/textureSampleBias/1c707e.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureSampleBias/1c707e.wgsl.expected.glsl
index 6463438..84e14fe 100644
--- a/test/tint/builtins/gen/literal/textureSampleBias/1c707e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureSampleBias/1c707e.wgsl.expected.glsl
@@ -4,7 +4,7 @@
 uniform highp sampler2DArray arg_0_arg_1;
 
 void textureSampleBias_1c707e() {
-  vec4 res = texture(arg_0_arg_1, vec3(0.0f, 0.0f, float(1u)), 1.0f);
+  vec4 res = texture(arg_0_arg_1, vec3(vec2(1.0f), float(1u)), 1.0f);
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/literal/textureSampleBias/1c707e.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureSampleBias/1c707e.wgsl.expected.msl
index 606c7f3..39249ba 100644
--- a/test/tint/builtins/gen/literal/textureSampleBias/1c707e.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureSampleBias/1c707e.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureSampleBias_1c707e(texture2d_array<float, access::sample> tint_symbol, sampler tint_symbol_1) {
-  float4 res = tint_symbol.sample(tint_symbol_1, float2(0.0f), 1u, bias(1.0f));
+  float4 res = tint_symbol.sample(tint_symbol_1, float2(1.0f), 1u, bias(1.0f));
 }
 
 fragment void fragment_main(texture2d_array<float, access::sample> tint_symbol_2 [[texture(0)]], sampler tint_symbol_3 [[sampler(0)]]) {
diff --git a/test/tint/builtins/gen/literal/textureSampleBias/1c707e.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSampleBias/1c707e.wgsl.expected.spvasm
index c809e51..fea1a4d 100644
--- a/test/tint/builtins/gen/literal/textureSampleBias/1c707e.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSampleBias/1c707e.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 31
+; Bound: 34
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -28,26 +28,29 @@
     %v4float = OpTypeVector %float 4
          %16 = OpTypeSampledImage %3
     %v3float = OpTypeVector %float 3
-    %float_0 = OpConstant %float 0
+    %v2float = OpTypeVector %float 2
+    %float_1 = OpConstant %float 1
+         %21 = OpConstantComposite %v2float %float_1 %float_1
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
-    %float_1 = OpConstant %float 1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %27 = OpConstantNull %v4float
+         %30 = OpConstantNull %v4float
 %textureSampleBias_1c707e = OpFunction %void None %8
          %11 = OpLabel
-        %res = OpVariable %_ptr_Function_v4float Function %27
+        %res = OpVariable %_ptr_Function_v4float Function %30
          %14 = OpLoad %7 %arg_1
          %15 = OpLoad %3 %arg_0
          %17 = OpSampledImage %16 %15 %14
-         %20 = OpConvertUToF %float %uint_1
-         %23 = OpCompositeConstruct %v3float %float_0 %float_0 %20
-         %12 = OpImageSampleImplicitLod %v4float %17 %23 Bias %float_1
+         %22 = OpCompositeExtract %float %21 0
+         %23 = OpCompositeExtract %float %21 1
+         %24 = OpConvertUToF %float %uint_1
+         %27 = OpCompositeConstruct %v3float %22 %23 %24
+         %12 = OpImageSampleImplicitLod %v4float %17 %27 Bias %float_1
                OpStore %res %12
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %8
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %textureSampleBias_1c707e
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %textureSampleBias_1c707e
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureSampleBias/1c707e.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSampleBias/1c707e.wgsl.expected.wgsl
index a738d9c..b8d2d75 100644
--- a/test/tint/builtins/gen/literal/textureSampleBias/1c707e.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleBias/1c707e.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(1) var arg_1 : sampler;
 
 fn textureSampleBias_1c707e() {
-  var res : vec4<f32> = textureSampleBias(arg_0, arg_1, vec2<f32>(), 1u, 1.0f);
+  var res : vec4<f32> = textureSampleBias(arg_0, arg_1, vec2<f32>(1.0f), 1u, 1.0f);
 }
 
 @fragment
diff --git a/test/tint/builtins/gen/literal/textureSampleBias/53b9f7.wgsl b/test/tint/builtins/gen/literal/textureSampleBias/53b9f7.wgsl
index 5300171..8c734db 100644
--- a/test/tint/builtins/gen/literal/textureSampleBias/53b9f7.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleBias/53b9f7.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureSampleBias(texture: texture_cube<f32>, sampler: sampler, coords: vec3<f32>, bias: f32) -> vec4<f32>
 fn textureSampleBias_53b9f7() {
-  var res: vec4<f32> = textureSampleBias(arg_0, arg_1, vec3<f32>(), 1.f);
+  var res: vec4<f32> = textureSampleBias(arg_0, arg_1, vec3<f32>(1.f), 1.f);
 }
 
 @fragment
diff --git a/test/tint/builtins/gen/literal/textureSampleBias/53b9f7.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleBias/53b9f7.wgsl.expected.dxc.hlsl
index ec467db..4c8919f 100644
--- a/test/tint/builtins/gen/literal/textureSampleBias/53b9f7.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleBias/53b9f7.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleBias_53b9f7() {
-  float4 res = arg_0.SampleBias(arg_1, (0.0f).xxx, 1.0f);
+  float4 res = arg_0.SampleBias(arg_1, (1.0f).xxx, 1.0f);
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/literal/textureSampleBias/53b9f7.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleBias/53b9f7.wgsl.expected.fxc.hlsl
index ec467db..4c8919f 100644
--- a/test/tint/builtins/gen/literal/textureSampleBias/53b9f7.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleBias/53b9f7.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleBias_53b9f7() {
-  float4 res = arg_0.SampleBias(arg_1, (0.0f).xxx, 1.0f);
+  float4 res = arg_0.SampleBias(arg_1, (1.0f).xxx, 1.0f);
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/literal/textureSampleBias/53b9f7.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureSampleBias/53b9f7.wgsl.expected.glsl
index c40abb6..ee550b4 100644
--- a/test/tint/builtins/gen/literal/textureSampleBias/53b9f7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureSampleBias/53b9f7.wgsl.expected.glsl
@@ -4,7 +4,7 @@
 uniform highp samplerCube arg_0_arg_1;
 
 void textureSampleBias_53b9f7() {
-  vec4 res = texture(arg_0_arg_1, vec3(0.0f), 1.0f);
+  vec4 res = texture(arg_0_arg_1, vec3(1.0f), 1.0f);
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/literal/textureSampleBias/53b9f7.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureSampleBias/53b9f7.wgsl.expected.msl
index dde5bfe..294cda1 100644
--- a/test/tint/builtins/gen/literal/textureSampleBias/53b9f7.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureSampleBias/53b9f7.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureSampleBias_53b9f7(texturecube<float, access::sample> tint_symbol, sampler tint_symbol_1) {
-  float4 res = tint_symbol.sample(tint_symbol_1, float3(0.0f), bias(1.0f));
+  float4 res = tint_symbol.sample(tint_symbol_1, float3(1.0f), bias(1.0f));
 }
 
 fragment void fragment_main(texturecube<float, access::sample> tint_symbol_2 [[texture(0)]], sampler tint_symbol_3 [[sampler(0)]]) {
diff --git a/test/tint/builtins/gen/literal/textureSampleBias/53b9f7.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSampleBias/53b9f7.wgsl.expected.spvasm
index ff35323..e36e921 100644
--- a/test/tint/builtins/gen/literal/textureSampleBias/53b9f7.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSampleBias/53b9f7.wgsl.expected.spvasm
@@ -28,8 +28,8 @@
     %v4float = OpTypeVector %float 4
          %16 = OpTypeSampledImage %3
     %v3float = OpTypeVector %float 3
-         %19 = OpConstantNull %v3float
     %float_1 = OpConstant %float 1
+         %20 = OpConstantComposite %v3float %float_1 %float_1 %float_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
          %23 = OpConstantNull %v4float
 %textureSampleBias_53b9f7 = OpFunction %void None %8
@@ -38,7 +38,7 @@
          %14 = OpLoad %7 %arg_1
          %15 = OpLoad %3 %arg_0
          %17 = OpSampledImage %16 %15 %14
-         %12 = OpImageSampleImplicitLod %v4float %17 %19 Bias %float_1
+         %12 = OpImageSampleImplicitLod %v4float %17 %20 Bias %float_1
                OpStore %res %12
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureSampleBias/53b9f7.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSampleBias/53b9f7.wgsl.expected.wgsl
index d4680e6..6add8f8 100644
--- a/test/tint/builtins/gen/literal/textureSampleBias/53b9f7.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleBias/53b9f7.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(1) var arg_1 : sampler;
 
 fn textureSampleBias_53b9f7() {
-  var res : vec4<f32> = textureSampleBias(arg_0, arg_1, vec3<f32>(), 1.0f);
+  var res : vec4<f32> = textureSampleBias(arg_0, arg_1, vec3<f32>(1.0f), 1.0f);
 }
 
 @fragment
diff --git a/test/tint/builtins/gen/literal/textureSampleBias/594824.wgsl b/test/tint/builtins/gen/literal/textureSampleBias/594824.wgsl
index 32eafc4..c78555e 100644
--- a/test/tint/builtins/gen/literal/textureSampleBias/594824.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleBias/594824.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureSampleBias(texture: texture_3d<f32>, sampler: sampler, coords: vec3<f32>, bias: f32, @const offset: vec3<i32>) -> vec4<f32>
 fn textureSampleBias_594824() {
-  var res: vec4<f32> = textureSampleBias(arg_0, arg_1, vec3<f32>(), 1.f, vec3<i32>());
+  var res: vec4<f32> = textureSampleBias(arg_0, arg_1, vec3<f32>(1.f), 1.f, vec3<i32>(1i));
 }
 
 @fragment
diff --git a/test/tint/builtins/gen/literal/textureSampleBias/594824.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleBias/594824.wgsl.expected.dxc.hlsl
index 8ebc001..0ca62fc 100644
--- a/test/tint/builtins/gen/literal/textureSampleBias/594824.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleBias/594824.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleBias_594824() {
-  float4 res = arg_0.SampleBias(arg_1, (0.0f).xxx, 1.0f, (0).xxx);
+  float4 res = arg_0.SampleBias(arg_1, (1.0f).xxx, 1.0f, (1).xxx);
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/literal/textureSampleBias/594824.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleBias/594824.wgsl.expected.fxc.hlsl
index 8ebc001..0ca62fc 100644
--- a/test/tint/builtins/gen/literal/textureSampleBias/594824.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleBias/594824.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleBias_594824() {
-  float4 res = arg_0.SampleBias(arg_1, (0.0f).xxx, 1.0f, (0).xxx);
+  float4 res = arg_0.SampleBias(arg_1, (1.0f).xxx, 1.0f, (1).xxx);
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/literal/textureSampleBias/594824.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureSampleBias/594824.wgsl.expected.glsl
index e524a8d..a13ea63 100644
--- a/test/tint/builtins/gen/literal/textureSampleBias/594824.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureSampleBias/594824.wgsl.expected.glsl
@@ -4,7 +4,7 @@
 uniform highp sampler3D arg_0_arg_1;
 
 void textureSampleBias_594824() {
-  vec4 res = textureOffset(arg_0_arg_1, vec3(0.0f), ivec3(0), 1.0f);
+  vec4 res = textureOffset(arg_0_arg_1, vec3(1.0f), ivec3(1), 1.0f);
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/literal/textureSampleBias/594824.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureSampleBias/594824.wgsl.expected.msl
index 193009e..a7214cb 100644
--- a/test/tint/builtins/gen/literal/textureSampleBias/594824.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureSampleBias/594824.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureSampleBias_594824(texture3d<float, access::sample> tint_symbol, sampler tint_symbol_1) {
-  float4 res = tint_symbol.sample(tint_symbol_1, float3(0.0f), bias(1.0f), int3(0));
+  float4 res = tint_symbol.sample(tint_symbol_1, float3(1.0f), bias(1.0f), int3(1));
 }
 
 fragment void fragment_main(texture3d<float, access::sample> tint_symbol_2 [[texture(0)]], sampler tint_symbol_3 [[sampler(0)]]) {
diff --git a/test/tint/builtins/gen/literal/textureSampleBias/594824.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSampleBias/594824.wgsl.expected.spvasm
index 4cc39b2..700df82 100644
--- a/test/tint/builtins/gen/literal/textureSampleBias/594824.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSampleBias/594824.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 30
+; Bound: 31
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -28,25 +28,26 @@
     %v4float = OpTypeVector %float 4
          %16 = OpTypeSampledImage %3
     %v3float = OpTypeVector %float 3
-         %19 = OpConstantNull %v3float
     %float_1 = OpConstant %float 1
+         %20 = OpConstantComposite %v3float %float_1 %float_1 %float_1
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
-         %23 = OpConstantNull %v3int
+      %int_1 = OpConstant %int 1
+         %24 = OpConstantComposite %v3int %int_1 %int_1 %int_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %26 = OpConstantNull %v4float
+         %27 = OpConstantNull %v4float
 %textureSampleBias_594824 = OpFunction %void None %8
          %11 = OpLabel
-        %res = OpVariable %_ptr_Function_v4float Function %26
+        %res = OpVariable %_ptr_Function_v4float Function %27
          %14 = OpLoad %7 %arg_1
          %15 = OpLoad %3 %arg_0
          %17 = OpSampledImage %16 %15 %14
-         %12 = OpImageSampleImplicitLod %v4float %17 %19 Bias|ConstOffset %float_1 %23
+         %12 = OpImageSampleImplicitLod %v4float %17 %20 Bias|ConstOffset %float_1 %24
                OpStore %res %12
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %8
-         %28 = OpLabel
-         %29 = OpFunctionCall %void %textureSampleBias_594824
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %textureSampleBias_594824
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureSampleBias/594824.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSampleBias/594824.wgsl.expected.wgsl
index 3fe9740..6a60558 100644
--- a/test/tint/builtins/gen/literal/textureSampleBias/594824.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleBias/594824.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(1) var arg_1 : sampler;
 
 fn textureSampleBias_594824() {
-  var res : vec4<f32> = textureSampleBias(arg_0, arg_1, vec3<f32>(), 1.0f, vec3<i32>());
+  var res : vec4<f32> = textureSampleBias(arg_0, arg_1, vec3<f32>(1.0f), 1.0f, vec3<i32>(1i));
 }
 
 @fragment
diff --git a/test/tint/builtins/gen/literal/textureSampleBias/6a9113.wgsl b/test/tint/builtins/gen/literal/textureSampleBias/6a9113.wgsl
index b47bcdf..bba474e 100644
--- a/test/tint/builtins/gen/literal/textureSampleBias/6a9113.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleBias/6a9113.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureSampleBias(texture: texture_2d<f32>, sampler: sampler, coords: vec2<f32>, bias: f32) -> vec4<f32>
 fn textureSampleBias_6a9113() {
-  var res: vec4<f32> = textureSampleBias(arg_0, arg_1, vec2<f32>(), 1.f);
+  var res: vec4<f32> = textureSampleBias(arg_0, arg_1, vec2<f32>(1.f), 1.f);
 }
 
 @fragment
diff --git a/test/tint/builtins/gen/literal/textureSampleBias/6a9113.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleBias/6a9113.wgsl.expected.dxc.hlsl
index a3e3379..4949956 100644
--- a/test/tint/builtins/gen/literal/textureSampleBias/6a9113.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleBias/6a9113.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleBias_6a9113() {
-  float4 res = arg_0.SampleBias(arg_1, (0.0f).xx, 1.0f);
+  float4 res = arg_0.SampleBias(arg_1, (1.0f).xx, 1.0f);
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/literal/textureSampleBias/6a9113.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleBias/6a9113.wgsl.expected.fxc.hlsl
index a3e3379..4949956 100644
--- a/test/tint/builtins/gen/literal/textureSampleBias/6a9113.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleBias/6a9113.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleBias_6a9113() {
-  float4 res = arg_0.SampleBias(arg_1, (0.0f).xx, 1.0f);
+  float4 res = arg_0.SampleBias(arg_1, (1.0f).xx, 1.0f);
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/literal/textureSampleBias/6a9113.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureSampleBias/6a9113.wgsl.expected.glsl
index ca84e9d..7190a88 100644
--- a/test/tint/builtins/gen/literal/textureSampleBias/6a9113.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureSampleBias/6a9113.wgsl.expected.glsl
@@ -4,7 +4,7 @@
 uniform highp sampler2D arg_0_arg_1;
 
 void textureSampleBias_6a9113() {
-  vec4 res = texture(arg_0_arg_1, vec2(0.0f), 1.0f);
+  vec4 res = texture(arg_0_arg_1, vec2(1.0f), 1.0f);
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/literal/textureSampleBias/6a9113.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureSampleBias/6a9113.wgsl.expected.msl
index ac41f09..c3b8284 100644
--- a/test/tint/builtins/gen/literal/textureSampleBias/6a9113.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureSampleBias/6a9113.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureSampleBias_6a9113(texture2d<float, access::sample> tint_symbol, sampler tint_symbol_1) {
-  float4 res = tint_symbol.sample(tint_symbol_1, float2(0.0f), bias(1.0f));
+  float4 res = tint_symbol.sample(tint_symbol_1, float2(1.0f), bias(1.0f));
 }
 
 fragment void fragment_main(texture2d<float, access::sample> tint_symbol_2 [[texture(0)]], sampler tint_symbol_3 [[sampler(0)]]) {
diff --git a/test/tint/builtins/gen/literal/textureSampleBias/6a9113.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSampleBias/6a9113.wgsl.expected.spvasm
index eb73824..44afc2e 100644
--- a/test/tint/builtins/gen/literal/textureSampleBias/6a9113.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSampleBias/6a9113.wgsl.expected.spvasm
@@ -28,8 +28,8 @@
     %v4float = OpTypeVector %float 4
          %16 = OpTypeSampledImage %3
     %v2float = OpTypeVector %float 2
-         %19 = OpConstantNull %v2float
     %float_1 = OpConstant %float 1
+         %20 = OpConstantComposite %v2float %float_1 %float_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
          %23 = OpConstantNull %v4float
 %textureSampleBias_6a9113 = OpFunction %void None %8
@@ -38,7 +38,7 @@
          %14 = OpLoad %7 %arg_1
          %15 = OpLoad %3 %arg_0
          %17 = OpSampledImage %16 %15 %14
-         %12 = OpImageSampleImplicitLod %v4float %17 %19 Bias %float_1
+         %12 = OpImageSampleImplicitLod %v4float %17 %20 Bias %float_1
                OpStore %res %12
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureSampleBias/6a9113.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSampleBias/6a9113.wgsl.expected.wgsl
index f864438..7145dea 100644
--- a/test/tint/builtins/gen/literal/textureSampleBias/6a9113.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleBias/6a9113.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(1) var arg_1 : sampler;
 
 fn textureSampleBias_6a9113() {
-  var res : vec4<f32> = textureSampleBias(arg_0, arg_1, vec2<f32>(), 1.0f);
+  var res : vec4<f32> = textureSampleBias(arg_0, arg_1, vec2<f32>(1.0f), 1.0f);
 }
 
 @fragment
diff --git a/test/tint/builtins/gen/literal/textureSampleBias/80e579.wgsl b/test/tint/builtins/gen/literal/textureSampleBias/80e579.wgsl
index 20389f5..e7aae06 100644
--- a/test/tint/builtins/gen/literal/textureSampleBias/80e579.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleBias/80e579.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureSampleBias(texture: texture_2d_array<f32>, sampler: sampler, coords: vec2<f32>, array_index: i32, bias: f32) -> vec4<f32>
 fn textureSampleBias_80e579() {
-  var res: vec4<f32> = textureSampleBias(arg_0, arg_1, vec2<f32>(), 1i, 1.f);
+  var res: vec4<f32> = textureSampleBias(arg_0, arg_1, vec2<f32>(1.f), 1i, 1.f);
 }
 
 @fragment
diff --git a/test/tint/builtins/gen/literal/textureSampleBias/80e579.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleBias/80e579.wgsl.expected.dxc.hlsl
index 5e8a9d2..acd8d6c 100644
--- a/test/tint/builtins/gen/literal/textureSampleBias/80e579.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleBias/80e579.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleBias_80e579() {
-  float4 res = arg_0.SampleBias(arg_1, float3(0.0f, 0.0f, float(1)), 1.0f);
+  float4 res = arg_0.SampleBias(arg_1, float3((1.0f).xx, float(1)), 1.0f);
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/literal/textureSampleBias/80e579.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleBias/80e579.wgsl.expected.fxc.hlsl
index 5e8a9d2..acd8d6c 100644
--- a/test/tint/builtins/gen/literal/textureSampleBias/80e579.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleBias/80e579.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleBias_80e579() {
-  float4 res = arg_0.SampleBias(arg_1, float3(0.0f, 0.0f, float(1)), 1.0f);
+  float4 res = arg_0.SampleBias(arg_1, float3((1.0f).xx, float(1)), 1.0f);
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/literal/textureSampleBias/80e579.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureSampleBias/80e579.wgsl.expected.glsl
index 0b9130c..27da1a2 100644
--- a/test/tint/builtins/gen/literal/textureSampleBias/80e579.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureSampleBias/80e579.wgsl.expected.glsl
@@ -4,7 +4,7 @@
 uniform highp sampler2DArray arg_0_arg_1;
 
 void textureSampleBias_80e579() {
-  vec4 res = texture(arg_0_arg_1, vec3(0.0f, 0.0f, float(1)), 1.0f);
+  vec4 res = texture(arg_0_arg_1, vec3(vec2(1.0f), float(1)), 1.0f);
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/literal/textureSampleBias/80e579.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureSampleBias/80e579.wgsl.expected.msl
index 0a6cba8..075eb4f 100644
--- a/test/tint/builtins/gen/literal/textureSampleBias/80e579.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureSampleBias/80e579.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureSampleBias_80e579(texture2d_array<float, access::sample> tint_symbol, sampler tint_symbol_1) {
-  float4 res = tint_symbol.sample(tint_symbol_1, float2(0.0f), 1, bias(1.0f));
+  float4 res = tint_symbol.sample(tint_symbol_1, float2(1.0f), 1, bias(1.0f));
 }
 
 fragment void fragment_main(texture2d_array<float, access::sample> tint_symbol_2 [[texture(0)]], sampler tint_symbol_3 [[sampler(0)]]) {
diff --git a/test/tint/builtins/gen/literal/textureSampleBias/80e579.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSampleBias/80e579.wgsl.expected.spvasm
index 9907f75..0e5ab6c 100644
--- a/test/tint/builtins/gen/literal/textureSampleBias/80e579.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSampleBias/80e579.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 31
+; Bound: 34
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -28,26 +28,29 @@
     %v4float = OpTypeVector %float 4
          %16 = OpTypeSampledImage %3
     %v3float = OpTypeVector %float 3
-    %float_0 = OpConstant %float 0
+    %v2float = OpTypeVector %float 2
+    %float_1 = OpConstant %float 1
+         %21 = OpConstantComposite %v2float %float_1 %float_1
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
-    %float_1 = OpConstant %float 1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %27 = OpConstantNull %v4float
+         %30 = OpConstantNull %v4float
 %textureSampleBias_80e579 = OpFunction %void None %8
          %11 = OpLabel
-        %res = OpVariable %_ptr_Function_v4float Function %27
+        %res = OpVariable %_ptr_Function_v4float Function %30
          %14 = OpLoad %7 %arg_1
          %15 = OpLoad %3 %arg_0
          %17 = OpSampledImage %16 %15 %14
-         %20 = OpConvertSToF %float %int_1
-         %23 = OpCompositeConstruct %v3float %float_0 %float_0 %20
-         %12 = OpImageSampleImplicitLod %v4float %17 %23 Bias %float_1
+         %22 = OpCompositeExtract %float %21 0
+         %23 = OpCompositeExtract %float %21 1
+         %24 = OpConvertSToF %float %int_1
+         %27 = OpCompositeConstruct %v3float %22 %23 %24
+         %12 = OpImageSampleImplicitLod %v4float %17 %27 Bias %float_1
                OpStore %res %12
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %8
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %textureSampleBias_80e579
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %textureSampleBias_80e579
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureSampleBias/80e579.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSampleBias/80e579.wgsl.expected.wgsl
index 2d96438..0bb6820 100644
--- a/test/tint/builtins/gen/literal/textureSampleBias/80e579.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleBias/80e579.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(1) var arg_1 : sampler;
 
 fn textureSampleBias_80e579() {
-  var res : vec4<f32> = textureSampleBias(arg_0, arg_1, vec2<f32>(), 1i, 1.0f);
+  var res : vec4<f32> = textureSampleBias(arg_0, arg_1, vec2<f32>(1.0f), 1i, 1.0f);
 }
 
 @fragment
diff --git a/test/tint/builtins/gen/literal/textureSampleBias/87915c.wgsl b/test/tint/builtins/gen/literal/textureSampleBias/87915c.wgsl
index dc6ef1e..9c0fac2 100644
--- a/test/tint/builtins/gen/literal/textureSampleBias/87915c.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleBias/87915c.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureSampleBias(texture: texture_2d_array<f32>, sampler: sampler, coords: vec2<f32>, array_index: u32, bias: f32, @const offset: vec2<i32>) -> vec4<f32>
 fn textureSampleBias_87915c() {
-  var res: vec4<f32> = textureSampleBias(arg_0, arg_1, vec2<f32>(), 1u, 1.f, vec2<i32>());
+  var res: vec4<f32> = textureSampleBias(arg_0, arg_1, vec2<f32>(1.f), 1u, 1.f, vec2<i32>(1i));
 }
 
 @fragment
diff --git a/test/tint/builtins/gen/literal/textureSampleBias/87915c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleBias/87915c.wgsl.expected.dxc.hlsl
index d6e02c4..2f3e802 100644
--- a/test/tint/builtins/gen/literal/textureSampleBias/87915c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleBias/87915c.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleBias_87915c() {
-  float4 res = arg_0.SampleBias(arg_1, float3(0.0f, 0.0f, float(1u)), 1.0f, (0).xx);
+  float4 res = arg_0.SampleBias(arg_1, float3((1.0f).xx, float(1u)), 1.0f, (1).xx);
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/literal/textureSampleBias/87915c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleBias/87915c.wgsl.expected.fxc.hlsl
index d6e02c4..2f3e802 100644
--- a/test/tint/builtins/gen/literal/textureSampleBias/87915c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleBias/87915c.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleBias_87915c() {
-  float4 res = arg_0.SampleBias(arg_1, float3(0.0f, 0.0f, float(1u)), 1.0f, (0).xx);
+  float4 res = arg_0.SampleBias(arg_1, float3((1.0f).xx, float(1u)), 1.0f, (1).xx);
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/literal/textureSampleBias/87915c.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureSampleBias/87915c.wgsl.expected.glsl
index 27f3db1..a9d8bb7 100644
--- a/test/tint/builtins/gen/literal/textureSampleBias/87915c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureSampleBias/87915c.wgsl.expected.glsl
@@ -4,7 +4,7 @@
 uniform highp sampler2DArray arg_0_arg_1;
 
 void textureSampleBias_87915c() {
-  vec4 res = textureOffset(arg_0_arg_1, vec3(0.0f, 0.0f, float(1u)), ivec2(0), 1.0f);
+  vec4 res = textureOffset(arg_0_arg_1, vec3(vec2(1.0f), float(1u)), ivec2(1), 1.0f);
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/literal/textureSampleBias/87915c.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureSampleBias/87915c.wgsl.expected.msl
index 0d11b74..ce4bb4e 100644
--- a/test/tint/builtins/gen/literal/textureSampleBias/87915c.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureSampleBias/87915c.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureSampleBias_87915c(texture2d_array<float, access::sample> tint_symbol, sampler tint_symbol_1) {
-  float4 res = tint_symbol.sample(tint_symbol_1, float2(0.0f), 1u, bias(1.0f), int2(0));
+  float4 res = tint_symbol.sample(tint_symbol_1, float2(1.0f), 1u, bias(1.0f), int2(1));
 }
 
 fragment void fragment_main(texture2d_array<float, access::sample> tint_symbol_2 [[texture(0)]], sampler tint_symbol_3 [[sampler(0)]]) {
diff --git a/test/tint/builtins/gen/literal/textureSampleBias/87915c.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSampleBias/87915c.wgsl.expected.spvasm
index fc3f131..aa716b8 100644
--- a/test/tint/builtins/gen/literal/textureSampleBias/87915c.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSampleBias/87915c.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 34
+; Bound: 38
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -28,29 +28,33 @@
     %v4float = OpTypeVector %float 4
          %16 = OpTypeSampledImage %3
     %v3float = OpTypeVector %float 3
-    %float_0 = OpConstant %float 0
+    %v2float = OpTypeVector %float 2
+    %float_1 = OpConstant %float 1
+         %21 = OpConstantComposite %v2float %float_1 %float_1
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
-    %float_1 = OpConstant %float 1
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
-         %27 = OpConstantNull %v2int
+      %int_1 = OpConstant %int 1
+         %31 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %30 = OpConstantNull %v4float
+         %34 = OpConstantNull %v4float
 %textureSampleBias_87915c = OpFunction %void None %8
          %11 = OpLabel
-        %res = OpVariable %_ptr_Function_v4float Function %30
+        %res = OpVariable %_ptr_Function_v4float Function %34
          %14 = OpLoad %7 %arg_1
          %15 = OpLoad %3 %arg_0
          %17 = OpSampledImage %16 %15 %14
-         %20 = OpConvertUToF %float %uint_1
-         %23 = OpCompositeConstruct %v3float %float_0 %float_0 %20
-         %12 = OpImageSampleImplicitLod %v4float %17 %23 Bias|ConstOffset %float_1 %27
+         %22 = OpCompositeExtract %float %21 0
+         %23 = OpCompositeExtract %float %21 1
+         %24 = OpConvertUToF %float %uint_1
+         %27 = OpCompositeConstruct %v3float %22 %23 %24
+         %12 = OpImageSampleImplicitLod %v4float %17 %27 Bias|ConstOffset %float_1 %31
                OpStore %res %12
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %8
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureSampleBias_87915c
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureSampleBias_87915c
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureSampleBias/87915c.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSampleBias/87915c.wgsl.expected.wgsl
index ff707a3..d8a4075 100644
--- a/test/tint/builtins/gen/literal/textureSampleBias/87915c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleBias/87915c.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(1) var arg_1 : sampler;
 
 fn textureSampleBias_87915c() {
-  var res : vec4<f32> = textureSampleBias(arg_0, arg_1, vec2<f32>(), 1u, 1.0f, vec2<i32>());
+  var res : vec4<f32> = textureSampleBias(arg_0, arg_1, vec2<f32>(1.0f), 1u, 1.0f, vec2<i32>(1i));
 }
 
 @fragment
diff --git a/test/tint/builtins/gen/literal/textureSampleBias/9dbb51.wgsl b/test/tint/builtins/gen/literal/textureSampleBias/9dbb51.wgsl
index 45cb35f..f238a26 100644
--- a/test/tint/builtins/gen/literal/textureSampleBias/9dbb51.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleBias/9dbb51.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureSampleBias(texture: texture_2d_array<f32>, sampler: sampler, coords: vec2<f32>, array_index: i32, bias: f32, @const offset: vec2<i32>) -> vec4<f32>
 fn textureSampleBias_9dbb51() {
-  var res: vec4<f32> = textureSampleBias(arg_0, arg_1, vec2<f32>(), 1i, 1.f, vec2<i32>());
+  var res: vec4<f32> = textureSampleBias(arg_0, arg_1, vec2<f32>(1.f), 1i, 1.f, vec2<i32>(1i));
 }
 
 @fragment
diff --git a/test/tint/builtins/gen/literal/textureSampleBias/9dbb51.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleBias/9dbb51.wgsl.expected.dxc.hlsl
index bc8a5cd..19f1088 100644
--- a/test/tint/builtins/gen/literal/textureSampleBias/9dbb51.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleBias/9dbb51.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleBias_9dbb51() {
-  float4 res = arg_0.SampleBias(arg_1, float3(0.0f, 0.0f, float(1)), 1.0f, (0).xx);
+  float4 res = arg_0.SampleBias(arg_1, float3((1.0f).xx, float(1)), 1.0f, (1).xx);
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/literal/textureSampleBias/9dbb51.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleBias/9dbb51.wgsl.expected.fxc.hlsl
index bc8a5cd..19f1088 100644
--- a/test/tint/builtins/gen/literal/textureSampleBias/9dbb51.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleBias/9dbb51.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleBias_9dbb51() {
-  float4 res = arg_0.SampleBias(arg_1, float3(0.0f, 0.0f, float(1)), 1.0f, (0).xx);
+  float4 res = arg_0.SampleBias(arg_1, float3((1.0f).xx, float(1)), 1.0f, (1).xx);
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/literal/textureSampleBias/9dbb51.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureSampleBias/9dbb51.wgsl.expected.glsl
index 9f316ab..e66d254 100644
--- a/test/tint/builtins/gen/literal/textureSampleBias/9dbb51.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureSampleBias/9dbb51.wgsl.expected.glsl
@@ -4,7 +4,7 @@
 uniform highp sampler2DArray arg_0_arg_1;
 
 void textureSampleBias_9dbb51() {
-  vec4 res = textureOffset(arg_0_arg_1, vec3(0.0f, 0.0f, float(1)), ivec2(0), 1.0f);
+  vec4 res = textureOffset(arg_0_arg_1, vec3(vec2(1.0f), float(1)), ivec2(1), 1.0f);
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/literal/textureSampleBias/9dbb51.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureSampleBias/9dbb51.wgsl.expected.msl
index 9958fb1..0ef2fee 100644
--- a/test/tint/builtins/gen/literal/textureSampleBias/9dbb51.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureSampleBias/9dbb51.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureSampleBias_9dbb51(texture2d_array<float, access::sample> tint_symbol, sampler tint_symbol_1) {
-  float4 res = tint_symbol.sample(tint_symbol_1, float2(0.0f), 1, bias(1.0f), int2(0));
+  float4 res = tint_symbol.sample(tint_symbol_1, float2(1.0f), 1, bias(1.0f), int2(1));
 }
 
 fragment void fragment_main(texture2d_array<float, access::sample> tint_symbol_2 [[texture(0)]], sampler tint_symbol_3 [[sampler(0)]]) {
diff --git a/test/tint/builtins/gen/literal/textureSampleBias/9dbb51.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSampleBias/9dbb51.wgsl.expected.spvasm
index f7bcac5..eb7f586 100644
--- a/test/tint/builtins/gen/literal/textureSampleBias/9dbb51.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSampleBias/9dbb51.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 33
+; Bound: 36
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -28,28 +28,31 @@
     %v4float = OpTypeVector %float 4
          %16 = OpTypeSampledImage %3
     %v3float = OpTypeVector %float 3
-    %float_0 = OpConstant %float 0
+    %v2float = OpTypeVector %float 2
+    %float_1 = OpConstant %float 1
+         %21 = OpConstantComposite %v2float %float_1 %float_1
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
-    %float_1 = OpConstant %float 1
       %v2int = OpTypeVector %int 2
-         %26 = OpConstantNull %v2int
+         %29 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %29 = OpConstantNull %v4float
+         %32 = OpConstantNull %v4float
 %textureSampleBias_9dbb51 = OpFunction %void None %8
          %11 = OpLabel
-        %res = OpVariable %_ptr_Function_v4float Function %29
+        %res = OpVariable %_ptr_Function_v4float Function %32
          %14 = OpLoad %7 %arg_1
          %15 = OpLoad %3 %arg_0
          %17 = OpSampledImage %16 %15 %14
-         %20 = OpConvertSToF %float %int_1
-         %23 = OpCompositeConstruct %v3float %float_0 %float_0 %20
-         %12 = OpImageSampleImplicitLod %v4float %17 %23 Bias|ConstOffset %float_1 %26
+         %22 = OpCompositeExtract %float %21 0
+         %23 = OpCompositeExtract %float %21 1
+         %24 = OpConvertSToF %float %int_1
+         %27 = OpCompositeConstruct %v3float %22 %23 %24
+         %12 = OpImageSampleImplicitLod %v4float %17 %27 Bias|ConstOffset %float_1 %29
                OpStore %res %12
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %8
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %textureSampleBias_9dbb51
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %textureSampleBias_9dbb51
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureSampleBias/9dbb51.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSampleBias/9dbb51.wgsl.expected.wgsl
index 24794c9..7107527 100644
--- a/test/tint/builtins/gen/literal/textureSampleBias/9dbb51.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleBias/9dbb51.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(1) var arg_1 : sampler;
 
 fn textureSampleBias_9dbb51() {
-  var res : vec4<f32> = textureSampleBias(arg_0, arg_1, vec2<f32>(), 1i, 1.0f, vec2<i32>());
+  var res : vec4<f32> = textureSampleBias(arg_0, arg_1, vec2<f32>(1.0f), 1i, 1.0f, vec2<i32>(1i));
 }
 
 @fragment
diff --git a/test/tint/builtins/gen/literal/textureSampleBias/a161cf.wgsl b/test/tint/builtins/gen/literal/textureSampleBias/a161cf.wgsl
index e236889..53df7a0 100644
--- a/test/tint/builtins/gen/literal/textureSampleBias/a161cf.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleBias/a161cf.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureSampleBias(texture: texture_2d<f32>, sampler: sampler, coords: vec2<f32>, bias: f32, @const offset: vec2<i32>) -> vec4<f32>
 fn textureSampleBias_a161cf() {
-  var res: vec4<f32> = textureSampleBias(arg_0, arg_1, vec2<f32>(), 1.f, vec2<i32>());
+  var res: vec4<f32> = textureSampleBias(arg_0, arg_1, vec2<f32>(1.f), 1.f, vec2<i32>(1i));
 }
 
 @fragment
diff --git a/test/tint/builtins/gen/literal/textureSampleBias/a161cf.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleBias/a161cf.wgsl.expected.dxc.hlsl
index 3d63e8a..4945bcf 100644
--- a/test/tint/builtins/gen/literal/textureSampleBias/a161cf.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleBias/a161cf.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleBias_a161cf() {
-  float4 res = arg_0.SampleBias(arg_1, (0.0f).xx, 1.0f, (0).xx);
+  float4 res = arg_0.SampleBias(arg_1, (1.0f).xx, 1.0f, (1).xx);
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/literal/textureSampleBias/a161cf.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleBias/a161cf.wgsl.expected.fxc.hlsl
index 3d63e8a..4945bcf 100644
--- a/test/tint/builtins/gen/literal/textureSampleBias/a161cf.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleBias/a161cf.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleBias_a161cf() {
-  float4 res = arg_0.SampleBias(arg_1, (0.0f).xx, 1.0f, (0).xx);
+  float4 res = arg_0.SampleBias(arg_1, (1.0f).xx, 1.0f, (1).xx);
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/literal/textureSampleBias/a161cf.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureSampleBias/a161cf.wgsl.expected.glsl
index e819fcd..d87948b 100644
--- a/test/tint/builtins/gen/literal/textureSampleBias/a161cf.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureSampleBias/a161cf.wgsl.expected.glsl
@@ -4,7 +4,7 @@
 uniform highp sampler2D arg_0_arg_1;
 
 void textureSampleBias_a161cf() {
-  vec4 res = textureOffset(arg_0_arg_1, vec2(0.0f), ivec2(0), 1.0f);
+  vec4 res = textureOffset(arg_0_arg_1, vec2(1.0f), ivec2(1), 1.0f);
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/literal/textureSampleBias/a161cf.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureSampleBias/a161cf.wgsl.expected.msl
index 87dac44..c19ac1d 100644
--- a/test/tint/builtins/gen/literal/textureSampleBias/a161cf.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureSampleBias/a161cf.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureSampleBias_a161cf(texture2d<float, access::sample> tint_symbol, sampler tint_symbol_1) {
-  float4 res = tint_symbol.sample(tint_symbol_1, float2(0.0f), bias(1.0f), int2(0));
+  float4 res = tint_symbol.sample(tint_symbol_1, float2(1.0f), bias(1.0f), int2(1));
 }
 
 fragment void fragment_main(texture2d<float, access::sample> tint_symbol_2 [[texture(0)]], sampler tint_symbol_3 [[sampler(0)]]) {
diff --git a/test/tint/builtins/gen/literal/textureSampleBias/a161cf.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSampleBias/a161cf.wgsl.expected.spvasm
index 6b14f26..9ef90ee 100644
--- a/test/tint/builtins/gen/literal/textureSampleBias/a161cf.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSampleBias/a161cf.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 30
+; Bound: 31
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -28,25 +28,26 @@
     %v4float = OpTypeVector %float 4
          %16 = OpTypeSampledImage %3
     %v2float = OpTypeVector %float 2
-         %19 = OpConstantNull %v2float
     %float_1 = OpConstant %float 1
+         %20 = OpConstantComposite %v2float %float_1 %float_1
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
-         %23 = OpConstantNull %v2int
+      %int_1 = OpConstant %int 1
+         %24 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %26 = OpConstantNull %v4float
+         %27 = OpConstantNull %v4float
 %textureSampleBias_a161cf = OpFunction %void None %8
          %11 = OpLabel
-        %res = OpVariable %_ptr_Function_v4float Function %26
+        %res = OpVariable %_ptr_Function_v4float Function %27
          %14 = OpLoad %7 %arg_1
          %15 = OpLoad %3 %arg_0
          %17 = OpSampledImage %16 %15 %14
-         %12 = OpImageSampleImplicitLod %v4float %17 %19 Bias|ConstOffset %float_1 %23
+         %12 = OpImageSampleImplicitLod %v4float %17 %20 Bias|ConstOffset %float_1 %24
                OpStore %res %12
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %8
-         %28 = OpLabel
-         %29 = OpFunctionCall %void %textureSampleBias_a161cf
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %textureSampleBias_a161cf
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureSampleBias/a161cf.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSampleBias/a161cf.wgsl.expected.wgsl
index a9dd4dd..5e297e0 100644
--- a/test/tint/builtins/gen/literal/textureSampleBias/a161cf.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleBias/a161cf.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(1) var arg_1 : sampler;
 
 fn textureSampleBias_a161cf() {
-  var res : vec4<f32> = textureSampleBias(arg_0, arg_1, vec2<f32>(), 1.0f, vec2<i32>());
+  var res : vec4<f32> = textureSampleBias(arg_0, arg_1, vec2<f32>(1.0f), 1.0f, vec2<i32>(1i));
 }
 
 @fragment
diff --git a/test/tint/builtins/gen/literal/textureSampleBias/c6953d.wgsl b/test/tint/builtins/gen/literal/textureSampleBias/c6953d.wgsl
index 2104892..76bd6e3 100644
--- a/test/tint/builtins/gen/literal/textureSampleBias/c6953d.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleBias/c6953d.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureSampleBias(texture: texture_cube_array<f32>, sampler: sampler, coords: vec3<f32>, array_index: u32, bias: f32) -> vec4<f32>
 fn textureSampleBias_c6953d() {
-  var res: vec4<f32> = textureSampleBias(arg_0, arg_1, vec3<f32>(), 1u, 1.f);
+  var res: vec4<f32> = textureSampleBias(arg_0, arg_1, vec3<f32>(1.f), 1u, 1.f);
 }
 
 @fragment
diff --git a/test/tint/builtins/gen/literal/textureSampleBias/c6953d.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleBias/c6953d.wgsl.expected.dxc.hlsl
index ed2fe60..5910685 100644
--- a/test/tint/builtins/gen/literal/textureSampleBias/c6953d.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleBias/c6953d.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleBias_c6953d() {
-  float4 res = arg_0.SampleBias(arg_1, float4(0.0f, 0.0f, 0.0f, float(1u)), 1.0f);
+  float4 res = arg_0.SampleBias(arg_1, float4((1.0f).xxx, float(1u)), 1.0f);
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/literal/textureSampleBias/c6953d.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleBias/c6953d.wgsl.expected.fxc.hlsl
index ed2fe60..5910685 100644
--- a/test/tint/builtins/gen/literal/textureSampleBias/c6953d.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleBias/c6953d.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleBias_c6953d() {
-  float4 res = arg_0.SampleBias(arg_1, float4(0.0f, 0.0f, 0.0f, float(1u)), 1.0f);
+  float4 res = arg_0.SampleBias(arg_1, float4((1.0f).xxx, float(1u)), 1.0f);
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/literal/textureSampleBias/c6953d.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureSampleBias/c6953d.wgsl.expected.msl
index a116ed6..1b2d131 100644
--- a/test/tint/builtins/gen/literal/textureSampleBias/c6953d.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureSampleBias/c6953d.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureSampleBias_c6953d(texturecube_array<float, access::sample> tint_symbol, sampler tint_symbol_1) {
-  float4 res = tint_symbol.sample(tint_symbol_1, float3(0.0f), 1u, bias(1.0f));
+  float4 res = tint_symbol.sample(tint_symbol_1, float3(1.0f), 1u, bias(1.0f));
 }
 
 fragment void fragment_main(texturecube_array<float, access::sample> tint_symbol_2 [[texture(0)]], sampler tint_symbol_3 [[sampler(0)]]) {
diff --git a/test/tint/builtins/gen/literal/textureSampleBias/c6953d.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSampleBias/c6953d.wgsl.expected.spvasm
index 9e266d7..a397331 100644
--- a/test/tint/builtins/gen/literal/textureSampleBias/c6953d.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSampleBias/c6953d.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 30
+; Bound: 34
 ; Schema: 0
                OpCapability Shader
                OpCapability SampledCubeArray
@@ -28,26 +28,30 @@
           %8 = OpTypeFunction %void
     %v4float = OpTypeVector %float 4
          %16 = OpTypeSampledImage %3
-    %float_0 = OpConstant %float 0
+    %v3float = OpTypeVector %float 3
+    %float_1 = OpConstant %float 1
+         %20 = OpConstantComposite %v3float %float_1 %float_1 %float_1
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
-    %float_1 = OpConstant %float 1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %26 = OpConstantNull %v4float
+         %30 = OpConstantNull %v4float
 %textureSampleBias_c6953d = OpFunction %void None %8
          %11 = OpLabel
-        %res = OpVariable %_ptr_Function_v4float Function %26
+        %res = OpVariable %_ptr_Function_v4float Function %30
          %14 = OpLoad %7 %arg_1
          %15 = OpLoad %3 %arg_0
          %17 = OpSampledImage %16 %15 %14
-         %19 = OpConvertUToF %float %uint_1
-         %22 = OpCompositeConstruct %v4float %float_0 %float_0 %float_0 %19
-         %12 = OpImageSampleImplicitLod %v4float %17 %22 Bias %float_1
+         %21 = OpCompositeExtract %float %20 0
+         %22 = OpCompositeExtract %float %20 1
+         %23 = OpCompositeExtract %float %20 2
+         %24 = OpConvertUToF %float %uint_1
+         %27 = OpCompositeConstruct %v4float %21 %22 %23 %24
+         %12 = OpImageSampleImplicitLod %v4float %17 %27 Bias %float_1
                OpStore %res %12
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %8
-         %28 = OpLabel
-         %29 = OpFunctionCall %void %textureSampleBias_c6953d
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %textureSampleBias_c6953d
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureSampleBias/c6953d.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSampleBias/c6953d.wgsl.expected.wgsl
index 3309656..05036e8 100644
--- a/test/tint/builtins/gen/literal/textureSampleBias/c6953d.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleBias/c6953d.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(1) var arg_1 : sampler;
 
 fn textureSampleBias_c6953d() {
-  var res : vec4<f32> = textureSampleBias(arg_0, arg_1, vec3<f32>(), 1u, 1.0f);
+  var res : vec4<f32> = textureSampleBias(arg_0, arg_1, vec3<f32>(1.0f), 1u, 1.0f);
 }
 
 @fragment
diff --git a/test/tint/builtins/gen/literal/textureSampleBias/d3fa1b.wgsl b/test/tint/builtins/gen/literal/textureSampleBias/d3fa1b.wgsl
index 9fc2800..69b7a6c 100644
--- a/test/tint/builtins/gen/literal/textureSampleBias/d3fa1b.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleBias/d3fa1b.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureSampleBias(texture: texture_3d<f32>, sampler: sampler, coords: vec3<f32>, bias: f32) -> vec4<f32>
 fn textureSampleBias_d3fa1b() {
-  var res: vec4<f32> = textureSampleBias(arg_0, arg_1, vec3<f32>(), 1.f);
+  var res: vec4<f32> = textureSampleBias(arg_0, arg_1, vec3<f32>(1.f), 1.f);
 }
 
 @fragment
diff --git a/test/tint/builtins/gen/literal/textureSampleBias/d3fa1b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleBias/d3fa1b.wgsl.expected.dxc.hlsl
index cfb6394..4a3c173 100644
--- a/test/tint/builtins/gen/literal/textureSampleBias/d3fa1b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleBias/d3fa1b.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleBias_d3fa1b() {
-  float4 res = arg_0.SampleBias(arg_1, (0.0f).xxx, 1.0f);
+  float4 res = arg_0.SampleBias(arg_1, (1.0f).xxx, 1.0f);
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/literal/textureSampleBias/d3fa1b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleBias/d3fa1b.wgsl.expected.fxc.hlsl
index cfb6394..4a3c173 100644
--- a/test/tint/builtins/gen/literal/textureSampleBias/d3fa1b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleBias/d3fa1b.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleBias_d3fa1b() {
-  float4 res = arg_0.SampleBias(arg_1, (0.0f).xxx, 1.0f);
+  float4 res = arg_0.SampleBias(arg_1, (1.0f).xxx, 1.0f);
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/literal/textureSampleBias/d3fa1b.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureSampleBias/d3fa1b.wgsl.expected.glsl
index ae1ce59..0070577 100644
--- a/test/tint/builtins/gen/literal/textureSampleBias/d3fa1b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureSampleBias/d3fa1b.wgsl.expected.glsl
@@ -4,7 +4,7 @@
 uniform highp sampler3D arg_0_arg_1;
 
 void textureSampleBias_d3fa1b() {
-  vec4 res = texture(arg_0_arg_1, vec3(0.0f), 1.0f);
+  vec4 res = texture(arg_0_arg_1, vec3(1.0f), 1.0f);
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/literal/textureSampleBias/d3fa1b.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureSampleBias/d3fa1b.wgsl.expected.msl
index 07cd37c..abb2266 100644
--- a/test/tint/builtins/gen/literal/textureSampleBias/d3fa1b.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureSampleBias/d3fa1b.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureSampleBias_d3fa1b(texture3d<float, access::sample> tint_symbol, sampler tint_symbol_1) {
-  float4 res = tint_symbol.sample(tint_symbol_1, float3(0.0f), bias(1.0f));
+  float4 res = tint_symbol.sample(tint_symbol_1, float3(1.0f), bias(1.0f));
 }
 
 fragment void fragment_main(texture3d<float, access::sample> tint_symbol_2 [[texture(0)]], sampler tint_symbol_3 [[sampler(0)]]) {
diff --git a/test/tint/builtins/gen/literal/textureSampleBias/d3fa1b.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSampleBias/d3fa1b.wgsl.expected.spvasm
index 563bd63..f784b80 100644
--- a/test/tint/builtins/gen/literal/textureSampleBias/d3fa1b.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSampleBias/d3fa1b.wgsl.expected.spvasm
@@ -28,8 +28,8 @@
     %v4float = OpTypeVector %float 4
          %16 = OpTypeSampledImage %3
     %v3float = OpTypeVector %float 3
-         %19 = OpConstantNull %v3float
     %float_1 = OpConstant %float 1
+         %20 = OpConstantComposite %v3float %float_1 %float_1 %float_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
          %23 = OpConstantNull %v4float
 %textureSampleBias_d3fa1b = OpFunction %void None %8
@@ -38,7 +38,7 @@
          %14 = OpLoad %7 %arg_1
          %15 = OpLoad %3 %arg_0
          %17 = OpSampledImage %16 %15 %14
-         %12 = OpImageSampleImplicitLod %v4float %17 %19 Bias %float_1
+         %12 = OpImageSampleImplicitLod %v4float %17 %20 Bias %float_1
                OpStore %res %12
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureSampleBias/d3fa1b.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSampleBias/d3fa1b.wgsl.expected.wgsl
index 88a0885..4b2a5ef 100644
--- a/test/tint/builtins/gen/literal/textureSampleBias/d3fa1b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleBias/d3fa1b.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(1) var arg_1 : sampler;
 
 fn textureSampleBias_d3fa1b() {
-  var res : vec4<f32> = textureSampleBias(arg_0, arg_1, vec3<f32>(), 1.0f);
+  var res : vec4<f32> = textureSampleBias(arg_0, arg_1, vec3<f32>(1.0f), 1.0f);
 }
 
 @fragment
diff --git a/test/tint/builtins/gen/literal/textureSampleBias/eed7c4.wgsl b/test/tint/builtins/gen/literal/textureSampleBias/eed7c4.wgsl
index 59b8491..8ce34f3 100644
--- a/test/tint/builtins/gen/literal/textureSampleBias/eed7c4.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleBias/eed7c4.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureSampleBias(texture: texture_cube_array<f32>, sampler: sampler, coords: vec3<f32>, array_index: i32, bias: f32) -> vec4<f32>
 fn textureSampleBias_eed7c4() {
-  var res: vec4<f32> = textureSampleBias(arg_0, arg_1, vec3<f32>(), 1i, 1.f);
+  var res: vec4<f32> = textureSampleBias(arg_0, arg_1, vec3<f32>(1.f), 1i, 1.f);
 }
 
 @fragment
diff --git a/test/tint/builtins/gen/literal/textureSampleBias/eed7c4.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleBias/eed7c4.wgsl.expected.dxc.hlsl
index c9c75d9..c7a3c0e 100644
--- a/test/tint/builtins/gen/literal/textureSampleBias/eed7c4.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleBias/eed7c4.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleBias_eed7c4() {
-  float4 res = arg_0.SampleBias(arg_1, float4(0.0f, 0.0f, 0.0f, float(1)), 1.0f);
+  float4 res = arg_0.SampleBias(arg_1, float4((1.0f).xxx, float(1)), 1.0f);
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/literal/textureSampleBias/eed7c4.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleBias/eed7c4.wgsl.expected.fxc.hlsl
index c9c75d9..c7a3c0e 100644
--- a/test/tint/builtins/gen/literal/textureSampleBias/eed7c4.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleBias/eed7c4.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleBias_eed7c4() {
-  float4 res = arg_0.SampleBias(arg_1, float4(0.0f, 0.0f, 0.0f, float(1)), 1.0f);
+  float4 res = arg_0.SampleBias(arg_1, float4((1.0f).xxx, float(1)), 1.0f);
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/literal/textureSampleBias/eed7c4.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureSampleBias/eed7c4.wgsl.expected.msl
index de4a663..f85bedb 100644
--- a/test/tint/builtins/gen/literal/textureSampleBias/eed7c4.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureSampleBias/eed7c4.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureSampleBias_eed7c4(texturecube_array<float, access::sample> tint_symbol, sampler tint_symbol_1) {
-  float4 res = tint_symbol.sample(tint_symbol_1, float3(0.0f), 1, bias(1.0f));
+  float4 res = tint_symbol.sample(tint_symbol_1, float3(1.0f), 1, bias(1.0f));
 }
 
 fragment void fragment_main(texturecube_array<float, access::sample> tint_symbol_2 [[texture(0)]], sampler tint_symbol_3 [[sampler(0)]]) {
diff --git a/test/tint/builtins/gen/literal/textureSampleBias/eed7c4.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSampleBias/eed7c4.wgsl.expected.spvasm
index ade6cb9..dd2157d 100644
--- a/test/tint/builtins/gen/literal/textureSampleBias/eed7c4.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSampleBias/eed7c4.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 30
+; Bound: 34
 ; Schema: 0
                OpCapability Shader
                OpCapability SampledCubeArray
@@ -28,26 +28,30 @@
           %8 = OpTypeFunction %void
     %v4float = OpTypeVector %float 4
          %16 = OpTypeSampledImage %3
-    %float_0 = OpConstant %float 0
+    %v3float = OpTypeVector %float 3
+    %float_1 = OpConstant %float 1
+         %20 = OpConstantComposite %v3float %float_1 %float_1 %float_1
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
-    %float_1 = OpConstant %float 1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %26 = OpConstantNull %v4float
+         %30 = OpConstantNull %v4float
 %textureSampleBias_eed7c4 = OpFunction %void None %8
          %11 = OpLabel
-        %res = OpVariable %_ptr_Function_v4float Function %26
+        %res = OpVariable %_ptr_Function_v4float Function %30
          %14 = OpLoad %7 %arg_1
          %15 = OpLoad %3 %arg_0
          %17 = OpSampledImage %16 %15 %14
-         %19 = OpConvertSToF %float %int_1
-         %22 = OpCompositeConstruct %v4float %float_0 %float_0 %float_0 %19
-         %12 = OpImageSampleImplicitLod %v4float %17 %22 Bias %float_1
+         %21 = OpCompositeExtract %float %20 0
+         %22 = OpCompositeExtract %float %20 1
+         %23 = OpCompositeExtract %float %20 2
+         %24 = OpConvertSToF %float %int_1
+         %27 = OpCompositeConstruct %v4float %21 %22 %23 %24
+         %12 = OpImageSampleImplicitLod %v4float %17 %27 Bias %float_1
                OpStore %res %12
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %8
-         %28 = OpLabel
-         %29 = OpFunctionCall %void %textureSampleBias_eed7c4
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %textureSampleBias_eed7c4
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureSampleBias/eed7c4.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSampleBias/eed7c4.wgsl.expected.wgsl
index f1f2c2e..7a4b852 100644
--- a/test/tint/builtins/gen/literal/textureSampleBias/eed7c4.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleBias/eed7c4.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(1) var arg_1 : sampler;
 
 fn textureSampleBias_eed7c4() {
-  var res : vec4<f32> = textureSampleBias(arg_0, arg_1, vec3<f32>(), 1i, 1.0f);
+  var res : vec4<f32> = textureSampleBias(arg_0, arg_1, vec3<f32>(1.0f), 1i, 1.0f);
 }
 
 @fragment
diff --git a/test/tint/builtins/gen/literal/textureSampleCompare/1912e5.wgsl b/test/tint/builtins/gen/literal/textureSampleCompare/1912e5.wgsl
index 5bf28c5..7fdb1a2 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompare/1912e5.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompare/1912e5.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureSampleCompare(texture: texture_depth_cube_array, sampler: sampler_comparison, coords: vec3<f32>, array_index: u32, depth_ref: f32) -> f32
 fn textureSampleCompare_1912e5() {
-  var res: f32 = textureSampleCompare(arg_0, arg_1, vec3<f32>(), 1u, 1.f);
+  var res: f32 = textureSampleCompare(arg_0, arg_1, vec3<f32>(1.f), 1u, 1.f);
 }
 
 @fragment
diff --git a/test/tint/builtins/gen/literal/textureSampleCompare/1912e5.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleCompare/1912e5.wgsl.expected.dxc.hlsl
index 1547bd9..7a92361 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompare/1912e5.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompare/1912e5.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerComparisonState arg_1 : register(s1, space1);
 
 void textureSampleCompare_1912e5() {
-  float res = arg_0.SampleCmp(arg_1, float4(0.0f, 0.0f, 0.0f, float(1u)), 1.0f);
+  float res = arg_0.SampleCmp(arg_1, float4((1.0f).xxx, float(1u)), 1.0f);
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/literal/textureSampleCompare/1912e5.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleCompare/1912e5.wgsl.expected.fxc.hlsl
index 1547bd9..7a92361 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompare/1912e5.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompare/1912e5.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerComparisonState arg_1 : register(s1, space1);
 
 void textureSampleCompare_1912e5() {
-  float res = arg_0.SampleCmp(arg_1, float4(0.0f, 0.0f, 0.0f, float(1u)), 1.0f);
+  float res = arg_0.SampleCmp(arg_1, float4((1.0f).xxx, float(1u)), 1.0f);
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/literal/textureSampleCompare/1912e5.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureSampleCompare/1912e5.wgsl.expected.msl
index 13fdf12..081841e 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompare/1912e5.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureSampleCompare/1912e5.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureSampleCompare_1912e5(depthcube_array<float, access::sample> tint_symbol, sampler tint_symbol_1) {
-  float res = tint_symbol.sample_compare(tint_symbol_1, float3(0.0f), 1u, 1.0f);
+  float res = tint_symbol.sample_compare(tint_symbol_1, float3(1.0f), 1u, 1.0f);
 }
 
 fragment void fragment_main(depthcube_array<float, access::sample> tint_symbol_2 [[texture(0)]], sampler tint_symbol_3 [[sampler(0)]]) {
diff --git a/test/tint/builtins/gen/literal/textureSampleCompare/1912e5.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSampleCompare/1912e5.wgsl.expected.spvasm
index c678e74..c25195f 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompare/1912e5.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSampleCompare/1912e5.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 30
+; Bound: 34
 ; Schema: 0
                OpCapability Shader
                OpCapability SampledCubeArray
@@ -28,26 +28,30 @@
           %8 = OpTypeFunction %void
          %15 = OpTypeSampledImage %3
     %v4float = OpTypeVector %float 4
-    %float_0 = OpConstant %float 0
+    %v3float = OpTypeVector %float 3
+    %float_1 = OpConstant %float 1
+         %20 = OpConstantComposite %v3float %float_1 %float_1 %float_1
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
-    %float_1 = OpConstant %float 1
 %_ptr_Function_float = OpTypePointer Function %float
-         %26 = OpConstantNull %float
+         %30 = OpConstantNull %float
 %textureSampleCompare_1912e5 = OpFunction %void None %8
          %11 = OpLabel
-        %res = OpVariable %_ptr_Function_float Function %26
+        %res = OpVariable %_ptr_Function_float Function %30
          %13 = OpLoad %7 %arg_1
          %14 = OpLoad %3 %arg_0
          %16 = OpSampledImage %15 %14 %13
-         %19 = OpConvertUToF %float %uint_1
-         %22 = OpCompositeConstruct %v4float %float_0 %float_0 %float_0 %19
-         %12 = OpImageSampleDrefImplicitLod %float %16 %22 %float_1
+         %21 = OpCompositeExtract %float %20 0
+         %22 = OpCompositeExtract %float %20 1
+         %23 = OpCompositeExtract %float %20 2
+         %24 = OpConvertUToF %float %uint_1
+         %27 = OpCompositeConstruct %v4float %21 %22 %23 %24
+         %12 = OpImageSampleDrefImplicitLod %float %16 %27 %float_1
                OpStore %res %12
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %8
-         %28 = OpLabel
-         %29 = OpFunctionCall %void %textureSampleCompare_1912e5
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %textureSampleCompare_1912e5
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureSampleCompare/1912e5.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSampleCompare/1912e5.wgsl.expected.wgsl
index 8f16f24..fe92032 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompare/1912e5.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompare/1912e5.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(1) var arg_1 : sampler_comparison;
 
 fn textureSampleCompare_1912e5() {
-  var res : f32 = textureSampleCompare(arg_0, arg_1, vec3<f32>(), 1u, 1.0f);
+  var res : f32 = textureSampleCompare(arg_0, arg_1, vec3<f32>(1.0f), 1u, 1.0f);
 }
 
 @fragment
diff --git a/test/tint/builtins/gen/literal/textureSampleCompare/3a5923.wgsl b/test/tint/builtins/gen/literal/textureSampleCompare/3a5923.wgsl
index 891c420..164f501 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompare/3a5923.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompare/3a5923.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureSampleCompare(texture: texture_depth_2d, sampler: sampler_comparison, coords: vec2<f32>, depth_ref: f32) -> f32
 fn textureSampleCompare_3a5923() {
-  var res: f32 = textureSampleCompare(arg_0, arg_1, vec2<f32>(), 1.f);
+  var res: f32 = textureSampleCompare(arg_0, arg_1, vec2<f32>(1.f), 1.f);
 }
 
 @fragment
diff --git a/test/tint/builtins/gen/literal/textureSampleCompare/3a5923.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleCompare/3a5923.wgsl.expected.dxc.hlsl
index 948b7a7..0b84d35 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompare/3a5923.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompare/3a5923.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerComparisonState arg_1 : register(s1, space1);
 
 void textureSampleCompare_3a5923() {
-  float res = arg_0.SampleCmp(arg_1, (0.0f).xx, 1.0f);
+  float res = arg_0.SampleCmp(arg_1, (1.0f).xx, 1.0f);
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/literal/textureSampleCompare/3a5923.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleCompare/3a5923.wgsl.expected.fxc.hlsl
index 948b7a7..0b84d35 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompare/3a5923.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompare/3a5923.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerComparisonState arg_1 : register(s1, space1);
 
 void textureSampleCompare_3a5923() {
-  float res = arg_0.SampleCmp(arg_1, (0.0f).xx, 1.0f);
+  float res = arg_0.SampleCmp(arg_1, (1.0f).xx, 1.0f);
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/literal/textureSampleCompare/3a5923.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureSampleCompare/3a5923.wgsl.expected.glsl
index 7210133..572b81d 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompare/3a5923.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompare/3a5923.wgsl.expected.glsl
@@ -4,7 +4,7 @@
 uniform highp sampler2DShadow arg_0_arg_1;
 
 void textureSampleCompare_3a5923() {
-  float res = texture(arg_0_arg_1, vec3(0.0f, 0.0f, 1.0f));
+  float res = texture(arg_0_arg_1, vec3(vec2(1.0f), 1.0f));
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/literal/textureSampleCompare/3a5923.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureSampleCompare/3a5923.wgsl.expected.msl
index 6b5e76d..c2f18a0 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompare/3a5923.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureSampleCompare/3a5923.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureSampleCompare_3a5923(depth2d<float, access::sample> tint_symbol, sampler tint_symbol_1) {
-  float res = tint_symbol.sample_compare(tint_symbol_1, float2(0.0f), 1.0f);
+  float res = tint_symbol.sample_compare(tint_symbol_1, float2(1.0f), 1.0f);
 }
 
 fragment void fragment_main(depth2d<float, access::sample> tint_symbol_2 [[texture(0)]], sampler tint_symbol_3 [[sampler(0)]]) {
diff --git a/test/tint/builtins/gen/literal/textureSampleCompare/3a5923.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSampleCompare/3a5923.wgsl.expected.spvasm
index a3d0519..3e1d3fc 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompare/3a5923.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSampleCompare/3a5923.wgsl.expected.spvasm
@@ -27,8 +27,8 @@
           %8 = OpTypeFunction %void
          %15 = OpTypeSampledImage %3
     %v2float = OpTypeVector %float 2
-         %18 = OpConstantNull %v2float
     %float_1 = OpConstant %float 1
+         %19 = OpConstantComposite %v2float %float_1 %float_1
 %_ptr_Function_float = OpTypePointer Function %float
          %22 = OpConstantNull %float
 %textureSampleCompare_3a5923 = OpFunction %void None %8
@@ -37,7 +37,7 @@
          %13 = OpLoad %7 %arg_1
          %14 = OpLoad %3 %arg_0
          %16 = OpSampledImage %15 %14 %13
-         %12 = OpImageSampleDrefImplicitLod %float %16 %18 %float_1
+         %12 = OpImageSampleDrefImplicitLod %float %16 %19 %float_1
                OpStore %res %12
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureSampleCompare/3a5923.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSampleCompare/3a5923.wgsl.expected.wgsl
index 58dbd58..f25220e 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompare/3a5923.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompare/3a5923.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(1) var arg_1 : sampler_comparison;
 
 fn textureSampleCompare_3a5923() {
-  var res : f32 = textureSampleCompare(arg_0, arg_1, vec2<f32>(), 1.0f);
+  var res : f32 = textureSampleCompare(arg_0, arg_1, vec2<f32>(1.0f), 1.0f);
 }
 
 @fragment
diff --git a/test/tint/builtins/gen/literal/textureSampleCompare/63fb83.wgsl b/test/tint/builtins/gen/literal/textureSampleCompare/63fb83.wgsl
index c73015c..8f8b48f 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompare/63fb83.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompare/63fb83.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureSampleCompare(texture: texture_depth_cube, sampler: sampler_comparison, coords: vec3<f32>, depth_ref: f32) -> f32
 fn textureSampleCompare_63fb83() {
-  var res: f32 = textureSampleCompare(arg_0, arg_1, vec3<f32>(), 1.f);
+  var res: f32 = textureSampleCompare(arg_0, arg_1, vec3<f32>(1.f), 1.f);
 }
 
 @fragment
diff --git a/test/tint/builtins/gen/literal/textureSampleCompare/63fb83.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleCompare/63fb83.wgsl.expected.dxc.hlsl
index 33b00bc..1b2f46c 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompare/63fb83.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompare/63fb83.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerComparisonState arg_1 : register(s1, space1);
 
 void textureSampleCompare_63fb83() {
-  float res = arg_0.SampleCmp(arg_1, (0.0f).xxx, 1.0f);
+  float res = arg_0.SampleCmp(arg_1, (1.0f).xxx, 1.0f);
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/literal/textureSampleCompare/63fb83.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleCompare/63fb83.wgsl.expected.fxc.hlsl
index 33b00bc..1b2f46c 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompare/63fb83.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompare/63fb83.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerComparisonState arg_1 : register(s1, space1);
 
 void textureSampleCompare_63fb83() {
-  float res = arg_0.SampleCmp(arg_1, (0.0f).xxx, 1.0f);
+  float res = arg_0.SampleCmp(arg_1, (1.0f).xxx, 1.0f);
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/literal/textureSampleCompare/63fb83.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureSampleCompare/63fb83.wgsl.expected.glsl
index 43a8eaa..c44279d 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompare/63fb83.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompare/63fb83.wgsl.expected.glsl
@@ -4,7 +4,7 @@
 uniform highp samplerCubeShadow arg_0_arg_1;
 
 void textureSampleCompare_63fb83() {
-  float res = texture(arg_0_arg_1, vec4(0.0f, 0.0f, 0.0f, 1.0f));
+  float res = texture(arg_0_arg_1, vec4(vec3(1.0f), 1.0f));
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/literal/textureSampleCompare/63fb83.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureSampleCompare/63fb83.wgsl.expected.msl
index bdcf85c..675ddff 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompare/63fb83.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureSampleCompare/63fb83.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureSampleCompare_63fb83(depthcube<float, access::sample> tint_symbol, sampler tint_symbol_1) {
-  float res = tint_symbol.sample_compare(tint_symbol_1, float3(0.0f), 1.0f);
+  float res = tint_symbol.sample_compare(tint_symbol_1, float3(1.0f), 1.0f);
 }
 
 fragment void fragment_main(depthcube<float, access::sample> tint_symbol_2 [[texture(0)]], sampler tint_symbol_3 [[sampler(0)]]) {
diff --git a/test/tint/builtins/gen/literal/textureSampleCompare/63fb83.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSampleCompare/63fb83.wgsl.expected.spvasm
index 3f2a1bf..a787c1e 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompare/63fb83.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSampleCompare/63fb83.wgsl.expected.spvasm
@@ -27,8 +27,8 @@
           %8 = OpTypeFunction %void
          %15 = OpTypeSampledImage %3
     %v3float = OpTypeVector %float 3
-         %18 = OpConstantNull %v3float
     %float_1 = OpConstant %float 1
+         %19 = OpConstantComposite %v3float %float_1 %float_1 %float_1
 %_ptr_Function_float = OpTypePointer Function %float
          %22 = OpConstantNull %float
 %textureSampleCompare_63fb83 = OpFunction %void None %8
@@ -37,7 +37,7 @@
          %13 = OpLoad %7 %arg_1
          %14 = OpLoad %3 %arg_0
          %16 = OpSampledImage %15 %14 %13
-         %12 = OpImageSampleDrefImplicitLod %float %16 %18 %float_1
+         %12 = OpImageSampleDrefImplicitLod %float %16 %19 %float_1
                OpStore %res %12
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureSampleCompare/63fb83.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSampleCompare/63fb83.wgsl.expected.wgsl
index 0012b5f..23417db 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompare/63fb83.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompare/63fb83.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(1) var arg_1 : sampler_comparison;
 
 fn textureSampleCompare_63fb83() {
-  var res : f32 = textureSampleCompare(arg_0, arg_1, vec3<f32>(), 1.0f);
+  var res : f32 = textureSampleCompare(arg_0, arg_1, vec3<f32>(1.0f), 1.0f);
 }
 
 @fragment
diff --git a/test/tint/builtins/gen/literal/textureSampleCompare/7b5025.wgsl b/test/tint/builtins/gen/literal/textureSampleCompare/7b5025.wgsl
index 58da027..63d0902 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompare/7b5025.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompare/7b5025.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureSampleCompare(texture: texture_depth_2d_array, sampler: sampler_comparison, coords: vec2<f32>, array_index: u32, depth_ref: f32, @const offset: vec2<i32>) -> f32
 fn textureSampleCompare_7b5025() {
-  var res: f32 = textureSampleCompare(arg_0, arg_1, vec2<f32>(), 1u, 1.f, vec2<i32>());
+  var res: f32 = textureSampleCompare(arg_0, arg_1, vec2<f32>(1.f), 1u, 1.f, vec2<i32>(1i));
 }
 
 @fragment
diff --git a/test/tint/builtins/gen/literal/textureSampleCompare/7b5025.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleCompare/7b5025.wgsl.expected.dxc.hlsl
index fa4f65a..c30bf79 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompare/7b5025.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompare/7b5025.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerComparisonState arg_1 : register(s1, space1);
 
 void textureSampleCompare_7b5025() {
-  float res = arg_0.SampleCmp(arg_1, float3(0.0f, 0.0f, float(1u)), 1.0f, (0).xx);
+  float res = arg_0.SampleCmp(arg_1, float3((1.0f).xx, float(1u)), 1.0f, (1).xx);
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/literal/textureSampleCompare/7b5025.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleCompare/7b5025.wgsl.expected.fxc.hlsl
index fa4f65a..c30bf79 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompare/7b5025.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompare/7b5025.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerComparisonState arg_1 : register(s1, space1);
 
 void textureSampleCompare_7b5025() {
-  float res = arg_0.SampleCmp(arg_1, float3(0.0f, 0.0f, float(1u)), 1.0f, (0).xx);
+  float res = arg_0.SampleCmp(arg_1, float3((1.0f).xx, float(1u)), 1.0f, (1).xx);
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/literal/textureSampleCompare/7b5025.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureSampleCompare/7b5025.wgsl.expected.msl
index eb74d38..b382b24 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompare/7b5025.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureSampleCompare/7b5025.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureSampleCompare_7b5025(depth2d_array<float, access::sample> tint_symbol, sampler tint_symbol_1) {
-  float res = tint_symbol.sample_compare(tint_symbol_1, float2(0.0f), 1u, 1.0f, int2(0));
+  float res = tint_symbol.sample_compare(tint_symbol_1, float2(1.0f), 1u, 1.0f, int2(1));
 }
 
 fragment void fragment_main(depth2d_array<float, access::sample> tint_symbol_2 [[texture(0)]], sampler tint_symbol_3 [[sampler(0)]]) {
diff --git a/test/tint/builtins/gen/literal/textureSampleCompare/7b5025.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSampleCompare/7b5025.wgsl.expected.spvasm
index 5baaf3c..7e77764 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompare/7b5025.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSampleCompare/7b5025.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 33
+; Bound: 37
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -27,29 +27,33 @@
           %8 = OpTypeFunction %void
          %15 = OpTypeSampledImage %3
     %v3float = OpTypeVector %float 3
-    %float_0 = OpConstant %float 0
+    %v2float = OpTypeVector %float 2
+    %float_1 = OpConstant %float 1
+         %20 = OpConstantComposite %v2float %float_1 %float_1
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
-    %float_1 = OpConstant %float 1
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
-         %26 = OpConstantNull %v2int
+      %int_1 = OpConstant %int 1
+         %30 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_float = OpTypePointer Function %float
-         %29 = OpConstantNull %float
+         %33 = OpConstantNull %float
 %textureSampleCompare_7b5025 = OpFunction %void None %8
          %11 = OpLabel
-        %res = OpVariable %_ptr_Function_float Function %29
+        %res = OpVariable %_ptr_Function_float Function %33
          %13 = OpLoad %7 %arg_1
          %14 = OpLoad %3 %arg_0
          %16 = OpSampledImage %15 %14 %13
-         %19 = OpConvertUToF %float %uint_1
-         %22 = OpCompositeConstruct %v3float %float_0 %float_0 %19
-         %12 = OpImageSampleDrefImplicitLod %float %16 %22 %float_1 ConstOffset %26
+         %21 = OpCompositeExtract %float %20 0
+         %22 = OpCompositeExtract %float %20 1
+         %23 = OpConvertUToF %float %uint_1
+         %26 = OpCompositeConstruct %v3float %21 %22 %23
+         %12 = OpImageSampleDrefImplicitLod %float %16 %26 %float_1 ConstOffset %30
                OpStore %res %12
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %8
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %textureSampleCompare_7b5025
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureSampleCompare_7b5025
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureSampleCompare/7b5025.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSampleCompare/7b5025.wgsl.expected.wgsl
index 602982c..c2ed132 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompare/7b5025.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompare/7b5025.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(1) var arg_1 : sampler_comparison;
 
 fn textureSampleCompare_7b5025() {
-  var res : f32 = textureSampleCompare(arg_0, arg_1, vec2<f32>(), 1u, 1.0f, vec2<i32>());
+  var res : f32 = textureSampleCompare(arg_0, arg_1, vec2<f32>(1.0f), 1u, 1.0f, vec2<i32>(1i));
 }
 
 @fragment
diff --git a/test/tint/builtins/gen/literal/textureSampleCompare/90ae56.wgsl b/test/tint/builtins/gen/literal/textureSampleCompare/90ae56.wgsl
index 7483dd5..0a09974 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompare/90ae56.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompare/90ae56.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureSampleCompare(texture: texture_depth_2d_array, sampler: sampler_comparison, coords: vec2<f32>, array_index: u32, depth_ref: f32) -> f32
 fn textureSampleCompare_90ae56() {
-  var res: f32 = textureSampleCompare(arg_0, arg_1, vec2<f32>(), 1u, 1.f);
+  var res: f32 = textureSampleCompare(arg_0, arg_1, vec2<f32>(1.f), 1u, 1.f);
 }
 
 @fragment
diff --git a/test/tint/builtins/gen/literal/textureSampleCompare/90ae56.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleCompare/90ae56.wgsl.expected.dxc.hlsl
index 7e358fb..25b14da 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompare/90ae56.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompare/90ae56.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerComparisonState arg_1 : register(s1, space1);
 
 void textureSampleCompare_90ae56() {
-  float res = arg_0.SampleCmp(arg_1, float3(0.0f, 0.0f, float(1u)), 1.0f);
+  float res = arg_0.SampleCmp(arg_1, float3((1.0f).xx, float(1u)), 1.0f);
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/literal/textureSampleCompare/90ae56.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleCompare/90ae56.wgsl.expected.fxc.hlsl
index 7e358fb..25b14da 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompare/90ae56.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompare/90ae56.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerComparisonState arg_1 : register(s1, space1);
 
 void textureSampleCompare_90ae56() {
-  float res = arg_0.SampleCmp(arg_1, float3(0.0f, 0.0f, float(1u)), 1.0f);
+  float res = arg_0.SampleCmp(arg_1, float3((1.0f).xx, float(1u)), 1.0f);
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/literal/textureSampleCompare/90ae56.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureSampleCompare/90ae56.wgsl.expected.glsl
index abfc412..3b40ea3 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompare/90ae56.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompare/90ae56.wgsl.expected.glsl
@@ -4,7 +4,7 @@
 uniform highp sampler2DArrayShadow arg_0_arg_1;
 
 void textureSampleCompare_90ae56() {
-  float res = texture(arg_0_arg_1, vec4(0.0f, 0.0f, float(1u), 1.0f));
+  float res = texture(arg_0_arg_1, vec4(vec3(vec2(1.0f), float(1u)), 1.0f));
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/literal/textureSampleCompare/90ae56.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureSampleCompare/90ae56.wgsl.expected.msl
index 00080f4..2722e0f 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompare/90ae56.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureSampleCompare/90ae56.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureSampleCompare_90ae56(depth2d_array<float, access::sample> tint_symbol, sampler tint_symbol_1) {
-  float res = tint_symbol.sample_compare(tint_symbol_1, float2(0.0f), 1u, 1.0f);
+  float res = tint_symbol.sample_compare(tint_symbol_1, float2(1.0f), 1u, 1.0f);
 }
 
 fragment void fragment_main(depth2d_array<float, access::sample> tint_symbol_2 [[texture(0)]], sampler tint_symbol_3 [[sampler(0)]]) {
diff --git a/test/tint/builtins/gen/literal/textureSampleCompare/90ae56.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSampleCompare/90ae56.wgsl.expected.spvasm
index 89b9887..ddc3391 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompare/90ae56.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSampleCompare/90ae56.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 30
+; Bound: 33
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -27,26 +27,29 @@
           %8 = OpTypeFunction %void
          %15 = OpTypeSampledImage %3
     %v3float = OpTypeVector %float 3
-    %float_0 = OpConstant %float 0
+    %v2float = OpTypeVector %float 2
+    %float_1 = OpConstant %float 1
+         %20 = OpConstantComposite %v2float %float_1 %float_1
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
-    %float_1 = OpConstant %float 1
 %_ptr_Function_float = OpTypePointer Function %float
-         %26 = OpConstantNull %float
+         %29 = OpConstantNull %float
 %textureSampleCompare_90ae56 = OpFunction %void None %8
          %11 = OpLabel
-        %res = OpVariable %_ptr_Function_float Function %26
+        %res = OpVariable %_ptr_Function_float Function %29
          %13 = OpLoad %7 %arg_1
          %14 = OpLoad %3 %arg_0
          %16 = OpSampledImage %15 %14 %13
-         %19 = OpConvertUToF %float %uint_1
-         %22 = OpCompositeConstruct %v3float %float_0 %float_0 %19
-         %12 = OpImageSampleDrefImplicitLod %float %16 %22 %float_1
+         %21 = OpCompositeExtract %float %20 0
+         %22 = OpCompositeExtract %float %20 1
+         %23 = OpConvertUToF %float %uint_1
+         %26 = OpCompositeConstruct %v3float %21 %22 %23
+         %12 = OpImageSampleDrefImplicitLod %float %16 %26 %float_1
                OpStore %res %12
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %8
-         %28 = OpLabel
-         %29 = OpFunctionCall %void %textureSampleCompare_90ae56
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %textureSampleCompare_90ae56
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureSampleCompare/90ae56.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSampleCompare/90ae56.wgsl.expected.wgsl
index 8559700..47b307a 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompare/90ae56.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompare/90ae56.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(1) var arg_1 : sampler_comparison;
 
 fn textureSampleCompare_90ae56() {
-  var res : f32 = textureSampleCompare(arg_0, arg_1, vec2<f32>(), 1u, 1.0f);
+  var res : f32 = textureSampleCompare(arg_0, arg_1, vec2<f32>(1.0f), 1u, 1.0f);
 }
 
 @fragment
diff --git a/test/tint/builtins/gen/literal/textureSampleCompare/a3ca7e.wgsl b/test/tint/builtins/gen/literal/textureSampleCompare/a3ca7e.wgsl
index 68d1f2f..aabaf7a 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompare/a3ca7e.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompare/a3ca7e.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureSampleCompare(texture: texture_depth_cube_array, sampler: sampler_comparison, coords: vec3<f32>, array_index: i32, depth_ref: f32) -> f32
 fn textureSampleCompare_a3ca7e() {
-  var res: f32 = textureSampleCompare(arg_0, arg_1, vec3<f32>(), 1i, 1.f);
+  var res: f32 = textureSampleCompare(arg_0, arg_1, vec3<f32>(1.f), 1i, 1.f);
 }
 
 @fragment
diff --git a/test/tint/builtins/gen/literal/textureSampleCompare/a3ca7e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleCompare/a3ca7e.wgsl.expected.dxc.hlsl
index 0eaad4f..065ae8e 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompare/a3ca7e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompare/a3ca7e.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerComparisonState arg_1 : register(s1, space1);
 
 void textureSampleCompare_a3ca7e() {
-  float res = arg_0.SampleCmp(arg_1, float4(0.0f, 0.0f, 0.0f, float(1)), 1.0f);
+  float res = arg_0.SampleCmp(arg_1, float4((1.0f).xxx, float(1)), 1.0f);
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/literal/textureSampleCompare/a3ca7e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleCompare/a3ca7e.wgsl.expected.fxc.hlsl
index 0eaad4f..065ae8e 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompare/a3ca7e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompare/a3ca7e.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerComparisonState arg_1 : register(s1, space1);
 
 void textureSampleCompare_a3ca7e() {
-  float res = arg_0.SampleCmp(arg_1, float4(0.0f, 0.0f, 0.0f, float(1)), 1.0f);
+  float res = arg_0.SampleCmp(arg_1, float4((1.0f).xxx, float(1)), 1.0f);
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/literal/textureSampleCompare/a3ca7e.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureSampleCompare/a3ca7e.wgsl.expected.msl
index 46e23e1..45b7d6d 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompare/a3ca7e.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureSampleCompare/a3ca7e.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureSampleCompare_a3ca7e(depthcube_array<float, access::sample> tint_symbol, sampler tint_symbol_1) {
-  float res = tint_symbol.sample_compare(tint_symbol_1, float3(0.0f), 1, 1.0f);
+  float res = tint_symbol.sample_compare(tint_symbol_1, float3(1.0f), 1, 1.0f);
 }
 
 fragment void fragment_main(depthcube_array<float, access::sample> tint_symbol_2 [[texture(0)]], sampler tint_symbol_3 [[sampler(0)]]) {
diff --git a/test/tint/builtins/gen/literal/textureSampleCompare/a3ca7e.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSampleCompare/a3ca7e.wgsl.expected.spvasm
index e1df692..d61275f 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompare/a3ca7e.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSampleCompare/a3ca7e.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 30
+; Bound: 34
 ; Schema: 0
                OpCapability Shader
                OpCapability SampledCubeArray
@@ -28,26 +28,30 @@
           %8 = OpTypeFunction %void
          %15 = OpTypeSampledImage %3
     %v4float = OpTypeVector %float 4
-    %float_0 = OpConstant %float 0
+    %v3float = OpTypeVector %float 3
+    %float_1 = OpConstant %float 1
+         %20 = OpConstantComposite %v3float %float_1 %float_1 %float_1
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
-    %float_1 = OpConstant %float 1
 %_ptr_Function_float = OpTypePointer Function %float
-         %26 = OpConstantNull %float
+         %30 = OpConstantNull %float
 %textureSampleCompare_a3ca7e = OpFunction %void None %8
          %11 = OpLabel
-        %res = OpVariable %_ptr_Function_float Function %26
+        %res = OpVariable %_ptr_Function_float Function %30
          %13 = OpLoad %7 %arg_1
          %14 = OpLoad %3 %arg_0
          %16 = OpSampledImage %15 %14 %13
-         %19 = OpConvertSToF %float %int_1
-         %22 = OpCompositeConstruct %v4float %float_0 %float_0 %float_0 %19
-         %12 = OpImageSampleDrefImplicitLod %float %16 %22 %float_1
+         %21 = OpCompositeExtract %float %20 0
+         %22 = OpCompositeExtract %float %20 1
+         %23 = OpCompositeExtract %float %20 2
+         %24 = OpConvertSToF %float %int_1
+         %27 = OpCompositeConstruct %v4float %21 %22 %23 %24
+         %12 = OpImageSampleDrefImplicitLod %float %16 %27 %float_1
                OpStore %res %12
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %8
-         %28 = OpLabel
-         %29 = OpFunctionCall %void %textureSampleCompare_a3ca7e
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %textureSampleCompare_a3ca7e
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureSampleCompare/a3ca7e.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSampleCompare/a3ca7e.wgsl.expected.wgsl
index 1c935d2..58499f5 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompare/a3ca7e.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompare/a3ca7e.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(1) var arg_1 : sampler_comparison;
 
 fn textureSampleCompare_a3ca7e() {
-  var res : f32 = textureSampleCompare(arg_0, arg_1, vec3<f32>(), 1i, 1.0f);
+  var res : f32 = textureSampleCompare(arg_0, arg_1, vec3<f32>(1.0f), 1i, 1.0f);
 }
 
 @fragment
diff --git a/test/tint/builtins/gen/literal/textureSampleCompare/af1051.wgsl b/test/tint/builtins/gen/literal/textureSampleCompare/af1051.wgsl
index 329e2f9..3edb3b0 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompare/af1051.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompare/af1051.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureSampleCompare(texture: texture_depth_2d_array, sampler: sampler_comparison, coords: vec2<f32>, array_index: i32, depth_ref: f32, @const offset: vec2<i32>) -> f32
 fn textureSampleCompare_af1051() {
-  var res: f32 = textureSampleCompare(arg_0, arg_1, vec2<f32>(), 1i, 1.f, vec2<i32>());
+  var res: f32 = textureSampleCompare(arg_0, arg_1, vec2<f32>(1.f), 1i, 1.f, vec2<i32>(1i));
 }
 
 @fragment
diff --git a/test/tint/builtins/gen/literal/textureSampleCompare/af1051.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleCompare/af1051.wgsl.expected.dxc.hlsl
index 60ff095..40bf84a 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompare/af1051.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompare/af1051.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerComparisonState arg_1 : register(s1, space1);
 
 void textureSampleCompare_af1051() {
-  float res = arg_0.SampleCmp(arg_1, float3(0.0f, 0.0f, float(1)), 1.0f, (0).xx);
+  float res = arg_0.SampleCmp(arg_1, float3((1.0f).xx, float(1)), 1.0f, (1).xx);
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/literal/textureSampleCompare/af1051.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleCompare/af1051.wgsl.expected.fxc.hlsl
index 60ff095..40bf84a 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompare/af1051.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompare/af1051.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerComparisonState arg_1 : register(s1, space1);
 
 void textureSampleCompare_af1051() {
-  float res = arg_0.SampleCmp(arg_1, float3(0.0f, 0.0f, float(1)), 1.0f, (0).xx);
+  float res = arg_0.SampleCmp(arg_1, float3((1.0f).xx, float(1)), 1.0f, (1).xx);
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/literal/textureSampleCompare/af1051.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureSampleCompare/af1051.wgsl.expected.msl
index beb2117..d1a9096 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompare/af1051.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureSampleCompare/af1051.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureSampleCompare_af1051(depth2d_array<float, access::sample> tint_symbol, sampler tint_symbol_1) {
-  float res = tint_symbol.sample_compare(tint_symbol_1, float2(0.0f), 1, 1.0f, int2(0));
+  float res = tint_symbol.sample_compare(tint_symbol_1, float2(1.0f), 1, 1.0f, int2(1));
 }
 
 fragment void fragment_main(depth2d_array<float, access::sample> tint_symbol_2 [[texture(0)]], sampler tint_symbol_3 [[sampler(0)]]) {
diff --git a/test/tint/builtins/gen/literal/textureSampleCompare/af1051.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSampleCompare/af1051.wgsl.expected.spvasm
index 4e66ca9..168e219 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompare/af1051.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSampleCompare/af1051.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 32
+; Bound: 35
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -27,28 +27,31 @@
           %8 = OpTypeFunction %void
          %15 = OpTypeSampledImage %3
     %v3float = OpTypeVector %float 3
-    %float_0 = OpConstant %float 0
+    %v2float = OpTypeVector %float 2
+    %float_1 = OpConstant %float 1
+         %20 = OpConstantComposite %v2float %float_1 %float_1
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
-    %float_1 = OpConstant %float 1
       %v2int = OpTypeVector %int 2
-         %25 = OpConstantNull %v2int
+         %28 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_float = OpTypePointer Function %float
-         %28 = OpConstantNull %float
+         %31 = OpConstantNull %float
 %textureSampleCompare_af1051 = OpFunction %void None %8
          %11 = OpLabel
-        %res = OpVariable %_ptr_Function_float Function %28
+        %res = OpVariable %_ptr_Function_float Function %31
          %13 = OpLoad %7 %arg_1
          %14 = OpLoad %3 %arg_0
          %16 = OpSampledImage %15 %14 %13
-         %19 = OpConvertSToF %float %int_1
-         %22 = OpCompositeConstruct %v3float %float_0 %float_0 %19
-         %12 = OpImageSampleDrefImplicitLod %float %16 %22 %float_1 ConstOffset %25
+         %21 = OpCompositeExtract %float %20 0
+         %22 = OpCompositeExtract %float %20 1
+         %23 = OpConvertSToF %float %int_1
+         %26 = OpCompositeConstruct %v3float %21 %22 %23
+         %12 = OpImageSampleDrefImplicitLod %float %16 %26 %float_1 ConstOffset %28
                OpStore %res %12
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %8
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %textureSampleCompare_af1051
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureSampleCompare_af1051
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureSampleCompare/af1051.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSampleCompare/af1051.wgsl.expected.wgsl
index 772f21e..c4cb087 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompare/af1051.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompare/af1051.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(1) var arg_1 : sampler_comparison;
 
 fn textureSampleCompare_af1051() {
-  var res : f32 = textureSampleCompare(arg_0, arg_1, vec2<f32>(), 1i, 1.0f, vec2<i32>());
+  var res : f32 = textureSampleCompare(arg_0, arg_1, vec2<f32>(1.0f), 1i, 1.0f, vec2<i32>(1i));
 }
 
 @fragment
diff --git a/test/tint/builtins/gen/literal/textureSampleCompare/dd431d.wgsl b/test/tint/builtins/gen/literal/textureSampleCompare/dd431d.wgsl
index ea5645b..548b875 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompare/dd431d.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompare/dd431d.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureSampleCompare(texture: texture_depth_2d_array, sampler: sampler_comparison, coords: vec2<f32>, array_index: i32, depth_ref: f32) -> f32
 fn textureSampleCompare_dd431d() {
-  var res: f32 = textureSampleCompare(arg_0, arg_1, vec2<f32>(), 1i, 1.f);
+  var res: f32 = textureSampleCompare(arg_0, arg_1, vec2<f32>(1.f), 1i, 1.f);
 }
 
 @fragment
diff --git a/test/tint/builtins/gen/literal/textureSampleCompare/dd431d.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleCompare/dd431d.wgsl.expected.dxc.hlsl
index 0c8a7fb..56a5b3f 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompare/dd431d.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompare/dd431d.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerComparisonState arg_1 : register(s1, space1);
 
 void textureSampleCompare_dd431d() {
-  float res = arg_0.SampleCmp(arg_1, float3(0.0f, 0.0f, float(1)), 1.0f);
+  float res = arg_0.SampleCmp(arg_1, float3((1.0f).xx, float(1)), 1.0f);
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/literal/textureSampleCompare/dd431d.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleCompare/dd431d.wgsl.expected.fxc.hlsl
index 0c8a7fb..56a5b3f 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompare/dd431d.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompare/dd431d.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerComparisonState arg_1 : register(s1, space1);
 
 void textureSampleCompare_dd431d() {
-  float res = arg_0.SampleCmp(arg_1, float3(0.0f, 0.0f, float(1)), 1.0f);
+  float res = arg_0.SampleCmp(arg_1, float3((1.0f).xx, float(1)), 1.0f);
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/literal/textureSampleCompare/dd431d.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureSampleCompare/dd431d.wgsl.expected.glsl
index db905e8..b3fa410 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompare/dd431d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompare/dd431d.wgsl.expected.glsl
@@ -4,7 +4,7 @@
 uniform highp sampler2DArrayShadow arg_0_arg_1;
 
 void textureSampleCompare_dd431d() {
-  float res = texture(arg_0_arg_1, vec4(0.0f, 0.0f, float(1), 1.0f));
+  float res = texture(arg_0_arg_1, vec4(vec3(vec2(1.0f), float(1)), 1.0f));
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/literal/textureSampleCompare/dd431d.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureSampleCompare/dd431d.wgsl.expected.msl
index 50d2af1..d265725 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompare/dd431d.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureSampleCompare/dd431d.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureSampleCompare_dd431d(depth2d_array<float, access::sample> tint_symbol, sampler tint_symbol_1) {
-  float res = tint_symbol.sample_compare(tint_symbol_1, float2(0.0f), 1, 1.0f);
+  float res = tint_symbol.sample_compare(tint_symbol_1, float2(1.0f), 1, 1.0f);
 }
 
 fragment void fragment_main(depth2d_array<float, access::sample> tint_symbol_2 [[texture(0)]], sampler tint_symbol_3 [[sampler(0)]]) {
diff --git a/test/tint/builtins/gen/literal/textureSampleCompare/dd431d.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSampleCompare/dd431d.wgsl.expected.spvasm
index f14e8bd..31d965f 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompare/dd431d.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSampleCompare/dd431d.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 30
+; Bound: 33
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -27,26 +27,29 @@
           %8 = OpTypeFunction %void
          %15 = OpTypeSampledImage %3
     %v3float = OpTypeVector %float 3
-    %float_0 = OpConstant %float 0
+    %v2float = OpTypeVector %float 2
+    %float_1 = OpConstant %float 1
+         %20 = OpConstantComposite %v2float %float_1 %float_1
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
-    %float_1 = OpConstant %float 1
 %_ptr_Function_float = OpTypePointer Function %float
-         %26 = OpConstantNull %float
+         %29 = OpConstantNull %float
 %textureSampleCompare_dd431d = OpFunction %void None %8
          %11 = OpLabel
-        %res = OpVariable %_ptr_Function_float Function %26
+        %res = OpVariable %_ptr_Function_float Function %29
          %13 = OpLoad %7 %arg_1
          %14 = OpLoad %3 %arg_0
          %16 = OpSampledImage %15 %14 %13
-         %19 = OpConvertSToF %float %int_1
-         %22 = OpCompositeConstruct %v3float %float_0 %float_0 %19
-         %12 = OpImageSampleDrefImplicitLod %float %16 %22 %float_1
+         %21 = OpCompositeExtract %float %20 0
+         %22 = OpCompositeExtract %float %20 1
+         %23 = OpConvertSToF %float %int_1
+         %26 = OpCompositeConstruct %v3float %21 %22 %23
+         %12 = OpImageSampleDrefImplicitLod %float %16 %26 %float_1
                OpStore %res %12
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %8
-         %28 = OpLabel
-         %29 = OpFunctionCall %void %textureSampleCompare_dd431d
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %textureSampleCompare_dd431d
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureSampleCompare/dd431d.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSampleCompare/dd431d.wgsl.expected.wgsl
index 1a8cfcb..e3f8030 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompare/dd431d.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompare/dd431d.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(1) var arg_1 : sampler_comparison;
 
 fn textureSampleCompare_dd431d() {
-  var res : f32 = textureSampleCompare(arg_0, arg_1, vec2<f32>(), 1i, 1.0f);
+  var res : f32 = textureSampleCompare(arg_0, arg_1, vec2<f32>(1.0f), 1i, 1.0f);
 }
 
 @fragment
diff --git a/test/tint/builtins/gen/literal/textureSampleCompare/dec064.wgsl b/test/tint/builtins/gen/literal/textureSampleCompare/dec064.wgsl
index 74168e1..83b1e26 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompare/dec064.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompare/dec064.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureSampleCompare(texture: texture_depth_2d, sampler: sampler_comparison, coords: vec2<f32>, depth_ref: f32, @const offset: vec2<i32>) -> f32
 fn textureSampleCompare_dec064() {
-  var res: f32 = textureSampleCompare(arg_0, arg_1, vec2<f32>(), 1.f, vec2<i32>());
+  var res: f32 = textureSampleCompare(arg_0, arg_1, vec2<f32>(1.f), 1.f, vec2<i32>(1i));
 }
 
 @fragment
diff --git a/test/tint/builtins/gen/literal/textureSampleCompare/dec064.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleCompare/dec064.wgsl.expected.dxc.hlsl
index 04d1915..4db9f52 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompare/dec064.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompare/dec064.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerComparisonState arg_1 : register(s1, space1);
 
 void textureSampleCompare_dec064() {
-  float res = arg_0.SampleCmp(arg_1, (0.0f).xx, 1.0f, (0).xx);
+  float res = arg_0.SampleCmp(arg_1, (1.0f).xx, 1.0f, (1).xx);
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/literal/textureSampleCompare/dec064.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleCompare/dec064.wgsl.expected.fxc.hlsl
index 04d1915..4db9f52 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompare/dec064.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompare/dec064.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerComparisonState arg_1 : register(s1, space1);
 
 void textureSampleCompare_dec064() {
-  float res = arg_0.SampleCmp(arg_1, (0.0f).xx, 1.0f, (0).xx);
+  float res = arg_0.SampleCmp(arg_1, (1.0f).xx, 1.0f, (1).xx);
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/literal/textureSampleCompare/dec064.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureSampleCompare/dec064.wgsl.expected.glsl
index 04d0da8..f1d1987 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompare/dec064.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompare/dec064.wgsl.expected.glsl
@@ -4,7 +4,7 @@
 uniform highp sampler2DShadow arg_0_arg_1;
 
 void textureSampleCompare_dec064() {
-  float res = textureOffset(arg_0_arg_1, vec3(0.0f, 0.0f, 1.0f), ivec2(0));
+  float res = textureOffset(arg_0_arg_1, vec3(vec2(1.0f), 1.0f), ivec2(1));
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/literal/textureSampleCompare/dec064.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureSampleCompare/dec064.wgsl.expected.msl
index 87c9f9b..1714b59 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompare/dec064.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureSampleCompare/dec064.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureSampleCompare_dec064(depth2d<float, access::sample> tint_symbol, sampler tint_symbol_1) {
-  float res = tint_symbol.sample_compare(tint_symbol_1, float2(0.0f), 1.0f, int2(0));
+  float res = tint_symbol.sample_compare(tint_symbol_1, float2(1.0f), 1.0f, int2(1));
 }
 
 fragment void fragment_main(depth2d<float, access::sample> tint_symbol_2 [[texture(0)]], sampler tint_symbol_3 [[sampler(0)]]) {
diff --git a/test/tint/builtins/gen/literal/textureSampleCompare/dec064.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSampleCompare/dec064.wgsl.expected.spvasm
index 574e9c1..1d736d1 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompare/dec064.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSampleCompare/dec064.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 29
+; Bound: 30
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -27,25 +27,26 @@
           %8 = OpTypeFunction %void
          %15 = OpTypeSampledImage %3
     %v2float = OpTypeVector %float 2
-         %18 = OpConstantNull %v2float
     %float_1 = OpConstant %float 1
+         %19 = OpConstantComposite %v2float %float_1 %float_1
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
-         %22 = OpConstantNull %v2int
+      %int_1 = OpConstant %int 1
+         %23 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_float = OpTypePointer Function %float
-         %25 = OpConstantNull %float
+         %26 = OpConstantNull %float
 %textureSampleCompare_dec064 = OpFunction %void None %8
          %11 = OpLabel
-        %res = OpVariable %_ptr_Function_float Function %25
+        %res = OpVariable %_ptr_Function_float Function %26
          %13 = OpLoad %7 %arg_1
          %14 = OpLoad %3 %arg_0
          %16 = OpSampledImage %15 %14 %13
-         %12 = OpImageSampleDrefImplicitLod %float %16 %18 %float_1 ConstOffset %22
+         %12 = OpImageSampleDrefImplicitLod %float %16 %19 %float_1 ConstOffset %23
                OpStore %res %12
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %8
-         %27 = OpLabel
-         %28 = OpFunctionCall %void %textureSampleCompare_dec064
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %textureSampleCompare_dec064
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureSampleCompare/dec064.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSampleCompare/dec064.wgsl.expected.wgsl
index 35620f4..5cee689 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompare/dec064.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompare/dec064.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(1) var arg_1 : sampler_comparison;
 
 fn textureSampleCompare_dec064() {
-  var res : f32 = textureSampleCompare(arg_0, arg_1, vec2<f32>(), 1.0f, vec2<i32>());
+  var res : f32 = textureSampleCompare(arg_0, arg_1, vec2<f32>(1.0f), 1.0f, vec2<i32>(1i));
 }
 
 @fragment
diff --git a/test/tint/builtins/gen/literal/textureSampleCompareLevel/1116ed.wgsl b/test/tint/builtins/gen/literal/textureSampleCompareLevel/1116ed.wgsl
index 7742bf3..668a270 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompareLevel/1116ed.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompareLevel/1116ed.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureSampleCompareLevel(texture: texture_depth_2d_array, sampler: sampler_comparison, coords: vec2<f32>, array_index: i32, depth_ref: f32) -> f32
 fn textureSampleCompareLevel_1116ed() {
-  var res: f32 = textureSampleCompareLevel(arg_0, arg_1, vec2<f32>(), 1i, 1.f);
+  var res: f32 = textureSampleCompareLevel(arg_0, arg_1, vec2<f32>(1.f), 1i, 1.f);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureSampleCompareLevel/1116ed.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleCompareLevel/1116ed.wgsl.expected.dxc.hlsl
index e84193e..23f5d43 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompareLevel/1116ed.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompareLevel/1116ed.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerComparisonState arg_1 : register(s1, space1);
 
 void textureSampleCompareLevel_1116ed() {
-  float res = arg_0.SampleCmpLevelZero(arg_1, float3(0.0f, 0.0f, float(1)), 1.0f);
+  float res = arg_0.SampleCmpLevelZero(arg_1, float3((1.0f).xx, float(1)), 1.0f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureSampleCompareLevel/1116ed.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleCompareLevel/1116ed.wgsl.expected.fxc.hlsl
index e84193e..23f5d43 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompareLevel/1116ed.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompareLevel/1116ed.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerComparisonState arg_1 : register(s1, space1);
 
 void textureSampleCompareLevel_1116ed() {
-  float res = arg_0.SampleCmpLevelZero(arg_1, float3(0.0f, 0.0f, float(1)), 1.0f);
+  float res = arg_0.SampleCmpLevelZero(arg_1, float3((1.0f).xx, float(1)), 1.0f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureSampleCompareLevel/1116ed.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureSampleCompareLevel/1116ed.wgsl.expected.glsl
index 573c22c..c77d7e9 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompareLevel/1116ed.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompareLevel/1116ed.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 uniform highp sampler2DArrayShadow arg_0_arg_1;
 
 void textureSampleCompareLevel_1116ed() {
-  float res = texture(arg_0_arg_1, vec4(0.0f, 0.0f, float(1), 1.0f));
+  float res = texture(arg_0_arg_1, vec4(vec3(vec2(1.0f), float(1)), 1.0f));
 }
 
 vec4 vertex_main() {
@@ -25,7 +25,7 @@
 uniform highp sampler2DArrayShadow arg_0_arg_1;
 
 void textureSampleCompareLevel_1116ed() {
-  float res = texture(arg_0_arg_1, vec4(0.0f, 0.0f, float(1), 1.0f));
+  float res = texture(arg_0_arg_1, vec4(vec3(vec2(1.0f), float(1)), 1.0f));
 }
 
 void fragment_main() {
@@ -41,7 +41,7 @@
 uniform highp sampler2DArrayShadow arg_0_arg_1;
 
 void textureSampleCompareLevel_1116ed() {
-  float res = texture(arg_0_arg_1, vec4(0.0f, 0.0f, float(1), 1.0f));
+  float res = texture(arg_0_arg_1, vec4(vec3(vec2(1.0f), float(1)), 1.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureSampleCompareLevel/1116ed.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureSampleCompareLevel/1116ed.wgsl.expected.msl
index 822c235..b1652c7 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompareLevel/1116ed.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureSampleCompareLevel/1116ed.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureSampleCompareLevel_1116ed(depth2d_array<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float res = tint_symbol_1.sample_compare(tint_symbol_2, float2(0.0f), 1, 1.0f, level(0));
+  float res = tint_symbol_1.sample_compare(tint_symbol_2, float2(1.0f), 1, 1.0f, level(0));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureSampleCompareLevel/1116ed.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSampleCompareLevel/1116ed.wgsl.expected.spvasm
index d347914..1c01ce4 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompareLevel/1116ed.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSampleCompareLevel/1116ed.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 46
+; Bound: 50
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -44,43 +44,47 @@
          %15 = OpTypeFunction %void
          %22 = OpTypeSampledImage %11
     %v3float = OpTypeVector %float 3
-    %float_0 = OpConstant %float 0
+    %v2float = OpTypeVector %float 2
+    %float_1 = OpConstant %float 1
+         %27 = OpConstantComposite %v2float %float_1 %float_1
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
-    %float_1 = OpConstant %float 1
+    %float_0 = OpConstant %float 0
 %_ptr_Function_float = OpTypePointer Function %float
-         %33 = OpTypeFunction %v4float
+         %37 = OpTypeFunction %v4float
 %textureSampleCompareLevel_1116ed = OpFunction %void None %15
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_float Function %8
          %20 = OpLoad %14 %arg_1
          %21 = OpLoad %11 %arg_0
          %23 = OpSampledImage %22 %21 %20
-         %26 = OpConvertSToF %float %int_1
-         %29 = OpCompositeConstruct %v3float %float_0 %float_0 %26
-         %19 = OpImageSampleDrefExplicitLod %float %23 %29 %float_1 Lod %float_0
+         %28 = OpCompositeExtract %float %27 0
+         %29 = OpCompositeExtract %float %27 1
+         %30 = OpConvertSToF %float %int_1
+         %33 = OpCompositeConstruct %v3float %28 %29 %30
+         %19 = OpImageSampleDrefExplicitLod %float %23 %33 %float_1 Lod %float_0
                OpStore %res %19
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %33
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureSampleCompareLevel_1116ed
+%vertex_main_inner = OpFunction %v4float None %37
+         %39 = OpLabel
+         %40 = OpFunctionCall %void %textureSampleCompareLevel_1116ed
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
-         %38 = OpLabel
-         %39 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %39
+         %42 = OpLabel
+         %43 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %43
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %15
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureSampleCompareLevel_1116ed
+         %45 = OpLabel
+         %46 = OpFunctionCall %void %textureSampleCompareLevel_1116ed
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %15
-         %44 = OpLabel
-         %45 = OpFunctionCall %void %textureSampleCompareLevel_1116ed
+         %48 = OpLabel
+         %49 = OpFunctionCall %void %textureSampleCompareLevel_1116ed
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureSampleCompareLevel/1116ed.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSampleCompareLevel/1116ed.wgsl.expected.wgsl
index bdf6717..8a1f88c 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompareLevel/1116ed.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompareLevel/1116ed.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(1) var arg_1 : sampler_comparison;
 
 fn textureSampleCompareLevel_1116ed() {
-  var res : f32 = textureSampleCompareLevel(arg_0, arg_1, vec2<f32>(), 1i, 1.0f);
+  var res : f32 = textureSampleCompareLevel(arg_0, arg_1, vec2<f32>(1.0f), 1i, 1.0f);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureSampleCompareLevel/1568e3.wgsl b/test/tint/builtins/gen/literal/textureSampleCompareLevel/1568e3.wgsl
index f3a75dd..af580e6 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompareLevel/1568e3.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompareLevel/1568e3.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureSampleCompareLevel(texture: texture_depth_cube, sampler: sampler_comparison, coords: vec3<f32>, depth_ref: f32) -> f32
 fn textureSampleCompareLevel_1568e3() {
-  var res: f32 = textureSampleCompareLevel(arg_0, arg_1, vec3<f32>(), 1.f);
+  var res: f32 = textureSampleCompareLevel(arg_0, arg_1, vec3<f32>(1.f), 1.f);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureSampleCompareLevel/1568e3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleCompareLevel/1568e3.wgsl.expected.dxc.hlsl
index 2a79a0f..bdfef71 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompareLevel/1568e3.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompareLevel/1568e3.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerComparisonState arg_1 : register(s1, space1);
 
 void textureSampleCompareLevel_1568e3() {
-  float res = arg_0.SampleCmpLevelZero(arg_1, (0.0f).xxx, 1.0f);
+  float res = arg_0.SampleCmpLevelZero(arg_1, (1.0f).xxx, 1.0f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureSampleCompareLevel/1568e3.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleCompareLevel/1568e3.wgsl.expected.fxc.hlsl
index 2a79a0f..bdfef71 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompareLevel/1568e3.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompareLevel/1568e3.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerComparisonState arg_1 : register(s1, space1);
 
 void textureSampleCompareLevel_1568e3() {
-  float res = arg_0.SampleCmpLevelZero(arg_1, (0.0f).xxx, 1.0f);
+  float res = arg_0.SampleCmpLevelZero(arg_1, (1.0f).xxx, 1.0f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureSampleCompareLevel/1568e3.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureSampleCompareLevel/1568e3.wgsl.expected.glsl
index f805d0d..2205e4d 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompareLevel/1568e3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompareLevel/1568e3.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 uniform highp samplerCubeShadow arg_0_arg_1;
 
 void textureSampleCompareLevel_1568e3() {
-  float res = texture(arg_0_arg_1, vec4(0.0f, 0.0f, 0.0f, 1.0f));
+  float res = texture(arg_0_arg_1, vec4(vec3(1.0f), 1.0f));
 }
 
 vec4 vertex_main() {
@@ -25,7 +25,7 @@
 uniform highp samplerCubeShadow arg_0_arg_1;
 
 void textureSampleCompareLevel_1568e3() {
-  float res = texture(arg_0_arg_1, vec4(0.0f, 0.0f, 0.0f, 1.0f));
+  float res = texture(arg_0_arg_1, vec4(vec3(1.0f), 1.0f));
 }
 
 void fragment_main() {
@@ -41,7 +41,7 @@
 uniform highp samplerCubeShadow arg_0_arg_1;
 
 void textureSampleCompareLevel_1568e3() {
-  float res = texture(arg_0_arg_1, vec4(0.0f, 0.0f, 0.0f, 1.0f));
+  float res = texture(arg_0_arg_1, vec4(vec3(1.0f), 1.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureSampleCompareLevel/1568e3.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureSampleCompareLevel/1568e3.wgsl.expected.msl
index 7dffcdd..ed8c9f2 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompareLevel/1568e3.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureSampleCompareLevel/1568e3.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureSampleCompareLevel_1568e3(depthcube<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float res = tint_symbol_1.sample_compare(tint_symbol_2, float3(0.0f), 1.0f, level(0));
+  float res = tint_symbol_1.sample_compare(tint_symbol_2, float3(1.0f), 1.0f, level(0));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureSampleCompareLevel/1568e3.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSampleCompareLevel/1568e3.wgsl.expected.spvasm
index d85ceba..7b336e2 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompareLevel/1568e3.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSampleCompareLevel/1568e3.wgsl.expected.spvasm
@@ -44,8 +44,8 @@
          %15 = OpTypeFunction %void
          %22 = OpTypeSampledImage %11
     %v3float = OpTypeVector %float 3
-         %25 = OpConstantNull %v3float
     %float_1 = OpConstant %float 1
+         %26 = OpConstantComposite %v3float %float_1 %float_1 %float_1
     %float_0 = OpConstant %float 0
 %_ptr_Function_float = OpTypePointer Function %float
          %30 = OpTypeFunction %v4float
@@ -55,7 +55,7 @@
          %20 = OpLoad %14 %arg_1
          %21 = OpLoad %11 %arg_0
          %23 = OpSampledImage %22 %21 %20
-         %19 = OpImageSampleDrefExplicitLod %float %23 %25 %float_1 Lod %float_0
+         %19 = OpImageSampleDrefExplicitLod %float %23 %26 %float_1 Lod %float_0
                OpStore %res %19
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureSampleCompareLevel/1568e3.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSampleCompareLevel/1568e3.wgsl.expected.wgsl
index f7d7d34..30a988d 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompareLevel/1568e3.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompareLevel/1568e3.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(1) var arg_1 : sampler_comparison;
 
 fn textureSampleCompareLevel_1568e3() {
-  var res : f32 = textureSampleCompareLevel(arg_0, arg_1, vec3<f32>(), 1.0f);
+  var res : f32 = textureSampleCompareLevel(arg_0, arg_1, vec3<f32>(1.0f), 1.0f);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureSampleCompareLevel/2ad2b1.wgsl b/test/tint/builtins/gen/literal/textureSampleCompareLevel/2ad2b1.wgsl
index a8308e3..1f52f7f 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompareLevel/2ad2b1.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompareLevel/2ad2b1.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureSampleCompareLevel(texture: texture_depth_2d, sampler: sampler_comparison, coords: vec2<f32>, depth_ref: f32) -> f32
 fn textureSampleCompareLevel_2ad2b1() {
-  var res: f32 = textureSampleCompareLevel(arg_0, arg_1, vec2<f32>(), 1.f);
+  var res: f32 = textureSampleCompareLevel(arg_0, arg_1, vec2<f32>(1.f), 1.f);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureSampleCompareLevel/2ad2b1.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleCompareLevel/2ad2b1.wgsl.expected.dxc.hlsl
index 999c761..1bf32a3 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompareLevel/2ad2b1.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompareLevel/2ad2b1.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerComparisonState arg_1 : register(s1, space1);
 
 void textureSampleCompareLevel_2ad2b1() {
-  float res = arg_0.SampleCmpLevelZero(arg_1, (0.0f).xx, 1.0f);
+  float res = arg_0.SampleCmpLevelZero(arg_1, (1.0f).xx, 1.0f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureSampleCompareLevel/2ad2b1.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleCompareLevel/2ad2b1.wgsl.expected.fxc.hlsl
index 999c761..1bf32a3 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompareLevel/2ad2b1.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompareLevel/2ad2b1.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerComparisonState arg_1 : register(s1, space1);
 
 void textureSampleCompareLevel_2ad2b1() {
-  float res = arg_0.SampleCmpLevelZero(arg_1, (0.0f).xx, 1.0f);
+  float res = arg_0.SampleCmpLevelZero(arg_1, (1.0f).xx, 1.0f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureSampleCompareLevel/2ad2b1.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureSampleCompareLevel/2ad2b1.wgsl.expected.glsl
index 1bdaf88..4a5b1ae 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompareLevel/2ad2b1.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompareLevel/2ad2b1.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 uniform highp sampler2DShadow arg_0_arg_1;
 
 void textureSampleCompareLevel_2ad2b1() {
-  float res = texture(arg_0_arg_1, vec3(0.0f, 0.0f, 1.0f));
+  float res = texture(arg_0_arg_1, vec3(vec2(1.0f), 1.0f));
 }
 
 vec4 vertex_main() {
@@ -25,7 +25,7 @@
 uniform highp sampler2DShadow arg_0_arg_1;
 
 void textureSampleCompareLevel_2ad2b1() {
-  float res = texture(arg_0_arg_1, vec3(0.0f, 0.0f, 1.0f));
+  float res = texture(arg_0_arg_1, vec3(vec2(1.0f), 1.0f));
 }
 
 void fragment_main() {
@@ -41,7 +41,7 @@
 uniform highp sampler2DShadow arg_0_arg_1;
 
 void textureSampleCompareLevel_2ad2b1() {
-  float res = texture(arg_0_arg_1, vec3(0.0f, 0.0f, 1.0f));
+  float res = texture(arg_0_arg_1, vec3(vec2(1.0f), 1.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureSampleCompareLevel/2ad2b1.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureSampleCompareLevel/2ad2b1.wgsl.expected.msl
index cc8b9a7..ec2ed1f 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompareLevel/2ad2b1.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureSampleCompareLevel/2ad2b1.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureSampleCompareLevel_2ad2b1(depth2d<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float res = tint_symbol_1.sample_compare(tint_symbol_2, float2(0.0f), 1.0f, level(0));
+  float res = tint_symbol_1.sample_compare(tint_symbol_2, float2(1.0f), 1.0f, level(0));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureSampleCompareLevel/2ad2b1.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSampleCompareLevel/2ad2b1.wgsl.expected.spvasm
index c97b967..0a3e8b9 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompareLevel/2ad2b1.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSampleCompareLevel/2ad2b1.wgsl.expected.spvasm
@@ -44,8 +44,8 @@
          %15 = OpTypeFunction %void
          %22 = OpTypeSampledImage %11
     %v2float = OpTypeVector %float 2
-         %25 = OpConstantNull %v2float
     %float_1 = OpConstant %float 1
+         %26 = OpConstantComposite %v2float %float_1 %float_1
     %float_0 = OpConstant %float 0
 %_ptr_Function_float = OpTypePointer Function %float
          %30 = OpTypeFunction %v4float
@@ -55,7 +55,7 @@
          %20 = OpLoad %14 %arg_1
          %21 = OpLoad %11 %arg_0
          %23 = OpSampledImage %22 %21 %20
-         %19 = OpImageSampleDrefExplicitLod %float %23 %25 %float_1 Lod %float_0
+         %19 = OpImageSampleDrefExplicitLod %float %23 %26 %float_1 Lod %float_0
                OpStore %res %19
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureSampleCompareLevel/2ad2b1.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSampleCompareLevel/2ad2b1.wgsl.expected.wgsl
index 4eafbe2..e715766 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompareLevel/2ad2b1.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompareLevel/2ad2b1.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(1) var arg_1 : sampler_comparison;
 
 fn textureSampleCompareLevel_2ad2b1() {
-  var res : f32 = textureSampleCompareLevel(arg_0, arg_1, vec2<f32>(), 1.0f);
+  var res : f32 = textureSampleCompareLevel(arg_0, arg_1, vec2<f32>(1.0f), 1.0f);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureSampleCompareLevel/4cf3a2.wgsl b/test/tint/builtins/gen/literal/textureSampleCompareLevel/4cf3a2.wgsl
index 75f7335..6406d08 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompareLevel/4cf3a2.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompareLevel/4cf3a2.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureSampleCompareLevel(texture: texture_depth_cube_array, sampler: sampler_comparison, coords: vec3<f32>, array_index: i32, depth_ref: f32) -> f32
 fn textureSampleCompareLevel_4cf3a2() {
-  var res: f32 = textureSampleCompareLevel(arg_0, arg_1, vec3<f32>(), 1i, 1.f);
+  var res: f32 = textureSampleCompareLevel(arg_0, arg_1, vec3<f32>(1.f), 1i, 1.f);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureSampleCompareLevel/4cf3a2.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleCompareLevel/4cf3a2.wgsl.expected.dxc.hlsl
index 03160c2..5921377 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompareLevel/4cf3a2.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompareLevel/4cf3a2.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerComparisonState arg_1 : register(s1, space1);
 
 void textureSampleCompareLevel_4cf3a2() {
-  float res = arg_0.SampleCmpLevelZero(arg_1, float4(0.0f, 0.0f, 0.0f, float(1)), 1.0f);
+  float res = arg_0.SampleCmpLevelZero(arg_1, float4((1.0f).xxx, float(1)), 1.0f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureSampleCompareLevel/4cf3a2.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleCompareLevel/4cf3a2.wgsl.expected.fxc.hlsl
index 03160c2..5921377 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompareLevel/4cf3a2.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompareLevel/4cf3a2.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerComparisonState arg_1 : register(s1, space1);
 
 void textureSampleCompareLevel_4cf3a2() {
-  float res = arg_0.SampleCmpLevelZero(arg_1, float4(0.0f, 0.0f, 0.0f, float(1)), 1.0f);
+  float res = arg_0.SampleCmpLevelZero(arg_1, float4((1.0f).xxx, float(1)), 1.0f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureSampleCompareLevel/4cf3a2.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureSampleCompareLevel/4cf3a2.wgsl.expected.msl
index 8f6c17e..eb1412b 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompareLevel/4cf3a2.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureSampleCompareLevel/4cf3a2.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureSampleCompareLevel_4cf3a2(depthcube_array<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float res = tint_symbol_1.sample_compare(tint_symbol_2, float3(0.0f), 1, 1.0f, level(0));
+  float res = tint_symbol_1.sample_compare(tint_symbol_2, float3(1.0f), 1, 1.0f, level(0));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureSampleCompareLevel/4cf3a2.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSampleCompareLevel/4cf3a2.wgsl.expected.spvasm
index d4414e7..44e64c3 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompareLevel/4cf3a2.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSampleCompareLevel/4cf3a2.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 45
+; Bound: 50
 ; Schema: 0
                OpCapability Shader
                OpCapability SampledCubeArray
@@ -44,43 +44,48 @@
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
          %22 = OpTypeSampledImage %11
-    %float_0 = OpConstant %float 0
+    %v3float = OpTypeVector %float 3
+    %float_1 = OpConstant %float 1
+         %26 = OpConstantComposite %v3float %float_1 %float_1 %float_1
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
-    %float_1 = OpConstant %float 1
+    %float_0 = OpConstant %float 0
 %_ptr_Function_float = OpTypePointer Function %float
-         %32 = OpTypeFunction %v4float
+         %37 = OpTypeFunction %v4float
 %textureSampleCompareLevel_4cf3a2 = OpFunction %void None %15
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_float Function %8
          %20 = OpLoad %14 %arg_1
          %21 = OpLoad %11 %arg_0
          %23 = OpSampledImage %22 %21 %20
-         %25 = OpConvertSToF %float %int_1
-         %28 = OpCompositeConstruct %v4float %float_0 %float_0 %float_0 %25
-         %19 = OpImageSampleDrefExplicitLod %float %23 %28 %float_1 Lod %float_0
+         %27 = OpCompositeExtract %float %26 0
+         %28 = OpCompositeExtract %float %26 1
+         %29 = OpCompositeExtract %float %26 2
+         %30 = OpConvertSToF %float %int_1
+         %33 = OpCompositeConstruct %v4float %27 %28 %29 %30
+         %19 = OpImageSampleDrefExplicitLod %float %23 %33 %float_1 Lod %float_0
                OpStore %res %19
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %32
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureSampleCompareLevel_4cf3a2
+%vertex_main_inner = OpFunction %v4float None %37
+         %39 = OpLabel
+         %40 = OpFunctionCall %void %textureSampleCompareLevel_4cf3a2
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
-         %37 = OpLabel
-         %38 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %38
+         %42 = OpLabel
+         %43 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %43
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %15
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureSampleCompareLevel_4cf3a2
+         %45 = OpLabel
+         %46 = OpFunctionCall %void %textureSampleCompareLevel_4cf3a2
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %15
-         %43 = OpLabel
-         %44 = OpFunctionCall %void %textureSampleCompareLevel_4cf3a2
+         %48 = OpLabel
+         %49 = OpFunctionCall %void %textureSampleCompareLevel_4cf3a2
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureSampleCompareLevel/4cf3a2.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSampleCompareLevel/4cf3a2.wgsl.expected.wgsl
index 6727920..0d98a0f 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompareLevel/4cf3a2.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompareLevel/4cf3a2.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(1) var arg_1 : sampler_comparison;
 
 fn textureSampleCompareLevel_4cf3a2() {
-  var res : f32 = textureSampleCompareLevel(arg_0, arg_1, vec3<f32>(), 1i, 1.0f);
+  var res : f32 = textureSampleCompareLevel(arg_0, arg_1, vec3<f32>(1.0f), 1i, 1.0f);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureSampleCompareLevel/7dc3c0.wgsl b/test/tint/builtins/gen/literal/textureSampleCompareLevel/7dc3c0.wgsl
index c27866b..3316156 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompareLevel/7dc3c0.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompareLevel/7dc3c0.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureSampleCompareLevel(texture: texture_depth_2d_array, sampler: sampler_comparison, coords: vec2<f32>, array_index: u32, depth_ref: f32) -> f32
 fn textureSampleCompareLevel_7dc3c0() {
-  var res: f32 = textureSampleCompareLevel(arg_0, arg_1, vec2<f32>(), 1u, 1.f);
+  var res: f32 = textureSampleCompareLevel(arg_0, arg_1, vec2<f32>(1.f), 1u, 1.f);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureSampleCompareLevel/7dc3c0.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleCompareLevel/7dc3c0.wgsl.expected.dxc.hlsl
index 6c1d906..e0be522 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompareLevel/7dc3c0.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompareLevel/7dc3c0.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerComparisonState arg_1 : register(s1, space1);
 
 void textureSampleCompareLevel_7dc3c0() {
-  float res = arg_0.SampleCmpLevelZero(arg_1, float3(0.0f, 0.0f, float(1u)), 1.0f);
+  float res = arg_0.SampleCmpLevelZero(arg_1, float3((1.0f).xx, float(1u)), 1.0f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureSampleCompareLevel/7dc3c0.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleCompareLevel/7dc3c0.wgsl.expected.fxc.hlsl
index 6c1d906..e0be522 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompareLevel/7dc3c0.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompareLevel/7dc3c0.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerComparisonState arg_1 : register(s1, space1);
 
 void textureSampleCompareLevel_7dc3c0() {
-  float res = arg_0.SampleCmpLevelZero(arg_1, float3(0.0f, 0.0f, float(1u)), 1.0f);
+  float res = arg_0.SampleCmpLevelZero(arg_1, float3((1.0f).xx, float(1u)), 1.0f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureSampleCompareLevel/7dc3c0.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureSampleCompareLevel/7dc3c0.wgsl.expected.glsl
index 37e69e4..db5ecc8 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompareLevel/7dc3c0.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompareLevel/7dc3c0.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 uniform highp sampler2DArrayShadow arg_0_arg_1;
 
 void textureSampleCompareLevel_7dc3c0() {
-  float res = texture(arg_0_arg_1, vec4(0.0f, 0.0f, float(1u), 1.0f));
+  float res = texture(arg_0_arg_1, vec4(vec3(vec2(1.0f), float(1u)), 1.0f));
 }
 
 vec4 vertex_main() {
@@ -25,7 +25,7 @@
 uniform highp sampler2DArrayShadow arg_0_arg_1;
 
 void textureSampleCompareLevel_7dc3c0() {
-  float res = texture(arg_0_arg_1, vec4(0.0f, 0.0f, float(1u), 1.0f));
+  float res = texture(arg_0_arg_1, vec4(vec3(vec2(1.0f), float(1u)), 1.0f));
 }
 
 void fragment_main() {
@@ -41,7 +41,7 @@
 uniform highp sampler2DArrayShadow arg_0_arg_1;
 
 void textureSampleCompareLevel_7dc3c0() {
-  float res = texture(arg_0_arg_1, vec4(0.0f, 0.0f, float(1u), 1.0f));
+  float res = texture(arg_0_arg_1, vec4(vec3(vec2(1.0f), float(1u)), 1.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureSampleCompareLevel/7dc3c0.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureSampleCompareLevel/7dc3c0.wgsl.expected.msl
index 3cf80ae..02aa881 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompareLevel/7dc3c0.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureSampleCompareLevel/7dc3c0.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureSampleCompareLevel_7dc3c0(depth2d_array<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float res = tint_symbol_1.sample_compare(tint_symbol_2, float2(0.0f), 1u, 1.0f, level(0));
+  float res = tint_symbol_1.sample_compare(tint_symbol_2, float2(1.0f), 1u, 1.0f, level(0));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureSampleCompareLevel/7dc3c0.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSampleCompareLevel/7dc3c0.wgsl.expected.spvasm
index a56b0ee..d144689 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompareLevel/7dc3c0.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSampleCompareLevel/7dc3c0.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 46
+; Bound: 50
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -44,43 +44,47 @@
          %15 = OpTypeFunction %void
          %22 = OpTypeSampledImage %11
     %v3float = OpTypeVector %float 3
-    %float_0 = OpConstant %float 0
+    %v2float = OpTypeVector %float 2
+    %float_1 = OpConstant %float 1
+         %27 = OpConstantComposite %v2float %float_1 %float_1
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
-    %float_1 = OpConstant %float 1
+    %float_0 = OpConstant %float 0
 %_ptr_Function_float = OpTypePointer Function %float
-         %33 = OpTypeFunction %v4float
+         %37 = OpTypeFunction %v4float
 %textureSampleCompareLevel_7dc3c0 = OpFunction %void None %15
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_float Function %8
          %20 = OpLoad %14 %arg_1
          %21 = OpLoad %11 %arg_0
          %23 = OpSampledImage %22 %21 %20
-         %26 = OpConvertUToF %float %uint_1
-         %29 = OpCompositeConstruct %v3float %float_0 %float_0 %26
-         %19 = OpImageSampleDrefExplicitLod %float %23 %29 %float_1 Lod %float_0
+         %28 = OpCompositeExtract %float %27 0
+         %29 = OpCompositeExtract %float %27 1
+         %30 = OpConvertUToF %float %uint_1
+         %33 = OpCompositeConstruct %v3float %28 %29 %30
+         %19 = OpImageSampleDrefExplicitLod %float %23 %33 %float_1 Lod %float_0
                OpStore %res %19
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %33
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureSampleCompareLevel_7dc3c0
+%vertex_main_inner = OpFunction %v4float None %37
+         %39 = OpLabel
+         %40 = OpFunctionCall %void %textureSampleCompareLevel_7dc3c0
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
-         %38 = OpLabel
-         %39 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %39
+         %42 = OpLabel
+         %43 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %43
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %15
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureSampleCompareLevel_7dc3c0
+         %45 = OpLabel
+         %46 = OpFunctionCall %void %textureSampleCompareLevel_7dc3c0
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %15
-         %44 = OpLabel
-         %45 = OpFunctionCall %void %textureSampleCompareLevel_7dc3c0
+         %48 = OpLabel
+         %49 = OpFunctionCall %void %textureSampleCompareLevel_7dc3c0
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureSampleCompareLevel/7dc3c0.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSampleCompareLevel/7dc3c0.wgsl.expected.wgsl
index 1e65a08..194ba59 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompareLevel/7dc3c0.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompareLevel/7dc3c0.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(1) var arg_1 : sampler_comparison;
 
 fn textureSampleCompareLevel_7dc3c0() {
-  var res : f32 = textureSampleCompareLevel(arg_0, arg_1, vec2<f32>(), 1u, 1.0f);
+  var res : f32 = textureSampleCompareLevel(arg_0, arg_1, vec2<f32>(1.0f), 1u, 1.0f);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureSampleCompareLevel/7f2b9a.wgsl b/test/tint/builtins/gen/literal/textureSampleCompareLevel/7f2b9a.wgsl
index 6cc8a39..8a7f1ca 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompareLevel/7f2b9a.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompareLevel/7f2b9a.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureSampleCompareLevel(texture: texture_depth_2d, sampler: sampler_comparison, coords: vec2<f32>, depth_ref: f32, @const offset: vec2<i32>) -> f32
 fn textureSampleCompareLevel_7f2b9a() {
-  var res: f32 = textureSampleCompareLevel(arg_0, arg_1, vec2<f32>(), 1.f, vec2<i32>());
+  var res: f32 = textureSampleCompareLevel(arg_0, arg_1, vec2<f32>(1.f), 1.f, vec2<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureSampleCompareLevel/7f2b9a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleCompareLevel/7f2b9a.wgsl.expected.dxc.hlsl
index 772acca..b5a7b64 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompareLevel/7f2b9a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompareLevel/7f2b9a.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerComparisonState arg_1 : register(s1, space1);
 
 void textureSampleCompareLevel_7f2b9a() {
-  float res = arg_0.SampleCmpLevelZero(arg_1, (0.0f).xx, 1.0f, (0).xx);
+  float res = arg_0.SampleCmpLevelZero(arg_1, (1.0f).xx, 1.0f, (1).xx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureSampleCompareLevel/7f2b9a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleCompareLevel/7f2b9a.wgsl.expected.fxc.hlsl
index 772acca..b5a7b64 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompareLevel/7f2b9a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompareLevel/7f2b9a.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerComparisonState arg_1 : register(s1, space1);
 
 void textureSampleCompareLevel_7f2b9a() {
-  float res = arg_0.SampleCmpLevelZero(arg_1, (0.0f).xx, 1.0f, (0).xx);
+  float res = arg_0.SampleCmpLevelZero(arg_1, (1.0f).xx, 1.0f, (1).xx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureSampleCompareLevel/7f2b9a.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureSampleCompareLevel/7f2b9a.wgsl.expected.glsl
index cec13f1..9cd29f9 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompareLevel/7f2b9a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompareLevel/7f2b9a.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 uniform highp sampler2DShadow arg_0_arg_1;
 
 void textureSampleCompareLevel_7f2b9a() {
-  float res = textureOffset(arg_0_arg_1, vec3(0.0f, 0.0f, 1.0f), ivec2(0));
+  float res = textureOffset(arg_0_arg_1, vec3(vec2(1.0f), 1.0f), ivec2(1));
 }
 
 vec4 vertex_main() {
@@ -25,7 +25,7 @@
 uniform highp sampler2DShadow arg_0_arg_1;
 
 void textureSampleCompareLevel_7f2b9a() {
-  float res = textureOffset(arg_0_arg_1, vec3(0.0f, 0.0f, 1.0f), ivec2(0));
+  float res = textureOffset(arg_0_arg_1, vec3(vec2(1.0f), 1.0f), ivec2(1));
 }
 
 void fragment_main() {
@@ -41,7 +41,7 @@
 uniform highp sampler2DShadow arg_0_arg_1;
 
 void textureSampleCompareLevel_7f2b9a() {
-  float res = textureOffset(arg_0_arg_1, vec3(0.0f, 0.0f, 1.0f), ivec2(0));
+  float res = textureOffset(arg_0_arg_1, vec3(vec2(1.0f), 1.0f), ivec2(1));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureSampleCompareLevel/7f2b9a.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureSampleCompareLevel/7f2b9a.wgsl.expected.msl
index dbd5a68..35b8444 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompareLevel/7f2b9a.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureSampleCompareLevel/7f2b9a.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureSampleCompareLevel_7f2b9a(depth2d<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float res = tint_symbol_1.sample_compare(tint_symbol_2, float2(0.0f), 1.0f, level(0), int2(0));
+  float res = tint_symbol_1.sample_compare(tint_symbol_2, float2(1.0f), 1.0f, level(0), int2(1));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureSampleCompareLevel/7f2b9a.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSampleCompareLevel/7f2b9a.wgsl.expected.spvasm
index 98e9d47..298c239 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompareLevel/7f2b9a.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSampleCompareLevel/7f2b9a.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 46
+; Bound: 47
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -44,43 +44,44 @@
          %15 = OpTypeFunction %void
          %22 = OpTypeSampledImage %11
     %v2float = OpTypeVector %float 2
-         %25 = OpConstantNull %v2float
     %float_1 = OpConstant %float 1
+         %26 = OpConstantComposite %v2float %float_1 %float_1
     %float_0 = OpConstant %float 0
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
-         %30 = OpConstantNull %v2int
+      %int_1 = OpConstant %int 1
+         %31 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_float = OpTypePointer Function %float
-         %33 = OpTypeFunction %v4float
+         %34 = OpTypeFunction %v4float
 %textureSampleCompareLevel_7f2b9a = OpFunction %void None %15
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_float Function %8
          %20 = OpLoad %14 %arg_1
          %21 = OpLoad %11 %arg_0
          %23 = OpSampledImage %22 %21 %20
-         %19 = OpImageSampleDrefExplicitLod %float %23 %25 %float_1 Lod|ConstOffset %float_0 %30
+         %19 = OpImageSampleDrefExplicitLod %float %23 %26 %float_1 Lod|ConstOffset %float_0 %31
                OpStore %res %19
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %33
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureSampleCompareLevel_7f2b9a
+%vertex_main_inner = OpFunction %v4float None %34
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureSampleCompareLevel_7f2b9a
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
-         %38 = OpLabel
-         %39 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %39
+         %39 = OpLabel
+         %40 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %40
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %15
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureSampleCompareLevel_7f2b9a
+         %42 = OpLabel
+         %43 = OpFunctionCall %void %textureSampleCompareLevel_7f2b9a
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %15
-         %44 = OpLabel
-         %45 = OpFunctionCall %void %textureSampleCompareLevel_7f2b9a
+         %45 = OpLabel
+         %46 = OpFunctionCall %void %textureSampleCompareLevel_7f2b9a
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureSampleCompareLevel/7f2b9a.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSampleCompareLevel/7f2b9a.wgsl.expected.wgsl
index 360df23..4d9f947 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompareLevel/7f2b9a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompareLevel/7f2b9a.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(1) var arg_1 : sampler_comparison;
 
 fn textureSampleCompareLevel_7f2b9a() {
-  var res : f32 = textureSampleCompareLevel(arg_0, arg_1, vec2<f32>(), 1.0f, vec2<i32>());
+  var res : f32 = textureSampleCompareLevel(arg_0, arg_1, vec2<f32>(1.0f), 1.0f, vec2<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureSampleCompareLevel/958c87.wgsl b/test/tint/builtins/gen/literal/textureSampleCompareLevel/958c87.wgsl
index 42d6fb2..0f80ec6 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompareLevel/958c87.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompareLevel/958c87.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureSampleCompareLevel(texture: texture_depth_cube_array, sampler: sampler_comparison, coords: vec3<f32>, array_index: u32, depth_ref: f32) -> f32
 fn textureSampleCompareLevel_958c87() {
-  var res: f32 = textureSampleCompareLevel(arg_0, arg_1, vec3<f32>(), 1u, 1.f);
+  var res: f32 = textureSampleCompareLevel(arg_0, arg_1, vec3<f32>(1.f), 1u, 1.f);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureSampleCompareLevel/958c87.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleCompareLevel/958c87.wgsl.expected.dxc.hlsl
index 267052f..2b0a18d 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompareLevel/958c87.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompareLevel/958c87.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerComparisonState arg_1 : register(s1, space1);
 
 void textureSampleCompareLevel_958c87() {
-  float res = arg_0.SampleCmpLevelZero(arg_1, float4(0.0f, 0.0f, 0.0f, float(1u)), 1.0f);
+  float res = arg_0.SampleCmpLevelZero(arg_1, float4((1.0f).xxx, float(1u)), 1.0f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureSampleCompareLevel/958c87.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleCompareLevel/958c87.wgsl.expected.fxc.hlsl
index 267052f..2b0a18d 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompareLevel/958c87.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompareLevel/958c87.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerComparisonState arg_1 : register(s1, space1);
 
 void textureSampleCompareLevel_958c87() {
-  float res = arg_0.SampleCmpLevelZero(arg_1, float4(0.0f, 0.0f, 0.0f, float(1u)), 1.0f);
+  float res = arg_0.SampleCmpLevelZero(arg_1, float4((1.0f).xxx, float(1u)), 1.0f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureSampleCompareLevel/958c87.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureSampleCompareLevel/958c87.wgsl.expected.msl
index a46a096..8a6ee8a 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompareLevel/958c87.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureSampleCompareLevel/958c87.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureSampleCompareLevel_958c87(depthcube_array<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float res = tint_symbol_1.sample_compare(tint_symbol_2, float3(0.0f), 1u, 1.0f, level(0));
+  float res = tint_symbol_1.sample_compare(tint_symbol_2, float3(1.0f), 1u, 1.0f, level(0));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureSampleCompareLevel/958c87.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSampleCompareLevel/958c87.wgsl.expected.spvasm
index 6669c55..d1e88c1 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompareLevel/958c87.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSampleCompareLevel/958c87.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 45
+; Bound: 50
 ; Schema: 0
                OpCapability Shader
                OpCapability SampledCubeArray
@@ -44,43 +44,48 @@
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
          %22 = OpTypeSampledImage %11
-    %float_0 = OpConstant %float 0
+    %v3float = OpTypeVector %float 3
+    %float_1 = OpConstant %float 1
+         %26 = OpConstantComposite %v3float %float_1 %float_1 %float_1
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
-    %float_1 = OpConstant %float 1
+    %float_0 = OpConstant %float 0
 %_ptr_Function_float = OpTypePointer Function %float
-         %32 = OpTypeFunction %v4float
+         %37 = OpTypeFunction %v4float
 %textureSampleCompareLevel_958c87 = OpFunction %void None %15
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_float Function %8
          %20 = OpLoad %14 %arg_1
          %21 = OpLoad %11 %arg_0
          %23 = OpSampledImage %22 %21 %20
-         %25 = OpConvertUToF %float %uint_1
-         %28 = OpCompositeConstruct %v4float %float_0 %float_0 %float_0 %25
-         %19 = OpImageSampleDrefExplicitLod %float %23 %28 %float_1 Lod %float_0
+         %27 = OpCompositeExtract %float %26 0
+         %28 = OpCompositeExtract %float %26 1
+         %29 = OpCompositeExtract %float %26 2
+         %30 = OpConvertUToF %float %uint_1
+         %33 = OpCompositeConstruct %v4float %27 %28 %29 %30
+         %19 = OpImageSampleDrefExplicitLod %float %23 %33 %float_1 Lod %float_0
                OpStore %res %19
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %32
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureSampleCompareLevel_958c87
+%vertex_main_inner = OpFunction %v4float None %37
+         %39 = OpLabel
+         %40 = OpFunctionCall %void %textureSampleCompareLevel_958c87
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
-         %37 = OpLabel
-         %38 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %38
+         %42 = OpLabel
+         %43 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %43
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %15
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureSampleCompareLevel_958c87
+         %45 = OpLabel
+         %46 = OpFunctionCall %void %textureSampleCompareLevel_958c87
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %15
-         %43 = OpLabel
-         %44 = OpFunctionCall %void %textureSampleCompareLevel_958c87
+         %48 = OpLabel
+         %49 = OpFunctionCall %void %textureSampleCompareLevel_958c87
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureSampleCompareLevel/958c87.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSampleCompareLevel/958c87.wgsl.expected.wgsl
index 7b6e087..b8e519d 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompareLevel/958c87.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompareLevel/958c87.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(1) var arg_1 : sampler_comparison;
 
 fn textureSampleCompareLevel_958c87() {
-  var res : f32 = textureSampleCompareLevel(arg_0, arg_1, vec3<f32>(), 1u, 1.0f);
+  var res : f32 = textureSampleCompareLevel(arg_0, arg_1, vec3<f32>(1.0f), 1u, 1.0f);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureSampleCompareLevel/b6e47c.wgsl b/test/tint/builtins/gen/literal/textureSampleCompareLevel/b6e47c.wgsl
index 7b3f48b..723be9a 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompareLevel/b6e47c.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompareLevel/b6e47c.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureSampleCompareLevel(texture: texture_depth_2d_array, sampler: sampler_comparison, coords: vec2<f32>, array_index: i32, depth_ref: f32, @const offset: vec2<i32>) -> f32
 fn textureSampleCompareLevel_b6e47c() {
-  var res: f32 = textureSampleCompareLevel(arg_0, arg_1, vec2<f32>(), 1i, 1.f, vec2<i32>());
+  var res: f32 = textureSampleCompareLevel(arg_0, arg_1, vec2<f32>(1.f), 1i, 1.f, vec2<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureSampleCompareLevel/b6e47c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleCompareLevel/b6e47c.wgsl.expected.dxc.hlsl
index 536d764..77b7e86 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompareLevel/b6e47c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompareLevel/b6e47c.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerComparisonState arg_1 : register(s1, space1);
 
 void textureSampleCompareLevel_b6e47c() {
-  float res = arg_0.SampleCmpLevelZero(arg_1, float3(0.0f, 0.0f, float(1)), 1.0f, (0).xx);
+  float res = arg_0.SampleCmpLevelZero(arg_1, float3((1.0f).xx, float(1)), 1.0f, (1).xx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureSampleCompareLevel/b6e47c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleCompareLevel/b6e47c.wgsl.expected.fxc.hlsl
index 536d764..77b7e86 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompareLevel/b6e47c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompareLevel/b6e47c.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerComparisonState arg_1 : register(s1, space1);
 
 void textureSampleCompareLevel_b6e47c() {
-  float res = arg_0.SampleCmpLevelZero(arg_1, float3(0.0f, 0.0f, float(1)), 1.0f, (0).xx);
+  float res = arg_0.SampleCmpLevelZero(arg_1, float3((1.0f).xx, float(1)), 1.0f, (1).xx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureSampleCompareLevel/b6e47c.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureSampleCompareLevel/b6e47c.wgsl.expected.msl
index 44343c7..75ff04c 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompareLevel/b6e47c.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureSampleCompareLevel/b6e47c.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureSampleCompareLevel_b6e47c(depth2d_array<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float res = tint_symbol_1.sample_compare(tint_symbol_2, float2(0.0f), 1, 1.0f, level(0), int2(0));
+  float res = tint_symbol_1.sample_compare(tint_symbol_2, float2(1.0f), 1, 1.0f, level(0), int2(1));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureSampleCompareLevel/b6e47c.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSampleCompareLevel/b6e47c.wgsl.expected.spvasm
index 4194b1a..b65a7c2 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompareLevel/b6e47c.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSampleCompareLevel/b6e47c.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 48
+; Bound: 52
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -44,45 +44,49 @@
          %15 = OpTypeFunction %void
          %22 = OpTypeSampledImage %11
     %v3float = OpTypeVector %float 3
-    %float_0 = OpConstant %float 0
+    %v2float = OpTypeVector %float 2
+    %float_1 = OpConstant %float 1
+         %27 = OpConstantComposite %v2float %float_1 %float_1
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
-    %float_1 = OpConstant %float 1
+    %float_0 = OpConstant %float 0
       %v2int = OpTypeVector %int 2
-         %32 = OpConstantNull %v2int
+         %36 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_float = OpTypePointer Function %float
-         %35 = OpTypeFunction %v4float
+         %39 = OpTypeFunction %v4float
 %textureSampleCompareLevel_b6e47c = OpFunction %void None %15
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_float Function %8
          %20 = OpLoad %14 %arg_1
          %21 = OpLoad %11 %arg_0
          %23 = OpSampledImage %22 %21 %20
-         %26 = OpConvertSToF %float %int_1
-         %29 = OpCompositeConstruct %v3float %float_0 %float_0 %26
-         %19 = OpImageSampleDrefExplicitLod %float %23 %29 %float_1 Lod|ConstOffset %float_0 %32
+         %28 = OpCompositeExtract %float %27 0
+         %29 = OpCompositeExtract %float %27 1
+         %30 = OpConvertSToF %float %int_1
+         %33 = OpCompositeConstruct %v3float %28 %29 %30
+         %19 = OpImageSampleDrefExplicitLod %float %23 %33 %float_1 Lod|ConstOffset %float_0 %36
                OpStore %res %19
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %35
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureSampleCompareLevel_b6e47c
+%vertex_main_inner = OpFunction %v4float None %39
+         %41 = OpLabel
+         %42 = OpFunctionCall %void %textureSampleCompareLevel_b6e47c
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
-         %40 = OpLabel
-         %41 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %41
+         %44 = OpLabel
+         %45 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %45
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %15
-         %43 = OpLabel
-         %44 = OpFunctionCall %void %textureSampleCompareLevel_b6e47c
+         %47 = OpLabel
+         %48 = OpFunctionCall %void %textureSampleCompareLevel_b6e47c
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %15
-         %46 = OpLabel
-         %47 = OpFunctionCall %void %textureSampleCompareLevel_b6e47c
+         %50 = OpLabel
+         %51 = OpFunctionCall %void %textureSampleCompareLevel_b6e47c
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureSampleCompareLevel/b6e47c.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSampleCompareLevel/b6e47c.wgsl.expected.wgsl
index 7214a20..887ac6a 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompareLevel/b6e47c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompareLevel/b6e47c.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(1) var arg_1 : sampler_comparison;
 
 fn textureSampleCompareLevel_b6e47c() {
-  var res : f32 = textureSampleCompareLevel(arg_0, arg_1, vec2<f32>(), 1i, 1.0f, vec2<i32>());
+  var res : f32 = textureSampleCompareLevel(arg_0, arg_1, vec2<f32>(1.0f), 1i, 1.0f, vec2<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureSampleCompareLevel/bcb3dd.wgsl b/test/tint/builtins/gen/literal/textureSampleCompareLevel/bcb3dd.wgsl
index 59d04fb..36d2f40 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompareLevel/bcb3dd.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompareLevel/bcb3dd.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureSampleCompareLevel(texture: texture_depth_2d_array, sampler: sampler_comparison, coords: vec2<f32>, array_index: u32, depth_ref: f32, @const offset: vec2<i32>) -> f32
 fn textureSampleCompareLevel_bcb3dd() {
-  var res: f32 = textureSampleCompareLevel(arg_0, arg_1, vec2<f32>(), 1u, 1.f, vec2<i32>());
+  var res: f32 = textureSampleCompareLevel(arg_0, arg_1, vec2<f32>(1.f), 1u, 1.f, vec2<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureSampleCompareLevel/bcb3dd.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleCompareLevel/bcb3dd.wgsl.expected.dxc.hlsl
index 25f2ddc..e0c9224 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompareLevel/bcb3dd.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompareLevel/bcb3dd.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerComparisonState arg_1 : register(s1, space1);
 
 void textureSampleCompareLevel_bcb3dd() {
-  float res = arg_0.SampleCmpLevelZero(arg_1, float3(0.0f, 0.0f, float(1u)), 1.0f, (0).xx);
+  float res = arg_0.SampleCmpLevelZero(arg_1, float3((1.0f).xx, float(1u)), 1.0f, (1).xx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureSampleCompareLevel/bcb3dd.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleCompareLevel/bcb3dd.wgsl.expected.fxc.hlsl
index 25f2ddc..e0c9224 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompareLevel/bcb3dd.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompareLevel/bcb3dd.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerComparisonState arg_1 : register(s1, space1);
 
 void textureSampleCompareLevel_bcb3dd() {
-  float res = arg_0.SampleCmpLevelZero(arg_1, float3(0.0f, 0.0f, float(1u)), 1.0f, (0).xx);
+  float res = arg_0.SampleCmpLevelZero(arg_1, float3((1.0f).xx, float(1u)), 1.0f, (1).xx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureSampleCompareLevel/bcb3dd.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureSampleCompareLevel/bcb3dd.wgsl.expected.msl
index 035ddc3..4259a5c 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompareLevel/bcb3dd.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureSampleCompareLevel/bcb3dd.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureSampleCompareLevel_bcb3dd(depth2d_array<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float res = tint_symbol_1.sample_compare(tint_symbol_2, float2(0.0f), 1u, 1.0f, level(0), int2(0));
+  float res = tint_symbol_1.sample_compare(tint_symbol_2, float2(1.0f), 1u, 1.0f, level(0), int2(1));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureSampleCompareLevel/bcb3dd.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSampleCompareLevel/bcb3dd.wgsl.expected.spvasm
index a7672e5..73aa482 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompareLevel/bcb3dd.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSampleCompareLevel/bcb3dd.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 49
+; Bound: 54
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -44,46 +44,51 @@
          %15 = OpTypeFunction %void
          %22 = OpTypeSampledImage %11
     %v3float = OpTypeVector %float 3
-    %float_0 = OpConstant %float 0
+    %v2float = OpTypeVector %float 2
+    %float_1 = OpConstant %float 1
+         %27 = OpConstantComposite %v2float %float_1 %float_1
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
-    %float_1 = OpConstant %float 1
+    %float_0 = OpConstant %float 0
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
-         %33 = OpConstantNull %v2int
+      %int_1 = OpConstant %int 1
+         %38 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_float = OpTypePointer Function %float
-         %36 = OpTypeFunction %v4float
+         %41 = OpTypeFunction %v4float
 %textureSampleCompareLevel_bcb3dd = OpFunction %void None %15
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_float Function %8
          %20 = OpLoad %14 %arg_1
          %21 = OpLoad %11 %arg_0
          %23 = OpSampledImage %22 %21 %20
-         %26 = OpConvertUToF %float %uint_1
-         %29 = OpCompositeConstruct %v3float %float_0 %float_0 %26
-         %19 = OpImageSampleDrefExplicitLod %float %23 %29 %float_1 Lod|ConstOffset %float_0 %33
+         %28 = OpCompositeExtract %float %27 0
+         %29 = OpCompositeExtract %float %27 1
+         %30 = OpConvertUToF %float %uint_1
+         %33 = OpCompositeConstruct %v3float %28 %29 %30
+         %19 = OpImageSampleDrefExplicitLod %float %23 %33 %float_1 Lod|ConstOffset %float_0 %38
                OpStore %res %19
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %36
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureSampleCompareLevel_bcb3dd
+%vertex_main_inner = OpFunction %v4float None %41
+         %43 = OpLabel
+         %44 = OpFunctionCall %void %textureSampleCompareLevel_bcb3dd
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
-         %41 = OpLabel
-         %42 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %42
+         %46 = OpLabel
+         %47 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %47
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %15
-         %44 = OpLabel
-         %45 = OpFunctionCall %void %textureSampleCompareLevel_bcb3dd
+         %49 = OpLabel
+         %50 = OpFunctionCall %void %textureSampleCompareLevel_bcb3dd
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %15
-         %47 = OpLabel
-         %48 = OpFunctionCall %void %textureSampleCompareLevel_bcb3dd
+         %52 = OpLabel
+         %53 = OpFunctionCall %void %textureSampleCompareLevel_bcb3dd
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureSampleCompareLevel/bcb3dd.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSampleCompareLevel/bcb3dd.wgsl.expected.wgsl
index 41956b8..4e68be3 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompareLevel/bcb3dd.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompareLevel/bcb3dd.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(1) var arg_1 : sampler_comparison;
 
 fn textureSampleCompareLevel_bcb3dd() {
-  var res : f32 = textureSampleCompareLevel(arg_0, arg_1, vec2<f32>(), 1u, 1.0f, vec2<i32>());
+  var res : f32 = textureSampleCompareLevel(arg_0, arg_1, vec2<f32>(1.0f), 1u, 1.0f, vec2<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureSampleGrad/21402b.wgsl b/test/tint/builtins/gen/literal/textureSampleGrad/21402b.wgsl
index c84adf0..9d50e04 100644
--- a/test/tint/builtins/gen/literal/textureSampleGrad/21402b.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleGrad/21402b.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureSampleGrad(texture: texture_3d<f32>, sampler: sampler, coords: vec3<f32>, ddx: vec3<f32>, ddy: vec3<f32>) -> vec4<f32>
 fn textureSampleGrad_21402b() {
-  var res: vec4<f32> = textureSampleGrad(arg_0, arg_1, vec3<f32>(), vec3<f32>(), vec3<f32>());
+  var res: vec4<f32> = textureSampleGrad(arg_0, arg_1, vec3<f32>(1.f), vec3<f32>(1.f), vec3<f32>(1.f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureSampleGrad/21402b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleGrad/21402b.wgsl.expected.dxc.hlsl
index 6012626..31b2abe 100644
--- a/test/tint/builtins/gen/literal/textureSampleGrad/21402b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleGrad/21402b.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleGrad_21402b() {
-  float4 res = arg_0.SampleGrad(arg_1, (0.0f).xxx, (0.0f).xxx, (0.0f).xxx);
+  float4 res = arg_0.SampleGrad(arg_1, (1.0f).xxx, (1.0f).xxx, (1.0f).xxx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureSampleGrad/21402b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleGrad/21402b.wgsl.expected.fxc.hlsl
index 6012626..31b2abe 100644
--- a/test/tint/builtins/gen/literal/textureSampleGrad/21402b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleGrad/21402b.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleGrad_21402b() {
-  float4 res = arg_0.SampleGrad(arg_1, (0.0f).xxx, (0.0f).xxx, (0.0f).xxx);
+  float4 res = arg_0.SampleGrad(arg_1, (1.0f).xxx, (1.0f).xxx, (1.0f).xxx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureSampleGrad/21402b.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureSampleGrad/21402b.wgsl.expected.glsl
index 4810d97..9b6b7bf 100644
--- a/test/tint/builtins/gen/literal/textureSampleGrad/21402b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureSampleGrad/21402b.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 uniform highp sampler3D arg_0_arg_1;
 
 void textureSampleGrad_21402b() {
-  vec4 res = textureGrad(arg_0_arg_1, vec3(0.0f), vec3(0.0f), vec3(0.0f));
+  vec4 res = textureGrad(arg_0_arg_1, vec3(1.0f), vec3(1.0f), vec3(1.0f));
 }
 
 vec4 vertex_main() {
@@ -25,7 +25,7 @@
 uniform highp sampler3D arg_0_arg_1;
 
 void textureSampleGrad_21402b() {
-  vec4 res = textureGrad(arg_0_arg_1, vec3(0.0f), vec3(0.0f), vec3(0.0f));
+  vec4 res = textureGrad(arg_0_arg_1, vec3(1.0f), vec3(1.0f), vec3(1.0f));
 }
 
 void fragment_main() {
@@ -41,7 +41,7 @@
 uniform highp sampler3D arg_0_arg_1;
 
 void textureSampleGrad_21402b() {
-  vec4 res = textureGrad(arg_0_arg_1, vec3(0.0f), vec3(0.0f), vec3(0.0f));
+  vec4 res = textureGrad(arg_0_arg_1, vec3(1.0f), vec3(1.0f), vec3(1.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureSampleGrad/21402b.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureSampleGrad/21402b.wgsl.expected.msl
index e441de5..0f86e1c 100644
--- a/test/tint/builtins/gen/literal/textureSampleGrad/21402b.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureSampleGrad/21402b.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureSampleGrad_21402b(texture3d<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float4 res = tint_symbol_1.sample(tint_symbol_2, float3(0.0f), gradient3d(float3(0.0f), float3(0.0f)));
+  float4 res = tint_symbol_1.sample(tint_symbol_2, float3(1.0f), gradient3d(float3(1.0f), float3(1.0f)));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureSampleGrad/21402b.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSampleGrad/21402b.wgsl.expected.spvasm
index 99b7b95..01c9f62 100644
--- a/test/tint/builtins/gen/literal/textureSampleGrad/21402b.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSampleGrad/21402b.wgsl.expected.spvasm
@@ -44,29 +44,29 @@
          %15 = OpTypeFunction %void
          %22 = OpTypeSampledImage %11
     %v3float = OpTypeVector %float 3
-         %25 = OpConstantNull %v3float
-%_ptr_Function_v4float = OpTypePointer Function %v4float
-         %28 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
+         %26 = OpConstantComposite %v3float %float_1 %float_1 %float_1
+%_ptr_Function_v4float = OpTypePointer Function %v4float
+         %29 = OpTypeFunction %v4float
 %textureSampleGrad_21402b = OpFunction %void None %15
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
          %20 = OpLoad %14 %arg_1
          %21 = OpLoad %11 %arg_0
          %23 = OpSampledImage %22 %21 %20
-         %19 = OpImageSampleExplicitLod %v4float %23 %25 Grad %25 %25
+         %19 = OpImageSampleExplicitLod %v4float %23 %26 Grad %26 %26
                OpStore %res %19
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %28
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %textureSampleGrad_21402b
+%vertex_main_inner = OpFunction %v4float None %29
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %textureSampleGrad_21402b
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
-         %33 = OpLabel
-         %34 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %34
+         %34 = OpLabel
+         %35 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %35
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureSampleGrad/21402b.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSampleGrad/21402b.wgsl.expected.wgsl
index d51d095..89efe6d 100644
--- a/test/tint/builtins/gen/literal/textureSampleGrad/21402b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleGrad/21402b.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(1) var arg_1 : sampler;
 
 fn textureSampleGrad_21402b() {
-  var res : vec4<f32> = textureSampleGrad(arg_0, arg_1, vec3<f32>(), vec3<f32>(), vec3<f32>());
+  var res : vec4<f32> = textureSampleGrad(arg_0, arg_1, vec3<f32>(1.0f), vec3<f32>(1.0f), vec3<f32>(1.0f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureSampleGrad/2ecd8f.wgsl b/test/tint/builtins/gen/literal/textureSampleGrad/2ecd8f.wgsl
index bcb2593..b81aa6a 100644
--- a/test/tint/builtins/gen/literal/textureSampleGrad/2ecd8f.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleGrad/2ecd8f.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureSampleGrad(texture: texture_2d_array<f32>, sampler: sampler, coords: vec2<f32>, array_index: i32, ddx: vec2<f32>, ddy: vec2<f32>) -> vec4<f32>
 fn textureSampleGrad_2ecd8f() {
-  var res: vec4<f32> = textureSampleGrad(arg_0, arg_1, vec2<f32>(), 1i, vec2<f32>(), vec2<f32>());
+  var res: vec4<f32> = textureSampleGrad(arg_0, arg_1, vec2<f32>(1.f), 1i, vec2<f32>(1.f), vec2<f32>(1.f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureSampleGrad/2ecd8f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleGrad/2ecd8f.wgsl.expected.dxc.hlsl
index 3d01c5a..a835873 100644
--- a/test/tint/builtins/gen/literal/textureSampleGrad/2ecd8f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleGrad/2ecd8f.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleGrad_2ecd8f() {
-  float4 res = arg_0.SampleGrad(arg_1, float3(0.0f, 0.0f, float(1)), (0.0f).xx, (0.0f).xx);
+  float4 res = arg_0.SampleGrad(arg_1, float3((1.0f).xx, float(1)), (1.0f).xx, (1.0f).xx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureSampleGrad/2ecd8f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleGrad/2ecd8f.wgsl.expected.fxc.hlsl
index 3d01c5a..a835873 100644
--- a/test/tint/builtins/gen/literal/textureSampleGrad/2ecd8f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleGrad/2ecd8f.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleGrad_2ecd8f() {
-  float4 res = arg_0.SampleGrad(arg_1, float3(0.0f, 0.0f, float(1)), (0.0f).xx, (0.0f).xx);
+  float4 res = arg_0.SampleGrad(arg_1, float3((1.0f).xx, float(1)), (1.0f).xx, (1.0f).xx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureSampleGrad/2ecd8f.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureSampleGrad/2ecd8f.wgsl.expected.glsl
index 93bb758..d3ab105 100644
--- a/test/tint/builtins/gen/literal/textureSampleGrad/2ecd8f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureSampleGrad/2ecd8f.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 uniform highp sampler2DArray arg_0_arg_1;
 
 void textureSampleGrad_2ecd8f() {
-  vec4 res = textureGrad(arg_0_arg_1, vec3(0.0f, 0.0f, float(1)), vec2(0.0f), vec2(0.0f));
+  vec4 res = textureGrad(arg_0_arg_1, vec3(vec2(1.0f), float(1)), vec2(1.0f), vec2(1.0f));
 }
 
 vec4 vertex_main() {
@@ -25,7 +25,7 @@
 uniform highp sampler2DArray arg_0_arg_1;
 
 void textureSampleGrad_2ecd8f() {
-  vec4 res = textureGrad(arg_0_arg_1, vec3(0.0f, 0.0f, float(1)), vec2(0.0f), vec2(0.0f));
+  vec4 res = textureGrad(arg_0_arg_1, vec3(vec2(1.0f), float(1)), vec2(1.0f), vec2(1.0f));
 }
 
 void fragment_main() {
@@ -41,7 +41,7 @@
 uniform highp sampler2DArray arg_0_arg_1;
 
 void textureSampleGrad_2ecd8f() {
-  vec4 res = textureGrad(arg_0_arg_1, vec3(0.0f, 0.0f, float(1)), vec2(0.0f), vec2(0.0f));
+  vec4 res = textureGrad(arg_0_arg_1, vec3(vec2(1.0f), float(1)), vec2(1.0f), vec2(1.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureSampleGrad/2ecd8f.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureSampleGrad/2ecd8f.wgsl.expected.msl
index 8b79020..2927067 100644
--- a/test/tint/builtins/gen/literal/textureSampleGrad/2ecd8f.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureSampleGrad/2ecd8f.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureSampleGrad_2ecd8f(texture2d_array<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float4 res = tint_symbol_1.sample(tint_symbol_2, float2(0.0f), 1, gradient2d(float2(0.0f), float2(0.0f)));
+  float4 res = tint_symbol_1.sample(tint_symbol_2, float2(1.0f), 1, gradient2d(float2(1.0f), float2(1.0f)));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureSampleGrad/2ecd8f.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSampleGrad/2ecd8f.wgsl.expected.spvasm
index ec4ab9b..0abdf22 100644
--- a/test/tint/builtins/gen/literal/textureSampleGrad/2ecd8f.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSampleGrad/2ecd8f.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 48
+; Bound: 49
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -44,45 +44,46 @@
          %15 = OpTypeFunction %void
          %22 = OpTypeSampledImage %11
     %v3float = OpTypeVector %float 3
-    %float_0 = OpConstant %float 0
+    %v2float = OpTypeVector %float 2
+    %float_1 = OpConstant %float 1
+         %27 = OpConstantComposite %v2float %float_1 %float_1
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
-    %v2float = OpTypeVector %float 2
-         %31 = OpConstantNull %v2float
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %34 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %36 = OpTypeFunction %v4float
 %textureSampleGrad_2ecd8f = OpFunction %void None %15
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
          %20 = OpLoad %14 %arg_1
          %21 = OpLoad %11 %arg_0
          %23 = OpSampledImage %22 %21 %20
-         %26 = OpConvertSToF %float %int_1
-         %29 = OpCompositeConstruct %v3float %float_0 %float_0 %26
-         %19 = OpImageSampleExplicitLod %v4float %23 %29 Grad %31 %31
+         %28 = OpCompositeExtract %float %27 0
+         %29 = OpCompositeExtract %float %27 1
+         %30 = OpConvertSToF %float %int_1
+         %33 = OpCompositeConstruct %v3float %28 %29 %30
+         %19 = OpImageSampleExplicitLod %v4float %23 %33 Grad %27 %27
                OpStore %res %19
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %34
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureSampleGrad_2ecd8f
+%vertex_main_inner = OpFunction %v4float None %36
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %textureSampleGrad_2ecd8f
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
-         %39 = OpLabel
-         %40 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %40
+         %41 = OpLabel
+         %42 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %42
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %15
-         %43 = OpLabel
-         %44 = OpFunctionCall %void %textureSampleGrad_2ecd8f
+         %44 = OpLabel
+         %45 = OpFunctionCall %void %textureSampleGrad_2ecd8f
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %15
-         %46 = OpLabel
-         %47 = OpFunctionCall %void %textureSampleGrad_2ecd8f
+         %47 = OpLabel
+         %48 = OpFunctionCall %void %textureSampleGrad_2ecd8f
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureSampleGrad/2ecd8f.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSampleGrad/2ecd8f.wgsl.expected.wgsl
index aa4204f..7ca3d1f 100644
--- a/test/tint/builtins/gen/literal/textureSampleGrad/2ecd8f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleGrad/2ecd8f.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(1) var arg_1 : sampler;
 
 fn textureSampleGrad_2ecd8f() {
-  var res : vec4<f32> = textureSampleGrad(arg_0, arg_1, vec2<f32>(), 1i, vec2<f32>(), vec2<f32>());
+  var res : vec4<f32> = textureSampleGrad(arg_0, arg_1, vec2<f32>(1.0f), 1i, vec2<f32>(1.0f), vec2<f32>(1.0f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureSampleGrad/521263.wgsl b/test/tint/builtins/gen/literal/textureSampleGrad/521263.wgsl
index 6b6b77c..3379bee 100644
--- a/test/tint/builtins/gen/literal/textureSampleGrad/521263.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleGrad/521263.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureSampleGrad(texture: texture_2d<f32>, sampler: sampler, coords: vec2<f32>, ddx: vec2<f32>, ddy: vec2<f32>) -> vec4<f32>
 fn textureSampleGrad_521263() {
-  var res: vec4<f32> = textureSampleGrad(arg_0, arg_1, vec2<f32>(), vec2<f32>(), vec2<f32>());
+  var res: vec4<f32> = textureSampleGrad(arg_0, arg_1, vec2<f32>(1.f), vec2<f32>(1.f), vec2<f32>(1.f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureSampleGrad/521263.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleGrad/521263.wgsl.expected.dxc.hlsl
index f581e30..e45601c 100644
--- a/test/tint/builtins/gen/literal/textureSampleGrad/521263.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleGrad/521263.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleGrad_521263() {
-  float4 res = arg_0.SampleGrad(arg_1, (0.0f).xx, (0.0f).xx, (0.0f).xx);
+  float4 res = arg_0.SampleGrad(arg_1, (1.0f).xx, (1.0f).xx, (1.0f).xx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureSampleGrad/521263.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleGrad/521263.wgsl.expected.fxc.hlsl
index f581e30..e45601c 100644
--- a/test/tint/builtins/gen/literal/textureSampleGrad/521263.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleGrad/521263.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleGrad_521263() {
-  float4 res = arg_0.SampleGrad(arg_1, (0.0f).xx, (0.0f).xx, (0.0f).xx);
+  float4 res = arg_0.SampleGrad(arg_1, (1.0f).xx, (1.0f).xx, (1.0f).xx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureSampleGrad/521263.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureSampleGrad/521263.wgsl.expected.glsl
index 88da1c0..2780701 100644
--- a/test/tint/builtins/gen/literal/textureSampleGrad/521263.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureSampleGrad/521263.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 uniform highp sampler2D arg_0_arg_1;
 
 void textureSampleGrad_521263() {
-  vec4 res = textureGrad(arg_0_arg_1, vec2(0.0f), vec2(0.0f), vec2(0.0f));
+  vec4 res = textureGrad(arg_0_arg_1, vec2(1.0f), vec2(1.0f), vec2(1.0f));
 }
 
 vec4 vertex_main() {
@@ -25,7 +25,7 @@
 uniform highp sampler2D arg_0_arg_1;
 
 void textureSampleGrad_521263() {
-  vec4 res = textureGrad(arg_0_arg_1, vec2(0.0f), vec2(0.0f), vec2(0.0f));
+  vec4 res = textureGrad(arg_0_arg_1, vec2(1.0f), vec2(1.0f), vec2(1.0f));
 }
 
 void fragment_main() {
@@ -41,7 +41,7 @@
 uniform highp sampler2D arg_0_arg_1;
 
 void textureSampleGrad_521263() {
-  vec4 res = textureGrad(arg_0_arg_1, vec2(0.0f), vec2(0.0f), vec2(0.0f));
+  vec4 res = textureGrad(arg_0_arg_1, vec2(1.0f), vec2(1.0f), vec2(1.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureSampleGrad/521263.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureSampleGrad/521263.wgsl.expected.msl
index 902ba71..6a4297e 100644
--- a/test/tint/builtins/gen/literal/textureSampleGrad/521263.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureSampleGrad/521263.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureSampleGrad_521263(texture2d<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float4 res = tint_symbol_1.sample(tint_symbol_2, float2(0.0f), gradient2d(float2(0.0f), float2(0.0f)));
+  float4 res = tint_symbol_1.sample(tint_symbol_2, float2(1.0f), gradient2d(float2(1.0f), float2(1.0f)));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureSampleGrad/521263.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSampleGrad/521263.wgsl.expected.spvasm
index ac43905..6ad6311 100644
--- a/test/tint/builtins/gen/literal/textureSampleGrad/521263.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSampleGrad/521263.wgsl.expected.spvasm
@@ -44,29 +44,29 @@
          %15 = OpTypeFunction %void
          %22 = OpTypeSampledImage %11
     %v2float = OpTypeVector %float 2
-         %25 = OpConstantNull %v2float
-%_ptr_Function_v4float = OpTypePointer Function %v4float
-         %28 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
+         %26 = OpConstantComposite %v2float %float_1 %float_1
+%_ptr_Function_v4float = OpTypePointer Function %v4float
+         %29 = OpTypeFunction %v4float
 %textureSampleGrad_521263 = OpFunction %void None %15
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
          %20 = OpLoad %14 %arg_1
          %21 = OpLoad %11 %arg_0
          %23 = OpSampledImage %22 %21 %20
-         %19 = OpImageSampleExplicitLod %v4float %23 %25 Grad %25 %25
+         %19 = OpImageSampleExplicitLod %v4float %23 %26 Grad %26 %26
                OpStore %res %19
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %28
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %textureSampleGrad_521263
+%vertex_main_inner = OpFunction %v4float None %29
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %textureSampleGrad_521263
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
-         %33 = OpLabel
-         %34 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %34
+         %34 = OpLabel
+         %35 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %35
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureSampleGrad/521263.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSampleGrad/521263.wgsl.expected.wgsl
index d8ade17..1deee69 100644
--- a/test/tint/builtins/gen/literal/textureSampleGrad/521263.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleGrad/521263.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(1) var arg_1 : sampler;
 
 fn textureSampleGrad_521263() {
-  var res : vec4<f32> = textureSampleGrad(arg_0, arg_1, vec2<f32>(), vec2<f32>(), vec2<f32>());
+  var res : vec4<f32> = textureSampleGrad(arg_0, arg_1, vec2<f32>(1.0f), vec2<f32>(1.0f), vec2<f32>(1.0f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureSampleGrad/5312f4.wgsl b/test/tint/builtins/gen/literal/textureSampleGrad/5312f4.wgsl
index 5bdc21b..1cbe125 100644
--- a/test/tint/builtins/gen/literal/textureSampleGrad/5312f4.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleGrad/5312f4.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureSampleGrad(texture: texture_cube<f32>, sampler: sampler, coords: vec3<f32>, ddx: vec3<f32>, ddy: vec3<f32>) -> vec4<f32>
 fn textureSampleGrad_5312f4() {
-  var res: vec4<f32> = textureSampleGrad(arg_0, arg_1, vec3<f32>(), vec3<f32>(), vec3<f32>());
+  var res: vec4<f32> = textureSampleGrad(arg_0, arg_1, vec3<f32>(1.f), vec3<f32>(1.f), vec3<f32>(1.f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureSampleGrad/5312f4.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleGrad/5312f4.wgsl.expected.dxc.hlsl
index 180ee4f..2839b8d 100644
--- a/test/tint/builtins/gen/literal/textureSampleGrad/5312f4.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleGrad/5312f4.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleGrad_5312f4() {
-  float4 res = arg_0.SampleGrad(arg_1, (0.0f).xxx, (0.0f).xxx, (0.0f).xxx);
+  float4 res = arg_0.SampleGrad(arg_1, (1.0f).xxx, (1.0f).xxx, (1.0f).xxx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureSampleGrad/5312f4.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleGrad/5312f4.wgsl.expected.fxc.hlsl
index 180ee4f..2839b8d 100644
--- a/test/tint/builtins/gen/literal/textureSampleGrad/5312f4.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleGrad/5312f4.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleGrad_5312f4() {
-  float4 res = arg_0.SampleGrad(arg_1, (0.0f).xxx, (0.0f).xxx, (0.0f).xxx);
+  float4 res = arg_0.SampleGrad(arg_1, (1.0f).xxx, (1.0f).xxx, (1.0f).xxx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureSampleGrad/5312f4.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureSampleGrad/5312f4.wgsl.expected.glsl
index 5f7c389..a163aeb 100644
--- a/test/tint/builtins/gen/literal/textureSampleGrad/5312f4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureSampleGrad/5312f4.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 uniform highp samplerCube arg_0_arg_1;
 
 void textureSampleGrad_5312f4() {
-  vec4 res = textureGrad(arg_0_arg_1, vec3(0.0f), vec3(0.0f), vec3(0.0f));
+  vec4 res = textureGrad(arg_0_arg_1, vec3(1.0f), vec3(1.0f), vec3(1.0f));
 }
 
 vec4 vertex_main() {
@@ -25,7 +25,7 @@
 uniform highp samplerCube arg_0_arg_1;
 
 void textureSampleGrad_5312f4() {
-  vec4 res = textureGrad(arg_0_arg_1, vec3(0.0f), vec3(0.0f), vec3(0.0f));
+  vec4 res = textureGrad(arg_0_arg_1, vec3(1.0f), vec3(1.0f), vec3(1.0f));
 }
 
 void fragment_main() {
@@ -41,7 +41,7 @@
 uniform highp samplerCube arg_0_arg_1;
 
 void textureSampleGrad_5312f4() {
-  vec4 res = textureGrad(arg_0_arg_1, vec3(0.0f), vec3(0.0f), vec3(0.0f));
+  vec4 res = textureGrad(arg_0_arg_1, vec3(1.0f), vec3(1.0f), vec3(1.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureSampleGrad/5312f4.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureSampleGrad/5312f4.wgsl.expected.msl
index 397cc5f..d105445 100644
--- a/test/tint/builtins/gen/literal/textureSampleGrad/5312f4.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureSampleGrad/5312f4.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureSampleGrad_5312f4(texturecube<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float4 res = tint_symbol_1.sample(tint_symbol_2, float3(0.0f), gradientcube(float3(0.0f), float3(0.0f)));
+  float4 res = tint_symbol_1.sample(tint_symbol_2, float3(1.0f), gradientcube(float3(1.0f), float3(1.0f)));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureSampleGrad/5312f4.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSampleGrad/5312f4.wgsl.expected.spvasm
index 19283ee..30f8d94 100644
--- a/test/tint/builtins/gen/literal/textureSampleGrad/5312f4.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSampleGrad/5312f4.wgsl.expected.spvasm
@@ -44,29 +44,29 @@
          %15 = OpTypeFunction %void
          %22 = OpTypeSampledImage %11
     %v3float = OpTypeVector %float 3
-         %25 = OpConstantNull %v3float
-%_ptr_Function_v4float = OpTypePointer Function %v4float
-         %28 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
+         %26 = OpConstantComposite %v3float %float_1 %float_1 %float_1
+%_ptr_Function_v4float = OpTypePointer Function %v4float
+         %29 = OpTypeFunction %v4float
 %textureSampleGrad_5312f4 = OpFunction %void None %15
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
          %20 = OpLoad %14 %arg_1
          %21 = OpLoad %11 %arg_0
          %23 = OpSampledImage %22 %21 %20
-         %19 = OpImageSampleExplicitLod %v4float %23 %25 Grad %25 %25
+         %19 = OpImageSampleExplicitLod %v4float %23 %26 Grad %26 %26
                OpStore %res %19
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %28
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %textureSampleGrad_5312f4
+%vertex_main_inner = OpFunction %v4float None %29
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %textureSampleGrad_5312f4
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
-         %33 = OpLabel
-         %34 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %34
+         %34 = OpLabel
+         %35 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %35
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureSampleGrad/5312f4.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSampleGrad/5312f4.wgsl.expected.wgsl
index 53ed7cc..6d19e05 100644
--- a/test/tint/builtins/gen/literal/textureSampleGrad/5312f4.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleGrad/5312f4.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(1) var arg_1 : sampler;
 
 fn textureSampleGrad_5312f4() {
-  var res : vec4<f32> = textureSampleGrad(arg_0, arg_1, vec3<f32>(), vec3<f32>(), vec3<f32>());
+  var res : vec4<f32> = textureSampleGrad(arg_0, arg_1, vec3<f32>(1.0f), vec3<f32>(1.0f), vec3<f32>(1.0f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureSampleGrad/5884dd.wgsl b/test/tint/builtins/gen/literal/textureSampleGrad/5884dd.wgsl
index 743623a..45d8aec 100644
--- a/test/tint/builtins/gen/literal/textureSampleGrad/5884dd.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleGrad/5884dd.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureSampleGrad(texture: texture_3d<f32>, sampler: sampler, coords: vec3<f32>, ddx: vec3<f32>, ddy: vec3<f32>, @const offset: vec3<i32>) -> vec4<f32>
 fn textureSampleGrad_5884dd() {
-  var res: vec4<f32> = textureSampleGrad(arg_0, arg_1, vec3<f32>(), vec3<f32>(), vec3<f32>(), vec3<i32>());
+  var res: vec4<f32> = textureSampleGrad(arg_0, arg_1, vec3<f32>(1.f), vec3<f32>(1.f), vec3<f32>(1.f), vec3<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureSampleGrad/5884dd.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleGrad/5884dd.wgsl.expected.dxc.hlsl
index 56c120b..6454b45 100644
--- a/test/tint/builtins/gen/literal/textureSampleGrad/5884dd.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleGrad/5884dd.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleGrad_5884dd() {
-  float4 res = arg_0.SampleGrad(arg_1, (0.0f).xxx, (0.0f).xxx, (0.0f).xxx, (0).xxx);
+  float4 res = arg_0.SampleGrad(arg_1, (1.0f).xxx, (1.0f).xxx, (1.0f).xxx, (1).xxx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureSampleGrad/5884dd.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleGrad/5884dd.wgsl.expected.fxc.hlsl
index 56c120b..6454b45 100644
--- a/test/tint/builtins/gen/literal/textureSampleGrad/5884dd.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleGrad/5884dd.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleGrad_5884dd() {
-  float4 res = arg_0.SampleGrad(arg_1, (0.0f).xxx, (0.0f).xxx, (0.0f).xxx, (0).xxx);
+  float4 res = arg_0.SampleGrad(arg_1, (1.0f).xxx, (1.0f).xxx, (1.0f).xxx, (1).xxx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureSampleGrad/5884dd.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureSampleGrad/5884dd.wgsl.expected.glsl
index f5d0ae8..5be5d15 100644
--- a/test/tint/builtins/gen/literal/textureSampleGrad/5884dd.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureSampleGrad/5884dd.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 uniform highp sampler3D arg_0_arg_1;
 
 void textureSampleGrad_5884dd() {
-  vec4 res = textureGradOffset(arg_0_arg_1, vec3(0.0f), vec3(0.0f), vec3(0.0f), ivec3(0));
+  vec4 res = textureGradOffset(arg_0_arg_1, vec3(1.0f), vec3(1.0f), vec3(1.0f), ivec3(1));
 }
 
 vec4 vertex_main() {
@@ -25,7 +25,7 @@
 uniform highp sampler3D arg_0_arg_1;
 
 void textureSampleGrad_5884dd() {
-  vec4 res = textureGradOffset(arg_0_arg_1, vec3(0.0f), vec3(0.0f), vec3(0.0f), ivec3(0));
+  vec4 res = textureGradOffset(arg_0_arg_1, vec3(1.0f), vec3(1.0f), vec3(1.0f), ivec3(1));
 }
 
 void fragment_main() {
@@ -41,7 +41,7 @@
 uniform highp sampler3D arg_0_arg_1;
 
 void textureSampleGrad_5884dd() {
-  vec4 res = textureGradOffset(arg_0_arg_1, vec3(0.0f), vec3(0.0f), vec3(0.0f), ivec3(0));
+  vec4 res = textureGradOffset(arg_0_arg_1, vec3(1.0f), vec3(1.0f), vec3(1.0f), ivec3(1));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureSampleGrad/5884dd.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureSampleGrad/5884dd.wgsl.expected.msl
index 7a7fc53..024d415 100644
--- a/test/tint/builtins/gen/literal/textureSampleGrad/5884dd.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureSampleGrad/5884dd.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureSampleGrad_5884dd(texture3d<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float4 res = tint_symbol_1.sample(tint_symbol_2, float3(0.0f), gradient3d(float3(0.0f), float3(0.0f)), int3(0));
+  float4 res = tint_symbol_1.sample(tint_symbol_2, float3(1.0f), gradient3d(float3(1.0f), float3(1.0f)), int3(1));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureSampleGrad/5884dd.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSampleGrad/5884dd.wgsl.expected.spvasm
index 2ca064c..dff750a 100644
--- a/test/tint/builtins/gen/literal/textureSampleGrad/5884dd.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSampleGrad/5884dd.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 45
+; Bound: 46
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -44,42 +44,43 @@
          %15 = OpTypeFunction %void
          %22 = OpTypeSampledImage %11
     %v3float = OpTypeVector %float 3
-         %25 = OpConstantNull %v3float
+    %float_1 = OpConstant %float 1
+         %26 = OpConstantComposite %v3float %float_1 %float_1 %float_1
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
-         %28 = OpConstantNull %v3int
+      %int_1 = OpConstant %int 1
+         %30 = OpConstantComposite %v3int %int_1 %int_1 %int_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %31 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %33 = OpTypeFunction %v4float
 %textureSampleGrad_5884dd = OpFunction %void None %15
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
          %20 = OpLoad %14 %arg_1
          %21 = OpLoad %11 %arg_0
          %23 = OpSampledImage %22 %21 %20
-         %19 = OpImageSampleExplicitLod %v4float %23 %25 Grad|ConstOffset %25 %25 %28
+         %19 = OpImageSampleExplicitLod %v4float %23 %26 Grad|ConstOffset %26 %26 %30
                OpStore %res %19
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %31
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureSampleGrad_5884dd
+%vertex_main_inner = OpFunction %v4float None %33
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureSampleGrad_5884dd
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
-         %36 = OpLabel
-         %37 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %37
+         %38 = OpLabel
+         %39 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %39
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %15
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureSampleGrad_5884dd
+         %41 = OpLabel
+         %42 = OpFunctionCall %void %textureSampleGrad_5884dd
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %15
-         %43 = OpLabel
-         %44 = OpFunctionCall %void %textureSampleGrad_5884dd
+         %44 = OpLabel
+         %45 = OpFunctionCall %void %textureSampleGrad_5884dd
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureSampleGrad/5884dd.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSampleGrad/5884dd.wgsl.expected.wgsl
index 8831596..67f251f 100644
--- a/test/tint/builtins/gen/literal/textureSampleGrad/5884dd.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleGrad/5884dd.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(1) var arg_1 : sampler;
 
 fn textureSampleGrad_5884dd() {
-  var res : vec4<f32> = textureSampleGrad(arg_0, arg_1, vec3<f32>(), vec3<f32>(), vec3<f32>(), vec3<i32>());
+  var res : vec4<f32> = textureSampleGrad(arg_0, arg_1, vec3<f32>(1.0f), vec3<f32>(1.0f), vec3<f32>(1.0f), vec3<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureSampleGrad/7cd6de.wgsl b/test/tint/builtins/gen/literal/textureSampleGrad/7cd6de.wgsl
index b6d18f5..a4a5588 100644
--- a/test/tint/builtins/gen/literal/textureSampleGrad/7cd6de.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleGrad/7cd6de.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureSampleGrad(texture: texture_2d_array<f32>, sampler: sampler, coords: vec2<f32>, array_index: u32, ddx: vec2<f32>, ddy: vec2<f32>, @const offset: vec2<i32>) -> vec4<f32>
 fn textureSampleGrad_7cd6de() {
-  var res: vec4<f32> = textureSampleGrad(arg_0, arg_1, vec2<f32>(), 1u, vec2<f32>(), vec2<f32>(), vec2<i32>());
+  var res: vec4<f32> = textureSampleGrad(arg_0, arg_1, vec2<f32>(1.f), 1u, vec2<f32>(1.f), vec2<f32>(1.f), vec2<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureSampleGrad/7cd6de.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleGrad/7cd6de.wgsl.expected.dxc.hlsl
index 6a9c86c..3336bc5 100644
--- a/test/tint/builtins/gen/literal/textureSampleGrad/7cd6de.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleGrad/7cd6de.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleGrad_7cd6de() {
-  float4 res = arg_0.SampleGrad(arg_1, float3(0.0f, 0.0f, float(1u)), (0.0f).xx, (0.0f).xx, (0).xx);
+  float4 res = arg_0.SampleGrad(arg_1, float3((1.0f).xx, float(1u)), (1.0f).xx, (1.0f).xx, (1).xx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureSampleGrad/7cd6de.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleGrad/7cd6de.wgsl.expected.fxc.hlsl
index 6a9c86c..3336bc5 100644
--- a/test/tint/builtins/gen/literal/textureSampleGrad/7cd6de.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleGrad/7cd6de.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleGrad_7cd6de() {
-  float4 res = arg_0.SampleGrad(arg_1, float3(0.0f, 0.0f, float(1u)), (0.0f).xx, (0.0f).xx, (0).xx);
+  float4 res = arg_0.SampleGrad(arg_1, float3((1.0f).xx, float(1u)), (1.0f).xx, (1.0f).xx, (1).xx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureSampleGrad/7cd6de.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureSampleGrad/7cd6de.wgsl.expected.glsl
index d56773c..82bb5d0 100644
--- a/test/tint/builtins/gen/literal/textureSampleGrad/7cd6de.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureSampleGrad/7cd6de.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 uniform highp sampler2DArray arg_0_arg_1;
 
 void textureSampleGrad_7cd6de() {
-  vec4 res = textureGradOffset(arg_0_arg_1, vec3(0.0f, 0.0f, float(1u)), vec2(0.0f), vec2(0.0f), ivec2(0));
+  vec4 res = textureGradOffset(arg_0_arg_1, vec3(vec2(1.0f), float(1u)), vec2(1.0f), vec2(1.0f), ivec2(1));
 }
 
 vec4 vertex_main() {
@@ -25,7 +25,7 @@
 uniform highp sampler2DArray arg_0_arg_1;
 
 void textureSampleGrad_7cd6de() {
-  vec4 res = textureGradOffset(arg_0_arg_1, vec3(0.0f, 0.0f, float(1u)), vec2(0.0f), vec2(0.0f), ivec2(0));
+  vec4 res = textureGradOffset(arg_0_arg_1, vec3(vec2(1.0f), float(1u)), vec2(1.0f), vec2(1.0f), ivec2(1));
 }
 
 void fragment_main() {
@@ -41,7 +41,7 @@
 uniform highp sampler2DArray arg_0_arg_1;
 
 void textureSampleGrad_7cd6de() {
-  vec4 res = textureGradOffset(arg_0_arg_1, vec3(0.0f, 0.0f, float(1u)), vec2(0.0f), vec2(0.0f), ivec2(0));
+  vec4 res = textureGradOffset(arg_0_arg_1, vec3(vec2(1.0f), float(1u)), vec2(1.0f), vec2(1.0f), ivec2(1));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureSampleGrad/7cd6de.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureSampleGrad/7cd6de.wgsl.expected.msl
index 06c4d90..ef3b01d 100644
--- a/test/tint/builtins/gen/literal/textureSampleGrad/7cd6de.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureSampleGrad/7cd6de.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureSampleGrad_7cd6de(texture2d_array<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float4 res = tint_symbol_1.sample(tint_symbol_2, float2(0.0f), 1u, gradient2d(float2(0.0f), float2(0.0f)), int2(0));
+  float4 res = tint_symbol_1.sample(tint_symbol_2, float2(1.0f), 1u, gradient2d(float2(1.0f), float2(1.0f)), int2(1));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureSampleGrad/7cd6de.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSampleGrad/7cd6de.wgsl.expected.spvasm
index 1513358..2db04bc 100644
--- a/test/tint/builtins/gen/literal/textureSampleGrad/7cd6de.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSampleGrad/7cd6de.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 51
+; Bound: 53
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -44,48 +44,50 @@
          %15 = OpTypeFunction %void
          %22 = OpTypeSampledImage %11
     %v3float = OpTypeVector %float 3
-    %float_0 = OpConstant %float 0
+    %v2float = OpTypeVector %float 2
+    %float_1 = OpConstant %float 1
+         %27 = OpConstantComposite %v2float %float_1 %float_1
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
-    %v2float = OpTypeVector %float 2
-         %31 = OpConstantNull %v2float
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
-         %34 = OpConstantNull %v2int
+      %int_1 = OpConstant %int 1
+         %37 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %37 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %40 = OpTypeFunction %v4float
 %textureSampleGrad_7cd6de = OpFunction %void None %15
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
          %20 = OpLoad %14 %arg_1
          %21 = OpLoad %11 %arg_0
          %23 = OpSampledImage %22 %21 %20
-         %26 = OpConvertUToF %float %uint_1
-         %29 = OpCompositeConstruct %v3float %float_0 %float_0 %26
-         %19 = OpImageSampleExplicitLod %v4float %23 %29 Grad|ConstOffset %31 %31 %34
+         %28 = OpCompositeExtract %float %27 0
+         %29 = OpCompositeExtract %float %27 1
+         %30 = OpConvertUToF %float %uint_1
+         %33 = OpCompositeConstruct %v3float %28 %29 %30
+         %19 = OpImageSampleExplicitLod %v4float %23 %33 Grad|ConstOffset %27 %27 %37
                OpStore %res %19
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %37
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureSampleGrad_7cd6de
+%vertex_main_inner = OpFunction %v4float None %40
+         %42 = OpLabel
+         %43 = OpFunctionCall %void %textureSampleGrad_7cd6de
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
-         %42 = OpLabel
-         %43 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %43
+         %45 = OpLabel
+         %46 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %46
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %15
-         %46 = OpLabel
-         %47 = OpFunctionCall %void %textureSampleGrad_7cd6de
+         %48 = OpLabel
+         %49 = OpFunctionCall %void %textureSampleGrad_7cd6de
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %15
-         %49 = OpLabel
-         %50 = OpFunctionCall %void %textureSampleGrad_7cd6de
+         %51 = OpLabel
+         %52 = OpFunctionCall %void %textureSampleGrad_7cd6de
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureSampleGrad/7cd6de.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSampleGrad/7cd6de.wgsl.expected.wgsl
index ae06e64..aa33eef 100644
--- a/test/tint/builtins/gen/literal/textureSampleGrad/7cd6de.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleGrad/7cd6de.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(1) var arg_1 : sampler;
 
 fn textureSampleGrad_7cd6de() {
-  var res : vec4<f32> = textureSampleGrad(arg_0, arg_1, vec2<f32>(), 1u, vec2<f32>(), vec2<f32>(), vec2<i32>());
+  var res : vec4<f32> = textureSampleGrad(arg_0, arg_1, vec2<f32>(1.0f), 1u, vec2<f32>(1.0f), vec2<f32>(1.0f), vec2<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureSampleGrad/a09131.wgsl b/test/tint/builtins/gen/literal/textureSampleGrad/a09131.wgsl
index 5e9988e..f91acf5 100644
--- a/test/tint/builtins/gen/literal/textureSampleGrad/a09131.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleGrad/a09131.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureSampleGrad(texture: texture_2d_array<f32>, sampler: sampler, coords: vec2<f32>, array_index: u32, ddx: vec2<f32>, ddy: vec2<f32>) -> vec4<f32>
 fn textureSampleGrad_a09131() {
-  var res: vec4<f32> = textureSampleGrad(arg_0, arg_1, vec2<f32>(), 1u, vec2<f32>(), vec2<f32>());
+  var res: vec4<f32> = textureSampleGrad(arg_0, arg_1, vec2<f32>(1.f), 1u, vec2<f32>(1.f), vec2<f32>(1.f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureSampleGrad/a09131.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleGrad/a09131.wgsl.expected.dxc.hlsl
index 24569b5..42d3d4a 100644
--- a/test/tint/builtins/gen/literal/textureSampleGrad/a09131.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleGrad/a09131.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleGrad_a09131() {
-  float4 res = arg_0.SampleGrad(arg_1, float3(0.0f, 0.0f, float(1u)), (0.0f).xx, (0.0f).xx);
+  float4 res = arg_0.SampleGrad(arg_1, float3((1.0f).xx, float(1u)), (1.0f).xx, (1.0f).xx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureSampleGrad/a09131.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleGrad/a09131.wgsl.expected.fxc.hlsl
index 24569b5..42d3d4a 100644
--- a/test/tint/builtins/gen/literal/textureSampleGrad/a09131.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleGrad/a09131.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleGrad_a09131() {
-  float4 res = arg_0.SampleGrad(arg_1, float3(0.0f, 0.0f, float(1u)), (0.0f).xx, (0.0f).xx);
+  float4 res = arg_0.SampleGrad(arg_1, float3((1.0f).xx, float(1u)), (1.0f).xx, (1.0f).xx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureSampleGrad/a09131.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureSampleGrad/a09131.wgsl.expected.glsl
index 8667462..56f8737 100644
--- a/test/tint/builtins/gen/literal/textureSampleGrad/a09131.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureSampleGrad/a09131.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 uniform highp sampler2DArray arg_0_arg_1;
 
 void textureSampleGrad_a09131() {
-  vec4 res = textureGrad(arg_0_arg_1, vec3(0.0f, 0.0f, float(1u)), vec2(0.0f), vec2(0.0f));
+  vec4 res = textureGrad(arg_0_arg_1, vec3(vec2(1.0f), float(1u)), vec2(1.0f), vec2(1.0f));
 }
 
 vec4 vertex_main() {
@@ -25,7 +25,7 @@
 uniform highp sampler2DArray arg_0_arg_1;
 
 void textureSampleGrad_a09131() {
-  vec4 res = textureGrad(arg_0_arg_1, vec3(0.0f, 0.0f, float(1u)), vec2(0.0f), vec2(0.0f));
+  vec4 res = textureGrad(arg_0_arg_1, vec3(vec2(1.0f), float(1u)), vec2(1.0f), vec2(1.0f));
 }
 
 void fragment_main() {
@@ -41,7 +41,7 @@
 uniform highp sampler2DArray arg_0_arg_1;
 
 void textureSampleGrad_a09131() {
-  vec4 res = textureGrad(arg_0_arg_1, vec3(0.0f, 0.0f, float(1u)), vec2(0.0f), vec2(0.0f));
+  vec4 res = textureGrad(arg_0_arg_1, vec3(vec2(1.0f), float(1u)), vec2(1.0f), vec2(1.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureSampleGrad/a09131.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureSampleGrad/a09131.wgsl.expected.msl
index ae0a0d9..3fa0710 100644
--- a/test/tint/builtins/gen/literal/textureSampleGrad/a09131.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureSampleGrad/a09131.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureSampleGrad_a09131(texture2d_array<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float4 res = tint_symbol_1.sample(tint_symbol_2, float2(0.0f), 1u, gradient2d(float2(0.0f), float2(0.0f)));
+  float4 res = tint_symbol_1.sample(tint_symbol_2, float2(1.0f), 1u, gradient2d(float2(1.0f), float2(1.0f)));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureSampleGrad/a09131.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSampleGrad/a09131.wgsl.expected.spvasm
index c5bbfc2..cdd9b30 100644
--- a/test/tint/builtins/gen/literal/textureSampleGrad/a09131.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSampleGrad/a09131.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 48
+; Bound: 49
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -44,45 +44,46 @@
          %15 = OpTypeFunction %void
          %22 = OpTypeSampledImage %11
     %v3float = OpTypeVector %float 3
-    %float_0 = OpConstant %float 0
+    %v2float = OpTypeVector %float 2
+    %float_1 = OpConstant %float 1
+         %27 = OpConstantComposite %v2float %float_1 %float_1
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
-    %v2float = OpTypeVector %float 2
-         %31 = OpConstantNull %v2float
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %34 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %36 = OpTypeFunction %v4float
 %textureSampleGrad_a09131 = OpFunction %void None %15
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
          %20 = OpLoad %14 %arg_1
          %21 = OpLoad %11 %arg_0
          %23 = OpSampledImage %22 %21 %20
-         %26 = OpConvertUToF %float %uint_1
-         %29 = OpCompositeConstruct %v3float %float_0 %float_0 %26
-         %19 = OpImageSampleExplicitLod %v4float %23 %29 Grad %31 %31
+         %28 = OpCompositeExtract %float %27 0
+         %29 = OpCompositeExtract %float %27 1
+         %30 = OpConvertUToF %float %uint_1
+         %33 = OpCompositeConstruct %v3float %28 %29 %30
+         %19 = OpImageSampleExplicitLod %v4float %23 %33 Grad %27 %27
                OpStore %res %19
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %34
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureSampleGrad_a09131
+%vertex_main_inner = OpFunction %v4float None %36
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %textureSampleGrad_a09131
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
-         %39 = OpLabel
-         %40 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %40
+         %41 = OpLabel
+         %42 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %42
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %15
-         %43 = OpLabel
-         %44 = OpFunctionCall %void %textureSampleGrad_a09131
+         %44 = OpLabel
+         %45 = OpFunctionCall %void %textureSampleGrad_a09131
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %15
-         %46 = OpLabel
-         %47 = OpFunctionCall %void %textureSampleGrad_a09131
+         %47 = OpLabel
+         %48 = OpFunctionCall %void %textureSampleGrad_a09131
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureSampleGrad/a09131.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSampleGrad/a09131.wgsl.expected.wgsl
index 212ffa8..eaec345 100644
--- a/test/tint/builtins/gen/literal/textureSampleGrad/a09131.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleGrad/a09131.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(1) var arg_1 : sampler;
 
 fn textureSampleGrad_a09131() {
-  var res : vec4<f32> = textureSampleGrad(arg_0, arg_1, vec2<f32>(), 1u, vec2<f32>(), vec2<f32>());
+  var res : vec4<f32> = textureSampleGrad(arg_0, arg_1, vec2<f32>(1.0f), 1u, vec2<f32>(1.0f), vec2<f32>(1.0f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureSampleGrad/bbb58f.wgsl b/test/tint/builtins/gen/literal/textureSampleGrad/bbb58f.wgsl
index 8e3968d..a266648 100644
--- a/test/tint/builtins/gen/literal/textureSampleGrad/bbb58f.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleGrad/bbb58f.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureSampleGrad(texture: texture_cube_array<f32>, sampler: sampler, coords: vec3<f32>, array_index: u32, ddx: vec3<f32>, ddy: vec3<f32>) -> vec4<f32>
 fn textureSampleGrad_bbb58f() {
-  var res: vec4<f32> = textureSampleGrad(arg_0, arg_1, vec3<f32>(), 1u, vec3<f32>(), vec3<f32>());
+  var res: vec4<f32> = textureSampleGrad(arg_0, arg_1, vec3<f32>(1.f), 1u, vec3<f32>(1.f), vec3<f32>(1.f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureSampleGrad/bbb58f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleGrad/bbb58f.wgsl.expected.dxc.hlsl
index 8c07d5e..fa78b8f 100644
--- a/test/tint/builtins/gen/literal/textureSampleGrad/bbb58f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleGrad/bbb58f.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleGrad_bbb58f() {
-  float4 res = arg_0.SampleGrad(arg_1, float4(0.0f, 0.0f, 0.0f, float(1u)), (0.0f).xxx, (0.0f).xxx);
+  float4 res = arg_0.SampleGrad(arg_1, float4((1.0f).xxx, float(1u)), (1.0f).xxx, (1.0f).xxx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureSampleGrad/bbb58f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleGrad/bbb58f.wgsl.expected.fxc.hlsl
index 8c07d5e..fa78b8f 100644
--- a/test/tint/builtins/gen/literal/textureSampleGrad/bbb58f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleGrad/bbb58f.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleGrad_bbb58f() {
-  float4 res = arg_0.SampleGrad(arg_1, float4(0.0f, 0.0f, 0.0f, float(1u)), (0.0f).xxx, (0.0f).xxx);
+  float4 res = arg_0.SampleGrad(arg_1, float4((1.0f).xxx, float(1u)), (1.0f).xxx, (1.0f).xxx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureSampleGrad/bbb58f.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureSampleGrad/bbb58f.wgsl.expected.msl
index 2cf113e..211c87f 100644
--- a/test/tint/builtins/gen/literal/textureSampleGrad/bbb58f.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureSampleGrad/bbb58f.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureSampleGrad_bbb58f(texturecube_array<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float4 res = tint_symbol_1.sample(tint_symbol_2, float3(0.0f), 1u, gradientcube(float3(0.0f), float3(0.0f)));
+  float4 res = tint_symbol_1.sample(tint_symbol_2, float3(1.0f), 1u, gradientcube(float3(1.0f), float3(1.0f)));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureSampleGrad/bbb58f.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSampleGrad/bbb58f.wgsl.expected.spvasm
index 35a94b9..79969b6 100644
--- a/test/tint/builtins/gen/literal/textureSampleGrad/bbb58f.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSampleGrad/bbb58f.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 47
+; Bound: 49
 ; Schema: 0
                OpCapability Shader
                OpCapability SampledCubeArray
@@ -44,45 +44,47 @@
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
          %22 = OpTypeSampledImage %11
-    %float_0 = OpConstant %float 0
+    %v3float = OpTypeVector %float 3
+    %float_1 = OpConstant %float 1
+         %26 = OpConstantComposite %v3float %float_1 %float_1 %float_1
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
-    %v3float = OpTypeVector %float 3
-         %30 = OpConstantNull %v3float
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %33 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %36 = OpTypeFunction %v4float
 %textureSampleGrad_bbb58f = OpFunction %void None %15
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
          %20 = OpLoad %14 %arg_1
          %21 = OpLoad %11 %arg_0
          %23 = OpSampledImage %22 %21 %20
-         %25 = OpConvertUToF %float %uint_1
-         %28 = OpCompositeConstruct %v4float %float_0 %float_0 %float_0 %25
-         %19 = OpImageSampleExplicitLod %v4float %23 %28 Grad %30 %30
+         %27 = OpCompositeExtract %float %26 0
+         %28 = OpCompositeExtract %float %26 1
+         %29 = OpCompositeExtract %float %26 2
+         %30 = OpConvertUToF %float %uint_1
+         %33 = OpCompositeConstruct %v4float %27 %28 %29 %30
+         %19 = OpImageSampleExplicitLod %v4float %23 %33 Grad %26 %26
                OpStore %res %19
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %33
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureSampleGrad_bbb58f
+%vertex_main_inner = OpFunction %v4float None %36
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %textureSampleGrad_bbb58f
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
-         %38 = OpLabel
-         %39 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %39
+         %41 = OpLabel
+         %42 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %42
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %15
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureSampleGrad_bbb58f
+         %44 = OpLabel
+         %45 = OpFunctionCall %void %textureSampleGrad_bbb58f
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %15
-         %45 = OpLabel
-         %46 = OpFunctionCall %void %textureSampleGrad_bbb58f
+         %47 = OpLabel
+         %48 = OpFunctionCall %void %textureSampleGrad_bbb58f
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureSampleGrad/bbb58f.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSampleGrad/bbb58f.wgsl.expected.wgsl
index b766ec2..b2672b8 100644
--- a/test/tint/builtins/gen/literal/textureSampleGrad/bbb58f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleGrad/bbb58f.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(1) var arg_1 : sampler;
 
 fn textureSampleGrad_bbb58f() {
-  var res : vec4<f32> = textureSampleGrad(arg_0, arg_1, vec3<f32>(), 1u, vec3<f32>(), vec3<f32>());
+  var res : vec4<f32> = textureSampleGrad(arg_0, arg_1, vec3<f32>(1.0f), 1u, vec3<f32>(1.0f), vec3<f32>(1.0f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureSampleGrad/d4e3c5.wgsl b/test/tint/builtins/gen/literal/textureSampleGrad/d4e3c5.wgsl
index 40ce7dd..59f4146 100644
--- a/test/tint/builtins/gen/literal/textureSampleGrad/d4e3c5.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleGrad/d4e3c5.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureSampleGrad(texture: texture_2d<f32>, sampler: sampler, coords: vec2<f32>, ddx: vec2<f32>, ddy: vec2<f32>, @const offset: vec2<i32>) -> vec4<f32>
 fn textureSampleGrad_d4e3c5() {
-  var res: vec4<f32> = textureSampleGrad(arg_0, arg_1, vec2<f32>(), vec2<f32>(), vec2<f32>(), vec2<i32>());
+  var res: vec4<f32> = textureSampleGrad(arg_0, arg_1, vec2<f32>(1.f), vec2<f32>(1.f), vec2<f32>(1.f), vec2<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureSampleGrad/d4e3c5.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleGrad/d4e3c5.wgsl.expected.dxc.hlsl
index 6ec5b46..abee8b8 100644
--- a/test/tint/builtins/gen/literal/textureSampleGrad/d4e3c5.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleGrad/d4e3c5.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleGrad_d4e3c5() {
-  float4 res = arg_0.SampleGrad(arg_1, (0.0f).xx, (0.0f).xx, (0.0f).xx, (0).xx);
+  float4 res = arg_0.SampleGrad(arg_1, (1.0f).xx, (1.0f).xx, (1.0f).xx, (1).xx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureSampleGrad/d4e3c5.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleGrad/d4e3c5.wgsl.expected.fxc.hlsl
index 6ec5b46..abee8b8 100644
--- a/test/tint/builtins/gen/literal/textureSampleGrad/d4e3c5.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleGrad/d4e3c5.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleGrad_d4e3c5() {
-  float4 res = arg_0.SampleGrad(arg_1, (0.0f).xx, (0.0f).xx, (0.0f).xx, (0).xx);
+  float4 res = arg_0.SampleGrad(arg_1, (1.0f).xx, (1.0f).xx, (1.0f).xx, (1).xx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureSampleGrad/d4e3c5.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureSampleGrad/d4e3c5.wgsl.expected.glsl
index 21f3947..7eee4a3 100644
--- a/test/tint/builtins/gen/literal/textureSampleGrad/d4e3c5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureSampleGrad/d4e3c5.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 uniform highp sampler2D arg_0_arg_1;
 
 void textureSampleGrad_d4e3c5() {
-  vec4 res = textureGradOffset(arg_0_arg_1, vec2(0.0f), vec2(0.0f), vec2(0.0f), ivec2(0));
+  vec4 res = textureGradOffset(arg_0_arg_1, vec2(1.0f), vec2(1.0f), vec2(1.0f), ivec2(1));
 }
 
 vec4 vertex_main() {
@@ -25,7 +25,7 @@
 uniform highp sampler2D arg_0_arg_1;
 
 void textureSampleGrad_d4e3c5() {
-  vec4 res = textureGradOffset(arg_0_arg_1, vec2(0.0f), vec2(0.0f), vec2(0.0f), ivec2(0));
+  vec4 res = textureGradOffset(arg_0_arg_1, vec2(1.0f), vec2(1.0f), vec2(1.0f), ivec2(1));
 }
 
 void fragment_main() {
@@ -41,7 +41,7 @@
 uniform highp sampler2D arg_0_arg_1;
 
 void textureSampleGrad_d4e3c5() {
-  vec4 res = textureGradOffset(arg_0_arg_1, vec2(0.0f), vec2(0.0f), vec2(0.0f), ivec2(0));
+  vec4 res = textureGradOffset(arg_0_arg_1, vec2(1.0f), vec2(1.0f), vec2(1.0f), ivec2(1));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureSampleGrad/d4e3c5.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureSampleGrad/d4e3c5.wgsl.expected.msl
index 7b6d295..46f7401 100644
--- a/test/tint/builtins/gen/literal/textureSampleGrad/d4e3c5.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureSampleGrad/d4e3c5.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureSampleGrad_d4e3c5(texture2d<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float4 res = tint_symbol_1.sample(tint_symbol_2, float2(0.0f), gradient2d(float2(0.0f), float2(0.0f)), int2(0));
+  float4 res = tint_symbol_1.sample(tint_symbol_2, float2(1.0f), gradient2d(float2(1.0f), float2(1.0f)), int2(1));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureSampleGrad/d4e3c5.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSampleGrad/d4e3c5.wgsl.expected.spvasm
index cdcaae1..3156b3c 100644
--- a/test/tint/builtins/gen/literal/textureSampleGrad/d4e3c5.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSampleGrad/d4e3c5.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 45
+; Bound: 46
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -44,42 +44,43 @@
          %15 = OpTypeFunction %void
          %22 = OpTypeSampledImage %11
     %v2float = OpTypeVector %float 2
-         %25 = OpConstantNull %v2float
+    %float_1 = OpConstant %float 1
+         %26 = OpConstantComposite %v2float %float_1 %float_1
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
-         %28 = OpConstantNull %v2int
+      %int_1 = OpConstant %int 1
+         %30 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %31 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %33 = OpTypeFunction %v4float
 %textureSampleGrad_d4e3c5 = OpFunction %void None %15
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
          %20 = OpLoad %14 %arg_1
          %21 = OpLoad %11 %arg_0
          %23 = OpSampledImage %22 %21 %20
-         %19 = OpImageSampleExplicitLod %v4float %23 %25 Grad|ConstOffset %25 %25 %28
+         %19 = OpImageSampleExplicitLod %v4float %23 %26 Grad|ConstOffset %26 %26 %30
                OpStore %res %19
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %31
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureSampleGrad_d4e3c5
+%vertex_main_inner = OpFunction %v4float None %33
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureSampleGrad_d4e3c5
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
-         %36 = OpLabel
-         %37 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %37
+         %38 = OpLabel
+         %39 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %39
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %15
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureSampleGrad_d4e3c5
+         %41 = OpLabel
+         %42 = OpFunctionCall %void %textureSampleGrad_d4e3c5
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %15
-         %43 = OpLabel
-         %44 = OpFunctionCall %void %textureSampleGrad_d4e3c5
+         %44 = OpLabel
+         %45 = OpFunctionCall %void %textureSampleGrad_d4e3c5
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureSampleGrad/d4e3c5.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSampleGrad/d4e3c5.wgsl.expected.wgsl
index af2f0c4..7a99649 100644
--- a/test/tint/builtins/gen/literal/textureSampleGrad/d4e3c5.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleGrad/d4e3c5.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(1) var arg_1 : sampler;
 
 fn textureSampleGrad_d4e3c5() {
-  var res : vec4<f32> = textureSampleGrad(arg_0, arg_1, vec2<f32>(), vec2<f32>(), vec2<f32>(), vec2<i32>());
+  var res : vec4<f32> = textureSampleGrad(arg_0, arg_1, vec2<f32>(1.0f), vec2<f32>(1.0f), vec2<f32>(1.0f), vec2<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureSampleGrad/d65515.wgsl b/test/tint/builtins/gen/literal/textureSampleGrad/d65515.wgsl
index e287fbe..3536a86 100644
--- a/test/tint/builtins/gen/literal/textureSampleGrad/d65515.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleGrad/d65515.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureSampleGrad(texture: texture_2d_array<f32>, sampler: sampler, coords: vec2<f32>, array_index: i32, ddx: vec2<f32>, ddy: vec2<f32>, @const offset: vec2<i32>) -> vec4<f32>
 fn textureSampleGrad_d65515() {
-  var res: vec4<f32> = textureSampleGrad(arg_0, arg_1, vec2<f32>(), 1i, vec2<f32>(), vec2<f32>(), vec2<i32>());
+  var res: vec4<f32> = textureSampleGrad(arg_0, arg_1, vec2<f32>(1.f), 1i, vec2<f32>(1.f), vec2<f32>(1.f), vec2<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureSampleGrad/d65515.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleGrad/d65515.wgsl.expected.dxc.hlsl
index 6a31475..5b13851 100644
--- a/test/tint/builtins/gen/literal/textureSampleGrad/d65515.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleGrad/d65515.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleGrad_d65515() {
-  float4 res = arg_0.SampleGrad(arg_1, float3(0.0f, 0.0f, float(1)), (0.0f).xx, (0.0f).xx, (0).xx);
+  float4 res = arg_0.SampleGrad(arg_1, float3((1.0f).xx, float(1)), (1.0f).xx, (1.0f).xx, (1).xx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureSampleGrad/d65515.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleGrad/d65515.wgsl.expected.fxc.hlsl
index 6a31475..5b13851 100644
--- a/test/tint/builtins/gen/literal/textureSampleGrad/d65515.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleGrad/d65515.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleGrad_d65515() {
-  float4 res = arg_0.SampleGrad(arg_1, float3(0.0f, 0.0f, float(1)), (0.0f).xx, (0.0f).xx, (0).xx);
+  float4 res = arg_0.SampleGrad(arg_1, float3((1.0f).xx, float(1)), (1.0f).xx, (1.0f).xx, (1).xx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureSampleGrad/d65515.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureSampleGrad/d65515.wgsl.expected.glsl
index 3857b57..8e08c66 100644
--- a/test/tint/builtins/gen/literal/textureSampleGrad/d65515.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureSampleGrad/d65515.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 uniform highp sampler2DArray arg_0_arg_1;
 
 void textureSampleGrad_d65515() {
-  vec4 res = textureGradOffset(arg_0_arg_1, vec3(0.0f, 0.0f, float(1)), vec2(0.0f), vec2(0.0f), ivec2(0));
+  vec4 res = textureGradOffset(arg_0_arg_1, vec3(vec2(1.0f), float(1)), vec2(1.0f), vec2(1.0f), ivec2(1));
 }
 
 vec4 vertex_main() {
@@ -25,7 +25,7 @@
 uniform highp sampler2DArray arg_0_arg_1;
 
 void textureSampleGrad_d65515() {
-  vec4 res = textureGradOffset(arg_0_arg_1, vec3(0.0f, 0.0f, float(1)), vec2(0.0f), vec2(0.0f), ivec2(0));
+  vec4 res = textureGradOffset(arg_0_arg_1, vec3(vec2(1.0f), float(1)), vec2(1.0f), vec2(1.0f), ivec2(1));
 }
 
 void fragment_main() {
@@ -41,7 +41,7 @@
 uniform highp sampler2DArray arg_0_arg_1;
 
 void textureSampleGrad_d65515() {
-  vec4 res = textureGradOffset(arg_0_arg_1, vec3(0.0f, 0.0f, float(1)), vec2(0.0f), vec2(0.0f), ivec2(0));
+  vec4 res = textureGradOffset(arg_0_arg_1, vec3(vec2(1.0f), float(1)), vec2(1.0f), vec2(1.0f), ivec2(1));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureSampleGrad/d65515.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureSampleGrad/d65515.wgsl.expected.msl
index 84f4c0c..b269220 100644
--- a/test/tint/builtins/gen/literal/textureSampleGrad/d65515.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureSampleGrad/d65515.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureSampleGrad_d65515(texture2d_array<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float4 res = tint_symbol_1.sample(tint_symbol_2, float2(0.0f), 1, gradient2d(float2(0.0f), float2(0.0f)), int2(0));
+  float4 res = tint_symbol_1.sample(tint_symbol_2, float2(1.0f), 1, gradient2d(float2(1.0f), float2(1.0f)), int2(1));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureSampleGrad/d65515.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSampleGrad/d65515.wgsl.expected.spvasm
index 70acbbc..2feaabd 100644
--- a/test/tint/builtins/gen/literal/textureSampleGrad/d65515.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSampleGrad/d65515.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 50
+; Bound: 51
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -44,47 +44,48 @@
          %15 = OpTypeFunction %void
          %22 = OpTypeSampledImage %11
     %v3float = OpTypeVector %float 3
-    %float_0 = OpConstant %float 0
+    %v2float = OpTypeVector %float 2
+    %float_1 = OpConstant %float 1
+         %27 = OpConstantComposite %v2float %float_1 %float_1
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
-    %v2float = OpTypeVector %float 2
-         %31 = OpConstantNull %v2float
       %v2int = OpTypeVector %int 2
-         %33 = OpConstantNull %v2int
+         %35 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %36 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %38 = OpTypeFunction %v4float
 %textureSampleGrad_d65515 = OpFunction %void None %15
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
          %20 = OpLoad %14 %arg_1
          %21 = OpLoad %11 %arg_0
          %23 = OpSampledImage %22 %21 %20
-         %26 = OpConvertSToF %float %int_1
-         %29 = OpCompositeConstruct %v3float %float_0 %float_0 %26
-         %19 = OpImageSampleExplicitLod %v4float %23 %29 Grad|ConstOffset %31 %31 %33
+         %28 = OpCompositeExtract %float %27 0
+         %29 = OpCompositeExtract %float %27 1
+         %30 = OpConvertSToF %float %int_1
+         %33 = OpCompositeConstruct %v3float %28 %29 %30
+         %19 = OpImageSampleExplicitLod %v4float %23 %33 Grad|ConstOffset %27 %27 %35
                OpStore %res %19
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %36
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureSampleGrad_d65515
+%vertex_main_inner = OpFunction %v4float None %38
+         %40 = OpLabel
+         %41 = OpFunctionCall %void %textureSampleGrad_d65515
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
-         %41 = OpLabel
-         %42 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %42
+         %43 = OpLabel
+         %44 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %44
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %15
-         %45 = OpLabel
-         %46 = OpFunctionCall %void %textureSampleGrad_d65515
+         %46 = OpLabel
+         %47 = OpFunctionCall %void %textureSampleGrad_d65515
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %15
-         %48 = OpLabel
-         %49 = OpFunctionCall %void %textureSampleGrad_d65515
+         %49 = OpLabel
+         %50 = OpFunctionCall %void %textureSampleGrad_d65515
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureSampleGrad/d65515.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSampleGrad/d65515.wgsl.expected.wgsl
index ed2ec94..e627316 100644
--- a/test/tint/builtins/gen/literal/textureSampleGrad/d65515.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleGrad/d65515.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(1) var arg_1 : sampler;
 
 fn textureSampleGrad_d65515() {
-  var res : vec4<f32> = textureSampleGrad(arg_0, arg_1, vec2<f32>(), 1i, vec2<f32>(), vec2<f32>(), vec2<i32>());
+  var res : vec4<f32> = textureSampleGrad(arg_0, arg_1, vec2<f32>(1.0f), 1i, vec2<f32>(1.0f), vec2<f32>(1.0f), vec2<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureSampleGrad/e383db.wgsl b/test/tint/builtins/gen/literal/textureSampleGrad/e383db.wgsl
index 3efc537..faabeef 100644
--- a/test/tint/builtins/gen/literal/textureSampleGrad/e383db.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleGrad/e383db.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureSampleGrad(texture: texture_cube_array<f32>, sampler: sampler, coords: vec3<f32>, array_index: i32, ddx: vec3<f32>, ddy: vec3<f32>) -> vec4<f32>
 fn textureSampleGrad_e383db() {
-  var res: vec4<f32> = textureSampleGrad(arg_0, arg_1, vec3<f32>(), 1i, vec3<f32>(), vec3<f32>());
+  var res: vec4<f32> = textureSampleGrad(arg_0, arg_1, vec3<f32>(1.f), 1i, vec3<f32>(1.f), vec3<f32>(1.f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureSampleGrad/e383db.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleGrad/e383db.wgsl.expected.dxc.hlsl
index 990fc90..87c187d 100644
--- a/test/tint/builtins/gen/literal/textureSampleGrad/e383db.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleGrad/e383db.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleGrad_e383db() {
-  float4 res = arg_0.SampleGrad(arg_1, float4(0.0f, 0.0f, 0.0f, float(1)), (0.0f).xxx, (0.0f).xxx);
+  float4 res = arg_0.SampleGrad(arg_1, float4((1.0f).xxx, float(1)), (1.0f).xxx, (1.0f).xxx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureSampleGrad/e383db.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleGrad/e383db.wgsl.expected.fxc.hlsl
index 990fc90..87c187d 100644
--- a/test/tint/builtins/gen/literal/textureSampleGrad/e383db.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleGrad/e383db.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleGrad_e383db() {
-  float4 res = arg_0.SampleGrad(arg_1, float4(0.0f, 0.0f, 0.0f, float(1)), (0.0f).xxx, (0.0f).xxx);
+  float4 res = arg_0.SampleGrad(arg_1, float4((1.0f).xxx, float(1)), (1.0f).xxx, (1.0f).xxx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureSampleGrad/e383db.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureSampleGrad/e383db.wgsl.expected.msl
index fcee1d0..2ce087f 100644
--- a/test/tint/builtins/gen/literal/textureSampleGrad/e383db.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureSampleGrad/e383db.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureSampleGrad_e383db(texturecube_array<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float4 res = tint_symbol_1.sample(tint_symbol_2, float3(0.0f), 1, gradientcube(float3(0.0f), float3(0.0f)));
+  float4 res = tint_symbol_1.sample(tint_symbol_2, float3(1.0f), 1, gradientcube(float3(1.0f), float3(1.0f)));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureSampleGrad/e383db.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSampleGrad/e383db.wgsl.expected.spvasm
index a5cff35..0e311b6 100644
--- a/test/tint/builtins/gen/literal/textureSampleGrad/e383db.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSampleGrad/e383db.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 47
+; Bound: 49
 ; Schema: 0
                OpCapability Shader
                OpCapability SampledCubeArray
@@ -44,45 +44,47 @@
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
          %22 = OpTypeSampledImage %11
-    %float_0 = OpConstant %float 0
+    %v3float = OpTypeVector %float 3
+    %float_1 = OpConstant %float 1
+         %26 = OpConstantComposite %v3float %float_1 %float_1 %float_1
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
-    %v3float = OpTypeVector %float 3
-         %30 = OpConstantNull %v3float
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %33 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %36 = OpTypeFunction %v4float
 %textureSampleGrad_e383db = OpFunction %void None %15
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
          %20 = OpLoad %14 %arg_1
          %21 = OpLoad %11 %arg_0
          %23 = OpSampledImage %22 %21 %20
-         %25 = OpConvertSToF %float %int_1
-         %28 = OpCompositeConstruct %v4float %float_0 %float_0 %float_0 %25
-         %19 = OpImageSampleExplicitLod %v4float %23 %28 Grad %30 %30
+         %27 = OpCompositeExtract %float %26 0
+         %28 = OpCompositeExtract %float %26 1
+         %29 = OpCompositeExtract %float %26 2
+         %30 = OpConvertSToF %float %int_1
+         %33 = OpCompositeConstruct %v4float %27 %28 %29 %30
+         %19 = OpImageSampleExplicitLod %v4float %23 %33 Grad %26 %26
                OpStore %res %19
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %33
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureSampleGrad_e383db
+%vertex_main_inner = OpFunction %v4float None %36
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %textureSampleGrad_e383db
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
-         %38 = OpLabel
-         %39 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %39
+         %41 = OpLabel
+         %42 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %42
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %15
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureSampleGrad_e383db
+         %44 = OpLabel
+         %45 = OpFunctionCall %void %textureSampleGrad_e383db
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %15
-         %45 = OpLabel
-         %46 = OpFunctionCall %void %textureSampleGrad_e383db
+         %47 = OpLabel
+         %48 = OpFunctionCall %void %textureSampleGrad_e383db
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureSampleGrad/e383db.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSampleGrad/e383db.wgsl.expected.wgsl
index 6652bb6..8dfe9ae 100644
--- a/test/tint/builtins/gen/literal/textureSampleGrad/e383db.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleGrad/e383db.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(1) var arg_1 : sampler;
 
 fn textureSampleGrad_e383db() {
-  var res : vec4<f32> = textureSampleGrad(arg_0, arg_1, vec3<f32>(), 1i, vec3<f32>(), vec3<f32>());
+  var res : vec4<f32> = textureSampleGrad(arg_0, arg_1, vec3<f32>(1.0f), 1i, vec3<f32>(1.0f), vec3<f32>(1.0f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/02be59.wgsl b/test/tint/builtins/gen/literal/textureSampleLevel/02be59.wgsl
index ffa7af3..dc50131 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/02be59.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/02be59.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureSampleLevel(texture: texture_depth_2d, sampler: sampler, coords: vec2<f32>, level: i32) -> f32
 fn textureSampleLevel_02be59() {
-  var res: f32 = textureSampleLevel(arg_0, arg_1, vec2<f32>(), 1i);
+  var res: f32 = textureSampleLevel(arg_0, arg_1, vec2<f32>(1.f), 1i);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/02be59.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/02be59.wgsl.expected.dxc.hlsl
index 9af06cb..805efd4 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/02be59.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/02be59.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleLevel_02be59() {
-  float res = arg_0.SampleLevel(arg_1, (0.0f).xx, 1).x;
+  float res = arg_0.SampleLevel(arg_1, (1.0f).xx, 1).x;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/02be59.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/02be59.wgsl.expected.fxc.hlsl
index 9af06cb..805efd4 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/02be59.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/02be59.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleLevel_02be59() {
-  float res = arg_0.SampleLevel(arg_1, (0.0f).xx, 1).x;
+  float res = arg_0.SampleLevel(arg_1, (1.0f).xx, 1).x;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/02be59.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureSampleLevel/02be59.wgsl.expected.glsl
index 2499348..50224c5 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/02be59.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/02be59.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 uniform highp sampler2DShadow arg_0_arg_1;
 
 void textureSampleLevel_02be59() {
-  float res = textureLod(arg_0_arg_1, vec3(0.0f, 0.0f, 0.0f), float(1));
+  float res = textureLod(arg_0_arg_1, vec3(vec2(1.0f), 0.0f), float(1));
 }
 
 vec4 vertex_main() {
@@ -25,7 +25,7 @@
 uniform highp sampler2DShadow arg_0_arg_1;
 
 void textureSampleLevel_02be59() {
-  float res = textureLod(arg_0_arg_1, vec3(0.0f, 0.0f, 0.0f), float(1));
+  float res = textureLod(arg_0_arg_1, vec3(vec2(1.0f), 0.0f), float(1));
 }
 
 void fragment_main() {
@@ -41,7 +41,7 @@
 uniform highp sampler2DShadow arg_0_arg_1;
 
 void textureSampleLevel_02be59() {
-  float res = textureLod(arg_0_arg_1, vec3(0.0f, 0.0f, 0.0f), float(1));
+  float res = textureLod(arg_0_arg_1, vec3(vec2(1.0f), 0.0f), float(1));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/02be59.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureSampleLevel/02be59.wgsl.expected.msl
index cf6e1f5..fe833d5 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/02be59.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/02be59.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureSampleLevel_02be59(depth2d<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float res = tint_symbol_1.sample(tint_symbol_2, float2(0.0f), level(1));
+  float res = tint_symbol_1.sample(tint_symbol_2, float2(1.0f), level(1));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/02be59.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSampleLevel/02be59.wgsl.expected.spvasm
index 12c1f88..e1b7508 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/02be59.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/02be59.wgsl.expected.spvasm
@@ -44,33 +44,33 @@
          %15 = OpTypeFunction %void
          %23 = OpTypeSampledImage %11
     %v2float = OpTypeVector %float 2
-         %26 = OpConstantNull %v2float
+    %float_1 = OpConstant %float 1
+         %27 = OpConstantComposite %v2float %float_1 %float_1
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_float = OpTypePointer Function %float
-         %32 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %33 = OpTypeFunction %v4float
 %textureSampleLevel_02be59 = OpFunction %void None %15
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_float Function %8
          %21 = OpLoad %14 %arg_1
          %22 = OpLoad %11 %arg_0
          %24 = OpSampledImage %23 %22 %21
-         %27 = OpConvertSToF %float %int_1
-         %20 = OpImageSampleExplicitLod %v4float %24 %26 Lod %27
+         %28 = OpConvertSToF %float %int_1
+         %20 = OpImageSampleExplicitLod %v4float %24 %27 Lod %28
          %19 = OpCompositeExtract %float %20 0
                OpStore %res %19
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %32
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureSampleLevel_02be59
+%vertex_main_inner = OpFunction %v4float None %33
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureSampleLevel_02be59
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
-         %37 = OpLabel
-         %38 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %38
+         %38 = OpLabel
+         %39 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %39
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/02be59.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSampleLevel/02be59.wgsl.expected.wgsl
index 21cd349..bb6778c 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/02be59.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/02be59.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(1) var arg_1 : sampler;
 
 fn textureSampleLevel_02be59() {
-  var res : f32 = textureSampleLevel(arg_0, arg_1, vec2<f32>(), 1i);
+  var res : f32 = textureSampleLevel(arg_0, arg_1, vec2<f32>(1.0f), 1i);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/0b0a1b.wgsl b/test/tint/builtins/gen/literal/textureSampleLevel/0b0a1b.wgsl
index 31146d2..f5a413c 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/0b0a1b.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/0b0a1b.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureSampleLevel(texture: texture_2d<f32>, sampler: sampler, coords: vec2<f32>, level: f32, @const offset: vec2<i32>) -> vec4<f32>
 fn textureSampleLevel_0b0a1b() {
-  var res: vec4<f32> = textureSampleLevel(arg_0, arg_1, vec2<f32>(), 1.f, vec2<i32>());
+  var res: vec4<f32> = textureSampleLevel(arg_0, arg_1, vec2<f32>(1.f), 1.f, vec2<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/0b0a1b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/0b0a1b.wgsl.expected.dxc.hlsl
index aee4c23..c221b22 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/0b0a1b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/0b0a1b.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleLevel_0b0a1b() {
-  float4 res = arg_0.SampleLevel(arg_1, (0.0f).xx, 1.0f, (0).xx);
+  float4 res = arg_0.SampleLevel(arg_1, (1.0f).xx, 1.0f, (1).xx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/0b0a1b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/0b0a1b.wgsl.expected.fxc.hlsl
index aee4c23..c221b22 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/0b0a1b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/0b0a1b.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleLevel_0b0a1b() {
-  float4 res = arg_0.SampleLevel(arg_1, (0.0f).xx, 1.0f, (0).xx);
+  float4 res = arg_0.SampleLevel(arg_1, (1.0f).xx, 1.0f, (1).xx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/0b0a1b.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureSampleLevel/0b0a1b.wgsl.expected.glsl
index ef80252..b489559 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/0b0a1b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/0b0a1b.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 uniform highp sampler2D arg_0_arg_1;
 
 void textureSampleLevel_0b0a1b() {
-  vec4 res = textureLodOffset(arg_0_arg_1, vec2(0.0f), 1.0f, ivec2(0));
+  vec4 res = textureLodOffset(arg_0_arg_1, vec2(1.0f), 1.0f, ivec2(1));
 }
 
 vec4 vertex_main() {
@@ -25,7 +25,7 @@
 uniform highp sampler2D arg_0_arg_1;
 
 void textureSampleLevel_0b0a1b() {
-  vec4 res = textureLodOffset(arg_0_arg_1, vec2(0.0f), 1.0f, ivec2(0));
+  vec4 res = textureLodOffset(arg_0_arg_1, vec2(1.0f), 1.0f, ivec2(1));
 }
 
 void fragment_main() {
@@ -41,7 +41,7 @@
 uniform highp sampler2D arg_0_arg_1;
 
 void textureSampleLevel_0b0a1b() {
-  vec4 res = textureLodOffset(arg_0_arg_1, vec2(0.0f), 1.0f, ivec2(0));
+  vec4 res = textureLodOffset(arg_0_arg_1, vec2(1.0f), 1.0f, ivec2(1));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/0b0a1b.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureSampleLevel/0b0a1b.wgsl.expected.msl
index 506a971..4bd6966 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/0b0a1b.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/0b0a1b.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureSampleLevel_0b0a1b(texture2d<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float4 res = tint_symbol_1.sample(tint_symbol_2, float2(0.0f), level(1.0f), int2(0));
+  float4 res = tint_symbol_1.sample(tint_symbol_2, float2(1.0f), level(1.0f), int2(1));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/0b0a1b.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSampleLevel/0b0a1b.wgsl.expected.spvasm
index fd46b38..e75df16 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/0b0a1b.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/0b0a1b.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 45
+; Bound: 46
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -44,42 +44,43 @@
          %15 = OpTypeFunction %void
          %22 = OpTypeSampledImage %11
     %v2float = OpTypeVector %float 2
-         %25 = OpConstantNull %v2float
     %float_1 = OpConstant %float 1
+         %26 = OpConstantComposite %v2float %float_1 %float_1
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
-         %29 = OpConstantNull %v2int
+      %int_1 = OpConstant %int 1
+         %30 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %32 = OpTypeFunction %v4float
+         %33 = OpTypeFunction %v4float
 %textureSampleLevel_0b0a1b = OpFunction %void None %15
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
          %20 = OpLoad %14 %arg_1
          %21 = OpLoad %11 %arg_0
          %23 = OpSampledImage %22 %21 %20
-         %19 = OpImageSampleExplicitLod %v4float %23 %25 Lod|ConstOffset %float_1 %29
+         %19 = OpImageSampleExplicitLod %v4float %23 %26 Lod|ConstOffset %float_1 %30
                OpStore %res %19
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %32
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureSampleLevel_0b0a1b
+%vertex_main_inner = OpFunction %v4float None %33
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureSampleLevel_0b0a1b
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
-         %37 = OpLabel
-         %38 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %38
+         %38 = OpLabel
+         %39 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %39
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %15
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureSampleLevel_0b0a1b
+         %41 = OpLabel
+         %42 = OpFunctionCall %void %textureSampleLevel_0b0a1b
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %15
-         %43 = OpLabel
-         %44 = OpFunctionCall %void %textureSampleLevel_0b0a1b
+         %44 = OpLabel
+         %45 = OpFunctionCall %void %textureSampleLevel_0b0a1b
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/0b0a1b.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSampleLevel/0b0a1b.wgsl.expected.wgsl
index 6ae1c9e..7edb2c2 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/0b0a1b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/0b0a1b.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(1) var arg_1 : sampler;
 
 fn textureSampleLevel_0b0a1b() {
-  var res : vec4<f32> = textureSampleLevel(arg_0, arg_1, vec2<f32>(), 1.0f, vec2<i32>());
+  var res : vec4<f32> = textureSampleLevel(arg_0, arg_1, vec2<f32>(1.0f), 1.0f, vec2<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/0bdd9a.wgsl b/test/tint/builtins/gen/literal/textureSampleLevel/0bdd9a.wgsl
index 6129b9c..046acf8 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/0bdd9a.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/0bdd9a.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureSampleLevel(texture: texture_cube_array<f32>, sampler: sampler, coords: vec3<f32>, array_index: i32, level: f32) -> vec4<f32>
 fn textureSampleLevel_0bdd9a() {
-  var res: vec4<f32> = textureSampleLevel(arg_0, arg_1, vec3<f32>(), 1i, 1.f);
+  var res: vec4<f32> = textureSampleLevel(arg_0, arg_1, vec3<f32>(1.f), 1i, 1.f);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/0bdd9a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/0bdd9a.wgsl.expected.dxc.hlsl
index 4ac5b0c..3062bda 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/0bdd9a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/0bdd9a.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleLevel_0bdd9a() {
-  float4 res = arg_0.SampleLevel(arg_1, float4(0.0f, 0.0f, 0.0f, float(1)), 1.0f);
+  float4 res = arg_0.SampleLevel(arg_1, float4((1.0f).xxx, float(1)), 1.0f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/0bdd9a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/0bdd9a.wgsl.expected.fxc.hlsl
index 4ac5b0c..3062bda 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/0bdd9a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/0bdd9a.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleLevel_0bdd9a() {
-  float4 res = arg_0.SampleLevel(arg_1, float4(0.0f, 0.0f, 0.0f, float(1)), 1.0f);
+  float4 res = arg_0.SampleLevel(arg_1, float4((1.0f).xxx, float(1)), 1.0f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/0bdd9a.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureSampleLevel/0bdd9a.wgsl.expected.msl
index 8d56eb6..7a8b340 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/0bdd9a.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/0bdd9a.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureSampleLevel_0bdd9a(texturecube_array<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float4 res = tint_symbol_1.sample(tint_symbol_2, float3(0.0f), 1, level(1.0f));
+  float4 res = tint_symbol_1.sample(tint_symbol_2, float3(1.0f), 1, level(1.0f));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/0bdd9a.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSampleLevel/0bdd9a.wgsl.expected.spvasm
index 6c66663..c38f645 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/0bdd9a.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/0bdd9a.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 45
+; Bound: 49
 ; Schema: 0
                OpCapability Shader
                OpCapability SampledCubeArray
@@ -44,43 +44,47 @@
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
          %22 = OpTypeSampledImage %11
-    %float_0 = OpConstant %float 0
+    %v3float = OpTypeVector %float 3
+    %float_1 = OpConstant %float 1
+         %26 = OpConstantComposite %v3float %float_1 %float_1 %float_1
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
-    %float_1 = OpConstant %float 1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %32 = OpTypeFunction %v4float
+         %36 = OpTypeFunction %v4float
 %textureSampleLevel_0bdd9a = OpFunction %void None %15
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
          %20 = OpLoad %14 %arg_1
          %21 = OpLoad %11 %arg_0
          %23 = OpSampledImage %22 %21 %20
-         %25 = OpConvertSToF %float %int_1
-         %28 = OpCompositeConstruct %v4float %float_0 %float_0 %float_0 %25
-         %19 = OpImageSampleExplicitLod %v4float %23 %28 Lod %float_1
+         %27 = OpCompositeExtract %float %26 0
+         %28 = OpCompositeExtract %float %26 1
+         %29 = OpCompositeExtract %float %26 2
+         %30 = OpConvertSToF %float %int_1
+         %33 = OpCompositeConstruct %v4float %27 %28 %29 %30
+         %19 = OpImageSampleExplicitLod %v4float %23 %33 Lod %float_1
                OpStore %res %19
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %32
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureSampleLevel_0bdd9a
+%vertex_main_inner = OpFunction %v4float None %36
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %textureSampleLevel_0bdd9a
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
-         %37 = OpLabel
-         %38 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %38
+         %41 = OpLabel
+         %42 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %42
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %15
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureSampleLevel_0bdd9a
+         %44 = OpLabel
+         %45 = OpFunctionCall %void %textureSampleLevel_0bdd9a
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %15
-         %43 = OpLabel
-         %44 = OpFunctionCall %void %textureSampleLevel_0bdd9a
+         %47 = OpLabel
+         %48 = OpFunctionCall %void %textureSampleLevel_0bdd9a
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/0bdd9a.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSampleLevel/0bdd9a.wgsl.expected.wgsl
index d49f2c2..96d9d06 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/0bdd9a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/0bdd9a.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(1) var arg_1 : sampler;
 
 fn textureSampleLevel_0bdd9a() {
-  var res : vec4<f32> = textureSampleLevel(arg_0, arg_1, vec3<f32>(), 1i, 1.0f);
+  var res : vec4<f32> = textureSampleLevel(arg_0, arg_1, vec3<f32>(1.0f), 1i, 1.0f);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/1b0291.wgsl b/test/tint/builtins/gen/literal/textureSampleLevel/1b0291.wgsl
index 34cbdc1..3c03f3f 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/1b0291.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/1b0291.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureSampleLevel(texture: texture_depth_cube, sampler: sampler, coords: vec3<f32>, level: i32) -> f32
 fn textureSampleLevel_1b0291() {
-  var res: f32 = textureSampleLevel(arg_0, arg_1, vec3<f32>(), 1i);
+  var res: f32 = textureSampleLevel(arg_0, arg_1, vec3<f32>(1.f), 1i);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/1b0291.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/1b0291.wgsl.expected.dxc.hlsl
index e474a0f..43340f6 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/1b0291.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/1b0291.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleLevel_1b0291() {
-  float res = arg_0.SampleLevel(arg_1, (0.0f).xxx, 1).x;
+  float res = arg_0.SampleLevel(arg_1, (1.0f).xxx, 1).x;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/1b0291.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/1b0291.wgsl.expected.fxc.hlsl
index e474a0f..43340f6 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/1b0291.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/1b0291.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleLevel_1b0291() {
-  float res = arg_0.SampleLevel(arg_1, (0.0f).xxx, 1).x;
+  float res = arg_0.SampleLevel(arg_1, (1.0f).xxx, 1).x;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/1b0291.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureSampleLevel/1b0291.wgsl.expected.msl
index 28c9eed..85b398cb 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/1b0291.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/1b0291.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureSampleLevel_1b0291(depthcube<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float res = tint_symbol_1.sample(tint_symbol_2, float3(0.0f), level(1));
+  float res = tint_symbol_1.sample(tint_symbol_2, float3(1.0f), level(1));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/1b0291.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSampleLevel/1b0291.wgsl.expected.spvasm
index 9a1b35c..313063a 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/1b0291.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/1b0291.wgsl.expected.spvasm
@@ -44,33 +44,33 @@
          %15 = OpTypeFunction %void
          %23 = OpTypeSampledImage %11
     %v3float = OpTypeVector %float 3
-         %26 = OpConstantNull %v3float
+    %float_1 = OpConstant %float 1
+         %27 = OpConstantComposite %v3float %float_1 %float_1 %float_1
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_float = OpTypePointer Function %float
-         %32 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %33 = OpTypeFunction %v4float
 %textureSampleLevel_1b0291 = OpFunction %void None %15
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_float Function %8
          %21 = OpLoad %14 %arg_1
          %22 = OpLoad %11 %arg_0
          %24 = OpSampledImage %23 %22 %21
-         %27 = OpConvertSToF %float %int_1
-         %20 = OpImageSampleExplicitLod %v4float %24 %26 Lod %27
+         %28 = OpConvertSToF %float %int_1
+         %20 = OpImageSampleExplicitLod %v4float %24 %27 Lod %28
          %19 = OpCompositeExtract %float %20 0
                OpStore %res %19
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %32
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureSampleLevel_1b0291
+%vertex_main_inner = OpFunction %v4float None %33
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureSampleLevel_1b0291
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
-         %37 = OpLabel
-         %38 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %38
+         %38 = OpLabel
+         %39 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %39
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/1b0291.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSampleLevel/1b0291.wgsl.expected.wgsl
index da43fb4..ce70fc6 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/1b0291.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/1b0291.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(1) var arg_1 : sampler;
 
 fn textureSampleLevel_1b0291() {
-  var res : f32 = textureSampleLevel(arg_0, arg_1, vec3<f32>(), 1i);
+  var res : f32 = textureSampleLevel(arg_0, arg_1, vec3<f32>(1.0f), 1i);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/1bf73e.wgsl b/test/tint/builtins/gen/literal/textureSampleLevel/1bf73e.wgsl
index 98e0763..05f8d4d 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/1bf73e.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/1bf73e.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureSampleLevel(texture: texture_depth_2d_array, sampler: sampler, coords: vec2<f32>, array_index: i32, level: i32) -> f32
 fn textureSampleLevel_1bf73e() {
-  var res: f32 = textureSampleLevel(arg_0, arg_1, vec2<f32>(), 1i, 1i);
+  var res: f32 = textureSampleLevel(arg_0, arg_1, vec2<f32>(1.f), 1i, 1i);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/1bf73e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/1bf73e.wgsl.expected.dxc.hlsl
index 6a8dc74..acc99fc 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/1bf73e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/1bf73e.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleLevel_1bf73e() {
-  float res = arg_0.SampleLevel(arg_1, float3(0.0f, 0.0f, float(1)), 1).x;
+  float res = arg_0.SampleLevel(arg_1, float3((1.0f).xx, float(1)), 1).x;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/1bf73e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/1bf73e.wgsl.expected.fxc.hlsl
index 6a8dc74..acc99fc 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/1bf73e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/1bf73e.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleLevel_1bf73e() {
-  float res = arg_0.SampleLevel(arg_1, float3(0.0f, 0.0f, float(1)), 1).x;
+  float res = arg_0.SampleLevel(arg_1, float3((1.0f).xx, float(1)), 1).x;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/1bf73e.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureSampleLevel/1bf73e.wgsl.expected.msl
index 3d00082..9206cee 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/1bf73e.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/1bf73e.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureSampleLevel_1bf73e(depth2d_array<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float res = tint_symbol_1.sample(tint_symbol_2, float2(0.0f), 1, level(1));
+  float res = tint_symbol_1.sample(tint_symbol_2, float2(1.0f), 1, level(1));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/1bf73e.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSampleLevel/1bf73e.wgsl.expected.spvasm
index 75690ee..2d0c309 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/1bf73e.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/1bf73e.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 48
+; Bound: 51
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -44,45 +44,48 @@
          %15 = OpTypeFunction %void
          %23 = OpTypeSampledImage %11
     %v3float = OpTypeVector %float 3
-    %float_0 = OpConstant %float 0
+    %v2float = OpTypeVector %float 2
+    %float_1 = OpConstant %float 1
+         %28 = OpConstantComposite %v2float %float_1 %float_1
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_float = OpTypePointer Function %float
-         %34 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %38 = OpTypeFunction %v4float
 %textureSampleLevel_1bf73e = OpFunction %void None %15
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_float Function %8
          %21 = OpLoad %14 %arg_1
          %22 = OpLoad %11 %arg_0
          %24 = OpSampledImage %23 %22 %21
-         %27 = OpConvertSToF %float %int_1
-         %30 = OpCompositeConstruct %v3float %float_0 %float_0 %27
+         %29 = OpCompositeExtract %float %28 0
+         %30 = OpCompositeExtract %float %28 1
          %31 = OpConvertSToF %float %int_1
-         %20 = OpImageSampleExplicitLod %v4float %24 %30 Lod %31
+         %34 = OpCompositeConstruct %v3float %29 %30 %31
+         %35 = OpConvertSToF %float %int_1
+         %20 = OpImageSampleExplicitLod %v4float %24 %34 Lod %35
          %19 = OpCompositeExtract %float %20 0
                OpStore %res %19
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %34
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureSampleLevel_1bf73e
+%vertex_main_inner = OpFunction %v4float None %38
+         %40 = OpLabel
+         %41 = OpFunctionCall %void %textureSampleLevel_1bf73e
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
-         %39 = OpLabel
-         %40 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %40
+         %43 = OpLabel
+         %44 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %44
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %15
-         %43 = OpLabel
-         %44 = OpFunctionCall %void %textureSampleLevel_1bf73e
+         %46 = OpLabel
+         %47 = OpFunctionCall %void %textureSampleLevel_1bf73e
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %15
-         %46 = OpLabel
-         %47 = OpFunctionCall %void %textureSampleLevel_1bf73e
+         %49 = OpLabel
+         %50 = OpFunctionCall %void %textureSampleLevel_1bf73e
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/1bf73e.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSampleLevel/1bf73e.wgsl.expected.wgsl
index e42cc19..a0cfa86 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/1bf73e.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/1bf73e.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(1) var arg_1 : sampler;
 
 fn textureSampleLevel_1bf73e() {
-  var res : f32 = textureSampleLevel(arg_0, arg_1, vec2<f32>(), 1i, 1i);
+  var res : f32 = textureSampleLevel(arg_0, arg_1, vec2<f32>(1.0f), 1i, 1i);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/265cc7.wgsl b/test/tint/builtins/gen/literal/textureSampleLevel/265cc7.wgsl
index 2330cfb..0acaaac 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/265cc7.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/265cc7.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureSampleLevel(texture: texture_2d_array<f32>, sampler: sampler, coords: vec2<f32>, array_index: u32, level: f32) -> vec4<f32>
 fn textureSampleLevel_265cc7() {
-  var res: vec4<f32> = textureSampleLevel(arg_0, arg_1, vec2<f32>(), 1u, 1.f);
+  var res: vec4<f32> = textureSampleLevel(arg_0, arg_1, vec2<f32>(1.f), 1u, 1.f);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/265cc7.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/265cc7.wgsl.expected.dxc.hlsl
index bb13673..5a8cae5 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/265cc7.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/265cc7.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleLevel_265cc7() {
-  float4 res = arg_0.SampleLevel(arg_1, float3(0.0f, 0.0f, float(1u)), 1.0f);
+  float4 res = arg_0.SampleLevel(arg_1, float3((1.0f).xx, float(1u)), 1.0f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/265cc7.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/265cc7.wgsl.expected.fxc.hlsl
index bb13673..5a8cae5 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/265cc7.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/265cc7.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleLevel_265cc7() {
-  float4 res = arg_0.SampleLevel(arg_1, float3(0.0f, 0.0f, float(1u)), 1.0f);
+  float4 res = arg_0.SampleLevel(arg_1, float3((1.0f).xx, float(1u)), 1.0f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/265cc7.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureSampleLevel/265cc7.wgsl.expected.glsl
index 454d56b..12caf9b 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/265cc7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/265cc7.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 uniform highp sampler2DArray arg_0_arg_1;
 
 void textureSampleLevel_265cc7() {
-  vec4 res = textureLod(arg_0_arg_1, vec3(0.0f, 0.0f, float(1u)), 1.0f);
+  vec4 res = textureLod(arg_0_arg_1, vec3(vec2(1.0f), float(1u)), 1.0f);
 }
 
 vec4 vertex_main() {
@@ -25,7 +25,7 @@
 uniform highp sampler2DArray arg_0_arg_1;
 
 void textureSampleLevel_265cc7() {
-  vec4 res = textureLod(arg_0_arg_1, vec3(0.0f, 0.0f, float(1u)), 1.0f);
+  vec4 res = textureLod(arg_0_arg_1, vec3(vec2(1.0f), float(1u)), 1.0f);
 }
 
 void fragment_main() {
@@ -41,7 +41,7 @@
 uniform highp sampler2DArray arg_0_arg_1;
 
 void textureSampleLevel_265cc7() {
-  vec4 res = textureLod(arg_0_arg_1, vec3(0.0f, 0.0f, float(1u)), 1.0f);
+  vec4 res = textureLod(arg_0_arg_1, vec3(vec2(1.0f), float(1u)), 1.0f);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/265cc7.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureSampleLevel/265cc7.wgsl.expected.msl
index c512ee7..d3fa969 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/265cc7.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/265cc7.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureSampleLevel_265cc7(texture2d_array<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float4 res = tint_symbol_1.sample(tint_symbol_2, float2(0.0f), 1u, level(1.0f));
+  float4 res = tint_symbol_1.sample(tint_symbol_2, float2(1.0f), 1u, level(1.0f));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/265cc7.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSampleLevel/265cc7.wgsl.expected.spvasm
index 1d5cd88..a9b4a82 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/265cc7.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/265cc7.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 46
+; Bound: 49
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -44,43 +44,46 @@
          %15 = OpTypeFunction %void
          %22 = OpTypeSampledImage %11
     %v3float = OpTypeVector %float 3
-    %float_0 = OpConstant %float 0
+    %v2float = OpTypeVector %float 2
+    %float_1 = OpConstant %float 1
+         %27 = OpConstantComposite %v2float %float_1 %float_1
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
-    %float_1 = OpConstant %float 1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %33 = OpTypeFunction %v4float
+         %36 = OpTypeFunction %v4float
 %textureSampleLevel_265cc7 = OpFunction %void None %15
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
          %20 = OpLoad %14 %arg_1
          %21 = OpLoad %11 %arg_0
          %23 = OpSampledImage %22 %21 %20
-         %26 = OpConvertUToF %float %uint_1
-         %29 = OpCompositeConstruct %v3float %float_0 %float_0 %26
-         %19 = OpImageSampleExplicitLod %v4float %23 %29 Lod %float_1
+         %28 = OpCompositeExtract %float %27 0
+         %29 = OpCompositeExtract %float %27 1
+         %30 = OpConvertUToF %float %uint_1
+         %33 = OpCompositeConstruct %v3float %28 %29 %30
+         %19 = OpImageSampleExplicitLod %v4float %23 %33 Lod %float_1
                OpStore %res %19
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %33
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureSampleLevel_265cc7
+%vertex_main_inner = OpFunction %v4float None %36
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %textureSampleLevel_265cc7
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
-         %38 = OpLabel
-         %39 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %39
+         %41 = OpLabel
+         %42 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %42
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %15
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureSampleLevel_265cc7
+         %44 = OpLabel
+         %45 = OpFunctionCall %void %textureSampleLevel_265cc7
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %15
-         %44 = OpLabel
-         %45 = OpFunctionCall %void %textureSampleLevel_265cc7
+         %47 = OpLabel
+         %48 = OpFunctionCall %void %textureSampleLevel_265cc7
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/265cc7.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSampleLevel/265cc7.wgsl.expected.wgsl
index 00932fa..bbd333b 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/265cc7.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/265cc7.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(1) var arg_1 : sampler;
 
 fn textureSampleLevel_265cc7() {
-  var res : vec4<f32> = textureSampleLevel(arg_0, arg_1, vec2<f32>(), 1u, 1.0f);
+  var res : vec4<f32> = textureSampleLevel(arg_0, arg_1, vec2<f32>(1.0f), 1u, 1.0f);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/2974eb.wgsl b/test/tint/builtins/gen/literal/textureSampleLevel/2974eb.wgsl
index 3343ac7..7be0912 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/2974eb.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/2974eb.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureSampleLevel(texture: texture_depth_2d_array, sampler: sampler, coords: vec2<f32>, array_index: i32, level: u32) -> f32
 fn textureSampleLevel_2974eb() {
-  var res: f32 = textureSampleLevel(arg_0, arg_1, vec2<f32>(), 1i, 1u);
+  var res: f32 = textureSampleLevel(arg_0, arg_1, vec2<f32>(1.f), 1i, 1u);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/2974eb.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/2974eb.wgsl.expected.dxc.hlsl
index d761407..40a8222 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/2974eb.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/2974eb.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleLevel_2974eb() {
-  float res = arg_0.SampleLevel(arg_1, float3(0.0f, 0.0f, float(1)), 1u).x;
+  float res = arg_0.SampleLevel(arg_1, float3((1.0f).xx, float(1)), 1u).x;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/2974eb.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/2974eb.wgsl.expected.fxc.hlsl
index d761407..40a8222 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/2974eb.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/2974eb.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleLevel_2974eb() {
-  float res = arg_0.SampleLevel(arg_1, float3(0.0f, 0.0f, float(1)), 1u).x;
+  float res = arg_0.SampleLevel(arg_1, float3((1.0f).xx, float(1)), 1u).x;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/2974eb.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureSampleLevel/2974eb.wgsl.expected.msl
index 35c8142..5d25c30 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/2974eb.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/2974eb.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureSampleLevel_2974eb(depth2d_array<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float res = tint_symbol_1.sample(tint_symbol_2, float2(0.0f), 1, level(1u));
+  float res = tint_symbol_1.sample(tint_symbol_2, float2(1.0f), 1, level(1u));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/2974eb.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSampleLevel/2974eb.wgsl.expected.spvasm
index 902d1d2..c418b62 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/2974eb.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/2974eb.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 50
+; Bound: 53
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -44,47 +44,50 @@
          %15 = OpTypeFunction %void
          %23 = OpTypeSampledImage %11
     %v3float = OpTypeVector %float 3
-    %float_0 = OpConstant %float 0
+    %v2float = OpTypeVector %float 2
+    %float_1 = OpConstant %float 1
+         %28 = OpConstantComposite %v2float %float_1 %float_1
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_float = OpTypePointer Function %float
-         %36 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %40 = OpTypeFunction %v4float
 %textureSampleLevel_2974eb = OpFunction %void None %15
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_float Function %8
          %21 = OpLoad %14 %arg_1
          %22 = OpLoad %11 %arg_0
          %24 = OpSampledImage %23 %22 %21
-         %27 = OpConvertSToF %float %int_1
-         %30 = OpCompositeConstruct %v3float %float_0 %float_0 %27
-         %31 = OpConvertSToF %float %uint_1
-         %20 = OpImageSampleExplicitLod %v4float %24 %30 Lod %31
+         %29 = OpCompositeExtract %float %28 0
+         %30 = OpCompositeExtract %float %28 1
+         %31 = OpConvertSToF %float %int_1
+         %34 = OpCompositeConstruct %v3float %29 %30 %31
+         %35 = OpConvertSToF %float %uint_1
+         %20 = OpImageSampleExplicitLod %v4float %24 %34 Lod %35
          %19 = OpCompositeExtract %float %20 0
                OpStore %res %19
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %36
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureSampleLevel_2974eb
+%vertex_main_inner = OpFunction %v4float None %40
+         %42 = OpLabel
+         %43 = OpFunctionCall %void %textureSampleLevel_2974eb
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
-         %41 = OpLabel
-         %42 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %42
+         %45 = OpLabel
+         %46 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %46
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %15
-         %45 = OpLabel
-         %46 = OpFunctionCall %void %textureSampleLevel_2974eb
+         %48 = OpLabel
+         %49 = OpFunctionCall %void %textureSampleLevel_2974eb
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %15
-         %48 = OpLabel
-         %49 = OpFunctionCall %void %textureSampleLevel_2974eb
+         %51 = OpLabel
+         %52 = OpFunctionCall %void %textureSampleLevel_2974eb
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/2974eb.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSampleLevel/2974eb.wgsl.expected.wgsl
index a01f59b..660393e 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/2974eb.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/2974eb.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(1) var arg_1 : sampler;
 
 fn textureSampleLevel_2974eb() {
-  var res : f32 = textureSampleLevel(arg_0, arg_1, vec2<f32>(), 1i, 1u);
+  var res : f32 = textureSampleLevel(arg_0, arg_1, vec2<f32>(1.0f), 1i, 1u);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/302be4.wgsl b/test/tint/builtins/gen/literal/textureSampleLevel/302be4.wgsl
index 8673fe7..4a67499 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/302be4.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/302be4.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureSampleLevel(texture: texture_2d_array<f32>, sampler: sampler, coords: vec2<f32>, array_index: i32, level: f32) -> vec4<f32>
 fn textureSampleLevel_302be4() {
-  var res: vec4<f32> = textureSampleLevel(arg_0, arg_1, vec2<f32>(), 1i, 1.f);
+  var res: vec4<f32> = textureSampleLevel(arg_0, arg_1, vec2<f32>(1.f), 1i, 1.f);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/302be4.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/302be4.wgsl.expected.dxc.hlsl
index 90cdd65..07474bc 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/302be4.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/302be4.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleLevel_302be4() {
-  float4 res = arg_0.SampleLevel(arg_1, float3(0.0f, 0.0f, float(1)), 1.0f);
+  float4 res = arg_0.SampleLevel(arg_1, float3((1.0f).xx, float(1)), 1.0f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/302be4.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/302be4.wgsl.expected.fxc.hlsl
index 90cdd65..07474bc 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/302be4.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/302be4.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleLevel_302be4() {
-  float4 res = arg_0.SampleLevel(arg_1, float3(0.0f, 0.0f, float(1)), 1.0f);
+  float4 res = arg_0.SampleLevel(arg_1, float3((1.0f).xx, float(1)), 1.0f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/302be4.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureSampleLevel/302be4.wgsl.expected.glsl
index 31ba66c..f69611e 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/302be4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/302be4.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 uniform highp sampler2DArray arg_0_arg_1;
 
 void textureSampleLevel_302be4() {
-  vec4 res = textureLod(arg_0_arg_1, vec3(0.0f, 0.0f, float(1)), 1.0f);
+  vec4 res = textureLod(arg_0_arg_1, vec3(vec2(1.0f), float(1)), 1.0f);
 }
 
 vec4 vertex_main() {
@@ -25,7 +25,7 @@
 uniform highp sampler2DArray arg_0_arg_1;
 
 void textureSampleLevel_302be4() {
-  vec4 res = textureLod(arg_0_arg_1, vec3(0.0f, 0.0f, float(1)), 1.0f);
+  vec4 res = textureLod(arg_0_arg_1, vec3(vec2(1.0f), float(1)), 1.0f);
 }
 
 void fragment_main() {
@@ -41,7 +41,7 @@
 uniform highp sampler2DArray arg_0_arg_1;
 
 void textureSampleLevel_302be4() {
-  vec4 res = textureLod(arg_0_arg_1, vec3(0.0f, 0.0f, float(1)), 1.0f);
+  vec4 res = textureLod(arg_0_arg_1, vec3(vec2(1.0f), float(1)), 1.0f);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/302be4.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureSampleLevel/302be4.wgsl.expected.msl
index 92ace1e..cb2e2ab 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/302be4.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/302be4.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureSampleLevel_302be4(texture2d_array<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float4 res = tint_symbol_1.sample(tint_symbol_2, float2(0.0f), 1, level(1.0f));
+  float4 res = tint_symbol_1.sample(tint_symbol_2, float2(1.0f), 1, level(1.0f));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/302be4.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSampleLevel/302be4.wgsl.expected.spvasm
index 19dc29b..3607b90 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/302be4.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/302be4.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 46
+; Bound: 49
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -44,43 +44,46 @@
          %15 = OpTypeFunction %void
          %22 = OpTypeSampledImage %11
     %v3float = OpTypeVector %float 3
-    %float_0 = OpConstant %float 0
+    %v2float = OpTypeVector %float 2
+    %float_1 = OpConstant %float 1
+         %27 = OpConstantComposite %v2float %float_1 %float_1
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
-    %float_1 = OpConstant %float 1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %33 = OpTypeFunction %v4float
+         %36 = OpTypeFunction %v4float
 %textureSampleLevel_302be4 = OpFunction %void None %15
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
          %20 = OpLoad %14 %arg_1
          %21 = OpLoad %11 %arg_0
          %23 = OpSampledImage %22 %21 %20
-         %26 = OpConvertSToF %float %int_1
-         %29 = OpCompositeConstruct %v3float %float_0 %float_0 %26
-         %19 = OpImageSampleExplicitLod %v4float %23 %29 Lod %float_1
+         %28 = OpCompositeExtract %float %27 0
+         %29 = OpCompositeExtract %float %27 1
+         %30 = OpConvertSToF %float %int_1
+         %33 = OpCompositeConstruct %v3float %28 %29 %30
+         %19 = OpImageSampleExplicitLod %v4float %23 %33 Lod %float_1
                OpStore %res %19
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %33
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureSampleLevel_302be4
+%vertex_main_inner = OpFunction %v4float None %36
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %textureSampleLevel_302be4
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
-         %38 = OpLabel
-         %39 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %39
+         %41 = OpLabel
+         %42 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %42
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %15
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureSampleLevel_302be4
+         %44 = OpLabel
+         %45 = OpFunctionCall %void %textureSampleLevel_302be4
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %15
-         %44 = OpLabel
-         %45 = OpFunctionCall %void %textureSampleLevel_302be4
+         %47 = OpLabel
+         %48 = OpFunctionCall %void %textureSampleLevel_302be4
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/302be4.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSampleLevel/302be4.wgsl.expected.wgsl
index 846f87f..106bdbd 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/302be4.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/302be4.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(1) var arg_1 : sampler;
 
 fn textureSampleLevel_302be4() {
-  var res : vec4<f32> = textureSampleLevel(arg_0, arg_1, vec2<f32>(), 1i, 1.0f);
+  var res : vec4<f32> = textureSampleLevel(arg_0, arg_1, vec2<f32>(1.0f), 1i, 1.0f);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/36780e.wgsl b/test/tint/builtins/gen/literal/textureSampleLevel/36780e.wgsl
index 250369f..d1713ea3 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/36780e.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/36780e.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureSampleLevel(texture: texture_depth_2d_array, sampler: sampler, coords: vec2<f32>, array_index: i32, level: i32, @const offset: vec2<i32>) -> f32
 fn textureSampleLevel_36780e() {
-  var res: f32 = textureSampleLevel(arg_0, arg_1, vec2<f32>(), 1i, 1i, vec2<i32>());
+  var res: f32 = textureSampleLevel(arg_0, arg_1, vec2<f32>(1.f), 1i, 1i, vec2<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/36780e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/36780e.wgsl.expected.dxc.hlsl
index 7defa37..c8a9ccc 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/36780e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/36780e.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleLevel_36780e() {
-  float res = arg_0.SampleLevel(arg_1, float3(0.0f, 0.0f, float(1)), 1, (0).xx).x;
+  float res = arg_0.SampleLevel(arg_1, float3((1.0f).xx, float(1)), 1, (1).xx).x;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/36780e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/36780e.wgsl.expected.fxc.hlsl
index 7defa37..c8a9ccc 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/36780e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/36780e.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleLevel_36780e() {
-  float res = arg_0.SampleLevel(arg_1, float3(0.0f, 0.0f, float(1)), 1, (0).xx).x;
+  float res = arg_0.SampleLevel(arg_1, float3((1.0f).xx, float(1)), 1, (1).xx).x;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/36780e.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureSampleLevel/36780e.wgsl.expected.msl
index f77682e..ed1e29e 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/36780e.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/36780e.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureSampleLevel_36780e(depth2d_array<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float res = tint_symbol_1.sample(tint_symbol_2, float2(0.0f), 1, level(1), int2(0));
+  float res = tint_symbol_1.sample(tint_symbol_2, float2(1.0f), 1, level(1), int2(1));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/36780e.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSampleLevel/36780e.wgsl.expected.spvasm
index 1dc3c0d..cc74784 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/36780e.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/36780e.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 50
+; Bound: 53
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -44,47 +44,50 @@
          %15 = OpTypeFunction %void
          %23 = OpTypeSampledImage %11
     %v3float = OpTypeVector %float 3
-    %float_0 = OpConstant %float 0
+    %v2float = OpTypeVector %float 2
+    %float_1 = OpConstant %float 1
+         %28 = OpConstantComposite %v2float %float_1 %float_1
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
       %v2int = OpTypeVector %int 2
-         %33 = OpConstantNull %v2int
+         %37 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_float = OpTypePointer Function %float
-         %36 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %40 = OpTypeFunction %v4float
 %textureSampleLevel_36780e = OpFunction %void None %15
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_float Function %8
          %21 = OpLoad %14 %arg_1
          %22 = OpLoad %11 %arg_0
          %24 = OpSampledImage %23 %22 %21
-         %27 = OpConvertSToF %float %int_1
-         %30 = OpCompositeConstruct %v3float %float_0 %float_0 %27
+         %29 = OpCompositeExtract %float %28 0
+         %30 = OpCompositeExtract %float %28 1
          %31 = OpConvertSToF %float %int_1
-         %20 = OpImageSampleExplicitLod %v4float %24 %30 Lod|ConstOffset %31 %33
+         %34 = OpCompositeConstruct %v3float %29 %30 %31
+         %35 = OpConvertSToF %float %int_1
+         %20 = OpImageSampleExplicitLod %v4float %24 %34 Lod|ConstOffset %35 %37
          %19 = OpCompositeExtract %float %20 0
                OpStore %res %19
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %36
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureSampleLevel_36780e
+%vertex_main_inner = OpFunction %v4float None %40
+         %42 = OpLabel
+         %43 = OpFunctionCall %void %textureSampleLevel_36780e
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
-         %41 = OpLabel
-         %42 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %42
+         %45 = OpLabel
+         %46 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %46
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %15
-         %45 = OpLabel
-         %46 = OpFunctionCall %void %textureSampleLevel_36780e
+         %48 = OpLabel
+         %49 = OpFunctionCall %void %textureSampleLevel_36780e
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %15
-         %48 = OpLabel
-         %49 = OpFunctionCall %void %textureSampleLevel_36780e
+         %51 = OpLabel
+         %52 = OpFunctionCall %void %textureSampleLevel_36780e
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/36780e.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSampleLevel/36780e.wgsl.expected.wgsl
index 09aa6a3..b079b1d 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/36780e.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/36780e.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(1) var arg_1 : sampler;
 
 fn textureSampleLevel_36780e() {
-  var res : f32 = textureSampleLevel(arg_0, arg_1, vec2<f32>(), 1i, 1i, vec2<i32>());
+  var res : f32 = textureSampleLevel(arg_0, arg_1, vec2<f32>(1.0f), 1i, 1i, vec2<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/36f0d3.wgsl b/test/tint/builtins/gen/literal/textureSampleLevel/36f0d3.wgsl
index a9d9e0f..fd7d10b 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/36f0d3.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/36f0d3.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureSampleLevel(texture: texture_depth_2d_array, sampler: sampler, coords: vec2<f32>, array_index: i32, level: u32, @const offset: vec2<i32>) -> f32
 fn textureSampleLevel_36f0d3() {
-  var res: f32 = textureSampleLevel(arg_0, arg_1, vec2<f32>(), 1i, 1u, vec2<i32>());
+  var res: f32 = textureSampleLevel(arg_0, arg_1, vec2<f32>(1.f), 1i, 1u, vec2<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/36f0d3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/36f0d3.wgsl.expected.dxc.hlsl
index b36c713..e8395d5 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/36f0d3.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/36f0d3.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleLevel_36f0d3() {
-  float res = arg_0.SampleLevel(arg_1, float3(0.0f, 0.0f, float(1)), 1u, (0).xx).x;
+  float res = arg_0.SampleLevel(arg_1, float3((1.0f).xx, float(1)), 1u, (1).xx).x;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/36f0d3.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/36f0d3.wgsl.expected.fxc.hlsl
index b36c713..e8395d5 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/36f0d3.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/36f0d3.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleLevel_36f0d3() {
-  float res = arg_0.SampleLevel(arg_1, float3(0.0f, 0.0f, float(1)), 1u, (0).xx).x;
+  float res = arg_0.SampleLevel(arg_1, float3((1.0f).xx, float(1)), 1u, (1).xx).x;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/36f0d3.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureSampleLevel/36f0d3.wgsl.expected.msl
index a952104..c52850d 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/36f0d3.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/36f0d3.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureSampleLevel_36f0d3(depth2d_array<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float res = tint_symbol_1.sample(tint_symbol_2, float2(0.0f), 1, level(1u), int2(0));
+  float res = tint_symbol_1.sample(tint_symbol_2, float2(1.0f), 1, level(1u), int2(1));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/36f0d3.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSampleLevel/36f0d3.wgsl.expected.spvasm
index aaa56db..aaca286 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/36f0d3.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/36f0d3.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 52
+; Bound: 55
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -44,49 +44,52 @@
          %15 = OpTypeFunction %void
          %23 = OpTypeSampledImage %11
     %v3float = OpTypeVector %float 3
-    %float_0 = OpConstant %float 0
+    %v2float = OpTypeVector %float 2
+    %float_1 = OpConstant %float 1
+         %28 = OpConstantComposite %v2float %float_1 %float_1
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
       %v2int = OpTypeVector %int 2
-         %35 = OpConstantNull %v2int
+         %39 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_float = OpTypePointer Function %float
-         %38 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %42 = OpTypeFunction %v4float
 %textureSampleLevel_36f0d3 = OpFunction %void None %15
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_float Function %8
          %21 = OpLoad %14 %arg_1
          %22 = OpLoad %11 %arg_0
          %24 = OpSampledImage %23 %22 %21
-         %27 = OpConvertSToF %float %int_1
-         %30 = OpCompositeConstruct %v3float %float_0 %float_0 %27
-         %31 = OpConvertSToF %float %uint_1
-         %20 = OpImageSampleExplicitLod %v4float %24 %30 Lod|ConstOffset %31 %35
+         %29 = OpCompositeExtract %float %28 0
+         %30 = OpCompositeExtract %float %28 1
+         %31 = OpConvertSToF %float %int_1
+         %34 = OpCompositeConstruct %v3float %29 %30 %31
+         %35 = OpConvertSToF %float %uint_1
+         %20 = OpImageSampleExplicitLod %v4float %24 %34 Lod|ConstOffset %35 %39
          %19 = OpCompositeExtract %float %20 0
                OpStore %res %19
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %38
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureSampleLevel_36f0d3
+%vertex_main_inner = OpFunction %v4float None %42
+         %44 = OpLabel
+         %45 = OpFunctionCall %void %textureSampleLevel_36f0d3
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
-         %43 = OpLabel
-         %44 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %44
+         %47 = OpLabel
+         %48 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %48
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %15
-         %47 = OpLabel
-         %48 = OpFunctionCall %void %textureSampleLevel_36f0d3
+         %50 = OpLabel
+         %51 = OpFunctionCall %void %textureSampleLevel_36f0d3
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %15
-         %50 = OpLabel
-         %51 = OpFunctionCall %void %textureSampleLevel_36f0d3
+         %53 = OpLabel
+         %54 = OpFunctionCall %void %textureSampleLevel_36f0d3
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/36f0d3.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSampleLevel/36f0d3.wgsl.expected.wgsl
index 79a45ec..ae7e18a 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/36f0d3.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/36f0d3.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(1) var arg_1 : sampler;
 
 fn textureSampleLevel_36f0d3() {
-  var res : f32 = textureSampleLevel(arg_0, arg_1, vec2<f32>(), 1i, 1u, vec2<i32>());
+  var res : f32 = textureSampleLevel(arg_0, arg_1, vec2<f32>(1.0f), 1i, 1u, vec2<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/3c3442.wgsl b/test/tint/builtins/gen/literal/textureSampleLevel/3c3442.wgsl
index 3d2edc9..1e317bd 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/3c3442.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/3c3442.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureSampleLevel(texture: texture_depth_2d_array, sampler: sampler, coords: vec2<f32>, array_index: u32, level: i32) -> f32
 fn textureSampleLevel_3c3442() {
-  var res: f32 = textureSampleLevel(arg_0, arg_1, vec2<f32>(), 1u, 1i);
+  var res: f32 = textureSampleLevel(arg_0, arg_1, vec2<f32>(1.f), 1u, 1i);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/3c3442.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/3c3442.wgsl.expected.dxc.hlsl
index 39cd161..f66c85a 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/3c3442.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/3c3442.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleLevel_3c3442() {
-  float res = arg_0.SampleLevel(arg_1, float3(0.0f, 0.0f, float(1u)), 1).x;
+  float res = arg_0.SampleLevel(arg_1, float3((1.0f).xx, float(1u)), 1).x;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/3c3442.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/3c3442.wgsl.expected.fxc.hlsl
index 39cd161..f66c85a 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/3c3442.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/3c3442.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleLevel_3c3442() {
-  float res = arg_0.SampleLevel(arg_1, float3(0.0f, 0.0f, float(1u)), 1).x;
+  float res = arg_0.SampleLevel(arg_1, float3((1.0f).xx, float(1u)), 1).x;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/3c3442.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureSampleLevel/3c3442.wgsl.expected.msl
index ce8ebea..32dbc41 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/3c3442.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/3c3442.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureSampleLevel_3c3442(depth2d_array<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float res = tint_symbol_1.sample(tint_symbol_2, float2(0.0f), 1u, level(1));
+  float res = tint_symbol_1.sample(tint_symbol_2, float2(1.0f), 1u, level(1));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/3c3442.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSampleLevel/3c3442.wgsl.expected.spvasm
index 2300632..3e0fb12 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/3c3442.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/3c3442.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 50
+; Bound: 53
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -44,47 +44,50 @@
          %15 = OpTypeFunction %void
          %23 = OpTypeSampledImage %11
     %v3float = OpTypeVector %float 3
-    %float_0 = OpConstant %float 0
+    %v2float = OpTypeVector %float 2
+    %float_1 = OpConstant %float 1
+         %28 = OpConstantComposite %v2float %float_1 %float_1
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_float = OpTypePointer Function %float
-         %36 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %40 = OpTypeFunction %v4float
 %textureSampleLevel_3c3442 = OpFunction %void None %15
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_float Function %8
          %21 = OpLoad %14 %arg_1
          %22 = OpLoad %11 %arg_0
          %24 = OpSampledImage %23 %22 %21
-         %27 = OpConvertUToF %float %uint_1
-         %30 = OpCompositeConstruct %v3float %float_0 %float_0 %27
-         %31 = OpConvertSToF %float %int_1
-         %20 = OpImageSampleExplicitLod %v4float %24 %30 Lod %31
+         %29 = OpCompositeExtract %float %28 0
+         %30 = OpCompositeExtract %float %28 1
+         %31 = OpConvertUToF %float %uint_1
+         %34 = OpCompositeConstruct %v3float %29 %30 %31
+         %35 = OpConvertSToF %float %int_1
+         %20 = OpImageSampleExplicitLod %v4float %24 %34 Lod %35
          %19 = OpCompositeExtract %float %20 0
                OpStore %res %19
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %36
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureSampleLevel_3c3442
+%vertex_main_inner = OpFunction %v4float None %40
+         %42 = OpLabel
+         %43 = OpFunctionCall %void %textureSampleLevel_3c3442
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
-         %41 = OpLabel
-         %42 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %42
+         %45 = OpLabel
+         %46 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %46
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %15
-         %45 = OpLabel
-         %46 = OpFunctionCall %void %textureSampleLevel_3c3442
+         %48 = OpLabel
+         %49 = OpFunctionCall %void %textureSampleLevel_3c3442
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %15
-         %48 = OpLabel
-         %49 = OpFunctionCall %void %textureSampleLevel_3c3442
+         %51 = OpLabel
+         %52 = OpFunctionCall %void %textureSampleLevel_3c3442
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/3c3442.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSampleLevel/3c3442.wgsl.expected.wgsl
index 62d0573..a9c602c 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/3c3442.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/3c3442.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(1) var arg_1 : sampler;
 
 fn textureSampleLevel_3c3442() {
-  var res : f32 = textureSampleLevel(arg_0, arg_1, vec2<f32>(), 1u, 1i);
+  var res : f32 = textureSampleLevel(arg_0, arg_1, vec2<f32>(1.0f), 1u, 1i);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/615583.wgsl b/test/tint/builtins/gen/literal/textureSampleLevel/615583.wgsl
index 6552683..886c480 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/615583.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/615583.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureSampleLevel(texture: texture_depth_2d_array, sampler: sampler, coords: vec2<f32>, array_index: u32, level: u32) -> f32
 fn textureSampleLevel_615583() {
-  var res: f32 = textureSampleLevel(arg_0, arg_1, vec2<f32>(), 1u, 1u);
+  var res: f32 = textureSampleLevel(arg_0, arg_1, vec2<f32>(1.f), 1u, 1u);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/615583.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/615583.wgsl.expected.dxc.hlsl
index 634fa95..d758f54 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/615583.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/615583.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleLevel_615583() {
-  float res = arg_0.SampleLevel(arg_1, float3(0.0f, 0.0f, float(1u)), 1u).x;
+  float res = arg_0.SampleLevel(arg_1, float3((1.0f).xx, float(1u)), 1u).x;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/615583.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/615583.wgsl.expected.fxc.hlsl
index 634fa95..d758f54 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/615583.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/615583.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleLevel_615583() {
-  float res = arg_0.SampleLevel(arg_1, float3(0.0f, 0.0f, float(1u)), 1u).x;
+  float res = arg_0.SampleLevel(arg_1, float3((1.0f).xx, float(1u)), 1u).x;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/615583.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureSampleLevel/615583.wgsl.expected.msl
index 8647ff8..ec871ef 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/615583.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/615583.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureSampleLevel_615583(depth2d_array<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float res = tint_symbol_1.sample(tint_symbol_2, float2(0.0f), 1u, level(1u));
+  float res = tint_symbol_1.sample(tint_symbol_2, float2(1.0f), 1u, level(1u));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/615583.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSampleLevel/615583.wgsl.expected.spvasm
index 999d156..3110bc1 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/615583.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/615583.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 48
+; Bound: 51
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -44,45 +44,48 @@
          %15 = OpTypeFunction %void
          %23 = OpTypeSampledImage %11
     %v3float = OpTypeVector %float 3
-    %float_0 = OpConstant %float 0
+    %v2float = OpTypeVector %float 2
+    %float_1 = OpConstant %float 1
+         %28 = OpConstantComposite %v2float %float_1 %float_1
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_float = OpTypePointer Function %float
-         %34 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %38 = OpTypeFunction %v4float
 %textureSampleLevel_615583 = OpFunction %void None %15
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_float Function %8
          %21 = OpLoad %14 %arg_1
          %22 = OpLoad %11 %arg_0
          %24 = OpSampledImage %23 %22 %21
-         %27 = OpConvertUToF %float %uint_1
-         %30 = OpCompositeConstruct %v3float %float_0 %float_0 %27
-         %31 = OpConvertSToF %float %uint_1
-         %20 = OpImageSampleExplicitLod %v4float %24 %30 Lod %31
+         %29 = OpCompositeExtract %float %28 0
+         %30 = OpCompositeExtract %float %28 1
+         %31 = OpConvertUToF %float %uint_1
+         %34 = OpCompositeConstruct %v3float %29 %30 %31
+         %35 = OpConvertSToF %float %uint_1
+         %20 = OpImageSampleExplicitLod %v4float %24 %34 Lod %35
          %19 = OpCompositeExtract %float %20 0
                OpStore %res %19
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %34
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureSampleLevel_615583
+%vertex_main_inner = OpFunction %v4float None %38
+         %40 = OpLabel
+         %41 = OpFunctionCall %void %textureSampleLevel_615583
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
-         %39 = OpLabel
-         %40 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %40
+         %43 = OpLabel
+         %44 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %44
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %15
-         %43 = OpLabel
-         %44 = OpFunctionCall %void %textureSampleLevel_615583
+         %46 = OpLabel
+         %47 = OpFunctionCall %void %textureSampleLevel_615583
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %15
-         %46 = OpLabel
-         %47 = OpFunctionCall %void %textureSampleLevel_615583
+         %49 = OpLabel
+         %50 = OpFunctionCall %void %textureSampleLevel_615583
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/615583.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSampleLevel/615583.wgsl.expected.wgsl
index 149d95c..87e11d1 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/615583.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/615583.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(1) var arg_1 : sampler;
 
 fn textureSampleLevel_615583() {
-  var res : f32 = textureSampleLevel(arg_0, arg_1, vec2<f32>(), 1u, 1u);
+  var res : f32 = textureSampleLevel(arg_0, arg_1, vec2<f32>(1.0f), 1u, 1u);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/73e892.wgsl b/test/tint/builtins/gen/literal/textureSampleLevel/73e892.wgsl
index 4bf7198..ba930c6 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/73e892.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/73e892.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureSampleLevel(texture: texture_depth_2d, sampler: sampler, coords: vec2<f32>, level: u32) -> f32
 fn textureSampleLevel_73e892() {
-  var res: f32 = textureSampleLevel(arg_0, arg_1, vec2<f32>(), 1u);
+  var res: f32 = textureSampleLevel(arg_0, arg_1, vec2<f32>(1.f), 1u);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/73e892.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/73e892.wgsl.expected.dxc.hlsl
index 96a9806..3a307b4 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/73e892.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/73e892.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleLevel_73e892() {
-  float res = arg_0.SampleLevel(arg_1, (0.0f).xx, 1u).x;
+  float res = arg_0.SampleLevel(arg_1, (1.0f).xx, 1u).x;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/73e892.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/73e892.wgsl.expected.fxc.hlsl
index 96a9806..3a307b4 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/73e892.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/73e892.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleLevel_73e892() {
-  float res = arg_0.SampleLevel(arg_1, (0.0f).xx, 1u).x;
+  float res = arg_0.SampleLevel(arg_1, (1.0f).xx, 1u).x;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/73e892.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureSampleLevel/73e892.wgsl.expected.glsl
index 9713397..bc67215 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/73e892.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/73e892.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 uniform highp sampler2DShadow arg_0_arg_1;
 
 void textureSampleLevel_73e892() {
-  float res = textureLod(arg_0_arg_1, vec3(0.0f, 0.0f, 0.0f), float(1u));
+  float res = textureLod(arg_0_arg_1, vec3(vec2(1.0f), 0.0f), float(1u));
 }
 
 vec4 vertex_main() {
@@ -25,7 +25,7 @@
 uniform highp sampler2DShadow arg_0_arg_1;
 
 void textureSampleLevel_73e892() {
-  float res = textureLod(arg_0_arg_1, vec3(0.0f, 0.0f, 0.0f), float(1u));
+  float res = textureLod(arg_0_arg_1, vec3(vec2(1.0f), 0.0f), float(1u));
 }
 
 void fragment_main() {
@@ -41,7 +41,7 @@
 uniform highp sampler2DShadow arg_0_arg_1;
 
 void textureSampleLevel_73e892() {
-  float res = textureLod(arg_0_arg_1, vec3(0.0f, 0.0f, 0.0f), float(1u));
+  float res = textureLod(arg_0_arg_1, vec3(vec2(1.0f), 0.0f), float(1u));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/73e892.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureSampleLevel/73e892.wgsl.expected.msl
index 4ab087d..976edd5 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/73e892.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/73e892.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureSampleLevel_73e892(depth2d<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float res = tint_symbol_1.sample(tint_symbol_2, float2(0.0f), level(1u));
+  float res = tint_symbol_1.sample(tint_symbol_2, float2(1.0f), level(1u));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/73e892.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSampleLevel/73e892.wgsl.expected.spvasm
index 821a1ce..c3d7743 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/73e892.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/73e892.wgsl.expected.spvasm
@@ -44,33 +44,33 @@
          %15 = OpTypeFunction %void
          %23 = OpTypeSampledImage %11
     %v2float = OpTypeVector %float 2
-         %26 = OpConstantNull %v2float
+    %float_1 = OpConstant %float 1
+         %27 = OpConstantComposite %v2float %float_1 %float_1
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_float = OpTypePointer Function %float
-         %32 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %33 = OpTypeFunction %v4float
 %textureSampleLevel_73e892 = OpFunction %void None %15
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_float Function %8
          %21 = OpLoad %14 %arg_1
          %22 = OpLoad %11 %arg_0
          %24 = OpSampledImage %23 %22 %21
-         %27 = OpConvertSToF %float %uint_1
-         %20 = OpImageSampleExplicitLod %v4float %24 %26 Lod %27
+         %28 = OpConvertSToF %float %uint_1
+         %20 = OpImageSampleExplicitLod %v4float %24 %27 Lod %28
          %19 = OpCompositeExtract %float %20 0
                OpStore %res %19
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %32
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureSampleLevel_73e892
+%vertex_main_inner = OpFunction %v4float None %33
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureSampleLevel_73e892
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
-         %37 = OpLabel
-         %38 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %38
+         %38 = OpLabel
+         %39 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %39
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/73e892.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSampleLevel/73e892.wgsl.expected.wgsl
index 9c08bdd..86e1fe5 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/73e892.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/73e892.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(1) var arg_1 : sampler;
 
 fn textureSampleLevel_73e892() {
-  var res : f32 = textureSampleLevel(arg_0, arg_1, vec2<f32>(), 1u);
+  var res : f32 = textureSampleLevel(arg_0, arg_1, vec2<f32>(1.0f), 1u);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/749baf.wgsl b/test/tint/builtins/gen/literal/textureSampleLevel/749baf.wgsl
index b89cce6..04f0fc8 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/749baf.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/749baf.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureSampleLevel(texture: texture_depth_2d, sampler: sampler, coords: vec2<f32>, level: i32, @const offset: vec2<i32>) -> f32
 fn textureSampleLevel_749baf() {
-  var res: f32 = textureSampleLevel(arg_0, arg_1, vec2<f32>(), 1i, vec2<i32>());
+  var res: f32 = textureSampleLevel(arg_0, arg_1, vec2<f32>(1.f), 1i, vec2<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/749baf.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/749baf.wgsl.expected.dxc.hlsl
index ca148df..c269b22 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/749baf.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/749baf.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleLevel_749baf() {
-  float res = arg_0.SampleLevel(arg_1, (0.0f).xx, 1, (0).xx).x;
+  float res = arg_0.SampleLevel(arg_1, (1.0f).xx, 1, (1).xx).x;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/749baf.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/749baf.wgsl.expected.fxc.hlsl
index ca148df..c269b22 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/749baf.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/749baf.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleLevel_749baf() {
-  float res = arg_0.SampleLevel(arg_1, (0.0f).xx, 1, (0).xx).x;
+  float res = arg_0.SampleLevel(arg_1, (1.0f).xx, 1, (1).xx).x;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/749baf.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureSampleLevel/749baf.wgsl.expected.glsl
index 386d748..dffb2b4 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/749baf.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/749baf.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 uniform highp sampler2DShadow arg_0_arg_1;
 
 void textureSampleLevel_749baf() {
-  float res = textureLodOffset(arg_0_arg_1, vec3(0.0f, 0.0f, 0.0f), float(1), ivec2(0));
+  float res = textureLodOffset(arg_0_arg_1, vec3(vec2(1.0f), 0.0f), float(1), ivec2(1));
 }
 
 vec4 vertex_main() {
@@ -25,7 +25,7 @@
 uniform highp sampler2DShadow arg_0_arg_1;
 
 void textureSampleLevel_749baf() {
-  float res = textureLodOffset(arg_0_arg_1, vec3(0.0f, 0.0f, 0.0f), float(1), ivec2(0));
+  float res = textureLodOffset(arg_0_arg_1, vec3(vec2(1.0f), 0.0f), float(1), ivec2(1));
 }
 
 void fragment_main() {
@@ -41,7 +41,7 @@
 uniform highp sampler2DShadow arg_0_arg_1;
 
 void textureSampleLevel_749baf() {
-  float res = textureLodOffset(arg_0_arg_1, vec3(0.0f, 0.0f, 0.0f), float(1), ivec2(0));
+  float res = textureLodOffset(arg_0_arg_1, vec3(vec2(1.0f), 0.0f), float(1), ivec2(1));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/749baf.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureSampleLevel/749baf.wgsl.expected.msl
index 4a19d9f..4dbec7a 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/749baf.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/749baf.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureSampleLevel_749baf(depth2d<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float res = tint_symbol_1.sample(tint_symbol_2, float2(0.0f), level(1), int2(0));
+  float res = tint_symbol_1.sample(tint_symbol_2, float2(1.0f), level(1), int2(1));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/749baf.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSampleLevel/749baf.wgsl.expected.spvasm
index 449a76f..ff468d3 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/749baf.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/749baf.wgsl.expected.spvasm
@@ -44,35 +44,35 @@
          %15 = OpTypeFunction %void
          %23 = OpTypeSampledImage %11
     %v2float = OpTypeVector %float 2
-         %26 = OpConstantNull %v2float
+    %float_1 = OpConstant %float 1
+         %27 = OpConstantComposite %v2float %float_1 %float_1
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
       %v2int = OpTypeVector %int 2
-         %31 = OpConstantNull %v2int
+         %32 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_float = OpTypePointer Function %float
-         %34 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %35 = OpTypeFunction %v4float
 %textureSampleLevel_749baf = OpFunction %void None %15
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_float Function %8
          %21 = OpLoad %14 %arg_1
          %22 = OpLoad %11 %arg_0
          %24 = OpSampledImage %23 %22 %21
-         %27 = OpConvertSToF %float %int_1
-         %20 = OpImageSampleExplicitLod %v4float %24 %26 Lod|ConstOffset %27 %31
+         %28 = OpConvertSToF %float %int_1
+         %20 = OpImageSampleExplicitLod %v4float %24 %27 Lod|ConstOffset %28 %32
          %19 = OpCompositeExtract %float %20 0
                OpStore %res %19
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %34
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureSampleLevel_749baf
+%vertex_main_inner = OpFunction %v4float None %35
+         %37 = OpLabel
+         %38 = OpFunctionCall %void %textureSampleLevel_749baf
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
-         %39 = OpLabel
-         %40 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %40
+         %40 = OpLabel
+         %41 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %41
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/749baf.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSampleLevel/749baf.wgsl.expected.wgsl
index af1e33b..e529df8 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/749baf.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/749baf.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(1) var arg_1 : sampler;
 
 fn textureSampleLevel_749baf() {
-  var res : f32 = textureSampleLevel(arg_0, arg_1, vec2<f32>(), 1i, vec2<i32>());
+  var res : f32 = textureSampleLevel(arg_0, arg_1, vec2<f32>(1.0f), 1i, vec2<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/941a53.wgsl b/test/tint/builtins/gen/literal/textureSampleLevel/941a53.wgsl
index 808785e..ff080e1 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/941a53.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/941a53.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureSampleLevel(texture: texture_depth_cube_array, sampler: sampler, coords: vec3<f32>, array_index: u32, level: u32) -> f32
 fn textureSampleLevel_941a53() {
-  var res: f32 = textureSampleLevel(arg_0, arg_1, vec3<f32>(), 1u, 1u);
+  var res: f32 = textureSampleLevel(arg_0, arg_1, vec3<f32>(1.f), 1u, 1u);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/941a53.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/941a53.wgsl.expected.dxc.hlsl
index 45085b5..b69f521 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/941a53.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/941a53.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleLevel_941a53() {
-  float res = arg_0.SampleLevel(arg_1, float4(0.0f, 0.0f, 0.0f, float(1u)), 1u).x;
+  float res = arg_0.SampleLevel(arg_1, float4((1.0f).xxx, float(1u)), 1u).x;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/941a53.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/941a53.wgsl.expected.fxc.hlsl
index 45085b5..b69f521 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/941a53.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/941a53.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleLevel_941a53() {
-  float res = arg_0.SampleLevel(arg_1, float4(0.0f, 0.0f, 0.0f, float(1u)), 1u).x;
+  float res = arg_0.SampleLevel(arg_1, float4((1.0f).xxx, float(1u)), 1u).x;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/941a53.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureSampleLevel/941a53.wgsl.expected.msl
index 148a594..ae0a450 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/941a53.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/941a53.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureSampleLevel_941a53(depthcube_array<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float res = tint_symbol_1.sample(tint_symbol_2, float3(0.0f), 1u, level(1u));
+  float res = tint_symbol_1.sample(tint_symbol_2, float3(1.0f), 1u, level(1u));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/941a53.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSampleLevel/941a53.wgsl.expected.spvasm
index 5bc015b..30fc42f 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/941a53.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/941a53.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 47
+; Bound: 51
 ; Schema: 0
                OpCapability Shader
                OpCapability SampledCubeArray
@@ -44,45 +44,49 @@
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
          %23 = OpTypeSampledImage %11
-    %float_0 = OpConstant %float 0
+    %v3float = OpTypeVector %float 3
+    %float_1 = OpConstant %float 1
+         %27 = OpConstantComposite %v3float %float_1 %float_1 %float_1
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_float = OpTypePointer Function %float
-         %33 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %38 = OpTypeFunction %v4float
 %textureSampleLevel_941a53 = OpFunction %void None %15
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_float Function %8
          %21 = OpLoad %14 %arg_1
          %22 = OpLoad %11 %arg_0
          %24 = OpSampledImage %23 %22 %21
-         %26 = OpConvertUToF %float %uint_1
-         %29 = OpCompositeConstruct %v4float %float_0 %float_0 %float_0 %26
-         %30 = OpConvertSToF %float %uint_1
-         %20 = OpImageSampleExplicitLod %v4float %24 %29 Lod %30
+         %28 = OpCompositeExtract %float %27 0
+         %29 = OpCompositeExtract %float %27 1
+         %30 = OpCompositeExtract %float %27 2
+         %31 = OpConvertUToF %float %uint_1
+         %34 = OpCompositeConstruct %v4float %28 %29 %30 %31
+         %35 = OpConvertSToF %float %uint_1
+         %20 = OpImageSampleExplicitLod %v4float %24 %34 Lod %35
          %19 = OpCompositeExtract %float %20 0
                OpStore %res %19
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %33
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureSampleLevel_941a53
+%vertex_main_inner = OpFunction %v4float None %38
+         %40 = OpLabel
+         %41 = OpFunctionCall %void %textureSampleLevel_941a53
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
-         %38 = OpLabel
-         %39 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %39
+         %43 = OpLabel
+         %44 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %44
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %15
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureSampleLevel_941a53
+         %46 = OpLabel
+         %47 = OpFunctionCall %void %textureSampleLevel_941a53
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %15
-         %45 = OpLabel
-         %46 = OpFunctionCall %void %textureSampleLevel_941a53
+         %49 = OpLabel
+         %50 = OpFunctionCall %void %textureSampleLevel_941a53
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/941a53.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSampleLevel/941a53.wgsl.expected.wgsl
index 66ad48b..719add1 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/941a53.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/941a53.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(1) var arg_1 : sampler;
 
 fn textureSampleLevel_941a53() {
-  var res : f32 = textureSampleLevel(arg_0, arg_1, vec3<f32>(), 1u, 1u);
+  var res : f32 = textureSampleLevel(arg_0, arg_1, vec3<f32>(1.0f), 1u, 1u);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/979816.wgsl b/test/tint/builtins/gen/literal/textureSampleLevel/979816.wgsl
index 943d287..8743f47 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/979816.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/979816.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureSampleLevel(texture: texture_external, sampler: sampler, coords: vec2<f32>) -> vec4<f32>
 fn textureSampleLevel_979816() {
-  var res: vec4<f32> = textureSampleLevel(arg_0, arg_1, vec2<f32>());
+  var res: vec4<f32> = textureSampleLevel(arg_0, arg_1, vec2<f32>(1.f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/979816.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/979816.wgsl.expected.dxc.hlsl
index 0d69ae7..02e88ee 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/979816.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/979816.wgsl.expected.dxc.hlsl
@@ -1,5 +1,5 @@
 builtins/gen/literal/textureSampleLevel/979816.wgsl:28:24 warning: use of deprecated builtin
-  var res: vec4<f32> = textureSampleLevel(arg_0, arg_1, vec2<f32>());
+  var res: vec4<f32> = textureSampleLevel(arg_0, arg_1, vec2<f32>(1.f));
                        ^^^^^^^^^^^^^^^^^^
 
 struct GammaTransferParams {
@@ -85,7 +85,7 @@
 }
 
 void textureSampleLevel_979816() {
-  float4 res = textureSampleExternal(arg_0, ext_tex_plane_1, arg_1, (0.0f).xx, tint_symbol_1(ext_tex_params, 0u));
+  float4 res = textureSampleExternal(arg_0, ext_tex_plane_1, arg_1, (1.0f).xx, tint_symbol_1(ext_tex_params, 0u));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/979816.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/979816.wgsl.expected.fxc.hlsl
index 0d69ae7..02e88ee 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/979816.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/979816.wgsl.expected.fxc.hlsl
@@ -1,5 +1,5 @@
 builtins/gen/literal/textureSampleLevel/979816.wgsl:28:24 warning: use of deprecated builtin
-  var res: vec4<f32> = textureSampleLevel(arg_0, arg_1, vec2<f32>());
+  var res: vec4<f32> = textureSampleLevel(arg_0, arg_1, vec2<f32>(1.f));
                        ^^^^^^^^^^^^^^^^^^
 
 struct GammaTransferParams {
@@ -85,7 +85,7 @@
 }
 
 void textureSampleLevel_979816() {
-  float4 res = textureSampleExternal(arg_0, ext_tex_plane_1, arg_1, (0.0f).xx, tint_symbol_1(ext_tex_params, 0u));
+  float4 res = textureSampleExternal(arg_0, ext_tex_plane_1, arg_1, (1.0f).xx, tint_symbol_1(ext_tex_params, 0u));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/979816.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureSampleLevel/979816.wgsl.expected.glsl
index c826300..2edd500 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/979816.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/979816.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 builtins/gen/literal/textureSampleLevel/979816.wgsl:28:24 warning: use of deprecated builtin
-  var res: vec4<f32> = textureSampleLevel(arg_0, arg_1, vec2<f32>());
+  var res: vec4<f32> = textureSampleLevel(arg_0, arg_1, vec2<f32>(1.f));
                        ^^^^^^^^^^^^^^^^^^
 
 #version 310 es
@@ -54,7 +54,7 @@
 uniform highp sampler2D arg_0_arg_1;
 uniform highp sampler2D ext_tex_plane_1_arg_1;
 void textureSampleLevel_979816() {
-  vec4 res = textureSampleExternal(arg_0_arg_1, ext_tex_plane_1_arg_1, vec2(0.0f), ext_tex_params.inner);
+  vec4 res = textureSampleExternal(arg_0_arg_1, ext_tex_plane_1_arg_1, vec2(1.0f), ext_tex_params.inner);
 }
 
 vec4 vertex_main() {
@@ -123,7 +123,7 @@
 uniform highp sampler2D arg_0_arg_1;
 uniform highp sampler2D ext_tex_plane_1_arg_1;
 void textureSampleLevel_979816() {
-  vec4 res = textureSampleExternal(arg_0_arg_1, ext_tex_plane_1_arg_1, vec2(0.0f), ext_tex_params.inner);
+  vec4 res = textureSampleExternal(arg_0_arg_1, ext_tex_plane_1_arg_1, vec2(1.0f), ext_tex_params.inner);
 }
 
 void fragment_main() {
@@ -186,7 +186,7 @@
 uniform highp sampler2D arg_0_arg_1;
 uniform highp sampler2D ext_tex_plane_1_arg_1;
 void textureSampleLevel_979816() {
-  vec4 res = textureSampleExternal(arg_0_arg_1, ext_tex_plane_1_arg_1, vec2(0.0f), ext_tex_params.inner);
+  vec4 res = textureSampleExternal(arg_0_arg_1, ext_tex_plane_1_arg_1, vec2(1.0f), ext_tex_params.inner);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/979816.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureSampleLevel/979816.wgsl.expected.msl
index 1d078bb..3820718 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/979816.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/979816.wgsl.expected.msl
@@ -1,5 +1,5 @@
 builtins/gen/literal/textureSampleLevel/979816.wgsl:28:24 warning: use of deprecated builtin
-  var res: vec4<f32> = textureSampleLevel(arg_0, arg_1, vec2<f32>());
+  var res: vec4<f32> = textureSampleLevel(arg_0, arg_1, vec2<f32>(1.f));
                        ^^^^^^^^^^^^^^^^^^
 
 #include <metal_stdlib>
@@ -62,7 +62,7 @@
 }
 
 void textureSampleLevel_979816(texture2d<float, access::sample> tint_symbol_1, texture2d<float, access::sample> tint_symbol_2, sampler tint_symbol_3, const constant ExternalTextureParams* const tint_symbol_4) {
-  float4 res = textureSampleExternal(tint_symbol_1, tint_symbol_2, tint_symbol_3, float2(0.0f), *(tint_symbol_4));
+  float4 res = textureSampleExternal(tint_symbol_1, tint_symbol_2, tint_symbol_3, float2(1.0f), *(tint_symbol_4));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/979816.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSampleLevel/979816.wgsl.expected.spvasm
index e513142..8842b64 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/979816.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/979816.wgsl.expected.spvasm
@@ -1,5 +1,5 @@
 builtins/gen/literal/textureSampleLevel/979816.wgsl:28:24 warning: use of deprecated builtin
-  var res: vec4<f32> = textureSampleLevel(arg_0, arg_1, vec2<f32>());
+  var res: vec4<f32> = textureSampleLevel(arg_0, arg_1, vec2<f32>(1.f));
                        ^^^^^^^^^^^^^^^^^^
 
 ; SPIR-V
@@ -123,7 +123,7 @@
          %98 = OpConstantNull %uint
        %void = OpTypeVoid
         %116 = OpTypeFunction %void
-        %124 = OpConstantNull %v2float
+        %124 = OpConstantComposite %v2float %float_1 %float_1
      %uint_0 = OpConstant %uint 0
 %_ptr_Uniform_ExternalTextureParams = OpTypePointer Uniform %ExternalTextureParams
 %_ptr_Function_v4float = OpTypePointer Function %v4float
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/979816.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSampleLevel/979816.wgsl.expected.wgsl
index 5e78e84..db84787 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/979816.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/979816.wgsl.expected.wgsl
@@ -1,5 +1,5 @@
 builtins/gen/literal/textureSampleLevel/979816.wgsl:28:24 warning: use of deprecated builtin
-  var res: vec4<f32> = textureSampleLevel(arg_0, arg_1, vec2<f32>());
+  var res: vec4<f32> = textureSampleLevel(arg_0, arg_1, vec2<f32>(1.f));
                        ^^^^^^^^^^^^^^^^^^
 
 @group(1) @binding(0) var arg_0 : texture_external;
@@ -7,7 +7,7 @@
 @group(1) @binding(1) var arg_1 : sampler;
 
 fn textureSampleLevel_979816() {
-  var res : vec4<f32> = textureSampleLevel(arg_0, arg_1, vec2<f32>());
+  var res : vec4<f32> = textureSampleLevel(arg_0, arg_1, vec2<f32>(1.0f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/a12142.wgsl b/test/tint/builtins/gen/literal/textureSampleLevel/a12142.wgsl
index d02337a..00c7285 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/a12142.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/a12142.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureSampleLevel(texture: texture_depth_cube_array, sampler: sampler, coords: vec3<f32>, array_index: i32, level: u32) -> f32
 fn textureSampleLevel_a12142() {
-  var res: f32 = textureSampleLevel(arg_0, arg_1, vec3<f32>(), 1i, 1u);
+  var res: f32 = textureSampleLevel(arg_0, arg_1, vec3<f32>(1.f), 1i, 1u);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/a12142.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/a12142.wgsl.expected.dxc.hlsl
index 881bbdb..e4c44df 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/a12142.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/a12142.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleLevel_a12142() {
-  float res = arg_0.SampleLevel(arg_1, float4(0.0f, 0.0f, 0.0f, float(1)), 1u).x;
+  float res = arg_0.SampleLevel(arg_1, float4((1.0f).xxx, float(1)), 1u).x;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/a12142.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/a12142.wgsl.expected.fxc.hlsl
index 881bbdb..e4c44df 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/a12142.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/a12142.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleLevel_a12142() {
-  float res = arg_0.SampleLevel(arg_1, float4(0.0f, 0.0f, 0.0f, float(1)), 1u).x;
+  float res = arg_0.SampleLevel(arg_1, float4((1.0f).xxx, float(1)), 1u).x;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/a12142.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureSampleLevel/a12142.wgsl.expected.msl
index e2e6c7d..f97f541 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/a12142.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/a12142.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureSampleLevel_a12142(depthcube_array<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float res = tint_symbol_1.sample(tint_symbol_2, float3(0.0f), 1, level(1u));
+  float res = tint_symbol_1.sample(tint_symbol_2, float3(1.0f), 1, level(1u));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/a12142.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSampleLevel/a12142.wgsl.expected.spvasm
index e3114b3..2122eec 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/a12142.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/a12142.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 49
+; Bound: 53
 ; Schema: 0
                OpCapability Shader
                OpCapability SampledCubeArray
@@ -44,47 +44,51 @@
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
          %23 = OpTypeSampledImage %11
-    %float_0 = OpConstant %float 0
+    %v3float = OpTypeVector %float 3
+    %float_1 = OpConstant %float 1
+         %27 = OpConstantComposite %v3float %float_1 %float_1 %float_1
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_float = OpTypePointer Function %float
-         %35 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %40 = OpTypeFunction %v4float
 %textureSampleLevel_a12142 = OpFunction %void None %15
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_float Function %8
          %21 = OpLoad %14 %arg_1
          %22 = OpLoad %11 %arg_0
          %24 = OpSampledImage %23 %22 %21
-         %26 = OpConvertSToF %float %int_1
-         %29 = OpCompositeConstruct %v4float %float_0 %float_0 %float_0 %26
-         %30 = OpConvertSToF %float %uint_1
-         %20 = OpImageSampleExplicitLod %v4float %24 %29 Lod %30
+         %28 = OpCompositeExtract %float %27 0
+         %29 = OpCompositeExtract %float %27 1
+         %30 = OpCompositeExtract %float %27 2
+         %31 = OpConvertSToF %float %int_1
+         %34 = OpCompositeConstruct %v4float %28 %29 %30 %31
+         %35 = OpConvertSToF %float %uint_1
+         %20 = OpImageSampleExplicitLod %v4float %24 %34 Lod %35
          %19 = OpCompositeExtract %float %20 0
                OpStore %res %19
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %35
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureSampleLevel_a12142
+%vertex_main_inner = OpFunction %v4float None %40
+         %42 = OpLabel
+         %43 = OpFunctionCall %void %textureSampleLevel_a12142
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
-         %40 = OpLabel
-         %41 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %41
+         %45 = OpLabel
+         %46 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %46
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %15
-         %44 = OpLabel
-         %45 = OpFunctionCall %void %textureSampleLevel_a12142
+         %48 = OpLabel
+         %49 = OpFunctionCall %void %textureSampleLevel_a12142
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %15
-         %47 = OpLabel
-         %48 = OpFunctionCall %void %textureSampleLevel_a12142
+         %51 = OpLabel
+         %52 = OpFunctionCall %void %textureSampleLevel_a12142
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/a12142.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSampleLevel/a12142.wgsl.expected.wgsl
index 6644810..4e2fc47 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/a12142.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/a12142.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(1) var arg_1 : sampler;
 
 fn textureSampleLevel_a12142() {
-  var res : f32 = textureSampleLevel(arg_0, arg_1, vec3<f32>(), 1i, 1u);
+  var res : f32 = textureSampleLevel(arg_0, arg_1, vec3<f32>(1.0f), 1i, 1u);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/aab3b9.wgsl b/test/tint/builtins/gen/literal/textureSampleLevel/aab3b9.wgsl
index 47bc418..1bf1c31 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/aab3b9.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/aab3b9.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureSampleLevel(texture: texture_cube_array<f32>, sampler: sampler, coords: vec3<f32>, array_index: u32, level: f32) -> vec4<f32>
 fn textureSampleLevel_aab3b9() {
-  var res: vec4<f32> = textureSampleLevel(arg_0, arg_1, vec3<f32>(), 1u, 1.f);
+  var res: vec4<f32> = textureSampleLevel(arg_0, arg_1, vec3<f32>(1.f), 1u, 1.f);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/aab3b9.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/aab3b9.wgsl.expected.dxc.hlsl
index 3ff9d7d..f7a6308 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/aab3b9.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/aab3b9.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleLevel_aab3b9() {
-  float4 res = arg_0.SampleLevel(arg_1, float4(0.0f, 0.0f, 0.0f, float(1u)), 1.0f);
+  float4 res = arg_0.SampleLevel(arg_1, float4((1.0f).xxx, float(1u)), 1.0f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/aab3b9.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/aab3b9.wgsl.expected.fxc.hlsl
index 3ff9d7d..f7a6308 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/aab3b9.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/aab3b9.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleLevel_aab3b9() {
-  float4 res = arg_0.SampleLevel(arg_1, float4(0.0f, 0.0f, 0.0f, float(1u)), 1.0f);
+  float4 res = arg_0.SampleLevel(arg_1, float4((1.0f).xxx, float(1u)), 1.0f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/aab3b9.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureSampleLevel/aab3b9.wgsl.expected.msl
index e1f41e0..4fa3fa2 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/aab3b9.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/aab3b9.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureSampleLevel_aab3b9(texturecube_array<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float4 res = tint_symbol_1.sample(tint_symbol_2, float3(0.0f), 1u, level(1.0f));
+  float4 res = tint_symbol_1.sample(tint_symbol_2, float3(1.0f), 1u, level(1.0f));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/aab3b9.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSampleLevel/aab3b9.wgsl.expected.spvasm
index 272d846..0eb8e9d 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/aab3b9.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/aab3b9.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 45
+; Bound: 49
 ; Schema: 0
                OpCapability Shader
                OpCapability SampledCubeArray
@@ -44,43 +44,47 @@
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
          %22 = OpTypeSampledImage %11
-    %float_0 = OpConstant %float 0
+    %v3float = OpTypeVector %float 3
+    %float_1 = OpConstant %float 1
+         %26 = OpConstantComposite %v3float %float_1 %float_1 %float_1
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
-    %float_1 = OpConstant %float 1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %32 = OpTypeFunction %v4float
+         %36 = OpTypeFunction %v4float
 %textureSampleLevel_aab3b9 = OpFunction %void None %15
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
          %20 = OpLoad %14 %arg_1
          %21 = OpLoad %11 %arg_0
          %23 = OpSampledImage %22 %21 %20
-         %25 = OpConvertUToF %float %uint_1
-         %28 = OpCompositeConstruct %v4float %float_0 %float_0 %float_0 %25
-         %19 = OpImageSampleExplicitLod %v4float %23 %28 Lod %float_1
+         %27 = OpCompositeExtract %float %26 0
+         %28 = OpCompositeExtract %float %26 1
+         %29 = OpCompositeExtract %float %26 2
+         %30 = OpConvertUToF %float %uint_1
+         %33 = OpCompositeConstruct %v4float %27 %28 %29 %30
+         %19 = OpImageSampleExplicitLod %v4float %23 %33 Lod %float_1
                OpStore %res %19
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %32
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureSampleLevel_aab3b9
+%vertex_main_inner = OpFunction %v4float None %36
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %textureSampleLevel_aab3b9
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
-         %37 = OpLabel
-         %38 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %38
+         %41 = OpLabel
+         %42 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %42
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %15
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureSampleLevel_aab3b9
+         %44 = OpLabel
+         %45 = OpFunctionCall %void %textureSampleLevel_aab3b9
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %15
-         %43 = OpLabel
-         %44 = OpFunctionCall %void %textureSampleLevel_aab3b9
+         %47 = OpLabel
+         %48 = OpFunctionCall %void %textureSampleLevel_aab3b9
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/aab3b9.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSampleLevel/aab3b9.wgsl.expected.wgsl
index 237662c..3de46ba 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/aab3b9.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/aab3b9.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(1) var arg_1 : sampler;
 
 fn textureSampleLevel_aab3b9() {
-  var res : vec4<f32> = textureSampleLevel(arg_0, arg_1, vec3<f32>(), 1u, 1.0f);
+  var res : vec4<f32> = textureSampleLevel(arg_0, arg_1, vec3<f32>(1.0f), 1u, 1.0f);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/abfcc0.wgsl b/test/tint/builtins/gen/literal/textureSampleLevel/abfcc0.wgsl
index 25468bf..1a5dae4 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/abfcc0.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/abfcc0.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureSampleLevel(texture: texture_3d<f32>, sampler: sampler, coords: vec3<f32>, level: f32) -> vec4<f32>
 fn textureSampleLevel_abfcc0() {
-  var res: vec4<f32> = textureSampleLevel(arg_0, arg_1, vec3<f32>(), 1.f);
+  var res: vec4<f32> = textureSampleLevel(arg_0, arg_1, vec3<f32>(1.f), 1.f);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/abfcc0.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/abfcc0.wgsl.expected.dxc.hlsl
index 5986ace..b6d9aa9 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/abfcc0.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/abfcc0.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleLevel_abfcc0() {
-  float4 res = arg_0.SampleLevel(arg_1, (0.0f).xxx, 1.0f);
+  float4 res = arg_0.SampleLevel(arg_1, (1.0f).xxx, 1.0f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/abfcc0.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/abfcc0.wgsl.expected.fxc.hlsl
index 5986ace..b6d9aa9 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/abfcc0.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/abfcc0.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleLevel_abfcc0() {
-  float4 res = arg_0.SampleLevel(arg_1, (0.0f).xxx, 1.0f);
+  float4 res = arg_0.SampleLevel(arg_1, (1.0f).xxx, 1.0f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/abfcc0.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureSampleLevel/abfcc0.wgsl.expected.glsl
index 866afa3..709cf7e 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/abfcc0.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/abfcc0.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 uniform highp sampler3D arg_0_arg_1;
 
 void textureSampleLevel_abfcc0() {
-  vec4 res = textureLod(arg_0_arg_1, vec3(0.0f), 1.0f);
+  vec4 res = textureLod(arg_0_arg_1, vec3(1.0f), 1.0f);
 }
 
 vec4 vertex_main() {
@@ -25,7 +25,7 @@
 uniform highp sampler3D arg_0_arg_1;
 
 void textureSampleLevel_abfcc0() {
-  vec4 res = textureLod(arg_0_arg_1, vec3(0.0f), 1.0f);
+  vec4 res = textureLod(arg_0_arg_1, vec3(1.0f), 1.0f);
 }
 
 void fragment_main() {
@@ -41,7 +41,7 @@
 uniform highp sampler3D arg_0_arg_1;
 
 void textureSampleLevel_abfcc0() {
-  vec4 res = textureLod(arg_0_arg_1, vec3(0.0f), 1.0f);
+  vec4 res = textureLod(arg_0_arg_1, vec3(1.0f), 1.0f);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/abfcc0.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureSampleLevel/abfcc0.wgsl.expected.msl
index 26f2cb2..c5b55d1 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/abfcc0.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/abfcc0.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureSampleLevel_abfcc0(texture3d<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float4 res = tint_symbol_1.sample(tint_symbol_2, float3(0.0f), level(1.0f));
+  float4 res = tint_symbol_1.sample(tint_symbol_2, float3(1.0f), level(1.0f));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/abfcc0.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSampleLevel/abfcc0.wgsl.expected.spvasm
index e86f2fb..f1c7a85 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/abfcc0.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/abfcc0.wgsl.expected.spvasm
@@ -44,8 +44,8 @@
          %15 = OpTypeFunction %void
          %22 = OpTypeSampledImage %11
     %v3float = OpTypeVector %float 3
-         %25 = OpConstantNull %v3float
     %float_1 = OpConstant %float 1
+         %26 = OpConstantComposite %v3float %float_1 %float_1 %float_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
          %29 = OpTypeFunction %v4float
 %textureSampleLevel_abfcc0 = OpFunction %void None %15
@@ -54,7 +54,7 @@
          %20 = OpLoad %14 %arg_1
          %21 = OpLoad %11 %arg_0
          %23 = OpSampledImage %22 %21 %20
-         %19 = OpImageSampleExplicitLod %v4float %23 %25 Lod %float_1
+         %19 = OpImageSampleExplicitLod %v4float %23 %26 Lod %float_1
                OpStore %res %19
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/abfcc0.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSampleLevel/abfcc0.wgsl.expected.wgsl
index b7ef5ae..adffde9 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/abfcc0.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/abfcc0.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(1) var arg_1 : sampler;
 
 fn textureSampleLevel_abfcc0() {
-  var res : vec4<f32> = textureSampleLevel(arg_0, arg_1, vec3<f32>(), 1.0f);
+  var res : vec4<f32> = textureSampleLevel(arg_0, arg_1, vec3<f32>(1.0f), 1.0f);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/ae5e39.wgsl b/test/tint/builtins/gen/literal/textureSampleLevel/ae5e39.wgsl
index 1321449..4e72aec 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/ae5e39.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/ae5e39.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureSampleLevel(texture: texture_depth_cube_array, sampler: sampler, coords: vec3<f32>, array_index: i32, level: i32) -> f32
 fn textureSampleLevel_ae5e39() {
-  var res: f32 = textureSampleLevel(arg_0, arg_1, vec3<f32>(), 1i, 1i);
+  var res: f32 = textureSampleLevel(arg_0, arg_1, vec3<f32>(1.f), 1i, 1i);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/ae5e39.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/ae5e39.wgsl.expected.dxc.hlsl
index 2a89840..5515700 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/ae5e39.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/ae5e39.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleLevel_ae5e39() {
-  float res = arg_0.SampleLevel(arg_1, float4(0.0f, 0.0f, 0.0f, float(1)), 1).x;
+  float res = arg_0.SampleLevel(arg_1, float4((1.0f).xxx, float(1)), 1).x;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/ae5e39.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/ae5e39.wgsl.expected.fxc.hlsl
index 2a89840..5515700 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/ae5e39.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/ae5e39.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleLevel_ae5e39() {
-  float res = arg_0.SampleLevel(arg_1, float4(0.0f, 0.0f, 0.0f, float(1)), 1).x;
+  float res = arg_0.SampleLevel(arg_1, float4((1.0f).xxx, float(1)), 1).x;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/ae5e39.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureSampleLevel/ae5e39.wgsl.expected.msl
index 7f710a2..1e48987 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/ae5e39.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/ae5e39.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureSampleLevel_ae5e39(depthcube_array<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float res = tint_symbol_1.sample(tint_symbol_2, float3(0.0f), 1, level(1));
+  float res = tint_symbol_1.sample(tint_symbol_2, float3(1.0f), 1, level(1));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/ae5e39.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSampleLevel/ae5e39.wgsl.expected.spvasm
index e6ebe89..68f32e3 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/ae5e39.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/ae5e39.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 47
+; Bound: 51
 ; Schema: 0
                OpCapability Shader
                OpCapability SampledCubeArray
@@ -44,45 +44,49 @@
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
          %23 = OpTypeSampledImage %11
-    %float_0 = OpConstant %float 0
+    %v3float = OpTypeVector %float 3
+    %float_1 = OpConstant %float 1
+         %27 = OpConstantComposite %v3float %float_1 %float_1 %float_1
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_float = OpTypePointer Function %float
-         %33 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %38 = OpTypeFunction %v4float
 %textureSampleLevel_ae5e39 = OpFunction %void None %15
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_float Function %8
          %21 = OpLoad %14 %arg_1
          %22 = OpLoad %11 %arg_0
          %24 = OpSampledImage %23 %22 %21
-         %26 = OpConvertSToF %float %int_1
-         %29 = OpCompositeConstruct %v4float %float_0 %float_0 %float_0 %26
-         %30 = OpConvertSToF %float %int_1
-         %20 = OpImageSampleExplicitLod %v4float %24 %29 Lod %30
+         %28 = OpCompositeExtract %float %27 0
+         %29 = OpCompositeExtract %float %27 1
+         %30 = OpCompositeExtract %float %27 2
+         %31 = OpConvertSToF %float %int_1
+         %34 = OpCompositeConstruct %v4float %28 %29 %30 %31
+         %35 = OpConvertSToF %float %int_1
+         %20 = OpImageSampleExplicitLod %v4float %24 %34 Lod %35
          %19 = OpCompositeExtract %float %20 0
                OpStore %res %19
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %33
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureSampleLevel_ae5e39
+%vertex_main_inner = OpFunction %v4float None %38
+         %40 = OpLabel
+         %41 = OpFunctionCall %void %textureSampleLevel_ae5e39
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
-         %38 = OpLabel
-         %39 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %39
+         %43 = OpLabel
+         %44 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %44
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %15
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureSampleLevel_ae5e39
+         %46 = OpLabel
+         %47 = OpFunctionCall %void %textureSampleLevel_ae5e39
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %15
-         %45 = OpLabel
-         %46 = OpFunctionCall %void %textureSampleLevel_ae5e39
+         %49 = OpLabel
+         %50 = OpFunctionCall %void %textureSampleLevel_ae5e39
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/ae5e39.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSampleLevel/ae5e39.wgsl.expected.wgsl
index 297a5cf..30a48b2 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/ae5e39.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/ae5e39.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(1) var arg_1 : sampler;
 
 fn textureSampleLevel_ae5e39() {
-  var res : f32 = textureSampleLevel(arg_0, arg_1, vec3<f32>(), 1i, 1i);
+  var res : f32 = textureSampleLevel(arg_0, arg_1, vec3<f32>(1.0f), 1i, 1i);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/ae92a2.wgsl b/test/tint/builtins/gen/literal/textureSampleLevel/ae92a2.wgsl
index c352dee..5360c5e 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/ae92a2.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/ae92a2.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureSampleLevel(texture: texture_depth_cube, sampler: sampler, coords: vec3<f32>, level: u32) -> f32
 fn textureSampleLevel_ae92a2() {
-  var res: f32 = textureSampleLevel(arg_0, arg_1, vec3<f32>(), 1u);
+  var res: f32 = textureSampleLevel(arg_0, arg_1, vec3<f32>(1.f), 1u);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/ae92a2.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/ae92a2.wgsl.expected.dxc.hlsl
index f0daf77..fee35d5 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/ae92a2.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/ae92a2.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleLevel_ae92a2() {
-  float res = arg_0.SampleLevel(arg_1, (0.0f).xxx, 1u).x;
+  float res = arg_0.SampleLevel(arg_1, (1.0f).xxx, 1u).x;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/ae92a2.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/ae92a2.wgsl.expected.fxc.hlsl
index f0daf77..fee35d5 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/ae92a2.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/ae92a2.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleLevel_ae92a2() {
-  float res = arg_0.SampleLevel(arg_1, (0.0f).xxx, 1u).x;
+  float res = arg_0.SampleLevel(arg_1, (1.0f).xxx, 1u).x;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/ae92a2.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureSampleLevel/ae92a2.wgsl.expected.msl
index fe37bb0..46e2a3e 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/ae92a2.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/ae92a2.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureSampleLevel_ae92a2(depthcube<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float res = tint_symbol_1.sample(tint_symbol_2, float3(0.0f), level(1u));
+  float res = tint_symbol_1.sample(tint_symbol_2, float3(1.0f), level(1u));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/ae92a2.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSampleLevel/ae92a2.wgsl.expected.spvasm
index 0f6a549..d6313a8 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/ae92a2.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/ae92a2.wgsl.expected.spvasm
@@ -44,33 +44,33 @@
          %15 = OpTypeFunction %void
          %23 = OpTypeSampledImage %11
     %v3float = OpTypeVector %float 3
-         %26 = OpConstantNull %v3float
+    %float_1 = OpConstant %float 1
+         %27 = OpConstantComposite %v3float %float_1 %float_1 %float_1
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_float = OpTypePointer Function %float
-         %32 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %33 = OpTypeFunction %v4float
 %textureSampleLevel_ae92a2 = OpFunction %void None %15
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_float Function %8
          %21 = OpLoad %14 %arg_1
          %22 = OpLoad %11 %arg_0
          %24 = OpSampledImage %23 %22 %21
-         %27 = OpConvertSToF %float %uint_1
-         %20 = OpImageSampleExplicitLod %v4float %24 %26 Lod %27
+         %28 = OpConvertSToF %float %uint_1
+         %20 = OpImageSampleExplicitLod %v4float %24 %27 Lod %28
          %19 = OpCompositeExtract %float %20 0
                OpStore %res %19
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %32
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureSampleLevel_ae92a2
+%vertex_main_inner = OpFunction %v4float None %33
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureSampleLevel_ae92a2
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
-         %37 = OpLabel
-         %38 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %38
+         %38 = OpLabel
+         %39 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %39
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/ae92a2.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSampleLevel/ae92a2.wgsl.expected.wgsl
index c485be4..674aea2 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/ae92a2.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/ae92a2.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(1) var arg_1 : sampler;
 
 fn textureSampleLevel_ae92a2() {
-  var res : f32 = textureSampleLevel(arg_0, arg_1, vec3<f32>(), 1u);
+  var res : f32 = textureSampleLevel(arg_0, arg_1, vec3<f32>(1.0f), 1u);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/b7c55c.wgsl b/test/tint/builtins/gen/literal/textureSampleLevel/b7c55c.wgsl
index d8fefee..911fd7f 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/b7c55c.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/b7c55c.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureSampleLevel(texture: texture_2d_array<f32>, sampler: sampler, coords: vec2<f32>, array_index: i32, level: f32, @const offset: vec2<i32>) -> vec4<f32>
 fn textureSampleLevel_b7c55c() {
-  var res: vec4<f32> = textureSampleLevel(arg_0, arg_1, vec2<f32>(), 1i, 1.f, vec2<i32>());
+  var res: vec4<f32> = textureSampleLevel(arg_0, arg_1, vec2<f32>(1.f), 1i, 1.f, vec2<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/b7c55c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/b7c55c.wgsl.expected.dxc.hlsl
index 2f3441f..040aa64 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/b7c55c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/b7c55c.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleLevel_b7c55c() {
-  float4 res = arg_0.SampleLevel(arg_1, float3(0.0f, 0.0f, float(1)), 1.0f, (0).xx);
+  float4 res = arg_0.SampleLevel(arg_1, float3((1.0f).xx, float(1)), 1.0f, (1).xx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/b7c55c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/b7c55c.wgsl.expected.fxc.hlsl
index 2f3441f..040aa64 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/b7c55c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/b7c55c.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleLevel_b7c55c() {
-  float4 res = arg_0.SampleLevel(arg_1, float3(0.0f, 0.0f, float(1)), 1.0f, (0).xx);
+  float4 res = arg_0.SampleLevel(arg_1, float3((1.0f).xx, float(1)), 1.0f, (1).xx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/b7c55c.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureSampleLevel/b7c55c.wgsl.expected.glsl
index 31e5704..90dbca9 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/b7c55c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/b7c55c.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 uniform highp sampler2DArray arg_0_arg_1;
 
 void textureSampleLevel_b7c55c() {
-  vec4 res = textureLodOffset(arg_0_arg_1, vec3(0.0f, 0.0f, float(1)), 1.0f, ivec2(0));
+  vec4 res = textureLodOffset(arg_0_arg_1, vec3(vec2(1.0f), float(1)), 1.0f, ivec2(1));
 }
 
 vec4 vertex_main() {
@@ -25,7 +25,7 @@
 uniform highp sampler2DArray arg_0_arg_1;
 
 void textureSampleLevel_b7c55c() {
-  vec4 res = textureLodOffset(arg_0_arg_1, vec3(0.0f, 0.0f, float(1)), 1.0f, ivec2(0));
+  vec4 res = textureLodOffset(arg_0_arg_1, vec3(vec2(1.0f), float(1)), 1.0f, ivec2(1));
 }
 
 void fragment_main() {
@@ -41,7 +41,7 @@
 uniform highp sampler2DArray arg_0_arg_1;
 
 void textureSampleLevel_b7c55c() {
-  vec4 res = textureLodOffset(arg_0_arg_1, vec3(0.0f, 0.0f, float(1)), 1.0f, ivec2(0));
+  vec4 res = textureLodOffset(arg_0_arg_1, vec3(vec2(1.0f), float(1)), 1.0f, ivec2(1));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/b7c55c.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureSampleLevel/b7c55c.wgsl.expected.msl
index 8847f18..c0c5d55 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/b7c55c.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/b7c55c.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureSampleLevel_b7c55c(texture2d_array<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float4 res = tint_symbol_1.sample(tint_symbol_2, float2(0.0f), 1, level(1.0f), int2(0));
+  float4 res = tint_symbol_1.sample(tint_symbol_2, float2(1.0f), 1, level(1.0f), int2(1));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/b7c55c.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSampleLevel/b7c55c.wgsl.expected.spvasm
index 2f00723..da6f290 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/b7c55c.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/b7c55c.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 48
+; Bound: 51
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -44,45 +44,48 @@
          %15 = OpTypeFunction %void
          %22 = OpTypeSampledImage %11
     %v3float = OpTypeVector %float 3
-    %float_0 = OpConstant %float 0
+    %v2float = OpTypeVector %float 2
+    %float_1 = OpConstant %float 1
+         %27 = OpConstantComposite %v2float %float_1 %float_1
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
-    %float_1 = OpConstant %float 1
       %v2int = OpTypeVector %int 2
-         %32 = OpConstantNull %v2int
+         %35 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %35 = OpTypeFunction %v4float
+         %38 = OpTypeFunction %v4float
 %textureSampleLevel_b7c55c = OpFunction %void None %15
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
          %20 = OpLoad %14 %arg_1
          %21 = OpLoad %11 %arg_0
          %23 = OpSampledImage %22 %21 %20
-         %26 = OpConvertSToF %float %int_1
-         %29 = OpCompositeConstruct %v3float %float_0 %float_0 %26
-         %19 = OpImageSampleExplicitLod %v4float %23 %29 Lod|ConstOffset %float_1 %32
+         %28 = OpCompositeExtract %float %27 0
+         %29 = OpCompositeExtract %float %27 1
+         %30 = OpConvertSToF %float %int_1
+         %33 = OpCompositeConstruct %v3float %28 %29 %30
+         %19 = OpImageSampleExplicitLod %v4float %23 %33 Lod|ConstOffset %float_1 %35
                OpStore %res %19
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %35
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureSampleLevel_b7c55c
+%vertex_main_inner = OpFunction %v4float None %38
+         %40 = OpLabel
+         %41 = OpFunctionCall %void %textureSampleLevel_b7c55c
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
-         %40 = OpLabel
-         %41 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %41
+         %43 = OpLabel
+         %44 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %44
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %15
-         %43 = OpLabel
-         %44 = OpFunctionCall %void %textureSampleLevel_b7c55c
+         %46 = OpLabel
+         %47 = OpFunctionCall %void %textureSampleLevel_b7c55c
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %15
-         %46 = OpLabel
-         %47 = OpFunctionCall %void %textureSampleLevel_b7c55c
+         %49 = OpLabel
+         %50 = OpFunctionCall %void %textureSampleLevel_b7c55c
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/b7c55c.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSampleLevel/b7c55c.wgsl.expected.wgsl
index b4b4642..b156633 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/b7c55c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/b7c55c.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(1) var arg_1 : sampler;
 
 fn textureSampleLevel_b7c55c() {
-  var res : vec4<f32> = textureSampleLevel(arg_0, arg_1, vec2<f32>(), 1i, 1.0f, vec2<i32>());
+  var res : vec4<f32> = textureSampleLevel(arg_0, arg_1, vec2<f32>(1.0f), 1i, 1.0f, vec2<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/c32df7.wgsl b/test/tint/builtins/gen/literal/textureSampleLevel/c32df7.wgsl
index bb02ef2..dcb31e4 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/c32df7.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/c32df7.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureSampleLevel(texture: texture_cube<f32>, sampler: sampler, coords: vec3<f32>, level: f32) -> vec4<f32>
 fn textureSampleLevel_c32df7() {
-  var res: vec4<f32> = textureSampleLevel(arg_0, arg_1, vec3<f32>(), 1.f);
+  var res: vec4<f32> = textureSampleLevel(arg_0, arg_1, vec3<f32>(1.f), 1.f);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/c32df7.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/c32df7.wgsl.expected.dxc.hlsl
index d48cf54..aabe9e4 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/c32df7.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/c32df7.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleLevel_c32df7() {
-  float4 res = arg_0.SampleLevel(arg_1, (0.0f).xxx, 1.0f);
+  float4 res = arg_0.SampleLevel(arg_1, (1.0f).xxx, 1.0f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/c32df7.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/c32df7.wgsl.expected.fxc.hlsl
index d48cf54..aabe9e4 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/c32df7.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/c32df7.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleLevel_c32df7() {
-  float4 res = arg_0.SampleLevel(arg_1, (0.0f).xxx, 1.0f);
+  float4 res = arg_0.SampleLevel(arg_1, (1.0f).xxx, 1.0f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/c32df7.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureSampleLevel/c32df7.wgsl.expected.glsl
index af5177b..4d75927 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/c32df7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/c32df7.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 uniform highp samplerCube arg_0_arg_1;
 
 void textureSampleLevel_c32df7() {
-  vec4 res = textureLod(arg_0_arg_1, vec3(0.0f), 1.0f);
+  vec4 res = textureLod(arg_0_arg_1, vec3(1.0f), 1.0f);
 }
 
 vec4 vertex_main() {
@@ -25,7 +25,7 @@
 uniform highp samplerCube arg_0_arg_1;
 
 void textureSampleLevel_c32df7() {
-  vec4 res = textureLod(arg_0_arg_1, vec3(0.0f), 1.0f);
+  vec4 res = textureLod(arg_0_arg_1, vec3(1.0f), 1.0f);
 }
 
 void fragment_main() {
@@ -41,7 +41,7 @@
 uniform highp samplerCube arg_0_arg_1;
 
 void textureSampleLevel_c32df7() {
-  vec4 res = textureLod(arg_0_arg_1, vec3(0.0f), 1.0f);
+  vec4 res = textureLod(arg_0_arg_1, vec3(1.0f), 1.0f);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/c32df7.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureSampleLevel/c32df7.wgsl.expected.msl
index d6a2800..bafe9af 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/c32df7.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/c32df7.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureSampleLevel_c32df7(texturecube<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float4 res = tint_symbol_1.sample(tint_symbol_2, float3(0.0f), level(1.0f));
+  float4 res = tint_symbol_1.sample(tint_symbol_2, float3(1.0f), level(1.0f));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/c32df7.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSampleLevel/c32df7.wgsl.expected.spvasm
index 5daeeb2..d76fe25 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/c32df7.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/c32df7.wgsl.expected.spvasm
@@ -44,8 +44,8 @@
          %15 = OpTypeFunction %void
          %22 = OpTypeSampledImage %11
     %v3float = OpTypeVector %float 3
-         %25 = OpConstantNull %v3float
     %float_1 = OpConstant %float 1
+         %26 = OpConstantComposite %v3float %float_1 %float_1 %float_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
          %29 = OpTypeFunction %v4float
 %textureSampleLevel_c32df7 = OpFunction %void None %15
@@ -54,7 +54,7 @@
          %20 = OpLoad %14 %arg_1
          %21 = OpLoad %11 %arg_0
          %23 = OpSampledImage %22 %21 %20
-         %19 = OpImageSampleExplicitLod %v4float %23 %25 Lod %float_1
+         %19 = OpImageSampleExplicitLod %v4float %23 %26 Lod %float_1
                OpStore %res %19
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/c32df7.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSampleLevel/c32df7.wgsl.expected.wgsl
index 3aaea11..83ec451 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/c32df7.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/c32df7.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(1) var arg_1 : sampler;
 
 fn textureSampleLevel_c32df7() {
-  var res : vec4<f32> = textureSampleLevel(arg_0, arg_1, vec3<f32>(), 1.0f);
+  var res : vec4<f32> = textureSampleLevel(arg_0, arg_1, vec3<f32>(1.0f), 1.0f);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/c6aca6.wgsl b/test/tint/builtins/gen/literal/textureSampleLevel/c6aca6.wgsl
index 7874b9b..8017850 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/c6aca6.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/c6aca6.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureSampleLevel(texture: texture_2d<f32>, sampler: sampler, coords: vec2<f32>, level: f32) -> vec4<f32>
 fn textureSampleLevel_c6aca6() {
-  var res: vec4<f32> = textureSampleLevel(arg_0, arg_1, vec2<f32>(), 1.f);
+  var res: vec4<f32> = textureSampleLevel(arg_0, arg_1, vec2<f32>(1.f), 1.f);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/c6aca6.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/c6aca6.wgsl.expected.dxc.hlsl
index 4455778..7fe645b 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/c6aca6.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/c6aca6.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleLevel_c6aca6() {
-  float4 res = arg_0.SampleLevel(arg_1, (0.0f).xx, 1.0f);
+  float4 res = arg_0.SampleLevel(arg_1, (1.0f).xx, 1.0f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/c6aca6.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/c6aca6.wgsl.expected.fxc.hlsl
index 4455778..7fe645b 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/c6aca6.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/c6aca6.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleLevel_c6aca6() {
-  float4 res = arg_0.SampleLevel(arg_1, (0.0f).xx, 1.0f);
+  float4 res = arg_0.SampleLevel(arg_1, (1.0f).xx, 1.0f);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/c6aca6.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureSampleLevel/c6aca6.wgsl.expected.glsl
index b2e3dd0..62c64c1 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/c6aca6.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/c6aca6.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 uniform highp sampler2D arg_0_arg_1;
 
 void textureSampleLevel_c6aca6() {
-  vec4 res = textureLod(arg_0_arg_1, vec2(0.0f), 1.0f);
+  vec4 res = textureLod(arg_0_arg_1, vec2(1.0f), 1.0f);
 }
 
 vec4 vertex_main() {
@@ -25,7 +25,7 @@
 uniform highp sampler2D arg_0_arg_1;
 
 void textureSampleLevel_c6aca6() {
-  vec4 res = textureLod(arg_0_arg_1, vec2(0.0f), 1.0f);
+  vec4 res = textureLod(arg_0_arg_1, vec2(1.0f), 1.0f);
 }
 
 void fragment_main() {
@@ -41,7 +41,7 @@
 uniform highp sampler2D arg_0_arg_1;
 
 void textureSampleLevel_c6aca6() {
-  vec4 res = textureLod(arg_0_arg_1, vec2(0.0f), 1.0f);
+  vec4 res = textureLod(arg_0_arg_1, vec2(1.0f), 1.0f);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/c6aca6.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureSampleLevel/c6aca6.wgsl.expected.msl
index a24cb0f..4797165 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/c6aca6.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/c6aca6.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureSampleLevel_c6aca6(texture2d<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float4 res = tint_symbol_1.sample(tint_symbol_2, float2(0.0f), level(1.0f));
+  float4 res = tint_symbol_1.sample(tint_symbol_2, float2(1.0f), level(1.0f));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/c6aca6.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSampleLevel/c6aca6.wgsl.expected.spvasm
index 7a94097..9dd42e1 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/c6aca6.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/c6aca6.wgsl.expected.spvasm
@@ -44,8 +44,8 @@
          %15 = OpTypeFunction %void
          %22 = OpTypeSampledImage %11
     %v2float = OpTypeVector %float 2
-         %25 = OpConstantNull %v2float
     %float_1 = OpConstant %float 1
+         %26 = OpConstantComposite %v2float %float_1 %float_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
          %29 = OpTypeFunction %v4float
 %textureSampleLevel_c6aca6 = OpFunction %void None %15
@@ -54,7 +54,7 @@
          %20 = OpLoad %14 %arg_1
          %21 = OpLoad %11 %arg_0
          %23 = OpSampledImage %22 %21 %20
-         %19 = OpImageSampleExplicitLod %v4float %23 %25 Lod %float_1
+         %19 = OpImageSampleExplicitLod %v4float %23 %26 Lod %float_1
                OpStore %res %19
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/c6aca6.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSampleLevel/c6aca6.wgsl.expected.wgsl
index 535b735..256eda0 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/c6aca6.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/c6aca6.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(1) var arg_1 : sampler;
 
 fn textureSampleLevel_c6aca6() {
-  var res : vec4<f32> = textureSampleLevel(arg_0, arg_1, vec2<f32>(), 1.0f);
+  var res : vec4<f32> = textureSampleLevel(arg_0, arg_1, vec2<f32>(1.0f), 1.0f);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/cdfe0f.wgsl b/test/tint/builtins/gen/literal/textureSampleLevel/cdfe0f.wgsl
index 5f1ee66..218f8be 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/cdfe0f.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/cdfe0f.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureSampleLevel(texture: texture_depth_2d_array, sampler: sampler, coords: vec2<f32>, array_index: u32, level: u32, @const offset: vec2<i32>) -> f32
 fn textureSampleLevel_cdfe0f() {
-  var res: f32 = textureSampleLevel(arg_0, arg_1, vec2<f32>(), 1u, 1u, vec2<i32>());
+  var res: f32 = textureSampleLevel(arg_0, arg_1, vec2<f32>(1.f), 1u, 1u, vec2<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/cdfe0f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/cdfe0f.wgsl.expected.dxc.hlsl
index 749bfc8..d9b4c1e 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/cdfe0f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/cdfe0f.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleLevel_cdfe0f() {
-  float res = arg_0.SampleLevel(arg_1, float3(0.0f, 0.0f, float(1u)), 1u, (0).xx).x;
+  float res = arg_0.SampleLevel(arg_1, float3((1.0f).xx, float(1u)), 1u, (1).xx).x;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/cdfe0f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/cdfe0f.wgsl.expected.fxc.hlsl
index 749bfc8..d9b4c1e 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/cdfe0f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/cdfe0f.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleLevel_cdfe0f() {
-  float res = arg_0.SampleLevel(arg_1, float3(0.0f, 0.0f, float(1u)), 1u, (0).xx).x;
+  float res = arg_0.SampleLevel(arg_1, float3((1.0f).xx, float(1u)), 1u, (1).xx).x;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/cdfe0f.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureSampleLevel/cdfe0f.wgsl.expected.msl
index 693c3f3..5c73085 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/cdfe0f.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/cdfe0f.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureSampleLevel_cdfe0f(depth2d_array<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float res = tint_symbol_1.sample(tint_symbol_2, float2(0.0f), 1u, level(1u), int2(0));
+  float res = tint_symbol_1.sample(tint_symbol_2, float2(1.0f), 1u, level(1u), int2(1));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/cdfe0f.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSampleLevel/cdfe0f.wgsl.expected.spvasm
index 62f94db..9af914c 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/cdfe0f.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/cdfe0f.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 51
+; Bound: 55
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -44,48 +44,52 @@
          %15 = OpTypeFunction %void
          %23 = OpTypeSampledImage %11
     %v3float = OpTypeVector %float 3
-    %float_0 = OpConstant %float 0
+    %v2float = OpTypeVector %float 2
+    %float_1 = OpConstant %float 1
+         %28 = OpConstantComposite %v2float %float_1 %float_1
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
-         %34 = OpConstantNull %v2int
+      %int_1 = OpConstant %int 1
+         %39 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_float = OpTypePointer Function %float
-         %37 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %42 = OpTypeFunction %v4float
 %textureSampleLevel_cdfe0f = OpFunction %void None %15
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_float Function %8
          %21 = OpLoad %14 %arg_1
          %22 = OpLoad %11 %arg_0
          %24 = OpSampledImage %23 %22 %21
-         %27 = OpConvertUToF %float %uint_1
-         %30 = OpCompositeConstruct %v3float %float_0 %float_0 %27
-         %31 = OpConvertSToF %float %uint_1
-         %20 = OpImageSampleExplicitLod %v4float %24 %30 Lod|ConstOffset %31 %34
+         %29 = OpCompositeExtract %float %28 0
+         %30 = OpCompositeExtract %float %28 1
+         %31 = OpConvertUToF %float %uint_1
+         %34 = OpCompositeConstruct %v3float %29 %30 %31
+         %35 = OpConvertSToF %float %uint_1
+         %20 = OpImageSampleExplicitLod %v4float %24 %34 Lod|ConstOffset %35 %39
          %19 = OpCompositeExtract %float %20 0
                OpStore %res %19
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %37
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureSampleLevel_cdfe0f
+%vertex_main_inner = OpFunction %v4float None %42
+         %44 = OpLabel
+         %45 = OpFunctionCall %void %textureSampleLevel_cdfe0f
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
-         %42 = OpLabel
-         %43 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %43
+         %47 = OpLabel
+         %48 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %48
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %15
-         %46 = OpLabel
-         %47 = OpFunctionCall %void %textureSampleLevel_cdfe0f
+         %50 = OpLabel
+         %51 = OpFunctionCall %void %textureSampleLevel_cdfe0f
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %15
-         %49 = OpLabel
-         %50 = OpFunctionCall %void %textureSampleLevel_cdfe0f
+         %53 = OpLabel
+         %54 = OpFunctionCall %void %textureSampleLevel_cdfe0f
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/cdfe0f.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSampleLevel/cdfe0f.wgsl.expected.wgsl
index fa05fe7..afdb69d 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/cdfe0f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/cdfe0f.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(1) var arg_1 : sampler;
 
 fn textureSampleLevel_cdfe0f() {
-  var res : f32 = textureSampleLevel(arg_0, arg_1, vec2<f32>(), 1u, 1u, vec2<i32>());
+  var res : f32 = textureSampleLevel(arg_0, arg_1, vec2<f32>(1.0f), 1u, 1u, vec2<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/dcbecb.wgsl b/test/tint/builtins/gen/literal/textureSampleLevel/dcbecb.wgsl
index 3390f5b..f6ea285 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/dcbecb.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/dcbecb.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureSampleLevel(texture: texture_3d<f32>, sampler: sampler, coords: vec3<f32>, level: f32, @const offset: vec3<i32>) -> vec4<f32>
 fn textureSampleLevel_dcbecb() {
-  var res: vec4<f32> = textureSampleLevel(arg_0, arg_1, vec3<f32>(), 1.f, vec3<i32>());
+  var res: vec4<f32> = textureSampleLevel(arg_0, arg_1, vec3<f32>(1.f), 1.f, vec3<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/dcbecb.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/dcbecb.wgsl.expected.dxc.hlsl
index 806a05f..044f68a 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/dcbecb.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/dcbecb.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleLevel_dcbecb() {
-  float4 res = arg_0.SampleLevel(arg_1, (0.0f).xxx, 1.0f, (0).xxx);
+  float4 res = arg_0.SampleLevel(arg_1, (1.0f).xxx, 1.0f, (1).xxx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/dcbecb.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/dcbecb.wgsl.expected.fxc.hlsl
index 806a05f..044f68a 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/dcbecb.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/dcbecb.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleLevel_dcbecb() {
-  float4 res = arg_0.SampleLevel(arg_1, (0.0f).xxx, 1.0f, (0).xxx);
+  float4 res = arg_0.SampleLevel(arg_1, (1.0f).xxx, 1.0f, (1).xxx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/dcbecb.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureSampleLevel/dcbecb.wgsl.expected.glsl
index 6b2a181..148bef4 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/dcbecb.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/dcbecb.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 uniform highp sampler3D arg_0_arg_1;
 
 void textureSampleLevel_dcbecb() {
-  vec4 res = textureLodOffset(arg_0_arg_1, vec3(0.0f), 1.0f, ivec3(0));
+  vec4 res = textureLodOffset(arg_0_arg_1, vec3(1.0f), 1.0f, ivec3(1));
 }
 
 vec4 vertex_main() {
@@ -25,7 +25,7 @@
 uniform highp sampler3D arg_0_arg_1;
 
 void textureSampleLevel_dcbecb() {
-  vec4 res = textureLodOffset(arg_0_arg_1, vec3(0.0f), 1.0f, ivec3(0));
+  vec4 res = textureLodOffset(arg_0_arg_1, vec3(1.0f), 1.0f, ivec3(1));
 }
 
 void fragment_main() {
@@ -41,7 +41,7 @@
 uniform highp sampler3D arg_0_arg_1;
 
 void textureSampleLevel_dcbecb() {
-  vec4 res = textureLodOffset(arg_0_arg_1, vec3(0.0f), 1.0f, ivec3(0));
+  vec4 res = textureLodOffset(arg_0_arg_1, vec3(1.0f), 1.0f, ivec3(1));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/dcbecb.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureSampleLevel/dcbecb.wgsl.expected.msl
index 2eaac72..47f3e27 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/dcbecb.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/dcbecb.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureSampleLevel_dcbecb(texture3d<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float4 res = tint_symbol_1.sample(tint_symbol_2, float3(0.0f), level(1.0f), int3(0));
+  float4 res = tint_symbol_1.sample(tint_symbol_2, float3(1.0f), level(1.0f), int3(1));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/dcbecb.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSampleLevel/dcbecb.wgsl.expected.spvasm
index 6b3a57e..9a1e533 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/dcbecb.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/dcbecb.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 45
+; Bound: 46
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -44,42 +44,43 @@
          %15 = OpTypeFunction %void
          %22 = OpTypeSampledImage %11
     %v3float = OpTypeVector %float 3
-         %25 = OpConstantNull %v3float
     %float_1 = OpConstant %float 1
+         %26 = OpConstantComposite %v3float %float_1 %float_1 %float_1
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
-         %29 = OpConstantNull %v3int
+      %int_1 = OpConstant %int 1
+         %30 = OpConstantComposite %v3int %int_1 %int_1 %int_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %32 = OpTypeFunction %v4float
+         %33 = OpTypeFunction %v4float
 %textureSampleLevel_dcbecb = OpFunction %void None %15
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
          %20 = OpLoad %14 %arg_1
          %21 = OpLoad %11 %arg_0
          %23 = OpSampledImage %22 %21 %20
-         %19 = OpImageSampleExplicitLod %v4float %23 %25 Lod|ConstOffset %float_1 %29
+         %19 = OpImageSampleExplicitLod %v4float %23 %26 Lod|ConstOffset %float_1 %30
                OpStore %res %19
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %32
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureSampleLevel_dcbecb
+%vertex_main_inner = OpFunction %v4float None %33
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureSampleLevel_dcbecb
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
-         %37 = OpLabel
-         %38 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %38
+         %38 = OpLabel
+         %39 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %39
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %15
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureSampleLevel_dcbecb
+         %41 = OpLabel
+         %42 = OpFunctionCall %void %textureSampleLevel_dcbecb
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %15
-         %43 = OpLabel
-         %44 = OpFunctionCall %void %textureSampleLevel_dcbecb
+         %44 = OpLabel
+         %45 = OpFunctionCall %void %textureSampleLevel_dcbecb
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/dcbecb.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSampleLevel/dcbecb.wgsl.expected.wgsl
index bdcaff8..e4610ad 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/dcbecb.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/dcbecb.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(1) var arg_1 : sampler;
 
 fn textureSampleLevel_dcbecb() {
-  var res : vec4<f32> = textureSampleLevel(arg_0, arg_1, vec3<f32>(), 1.0f, vec3<i32>());
+  var res : vec4<f32> = textureSampleLevel(arg_0, arg_1, vec3<f32>(1.0f), 1.0f, vec3<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/e6ce9e.wgsl b/test/tint/builtins/gen/literal/textureSampleLevel/e6ce9e.wgsl
index 7894b70..9135882 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/e6ce9e.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/e6ce9e.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureSampleLevel(texture: texture_depth_2d_array, sampler: sampler, coords: vec2<f32>, array_index: u32, level: i32, @const offset: vec2<i32>) -> f32
 fn textureSampleLevel_e6ce9e() {
-  var res: f32 = textureSampleLevel(arg_0, arg_1, vec2<f32>(), 1u, 1i, vec2<i32>());
+  var res: f32 = textureSampleLevel(arg_0, arg_1, vec2<f32>(1.f), 1u, 1i, vec2<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/e6ce9e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/e6ce9e.wgsl.expected.dxc.hlsl
index 62c3ca3..9b08da0 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/e6ce9e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/e6ce9e.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleLevel_e6ce9e() {
-  float res = arg_0.SampleLevel(arg_1, float3(0.0f, 0.0f, float(1u)), 1, (0).xx).x;
+  float res = arg_0.SampleLevel(arg_1, float3((1.0f).xx, float(1u)), 1, (1).xx).x;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/e6ce9e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/e6ce9e.wgsl.expected.fxc.hlsl
index 62c3ca3..9b08da0 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/e6ce9e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/e6ce9e.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleLevel_e6ce9e() {
-  float res = arg_0.SampleLevel(arg_1, float3(0.0f, 0.0f, float(1u)), 1, (0).xx).x;
+  float res = arg_0.SampleLevel(arg_1, float3((1.0f).xx, float(1u)), 1, (1).xx).x;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/e6ce9e.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureSampleLevel/e6ce9e.wgsl.expected.msl
index cdf6cd4..42a5ff3 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/e6ce9e.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/e6ce9e.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureSampleLevel_e6ce9e(depth2d_array<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float res = tint_symbol_1.sample(tint_symbol_2, float2(0.0f), 1u, level(1), int2(0));
+  float res = tint_symbol_1.sample(tint_symbol_2, float2(1.0f), 1u, level(1), int2(1));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/e6ce9e.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSampleLevel/e6ce9e.wgsl.expected.spvasm
index 387a582..558fb64 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/e6ce9e.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/e6ce9e.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 52
+; Bound: 55
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -44,49 +44,52 @@
          %15 = OpTypeFunction %void
          %23 = OpTypeSampledImage %11
     %v3float = OpTypeVector %float 3
-    %float_0 = OpConstant %float 0
+    %v2float = OpTypeVector %float 2
+    %float_1 = OpConstant %float 1
+         %28 = OpConstantComposite %v2float %float_1 %float_1
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
       %v2int = OpTypeVector %int 2
-         %35 = OpConstantNull %v2int
+         %39 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_float = OpTypePointer Function %float
-         %38 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %42 = OpTypeFunction %v4float
 %textureSampleLevel_e6ce9e = OpFunction %void None %15
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_float Function %8
          %21 = OpLoad %14 %arg_1
          %22 = OpLoad %11 %arg_0
          %24 = OpSampledImage %23 %22 %21
-         %27 = OpConvertUToF %float %uint_1
-         %30 = OpCompositeConstruct %v3float %float_0 %float_0 %27
-         %31 = OpConvertSToF %float %int_1
-         %20 = OpImageSampleExplicitLod %v4float %24 %30 Lod|ConstOffset %31 %35
+         %29 = OpCompositeExtract %float %28 0
+         %30 = OpCompositeExtract %float %28 1
+         %31 = OpConvertUToF %float %uint_1
+         %34 = OpCompositeConstruct %v3float %29 %30 %31
+         %35 = OpConvertSToF %float %int_1
+         %20 = OpImageSampleExplicitLod %v4float %24 %34 Lod|ConstOffset %35 %39
          %19 = OpCompositeExtract %float %20 0
                OpStore %res %19
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %38
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureSampleLevel_e6ce9e
+%vertex_main_inner = OpFunction %v4float None %42
+         %44 = OpLabel
+         %45 = OpFunctionCall %void %textureSampleLevel_e6ce9e
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
-         %43 = OpLabel
-         %44 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %44
+         %47 = OpLabel
+         %48 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %48
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %15
-         %47 = OpLabel
-         %48 = OpFunctionCall %void %textureSampleLevel_e6ce9e
+         %50 = OpLabel
+         %51 = OpFunctionCall %void %textureSampleLevel_e6ce9e
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %15
-         %50 = OpLabel
-         %51 = OpFunctionCall %void %textureSampleLevel_e6ce9e
+         %53 = OpLabel
+         %54 = OpFunctionCall %void %textureSampleLevel_e6ce9e
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/e6ce9e.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSampleLevel/e6ce9e.wgsl.expected.wgsl
index 765f731..3936c9c 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/e6ce9e.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/e6ce9e.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(1) var arg_1 : sampler;
 
 fn textureSampleLevel_e6ce9e() {
-  var res : f32 = textureSampleLevel(arg_0, arg_1, vec2<f32>(), 1u, 1i, vec2<i32>());
+  var res : f32 = textureSampleLevel(arg_0, arg_1, vec2<f32>(1.0f), 1u, 1i, vec2<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/f3b2c8.wgsl b/test/tint/builtins/gen/literal/textureSampleLevel/f3b2c8.wgsl
index 0ce14c6..ee35dd7 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/f3b2c8.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/f3b2c8.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureSampleLevel(texture: texture_depth_2d, sampler: sampler, coords: vec2<f32>, level: u32, @const offset: vec2<i32>) -> f32
 fn textureSampleLevel_f3b2c8() {
-  var res: f32 = textureSampleLevel(arg_0, arg_1, vec2<f32>(), 1u, vec2<i32>());
+  var res: f32 = textureSampleLevel(arg_0, arg_1, vec2<f32>(1.f), 1u, vec2<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/f3b2c8.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/f3b2c8.wgsl.expected.dxc.hlsl
index 81096d4..7b839f1 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/f3b2c8.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/f3b2c8.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleLevel_f3b2c8() {
-  float res = arg_0.SampleLevel(arg_1, (0.0f).xx, 1u, (0).xx).x;
+  float res = arg_0.SampleLevel(arg_1, (1.0f).xx, 1u, (1).xx).x;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/f3b2c8.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/f3b2c8.wgsl.expected.fxc.hlsl
index 81096d4..7b839f1 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/f3b2c8.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/f3b2c8.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleLevel_f3b2c8() {
-  float res = arg_0.SampleLevel(arg_1, (0.0f).xx, 1u, (0).xx).x;
+  float res = arg_0.SampleLevel(arg_1, (1.0f).xx, 1u, (1).xx).x;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/f3b2c8.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureSampleLevel/f3b2c8.wgsl.expected.glsl
index 503a1bc..eab0c1b 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/f3b2c8.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/f3b2c8.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 uniform highp sampler2DShadow arg_0_arg_1;
 
 void textureSampleLevel_f3b2c8() {
-  float res = textureLodOffset(arg_0_arg_1, vec3(0.0f, 0.0f, 0.0f), float(1u), ivec2(0));
+  float res = textureLodOffset(arg_0_arg_1, vec3(vec2(1.0f), 0.0f), float(1u), ivec2(1));
 }
 
 vec4 vertex_main() {
@@ -25,7 +25,7 @@
 uniform highp sampler2DShadow arg_0_arg_1;
 
 void textureSampleLevel_f3b2c8() {
-  float res = textureLodOffset(arg_0_arg_1, vec3(0.0f, 0.0f, 0.0f), float(1u), ivec2(0));
+  float res = textureLodOffset(arg_0_arg_1, vec3(vec2(1.0f), 0.0f), float(1u), ivec2(1));
 }
 
 void fragment_main() {
@@ -41,7 +41,7 @@
 uniform highp sampler2DShadow arg_0_arg_1;
 
 void textureSampleLevel_f3b2c8() {
-  float res = textureLodOffset(arg_0_arg_1, vec3(0.0f, 0.0f, 0.0f), float(1u), ivec2(0));
+  float res = textureLodOffset(arg_0_arg_1, vec3(vec2(1.0f), 0.0f), float(1u), ivec2(1));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/f3b2c8.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureSampleLevel/f3b2c8.wgsl.expected.msl
index 1d3faea..6028f54 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/f3b2c8.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/f3b2c8.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureSampleLevel_f3b2c8(depth2d<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float res = tint_symbol_1.sample(tint_symbol_2, float2(0.0f), level(1u), int2(0));
+  float res = tint_symbol_1.sample(tint_symbol_2, float2(1.0f), level(1u), int2(1));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/f3b2c8.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSampleLevel/f3b2c8.wgsl.expected.spvasm
index d98a8b7..f20fef6 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/f3b2c8.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/f3b2c8.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 49
+; Bound: 50
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -44,46 +44,47 @@
          %15 = OpTypeFunction %void
          %23 = OpTypeSampledImage %11
     %v2float = OpTypeVector %float 2
-         %26 = OpConstantNull %v2float
+    %float_1 = OpConstant %float 1
+         %27 = OpConstantComposite %v2float %float_1 %float_1
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
-         %32 = OpConstantNull %v2int
+      %int_1 = OpConstant %int 1
+         %34 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_float = OpTypePointer Function %float
-         %35 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %37 = OpTypeFunction %v4float
 %textureSampleLevel_f3b2c8 = OpFunction %void None %15
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_float Function %8
          %21 = OpLoad %14 %arg_1
          %22 = OpLoad %11 %arg_0
          %24 = OpSampledImage %23 %22 %21
-         %27 = OpConvertSToF %float %uint_1
-         %20 = OpImageSampleExplicitLod %v4float %24 %26 Lod|ConstOffset %27 %32
+         %28 = OpConvertSToF %float %uint_1
+         %20 = OpImageSampleExplicitLod %v4float %24 %27 Lod|ConstOffset %28 %34
          %19 = OpCompositeExtract %float %20 0
                OpStore %res %19
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %35
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureSampleLevel_f3b2c8
+%vertex_main_inner = OpFunction %v4float None %37
+         %39 = OpLabel
+         %40 = OpFunctionCall %void %textureSampleLevel_f3b2c8
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
-         %40 = OpLabel
-         %41 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %41
+         %42 = OpLabel
+         %43 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %43
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %15
-         %44 = OpLabel
-         %45 = OpFunctionCall %void %textureSampleLevel_f3b2c8
+         %45 = OpLabel
+         %46 = OpFunctionCall %void %textureSampleLevel_f3b2c8
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %15
-         %47 = OpLabel
-         %48 = OpFunctionCall %void %textureSampleLevel_f3b2c8
+         %48 = OpLabel
+         %49 = OpFunctionCall %void %textureSampleLevel_f3b2c8
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/f3b2c8.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSampleLevel/f3b2c8.wgsl.expected.wgsl
index 8ffb28c..8057db7 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/f3b2c8.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/f3b2c8.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(1) var arg_1 : sampler;
 
 fn textureSampleLevel_f3b2c8() {
-  var res : f32 = textureSampleLevel(arg_0, arg_1, vec2<f32>(), 1u, vec2<i32>());
+  var res : f32 = textureSampleLevel(arg_0, arg_1, vec2<f32>(1.0f), 1u, vec2<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/faa6d7.wgsl b/test/tint/builtins/gen/literal/textureSampleLevel/faa6d7.wgsl
index d9217fb..4d9e464 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/faa6d7.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/faa6d7.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureSampleLevel(texture: texture_2d_array<f32>, sampler: sampler, coords: vec2<f32>, array_index: u32, level: f32, @const offset: vec2<i32>) -> vec4<f32>
 fn textureSampleLevel_faa6d7() {
-  var res: vec4<f32> = textureSampleLevel(arg_0, arg_1, vec2<f32>(), 1u, 1.f, vec2<i32>());
+  var res: vec4<f32> = textureSampleLevel(arg_0, arg_1, vec2<f32>(1.f), 1u, 1.f, vec2<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/faa6d7.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/faa6d7.wgsl.expected.dxc.hlsl
index 5646cef..f5a020b 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/faa6d7.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/faa6d7.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleLevel_faa6d7() {
-  float4 res = arg_0.SampleLevel(arg_1, float3(0.0f, 0.0f, float(1u)), 1.0f, (0).xx);
+  float4 res = arg_0.SampleLevel(arg_1, float3((1.0f).xx, float(1u)), 1.0f, (1).xx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/faa6d7.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/faa6d7.wgsl.expected.fxc.hlsl
index 5646cef..f5a020b 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/faa6d7.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/faa6d7.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleLevel_faa6d7() {
-  float4 res = arg_0.SampleLevel(arg_1, float3(0.0f, 0.0f, float(1u)), 1.0f, (0).xx);
+  float4 res = arg_0.SampleLevel(arg_1, float3((1.0f).xx, float(1u)), 1.0f, (1).xx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/faa6d7.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureSampleLevel/faa6d7.wgsl.expected.glsl
index 9c1734c..b272e8f 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/faa6d7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/faa6d7.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 uniform highp sampler2DArray arg_0_arg_1;
 
 void textureSampleLevel_faa6d7() {
-  vec4 res = textureLodOffset(arg_0_arg_1, vec3(0.0f, 0.0f, float(1u)), 1.0f, ivec2(0));
+  vec4 res = textureLodOffset(arg_0_arg_1, vec3(vec2(1.0f), float(1u)), 1.0f, ivec2(1));
 }
 
 vec4 vertex_main() {
@@ -25,7 +25,7 @@
 uniform highp sampler2DArray arg_0_arg_1;
 
 void textureSampleLevel_faa6d7() {
-  vec4 res = textureLodOffset(arg_0_arg_1, vec3(0.0f, 0.0f, float(1u)), 1.0f, ivec2(0));
+  vec4 res = textureLodOffset(arg_0_arg_1, vec3(vec2(1.0f), float(1u)), 1.0f, ivec2(1));
 }
 
 void fragment_main() {
@@ -41,7 +41,7 @@
 uniform highp sampler2DArray arg_0_arg_1;
 
 void textureSampleLevel_faa6d7() {
-  vec4 res = textureLodOffset(arg_0_arg_1, vec3(0.0f, 0.0f, float(1u)), 1.0f, ivec2(0));
+  vec4 res = textureLodOffset(arg_0_arg_1, vec3(vec2(1.0f), float(1u)), 1.0f, ivec2(1));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/faa6d7.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureSampleLevel/faa6d7.wgsl.expected.msl
index a0039f0..795ca06 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/faa6d7.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/faa6d7.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureSampleLevel_faa6d7(texture2d_array<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float4 res = tint_symbol_1.sample(tint_symbol_2, float2(0.0f), 1u, level(1.0f), int2(0));
+  float4 res = tint_symbol_1.sample(tint_symbol_2, float2(1.0f), 1u, level(1.0f), int2(1));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/faa6d7.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSampleLevel/faa6d7.wgsl.expected.spvasm
index 74736ef..08a0c14 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/faa6d7.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/faa6d7.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 49
+; Bound: 53
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -44,46 +44,50 @@
          %15 = OpTypeFunction %void
          %22 = OpTypeSampledImage %11
     %v3float = OpTypeVector %float 3
-    %float_0 = OpConstant %float 0
+    %v2float = OpTypeVector %float 2
+    %float_1 = OpConstant %float 1
+         %27 = OpConstantComposite %v2float %float_1 %float_1
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
-    %float_1 = OpConstant %float 1
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
-         %33 = OpConstantNull %v2int
+      %int_1 = OpConstant %int 1
+         %37 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %36 = OpTypeFunction %v4float
+         %40 = OpTypeFunction %v4float
 %textureSampleLevel_faa6d7 = OpFunction %void None %15
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
          %20 = OpLoad %14 %arg_1
          %21 = OpLoad %11 %arg_0
          %23 = OpSampledImage %22 %21 %20
-         %26 = OpConvertUToF %float %uint_1
-         %29 = OpCompositeConstruct %v3float %float_0 %float_0 %26
-         %19 = OpImageSampleExplicitLod %v4float %23 %29 Lod|ConstOffset %float_1 %33
+         %28 = OpCompositeExtract %float %27 0
+         %29 = OpCompositeExtract %float %27 1
+         %30 = OpConvertUToF %float %uint_1
+         %33 = OpCompositeConstruct %v3float %28 %29 %30
+         %19 = OpImageSampleExplicitLod %v4float %23 %33 Lod|ConstOffset %float_1 %37
                OpStore %res %19
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %36
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureSampleLevel_faa6d7
+%vertex_main_inner = OpFunction %v4float None %40
+         %42 = OpLabel
+         %43 = OpFunctionCall %void %textureSampleLevel_faa6d7
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
-         %41 = OpLabel
-         %42 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %42
+         %45 = OpLabel
+         %46 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %46
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %15
-         %44 = OpLabel
-         %45 = OpFunctionCall %void %textureSampleLevel_faa6d7
+         %48 = OpLabel
+         %49 = OpFunctionCall %void %textureSampleLevel_faa6d7
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %15
-         %47 = OpLabel
-         %48 = OpFunctionCall %void %textureSampleLevel_faa6d7
+         %51 = OpLabel
+         %52 = OpFunctionCall %void %textureSampleLevel_faa6d7
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/faa6d7.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSampleLevel/faa6d7.wgsl.expected.wgsl
index 14a47e4..6799d8b 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/faa6d7.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/faa6d7.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(1) var arg_1 : sampler;
 
 fn textureSampleLevel_faa6d7() {
-  var res : vec4<f32> = textureSampleLevel(arg_0, arg_1, vec2<f32>(), 1u, 1.0f, vec2<i32>());
+  var res : vec4<f32> = textureSampleLevel(arg_0, arg_1, vec2<f32>(1.0f), 1u, 1.0f, vec2<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/ff11bc.wgsl b/test/tint/builtins/gen/literal/textureSampleLevel/ff11bc.wgsl
index 6407b2c..c7af820 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/ff11bc.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/ff11bc.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureSampleLevel(texture: texture_depth_cube_array, sampler: sampler, coords: vec3<f32>, array_index: u32, level: i32) -> f32
 fn textureSampleLevel_ff11bc() {
-  var res: f32 = textureSampleLevel(arg_0, arg_1, vec3<f32>(), 1u, 1i);
+  var res: f32 = textureSampleLevel(arg_0, arg_1, vec3<f32>(1.f), 1u, 1i);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/ff11bc.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/ff11bc.wgsl.expected.dxc.hlsl
index aaffccf..4a5f8d1 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/ff11bc.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/ff11bc.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleLevel_ff11bc() {
-  float res = arg_0.SampleLevel(arg_1, float4(0.0f, 0.0f, 0.0f, float(1u)), 1).x;
+  float res = arg_0.SampleLevel(arg_1, float4((1.0f).xxx, float(1u)), 1).x;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/ff11bc.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/ff11bc.wgsl.expected.fxc.hlsl
index aaffccf..4a5f8d1 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/ff11bc.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/ff11bc.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleLevel_ff11bc() {
-  float res = arg_0.SampleLevel(arg_1, float4(0.0f, 0.0f, 0.0f, float(1u)), 1).x;
+  float res = arg_0.SampleLevel(arg_1, float4((1.0f).xxx, float(1u)), 1).x;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/ff11bc.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureSampleLevel/ff11bc.wgsl.expected.msl
index 2791c64..03bdbc0 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/ff11bc.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/ff11bc.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureSampleLevel_ff11bc(depthcube_array<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float res = tint_symbol_1.sample(tint_symbol_2, float3(0.0f), 1u, level(1));
+  float res = tint_symbol_1.sample(tint_symbol_2, float3(1.0f), 1u, level(1));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/ff11bc.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSampleLevel/ff11bc.wgsl.expected.spvasm
index 9fb572a..64f921e 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/ff11bc.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/ff11bc.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 49
+; Bound: 53
 ; Schema: 0
                OpCapability Shader
                OpCapability SampledCubeArray
@@ -44,47 +44,51 @@
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
          %23 = OpTypeSampledImage %11
-    %float_0 = OpConstant %float 0
+    %v3float = OpTypeVector %float 3
+    %float_1 = OpConstant %float 1
+         %27 = OpConstantComposite %v3float %float_1 %float_1 %float_1
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_float = OpTypePointer Function %float
-         %35 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %40 = OpTypeFunction %v4float
 %textureSampleLevel_ff11bc = OpFunction %void None %15
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_float Function %8
          %21 = OpLoad %14 %arg_1
          %22 = OpLoad %11 %arg_0
          %24 = OpSampledImage %23 %22 %21
-         %26 = OpConvertUToF %float %uint_1
-         %29 = OpCompositeConstruct %v4float %float_0 %float_0 %float_0 %26
-         %30 = OpConvertSToF %float %int_1
-         %20 = OpImageSampleExplicitLod %v4float %24 %29 Lod %30
+         %28 = OpCompositeExtract %float %27 0
+         %29 = OpCompositeExtract %float %27 1
+         %30 = OpCompositeExtract %float %27 2
+         %31 = OpConvertUToF %float %uint_1
+         %34 = OpCompositeConstruct %v4float %28 %29 %30 %31
+         %35 = OpConvertSToF %float %int_1
+         %20 = OpImageSampleExplicitLod %v4float %24 %34 Lod %35
          %19 = OpCompositeExtract %float %20 0
                OpStore %res %19
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %35
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureSampleLevel_ff11bc
+%vertex_main_inner = OpFunction %v4float None %40
+         %42 = OpLabel
+         %43 = OpFunctionCall %void %textureSampleLevel_ff11bc
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
-         %40 = OpLabel
-         %41 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %41
+         %45 = OpLabel
+         %46 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %46
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %15
-         %44 = OpLabel
-         %45 = OpFunctionCall %void %textureSampleLevel_ff11bc
+         %48 = OpLabel
+         %49 = OpFunctionCall %void %textureSampleLevel_ff11bc
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %15
-         %47 = OpLabel
-         %48 = OpFunctionCall %void %textureSampleLevel_ff11bc
+         %51 = OpLabel
+         %52 = OpFunctionCall %void %textureSampleLevel_ff11bc
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/ff11bc.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSampleLevel/ff11bc.wgsl.expected.wgsl
index 43278dd..eff31bb 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/ff11bc.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/ff11bc.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(1) var arg_1 : sampler;
 
 fn textureSampleLevel_ff11bc() {
-  var res : f32 = textureSampleLevel(arg_0, arg_1, vec3<f32>(), 1u, 1i);
+  var res : f32 = textureSampleLevel(arg_0, arg_1, vec3<f32>(1.0f), 1u, 1i);
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/00ca64.wgsl b/test/tint/builtins/gen/literal/textureStore/00ca64.wgsl
index 127f5d6..6de2b09 100644
--- a/test/tint/builtins/gen/literal/textureStore/00ca64.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/00ca64.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureStore(texture: texture_storage_2d_array<rgba32uint, write>, coords: vec2<i32>, array_index: u32, value: vec4<u32>)
 fn textureStore_00ca64() {
-  textureStore(arg_0, vec2<i32>(), 1u, vec4<u32>());
+  textureStore(arg_0, vec2<i32>(1i), 1u, vec4<u32>(1u));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/00ca64.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/00ca64.wgsl.expected.dxc.hlsl
index 4c43d09..8e8c418 100644
--- a/test/tint/builtins/gen/literal/textureStore/00ca64.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/00ca64.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 void textureStore_00ca64() {
-  arg_0[int3(0, 0, int(1u))] = (0u).xxxx;
+  arg_0[int3((1).xx, int(1u))] = (1u).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/00ca64.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/00ca64.wgsl.expected.fxc.hlsl
index 4c43d09..8e8c418 100644
--- a/test/tint/builtins/gen/literal/textureStore/00ca64.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/00ca64.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 void textureStore_00ca64() {
-  arg_0[int3(0, 0, int(1u))] = (0u).xxxx;
+  arg_0[int3((1).xx, int(1u))] = (1u).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/00ca64.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/00ca64.wgsl.expected.glsl
index 1227661..5a72fd2 100644
--- a/test/tint/builtins/gen/literal/textureStore/00ca64.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/00ca64.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 layout(rgba32ui) uniform highp writeonly uimage2DArray arg_0;
 void textureStore_00ca64() {
-  imageStore(arg_0, ivec3(0, 0, int(1u)), uvec4(0u));
+  imageStore(arg_0, ivec3(ivec2(1), int(1u)), uvec4(1u));
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 
 layout(rgba32ui) uniform highp writeonly uimage2DArray arg_0;
 void textureStore_00ca64() {
-  imageStore(arg_0, ivec3(0, 0, int(1u)), uvec4(0u));
+  imageStore(arg_0, ivec3(ivec2(1), int(1u)), uvec4(1u));
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 layout(rgba32ui) uniform highp writeonly uimage2DArray arg_0;
 void textureStore_00ca64() {
-  imageStore(arg_0, ivec3(0, 0, int(1u)), uvec4(0u));
+  imageStore(arg_0, ivec3(ivec2(1), int(1u)), uvec4(1u));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureStore/00ca64.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/00ca64.wgsl.expected.msl
index 61e534f..b76f874 100644
--- a/test/tint/builtins/gen/literal/textureStore/00ca64.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/00ca64.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureStore_00ca64(texture2d_array<uint, access::write> tint_symbol_1) {
-  tint_symbol_1.write(uint4(0u), uint2(int2(0)), 1u);
+  tint_symbol_1.write(uint4(1u), uint2(int2(1)), 1u);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/00ca64.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/00ca64.wgsl.expected.spvasm
index ec49a65..c32fe12 100644
--- a/test/tint/builtins/gen/literal/textureStore/00ca64.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/00ca64.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 41
+; Bound: 45
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -39,39 +39,43 @@
          %13 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
-      %int_0 = OpConstant %int 0
+      %v2int = OpTypeVector %int 2
+      %int_1 = OpConstant %int 1
+         %23 = OpConstantComposite %v2int %int_1 %int_1
      %uint_1 = OpConstant %uint 1
      %v4uint = OpTypeVector %uint 4
-         %26 = OpConstantNull %v4uint
-         %27 = OpTypeFunction %v4float
+         %30 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+         %31 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_00ca64 = OpFunction %void None %13
          %16 = OpLabel
          %18 = OpLoad %11 %arg_0
-         %22 = OpBitcast %int %uint_1
-         %24 = OpCompositeConstruct %v3int %int_0 %int_0 %22
-               OpImageWrite %18 %24 %26
+         %24 = OpCompositeExtract %int %23 0
+         %25 = OpCompositeExtract %int %23 1
+         %26 = OpBitcast %int %uint_1
+         %28 = OpCompositeConstruct %v3int %24 %25 %26
+               OpImageWrite %18 %28 %30
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %27
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %textureStore_00ca64
+%vertex_main_inner = OpFunction %v4float None %31
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureStore_00ca64
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %32 = OpLabel
-         %33 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %33
+         %36 = OpLabel
+         %37 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %37
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_00ca64
+         %40 = OpLabel
+         %41 = OpFunctionCall %void %textureStore_00ca64
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_00ca64
+         %43 = OpLabel
+         %44 = OpFunctionCall %void %textureStore_00ca64
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/00ca64.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/00ca64.wgsl.expected.wgsl
index 6bc9e2c..33756f1 100644
--- a/test/tint/builtins/gen/literal/textureStore/00ca64.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/00ca64.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba32uint, write>;
 
 fn textureStore_00ca64() {
-  textureStore(arg_0, vec2<i32>(), 1u, vec4<u32>());
+  textureStore(arg_0, vec2<i32>(1i), 1u, vec4<u32>(1u));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/0148bd.wgsl b/test/tint/builtins/gen/literal/textureStore/0148bd.wgsl
index 10d0c4e..b77e65e 100644
--- a/test/tint/builtins/gen/literal/textureStore/0148bd.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/0148bd.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureStore(texture: texture_storage_2d_array<rgba32sint, write>, coords: vec2<u32>, array_index: i32, value: vec4<i32>)
 fn textureStore_0148bd() {
-  textureStore(arg_0, vec2<u32>(), 1i, vec4<i32>());
+  textureStore(arg_0, vec2<u32>(1u), 1i, vec4<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/0148bd.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/0148bd.wgsl.expected.dxc.hlsl
index 49a4ea9..6c96325 100644
--- a/test/tint/builtins/gen/literal/textureStore/0148bd.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/0148bd.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 void textureStore_0148bd() {
-  arg_0[uint3(0u, 0u, uint(1))] = (0).xxxx;
+  arg_0[uint3((1u).xx, uint(1))] = (1).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/0148bd.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/0148bd.wgsl.expected.fxc.hlsl
index 49a4ea9..6c96325 100644
--- a/test/tint/builtins/gen/literal/textureStore/0148bd.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/0148bd.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 void textureStore_0148bd() {
-  arg_0[uint3(0u, 0u, uint(1))] = (0).xxxx;
+  arg_0[uint3((1u).xx, uint(1))] = (1).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/0148bd.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/0148bd.wgsl.expected.glsl
index 5b2168a..15f4a41 100644
--- a/test/tint/builtins/gen/literal/textureStore/0148bd.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/0148bd.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 layout(rgba32i) uniform highp writeonly iimage2DArray arg_0;
 void textureStore_0148bd() {
-  imageStore(arg_0, ivec3(uvec3(0u, 0u, uint(1))), ivec4(0));
+  imageStore(arg_0, ivec3(uvec3(uvec2(1u), uint(1))), ivec4(1));
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 
 layout(rgba32i) uniform highp writeonly iimage2DArray arg_0;
 void textureStore_0148bd() {
-  imageStore(arg_0, ivec3(uvec3(0u, 0u, uint(1))), ivec4(0));
+  imageStore(arg_0, ivec3(uvec3(uvec2(1u), uint(1))), ivec4(1));
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 layout(rgba32i) uniform highp writeonly iimage2DArray arg_0;
 void textureStore_0148bd() {
-  imageStore(arg_0, ivec3(uvec3(0u, 0u, uint(1))), ivec4(0));
+  imageStore(arg_0, ivec3(uvec3(uvec2(1u), uint(1))), ivec4(1));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureStore/0148bd.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/0148bd.wgsl.expected.msl
index 508c653..30137a6 100644
--- a/test/tint/builtins/gen/literal/textureStore/0148bd.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/0148bd.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureStore_0148bd(texture2d_array<int, access::write> tint_symbol_1) {
-  tint_symbol_1.write(int4(0), uint2(uint2(0u)), 1);
+  tint_symbol_1.write(int4(1), uint2(uint2(1u)), 1);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/0148bd.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/0148bd.wgsl.expected.spvasm
index 464aac9..9992d94 100644
--- a/test/tint/builtins/gen/literal/textureStore/0148bd.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/0148bd.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 41
+; Bound: 45
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -39,39 +39,43 @@
          %13 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
-     %uint_0 = OpConstant %uint 0
+     %v2uint = OpTypeVector %uint 2
+     %uint_1 = OpConstant %uint 1
+         %23 = OpConstantComposite %v2uint %uint_1 %uint_1
       %int_1 = OpConstant %int 1
       %v4int = OpTypeVector %int 4
-         %26 = OpConstantNull %v4int
-         %27 = OpTypeFunction %v4float
+         %30 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+         %31 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_0148bd = OpFunction %void None %13
          %16 = OpLabel
          %18 = OpLoad %11 %arg_0
-         %22 = OpBitcast %uint %int_1
-         %24 = OpCompositeConstruct %v3uint %uint_0 %uint_0 %22
-               OpImageWrite %18 %24 %26
+         %24 = OpCompositeExtract %uint %23 0
+         %25 = OpCompositeExtract %uint %23 1
+         %26 = OpBitcast %uint %int_1
+         %28 = OpCompositeConstruct %v3uint %24 %25 %26
+               OpImageWrite %18 %28 %30
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %27
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %textureStore_0148bd
+%vertex_main_inner = OpFunction %v4float None %31
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureStore_0148bd
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %32 = OpLabel
-         %33 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %33
+         %36 = OpLabel
+         %37 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %37
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_0148bd
+         %40 = OpLabel
+         %41 = OpFunctionCall %void %textureStore_0148bd
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_0148bd
+         %43 = OpLabel
+         %44 = OpFunctionCall %void %textureStore_0148bd
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/0148bd.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/0148bd.wgsl.expected.wgsl
index b9cae8b..6b62b18 100644
--- a/test/tint/builtins/gen/literal/textureStore/0148bd.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/0148bd.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba32sint, write>;
 
 fn textureStore_0148bd() {
-  textureStore(arg_0, vec2<u32>(), 1i, vec4<i32>());
+  textureStore(arg_0, vec2<u32>(1u), 1i, vec4<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/05ce15.wgsl b/test/tint/builtins/gen/literal/textureStore/05ce15.wgsl
index dac61fd..a03c257 100644
--- a/test/tint/builtins/gen/literal/textureStore/05ce15.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/05ce15.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureStore(texture: texture_storage_2d<rgba32float, write>, coords: vec2<i32>, value: vec4<f32>)
 fn textureStore_05ce15() {
-  textureStore(arg_0, vec2<i32>(), vec4<f32>());
+  textureStore(arg_0, vec2<i32>(1i), vec4<f32>(1.f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/05ce15.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/05ce15.wgsl.expected.dxc.hlsl
index 27477b0..bda2006 100644
--- a/test/tint/builtins/gen/literal/textureStore/05ce15.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/05ce15.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2D<float4> arg_0 : register(u0, space1);
 
 void textureStore_05ce15() {
-  arg_0[(0).xx] = (0.0f).xxxx;
+  arg_0[(1).xx] = (1.0f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/05ce15.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/05ce15.wgsl.expected.fxc.hlsl
index 27477b0..bda2006 100644
--- a/test/tint/builtins/gen/literal/textureStore/05ce15.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/05ce15.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2D<float4> arg_0 : register(u0, space1);
 
 void textureStore_05ce15() {
-  arg_0[(0).xx] = (0.0f).xxxx;
+  arg_0[(1).xx] = (1.0f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/05ce15.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/05ce15.wgsl.expected.glsl
index 38abe73..5021ed4 100644
--- a/test/tint/builtins/gen/literal/textureStore/05ce15.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/05ce15.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 layout(rgba32f) uniform highp writeonly image2D arg_0;
 void textureStore_05ce15() {
-  imageStore(arg_0, ivec2(0), vec4(0.0f));
+  imageStore(arg_0, ivec2(1), vec4(1.0f));
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 
 layout(rgba32f) uniform highp writeonly image2D arg_0;
 void textureStore_05ce15() {
-  imageStore(arg_0, ivec2(0), vec4(0.0f));
+  imageStore(arg_0, ivec2(1), vec4(1.0f));
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 layout(rgba32f) uniform highp writeonly image2D arg_0;
 void textureStore_05ce15() {
-  imageStore(arg_0, ivec2(0), vec4(0.0f));
+  imageStore(arg_0, ivec2(1), vec4(1.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureStore/05ce15.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/05ce15.wgsl.expected.msl
index 3a48638..e99c331 100644
--- a/test/tint/builtins/gen/literal/textureStore/05ce15.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/05ce15.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureStore_05ce15(texture2d<float, access::write> tint_symbol_1) {
-  tint_symbol_1.write(float4(0.0f), uint2(int2(0)));
+  tint_symbol_1.write(float4(1.0f), uint2(int2(1)));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/05ce15.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/05ce15.wgsl.expected.spvasm
index d7dca2f..250c8eb 100644
--- a/test/tint/builtins/gen/literal/textureStore/05ce15.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/05ce15.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 35
+; Bound: 37
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -38,34 +38,36 @@
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
-         %20 = OpConstantNull %v2int
-         %21 = OpTypeFunction %v4float
+      %int_1 = OpConstant %int 1
+         %21 = OpConstantComposite %v2int %int_1 %int_1
     %float_1 = OpConstant %float 1
+         %23 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %24 = OpTypeFunction %v4float
 %textureStore_05ce15 = OpFunction %void None %12
          %15 = OpLabel
          %17 = OpLoad %11 %arg_0
-               OpImageWrite %17 %20 %5
+               OpImageWrite %17 %21 %23
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %21
-         %23 = OpLabel
-         %24 = OpFunctionCall %void %textureStore_05ce15
+%vertex_main_inner = OpFunction %v4float None %24
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %textureStore_05ce15
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %26 = OpLabel
-         %27 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %27
+         %29 = OpLabel
+         %30 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %30
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %textureStore_05ce15
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %textureStore_05ce15
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_05ce15
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureStore_05ce15
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/05ce15.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/05ce15.wgsl.expected.wgsl
index caefa60..e5609b3 100644
--- a/test/tint/builtins/gen/literal/textureStore/05ce15.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/05ce15.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba32float, write>;
 
 fn textureStore_05ce15() {
-  textureStore(arg_0, vec2<i32>(), vec4<f32>());
+  textureStore(arg_0, vec2<i32>(1i), vec4<f32>(1.0f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/064c7f.wgsl b/test/tint/builtins/gen/literal/textureStore/064c7f.wgsl
index fa8db6a..91a9450 100644
--- a/test/tint/builtins/gen/literal/textureStore/064c7f.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/064c7f.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureStore(texture: texture_storage_2d<rg32float, write>, coords: vec2<i32>, value: vec4<f32>)
 fn textureStore_064c7f() {
-  textureStore(arg_0, vec2<i32>(), vec4<f32>());
+  textureStore(arg_0, vec2<i32>(1i), vec4<f32>(1.f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/064c7f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/064c7f.wgsl.expected.dxc.hlsl
index c9130d7..4c98b68 100644
--- a/test/tint/builtins/gen/literal/textureStore/064c7f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/064c7f.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2D<float4> arg_0 : register(u0, space1);
 
 void textureStore_064c7f() {
-  arg_0[(0).xx] = (0.0f).xxxx;
+  arg_0[(1).xx] = (1.0f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/064c7f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/064c7f.wgsl.expected.fxc.hlsl
index c9130d7..4c98b68 100644
--- a/test/tint/builtins/gen/literal/textureStore/064c7f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/064c7f.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2D<float4> arg_0 : register(u0, space1);
 
 void textureStore_064c7f() {
-  arg_0[(0).xx] = (0.0f).xxxx;
+  arg_0[(1).xx] = (1.0f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/064c7f.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/064c7f.wgsl.expected.msl
index 06feb27..9165cd3 100644
--- a/test/tint/builtins/gen/literal/textureStore/064c7f.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/064c7f.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureStore_064c7f(texture2d<float, access::write> tint_symbol_1) {
-  tint_symbol_1.write(float4(0.0f), uint2(int2(0)));
+  tint_symbol_1.write(float4(1.0f), uint2(int2(1)));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/064c7f.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/064c7f.wgsl.expected.spvasm
index 4e3a756..52c7fa7 100644
--- a/test/tint/builtins/gen/literal/textureStore/064c7f.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/064c7f.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 35
+; Bound: 37
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
@@ -39,34 +39,36 @@
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
-         %20 = OpConstantNull %v2int
-         %21 = OpTypeFunction %v4float
+      %int_1 = OpConstant %int 1
+         %21 = OpConstantComposite %v2int %int_1 %int_1
     %float_1 = OpConstant %float 1
+         %23 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %24 = OpTypeFunction %v4float
 %textureStore_064c7f = OpFunction %void None %12
          %15 = OpLabel
          %17 = OpLoad %11 %arg_0
-               OpImageWrite %17 %20 %5
+               OpImageWrite %17 %21 %23
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %21
-         %23 = OpLabel
-         %24 = OpFunctionCall %void %textureStore_064c7f
+%vertex_main_inner = OpFunction %v4float None %24
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %textureStore_064c7f
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %26 = OpLabel
-         %27 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %27
+         %29 = OpLabel
+         %30 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %30
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %textureStore_064c7f
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %textureStore_064c7f
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_064c7f
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureStore_064c7f
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/064c7f.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/064c7f.wgsl.expected.wgsl
index 9d55259..f177a6a 100644
--- a/test/tint/builtins/gen/literal/textureStore/064c7f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/064c7f.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rg32float, write>;
 
 fn textureStore_064c7f() {
-  textureStore(arg_0, vec2<i32>(), vec4<f32>());
+  textureStore(arg_0, vec2<i32>(1i), vec4<f32>(1.0f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/068641.wgsl b/test/tint/builtins/gen/literal/textureStore/068641.wgsl
index 813eec3..b97cd2c 100644
--- a/test/tint/builtins/gen/literal/textureStore/068641.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/068641.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureStore(texture: texture_storage_3d<rgba16uint, write>, coords: vec3<i32>, value: vec4<u32>)
 fn textureStore_068641() {
-  textureStore(arg_0, vec3<i32>(), vec4<u32>());
+  textureStore(arg_0, vec3<i32>(1i), vec4<u32>(1u));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/068641.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/068641.wgsl.expected.dxc.hlsl
index cbcf84d..c10c9cb 100644
--- a/test/tint/builtins/gen/literal/textureStore/068641.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/068641.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture3D<uint4> arg_0 : register(u0, space1);
 
 void textureStore_068641() {
-  arg_0[(0).xxx] = (0u).xxxx;
+  arg_0[(1).xxx] = (1u).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/068641.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/068641.wgsl.expected.fxc.hlsl
index cbcf84d..c10c9cb 100644
--- a/test/tint/builtins/gen/literal/textureStore/068641.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/068641.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture3D<uint4> arg_0 : register(u0, space1);
 
 void textureStore_068641() {
-  arg_0[(0).xxx] = (0u).xxxx;
+  arg_0[(1).xxx] = (1u).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/068641.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/068641.wgsl.expected.glsl
index 453b7be..5989871 100644
--- a/test/tint/builtins/gen/literal/textureStore/068641.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/068641.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 layout(rgba16ui) uniform highp writeonly uimage3D arg_0;
 void textureStore_068641() {
-  imageStore(arg_0, ivec3(0), uvec4(0u));
+  imageStore(arg_0, ivec3(1), uvec4(1u));
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 
 layout(rgba16ui) uniform highp writeonly uimage3D arg_0;
 void textureStore_068641() {
-  imageStore(arg_0, ivec3(0), uvec4(0u));
+  imageStore(arg_0, ivec3(1), uvec4(1u));
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 layout(rgba16ui) uniform highp writeonly uimage3D arg_0;
 void textureStore_068641() {
-  imageStore(arg_0, ivec3(0), uvec4(0u));
+  imageStore(arg_0, ivec3(1), uvec4(1u));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureStore/068641.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/068641.wgsl.expected.msl
index 1d3f94f..9ad2a24 100644
--- a/test/tint/builtins/gen/literal/textureStore/068641.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/068641.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureStore_068641(texture3d<uint, access::write> tint_symbol_1) {
-  tint_symbol_1.write(uint4(0u), uint3(int3(0)));
+  tint_symbol_1.write(uint4(1u), uint3(int3(1)));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/068641.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/068641.wgsl.expected.spvasm
index 7f48b8b..40498a9 100644
--- a/test/tint/builtins/gen/literal/textureStore/068641.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/068641.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 38
+; Bound: 40
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -39,36 +39,38 @@
          %13 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
-         %21 = OpConstantNull %v3int
+      %int_1 = OpConstant %int 1
+         %22 = OpConstantComposite %v3int %int_1 %int_1 %int_1
      %v4uint = OpTypeVector %uint 4
-         %23 = OpConstantNull %v4uint
-         %24 = OpTypeFunction %v4float
+     %uint_1 = OpConstant %uint 1
+         %25 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+         %26 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_068641 = OpFunction %void None %13
          %16 = OpLabel
          %18 = OpLoad %11 %arg_0
-               OpImageWrite %18 %21 %23
+               OpImageWrite %18 %22 %25
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %24
-         %26 = OpLabel
-         %27 = OpFunctionCall %void %textureStore_068641
+%vertex_main_inner = OpFunction %v4float None %26
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %textureStore_068641
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %29 = OpLabel
-         %30 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %30
+         %31 = OpLabel
+         %32 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %32
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_068641
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureStore_068641
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_068641
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %textureStore_068641
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/068641.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/068641.wgsl.expected.wgsl
index 1e3ae92..5e4245b 100644
--- a/test/tint/builtins/gen/literal/textureStore/068641.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/068641.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rgba16uint, write>;
 
 fn textureStore_068641() {
-  textureStore(arg_0, vec3<i32>(), vec4<u32>());
+  textureStore(arg_0, vec3<i32>(1i), vec4<u32>(1u));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/06e49c.wgsl b/test/tint/builtins/gen/literal/textureStore/06e49c.wgsl
index 1c43f8d..fbea4f3 100644
--- a/test/tint/builtins/gen/literal/textureStore/06e49c.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/06e49c.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureStore(texture: texture_storage_2d_array<rgba32float, write>, coords: vec2<i32>, array_index: u32, value: vec4<f32>)
 fn textureStore_06e49c() {
-  textureStore(arg_0, vec2<i32>(), 1u, vec4<f32>());
+  textureStore(arg_0, vec2<i32>(1i), 1u, vec4<f32>(1.f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/06e49c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/06e49c.wgsl.expected.dxc.hlsl
index 7ccdde8..ad485a7 100644
--- a/test/tint/builtins/gen/literal/textureStore/06e49c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/06e49c.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 void textureStore_06e49c() {
-  arg_0[int3(0, 0, int(1u))] = (0.0f).xxxx;
+  arg_0[int3((1).xx, int(1u))] = (1.0f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/06e49c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/06e49c.wgsl.expected.fxc.hlsl
index 7ccdde8..ad485a7 100644
--- a/test/tint/builtins/gen/literal/textureStore/06e49c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/06e49c.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 void textureStore_06e49c() {
-  arg_0[int3(0, 0, int(1u))] = (0.0f).xxxx;
+  arg_0[int3((1).xx, int(1u))] = (1.0f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/06e49c.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/06e49c.wgsl.expected.glsl
index 1c9a1cc..5380fea 100644
--- a/test/tint/builtins/gen/literal/textureStore/06e49c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/06e49c.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 layout(rgba32f) uniform highp writeonly image2DArray arg_0;
 void textureStore_06e49c() {
-  imageStore(arg_0, ivec3(0, 0, int(1u)), vec4(0.0f));
+  imageStore(arg_0, ivec3(ivec2(1), int(1u)), vec4(1.0f));
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 
 layout(rgba32f) uniform highp writeonly image2DArray arg_0;
 void textureStore_06e49c() {
-  imageStore(arg_0, ivec3(0, 0, int(1u)), vec4(0.0f));
+  imageStore(arg_0, ivec3(ivec2(1), int(1u)), vec4(1.0f));
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 layout(rgba32f) uniform highp writeonly image2DArray arg_0;
 void textureStore_06e49c() {
-  imageStore(arg_0, ivec3(0, 0, int(1u)), vec4(0.0f));
+  imageStore(arg_0, ivec3(ivec2(1), int(1u)), vec4(1.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureStore/06e49c.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/06e49c.wgsl.expected.msl
index feafa4d..ac1d739 100644
--- a/test/tint/builtins/gen/literal/textureStore/06e49c.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/06e49c.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureStore_06e49c(texture2d_array<float, access::write> tint_symbol_1) {
-  tint_symbol_1.write(float4(0.0f), uint2(int2(0)), 1u);
+  tint_symbol_1.write(float4(1.0f), uint2(int2(1)), 1u);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/06e49c.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/06e49c.wgsl.expected.spvasm
index be0e588..d9bd1c1 100644
--- a/test/tint/builtins/gen/literal/textureStore/06e49c.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/06e49c.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 39
+; Bound: 44
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -38,38 +38,43 @@
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
-      %int_0 = OpConstant %int 0
+      %v2int = OpTypeVector %int 2
+      %int_1 = OpConstant %int 1
+         %22 = OpConstantComposite %v2int %int_1 %int_1
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
-         %25 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
+         %30 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %31 = OpTypeFunction %v4float
 %textureStore_06e49c = OpFunction %void None %12
          %15 = OpLabel
          %17 = OpLoad %11 %arg_0
-         %21 = OpBitcast %int %uint_1
-         %24 = OpCompositeConstruct %v3int %int_0 %int_0 %21
-               OpImageWrite %17 %24 %5
+         %23 = OpCompositeExtract %int %22 0
+         %24 = OpCompositeExtract %int %22 1
+         %25 = OpBitcast %int %uint_1
+         %28 = OpCompositeConstruct %v3int %23 %24 %25
+               OpImageWrite %17 %28 %30
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %25
-         %27 = OpLabel
-         %28 = OpFunctionCall %void %textureStore_06e49c
+%vertex_main_inner = OpFunction %v4float None %31
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureStore_06e49c
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %30 = OpLabel
-         %31 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %31
+         %36 = OpLabel
+         %37 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %37
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureStore_06e49c
+         %39 = OpLabel
+         %40 = OpFunctionCall %void %textureStore_06e49c
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureStore_06e49c
+         %42 = OpLabel
+         %43 = OpFunctionCall %void %textureStore_06e49c
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/06e49c.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/06e49c.wgsl.expected.wgsl
index b9ddf2e..382a2c7 100644
--- a/test/tint/builtins/gen/literal/textureStore/06e49c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/06e49c.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba32float, write>;
 
 fn textureStore_06e49c() {
-  textureStore(arg_0, vec2<i32>(), 1u, vec4<f32>());
+  textureStore(arg_0, vec2<i32>(1i), 1u, vec4<f32>(1.0f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/07548b.wgsl b/test/tint/builtins/gen/literal/textureStore/07548b.wgsl
index 6cc3fc7..56705f9 100644
--- a/test/tint/builtins/gen/literal/textureStore/07548b.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/07548b.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureStore(texture: texture_storage_3d<rgba16sint, write>, coords: vec3<u32>, value: vec4<i32>)
 fn textureStore_07548b() {
-  textureStore(arg_0, vec3<u32>(), vec4<i32>());
+  textureStore(arg_0, vec3<u32>(1u), vec4<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/07548b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/07548b.wgsl.expected.dxc.hlsl
index 7b7e09f..a41e5c4 100644
--- a/test/tint/builtins/gen/literal/textureStore/07548b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/07548b.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture3D<int4> arg_0 : register(u0, space1);
 
 void textureStore_07548b() {
-  arg_0[(0u).xxx] = (0).xxxx;
+  arg_0[(1u).xxx] = (1).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/07548b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/07548b.wgsl.expected.fxc.hlsl
index 7b7e09f..a41e5c4 100644
--- a/test/tint/builtins/gen/literal/textureStore/07548b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/07548b.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture3D<int4> arg_0 : register(u0, space1);
 
 void textureStore_07548b() {
-  arg_0[(0u).xxx] = (0).xxxx;
+  arg_0[(1u).xxx] = (1).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/07548b.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/07548b.wgsl.expected.glsl
index 94e408b..8196807 100644
--- a/test/tint/builtins/gen/literal/textureStore/07548b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/07548b.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 layout(rgba16i) uniform highp writeonly iimage3D arg_0;
 void textureStore_07548b() {
-  imageStore(arg_0, ivec3(uvec3(0u)), ivec4(0));
+  imageStore(arg_0, ivec3(uvec3(1u)), ivec4(1));
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 
 layout(rgba16i) uniform highp writeonly iimage3D arg_0;
 void textureStore_07548b() {
-  imageStore(arg_0, ivec3(uvec3(0u)), ivec4(0));
+  imageStore(arg_0, ivec3(uvec3(1u)), ivec4(1));
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 layout(rgba16i) uniform highp writeonly iimage3D arg_0;
 void textureStore_07548b() {
-  imageStore(arg_0, ivec3(uvec3(0u)), ivec4(0));
+  imageStore(arg_0, ivec3(uvec3(1u)), ivec4(1));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureStore/07548b.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/07548b.wgsl.expected.msl
index a943c9d..3547e963 100644
--- a/test/tint/builtins/gen/literal/textureStore/07548b.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/07548b.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureStore_07548b(texture3d<int, access::write> tint_symbol_1) {
-  tint_symbol_1.write(int4(0), uint3(uint3(0u)));
+  tint_symbol_1.write(int4(1), uint3(uint3(1u)));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/07548b.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/07548b.wgsl.expected.spvasm
index 81c6715..d700ee4 100644
--- a/test/tint/builtins/gen/literal/textureStore/07548b.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/07548b.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 38
+; Bound: 40
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -39,36 +39,38 @@
          %13 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
-         %21 = OpConstantNull %v3uint
+     %uint_1 = OpConstant %uint 1
+         %22 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
       %v4int = OpTypeVector %int 4
-         %23 = OpConstantNull %v4int
-         %24 = OpTypeFunction %v4float
+      %int_1 = OpConstant %int 1
+         %25 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+         %26 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_07548b = OpFunction %void None %13
          %16 = OpLabel
          %18 = OpLoad %11 %arg_0
-               OpImageWrite %18 %21 %23
+               OpImageWrite %18 %22 %25
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %24
-         %26 = OpLabel
-         %27 = OpFunctionCall %void %textureStore_07548b
+%vertex_main_inner = OpFunction %v4float None %26
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %textureStore_07548b
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %29 = OpLabel
-         %30 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %30
+         %31 = OpLabel
+         %32 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %32
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_07548b
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureStore_07548b
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_07548b
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %textureStore_07548b
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/07548b.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/07548b.wgsl.expected.wgsl
index ddcfd78..d182a1c 100644
--- a/test/tint/builtins/gen/literal/textureStore/07548b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/07548b.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rgba16sint, write>;
 
 fn textureStore_07548b() {
-  textureStore(arg_0, vec3<u32>(), vec4<i32>());
+  textureStore(arg_0, vec3<u32>(1u), vec4<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/0a1a79.wgsl b/test/tint/builtins/gen/literal/textureStore/0a1a79.wgsl
index 3899f39..0d7bd6a 100644
--- a/test/tint/builtins/gen/literal/textureStore/0a1a79.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/0a1a79.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureStore(texture: texture_storage_2d_array<rgba8uint, write>, coords: vec2<u32>, array_index: i32, value: vec4<u32>)
 fn textureStore_0a1a79() {
-  textureStore(arg_0, vec2<u32>(), 1i, vec4<u32>());
+  textureStore(arg_0, vec2<u32>(1u), 1i, vec4<u32>(1u));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/0a1a79.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/0a1a79.wgsl.expected.dxc.hlsl
index 872f431..9cb3c26 100644
--- a/test/tint/builtins/gen/literal/textureStore/0a1a79.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/0a1a79.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 void textureStore_0a1a79() {
-  arg_0[uint3(0u, 0u, uint(1))] = (0u).xxxx;
+  arg_0[uint3((1u).xx, uint(1))] = (1u).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/0a1a79.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/0a1a79.wgsl.expected.fxc.hlsl
index 872f431..9cb3c26 100644
--- a/test/tint/builtins/gen/literal/textureStore/0a1a79.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/0a1a79.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 void textureStore_0a1a79() {
-  arg_0[uint3(0u, 0u, uint(1))] = (0u).xxxx;
+  arg_0[uint3((1u).xx, uint(1))] = (1u).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/0a1a79.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/0a1a79.wgsl.expected.glsl
index 7aacbb9..67dbe37 100644
--- a/test/tint/builtins/gen/literal/textureStore/0a1a79.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/0a1a79.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 layout(rgba8ui) uniform highp writeonly uimage2DArray arg_0;
 void textureStore_0a1a79() {
-  imageStore(arg_0, ivec3(uvec3(0u, 0u, uint(1))), uvec4(0u));
+  imageStore(arg_0, ivec3(uvec3(uvec2(1u), uint(1))), uvec4(1u));
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 
 layout(rgba8ui) uniform highp writeonly uimage2DArray arg_0;
 void textureStore_0a1a79() {
-  imageStore(arg_0, ivec3(uvec3(0u, 0u, uint(1))), uvec4(0u));
+  imageStore(arg_0, ivec3(uvec3(uvec2(1u), uint(1))), uvec4(1u));
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 layout(rgba8ui) uniform highp writeonly uimage2DArray arg_0;
 void textureStore_0a1a79() {
-  imageStore(arg_0, ivec3(uvec3(0u, 0u, uint(1))), uvec4(0u));
+  imageStore(arg_0, ivec3(uvec3(uvec2(1u), uint(1))), uvec4(1u));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureStore/0a1a79.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/0a1a79.wgsl.expected.msl
index 05cd137..e912738 100644
--- a/test/tint/builtins/gen/literal/textureStore/0a1a79.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/0a1a79.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureStore_0a1a79(texture2d_array<uint, access::write> tint_symbol_1) {
-  tint_symbol_1.write(uint4(0u), uint2(uint2(0u)), 1);
+  tint_symbol_1.write(uint4(1u), uint2(uint2(1u)), 1);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/0a1a79.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/0a1a79.wgsl.expected.spvasm
index 2a4e581..2cd4c0c 100644
--- a/test/tint/builtins/gen/literal/textureStore/0a1a79.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/0a1a79.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 41
+; Bound: 45
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -38,40 +38,44 @@
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
      %v3uint = OpTypeVector %uint 3
-     %uint_0 = OpConstant %uint 0
+     %v2uint = OpTypeVector %uint 2
+     %uint_1 = OpConstant %uint 1
+         %22 = OpConstantComposite %v2uint %uint_1 %uint_1
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
      %v4uint = OpTypeVector %uint 4
-         %26 = OpConstantNull %v4uint
-         %27 = OpTypeFunction %v4float
+         %30 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+         %31 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_0a1a79 = OpFunction %void None %13
          %16 = OpLabel
          %18 = OpLoad %11 %arg_0
-         %21 = OpBitcast %uint %int_1
-         %24 = OpCompositeConstruct %v3uint %uint_0 %uint_0 %21
-               OpImageWrite %18 %24 %26
+         %23 = OpCompositeExtract %uint %22 0
+         %24 = OpCompositeExtract %uint %22 1
+         %25 = OpBitcast %uint %int_1
+         %28 = OpCompositeConstruct %v3uint %23 %24 %25
+               OpImageWrite %18 %28 %30
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %27
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %textureStore_0a1a79
+%vertex_main_inner = OpFunction %v4float None %31
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureStore_0a1a79
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %32 = OpLabel
-         %33 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %33
+         %36 = OpLabel
+         %37 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %37
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_0a1a79
+         %40 = OpLabel
+         %41 = OpFunctionCall %void %textureStore_0a1a79
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_0a1a79
+         %43 = OpLabel
+         %44 = OpFunctionCall %void %textureStore_0a1a79
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/0a1a79.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/0a1a79.wgsl.expected.wgsl
index 0c98262..d30c2de 100644
--- a/test/tint/builtins/gen/literal/textureStore/0a1a79.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/0a1a79.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba8uint, write>;
 
 fn textureStore_0a1a79() {
-  textureStore(arg_0, vec2<u32>(), 1i, vec4<u32>());
+  textureStore(arg_0, vec2<u32>(1u), 1i, vec4<u32>(1u));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/0af6b5.wgsl b/test/tint/builtins/gen/literal/textureStore/0af6b5.wgsl
index f94740e..c77fc88 100644
--- a/test/tint/builtins/gen/literal/textureStore/0af6b5.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/0af6b5.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureStore(texture: texture_storage_2d<r32float, write>, coords: vec2<i32>, value: vec4<f32>)
 fn textureStore_0af6b5() {
-  textureStore(arg_0, vec2<i32>(), vec4<f32>());
+  textureStore(arg_0, vec2<i32>(1i), vec4<f32>(1.f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/0af6b5.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/0af6b5.wgsl.expected.dxc.hlsl
index 388ae73..ff91112 100644
--- a/test/tint/builtins/gen/literal/textureStore/0af6b5.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/0af6b5.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2D<float4> arg_0 : register(u0, space1);
 
 void textureStore_0af6b5() {
-  arg_0[(0).xx] = (0.0f).xxxx;
+  arg_0[(1).xx] = (1.0f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/0af6b5.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/0af6b5.wgsl.expected.fxc.hlsl
index 388ae73..ff91112 100644
--- a/test/tint/builtins/gen/literal/textureStore/0af6b5.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/0af6b5.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2D<float4> arg_0 : register(u0, space1);
 
 void textureStore_0af6b5() {
-  arg_0[(0).xx] = (0.0f).xxxx;
+  arg_0[(1).xx] = (1.0f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/0af6b5.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/0af6b5.wgsl.expected.glsl
index dc7474e..ac6275c 100644
--- a/test/tint/builtins/gen/literal/textureStore/0af6b5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/0af6b5.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 layout(r32f) uniform highp writeonly image2D arg_0;
 void textureStore_0af6b5() {
-  imageStore(arg_0, ivec2(0), vec4(0.0f));
+  imageStore(arg_0, ivec2(1), vec4(1.0f));
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 
 layout(r32f) uniform highp writeonly image2D arg_0;
 void textureStore_0af6b5() {
-  imageStore(arg_0, ivec2(0), vec4(0.0f));
+  imageStore(arg_0, ivec2(1), vec4(1.0f));
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 layout(r32f) uniform highp writeonly image2D arg_0;
 void textureStore_0af6b5() {
-  imageStore(arg_0, ivec2(0), vec4(0.0f));
+  imageStore(arg_0, ivec2(1), vec4(1.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureStore/0af6b5.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/0af6b5.wgsl.expected.msl
index dfe2b65..14def46 100644
--- a/test/tint/builtins/gen/literal/textureStore/0af6b5.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/0af6b5.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureStore_0af6b5(texture2d<float, access::write> tint_symbol_1) {
-  tint_symbol_1.write(float4(0.0f), uint2(int2(0)));
+  tint_symbol_1.write(float4(1.0f), uint2(int2(1)));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/0af6b5.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/0af6b5.wgsl.expected.spvasm
index 33b4e6a..7a12a77 100644
--- a/test/tint/builtins/gen/literal/textureStore/0af6b5.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/0af6b5.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 35
+; Bound: 37
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -38,34 +38,36 @@
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
-         %20 = OpConstantNull %v2int
-         %21 = OpTypeFunction %v4float
+      %int_1 = OpConstant %int 1
+         %21 = OpConstantComposite %v2int %int_1 %int_1
     %float_1 = OpConstant %float 1
+         %23 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %24 = OpTypeFunction %v4float
 %textureStore_0af6b5 = OpFunction %void None %12
          %15 = OpLabel
          %17 = OpLoad %11 %arg_0
-               OpImageWrite %17 %20 %5
+               OpImageWrite %17 %21 %23
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %21
-         %23 = OpLabel
-         %24 = OpFunctionCall %void %textureStore_0af6b5
+%vertex_main_inner = OpFunction %v4float None %24
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %textureStore_0af6b5
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %26 = OpLabel
-         %27 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %27
+         %29 = OpLabel
+         %30 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %30
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %textureStore_0af6b5
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %textureStore_0af6b5
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_0af6b5
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureStore_0af6b5
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/0af6b5.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/0af6b5.wgsl.expected.wgsl
index d6371ca..85bfa83 100644
--- a/test/tint/builtins/gen/literal/textureStore/0af6b5.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/0af6b5.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d<r32float, write>;
 
 fn textureStore_0af6b5() {
-  textureStore(arg_0, vec2<i32>(), vec4<f32>());
+  textureStore(arg_0, vec2<i32>(1i), vec4<f32>(1.0f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/0c3dff.wgsl b/test/tint/builtins/gen/literal/textureStore/0c3dff.wgsl
index c2c0cd8..6323dab 100644
--- a/test/tint/builtins/gen/literal/textureStore/0c3dff.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/0c3dff.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureStore(texture: texture_storage_2d<rgba16uint, write>, coords: vec2<i32>, value: vec4<u32>)
 fn textureStore_0c3dff() {
-  textureStore(arg_0, vec2<i32>(), vec4<u32>());
+  textureStore(arg_0, vec2<i32>(1i), vec4<u32>(1u));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/0c3dff.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/0c3dff.wgsl.expected.dxc.hlsl
index dcdd179..ef167e5 100644
--- a/test/tint/builtins/gen/literal/textureStore/0c3dff.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/0c3dff.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2D<uint4> arg_0 : register(u0, space1);
 
 void textureStore_0c3dff() {
-  arg_0[(0).xx] = (0u).xxxx;
+  arg_0[(1).xx] = (1u).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/0c3dff.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/0c3dff.wgsl.expected.fxc.hlsl
index dcdd179..ef167e5 100644
--- a/test/tint/builtins/gen/literal/textureStore/0c3dff.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/0c3dff.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2D<uint4> arg_0 : register(u0, space1);
 
 void textureStore_0c3dff() {
-  arg_0[(0).xx] = (0u).xxxx;
+  arg_0[(1).xx] = (1u).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/0c3dff.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/0c3dff.wgsl.expected.glsl
index 4366f60..7ff9d58 100644
--- a/test/tint/builtins/gen/literal/textureStore/0c3dff.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/0c3dff.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 layout(rgba16ui) uniform highp writeonly uimage2D arg_0;
 void textureStore_0c3dff() {
-  imageStore(arg_0, ivec2(0), uvec4(0u));
+  imageStore(arg_0, ivec2(1), uvec4(1u));
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 
 layout(rgba16ui) uniform highp writeonly uimage2D arg_0;
 void textureStore_0c3dff() {
-  imageStore(arg_0, ivec2(0), uvec4(0u));
+  imageStore(arg_0, ivec2(1), uvec4(1u));
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 layout(rgba16ui) uniform highp writeonly uimage2D arg_0;
 void textureStore_0c3dff() {
-  imageStore(arg_0, ivec2(0), uvec4(0u));
+  imageStore(arg_0, ivec2(1), uvec4(1u));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureStore/0c3dff.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/0c3dff.wgsl.expected.msl
index 64d849e..99752da 100644
--- a/test/tint/builtins/gen/literal/textureStore/0c3dff.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/0c3dff.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureStore_0c3dff(texture2d<uint, access::write> tint_symbol_1) {
-  tint_symbol_1.write(uint4(0u), uint2(int2(0)));
+  tint_symbol_1.write(uint4(1u), uint2(int2(1)));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/0c3dff.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/0c3dff.wgsl.expected.spvasm
index c8544d0..241c800 100644
--- a/test/tint/builtins/gen/literal/textureStore/0c3dff.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/0c3dff.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 38
+; Bound: 40
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -39,36 +39,38 @@
          %13 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
-         %21 = OpConstantNull %v2int
+      %int_1 = OpConstant %int 1
+         %22 = OpConstantComposite %v2int %int_1 %int_1
      %v4uint = OpTypeVector %uint 4
-         %23 = OpConstantNull %v4uint
-         %24 = OpTypeFunction %v4float
+     %uint_1 = OpConstant %uint 1
+         %25 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+         %26 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_0c3dff = OpFunction %void None %13
          %16 = OpLabel
          %18 = OpLoad %11 %arg_0
-               OpImageWrite %18 %21 %23
+               OpImageWrite %18 %22 %25
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %24
-         %26 = OpLabel
-         %27 = OpFunctionCall %void %textureStore_0c3dff
+%vertex_main_inner = OpFunction %v4float None %26
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %textureStore_0c3dff
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %29 = OpLabel
-         %30 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %30
+         %31 = OpLabel
+         %32 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %32
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_0c3dff
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureStore_0c3dff
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_0c3dff
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %textureStore_0c3dff
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/0c3dff.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/0c3dff.wgsl.expected.wgsl
index 14d2872..58787ad 100644
--- a/test/tint/builtins/gen/literal/textureStore/0c3dff.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/0c3dff.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba16uint, write>;
 
 fn textureStore_0c3dff() {
-  textureStore(arg_0, vec2<i32>(), vec4<u32>());
+  textureStore(arg_0, vec2<i32>(1i), vec4<u32>(1u));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/0cc825.wgsl b/test/tint/builtins/gen/literal/textureStore/0cc825.wgsl
index 65e450c..1895c53 100644
--- a/test/tint/builtins/gen/literal/textureStore/0cc825.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/0cc825.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureStore(texture: texture_storage_2d_array<rgba16sint, write>, coords: vec2<u32>, array_index: i32, value: vec4<i32>)
 fn textureStore_0cc825() {
-  textureStore(arg_0, vec2<u32>(), 1i, vec4<i32>());
+  textureStore(arg_0, vec2<u32>(1u), 1i, vec4<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/0cc825.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/0cc825.wgsl.expected.dxc.hlsl
index bf58d44..23f82c1 100644
--- a/test/tint/builtins/gen/literal/textureStore/0cc825.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/0cc825.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 void textureStore_0cc825() {
-  arg_0[uint3(0u, 0u, uint(1))] = (0).xxxx;
+  arg_0[uint3((1u).xx, uint(1))] = (1).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/0cc825.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/0cc825.wgsl.expected.fxc.hlsl
index bf58d44..23f82c1 100644
--- a/test/tint/builtins/gen/literal/textureStore/0cc825.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/0cc825.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 void textureStore_0cc825() {
-  arg_0[uint3(0u, 0u, uint(1))] = (0).xxxx;
+  arg_0[uint3((1u).xx, uint(1))] = (1).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/0cc825.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/0cc825.wgsl.expected.glsl
index e22d8d7..730ca7d 100644
--- a/test/tint/builtins/gen/literal/textureStore/0cc825.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/0cc825.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 layout(rgba16i) uniform highp writeonly iimage2DArray arg_0;
 void textureStore_0cc825() {
-  imageStore(arg_0, ivec3(uvec3(0u, 0u, uint(1))), ivec4(0));
+  imageStore(arg_0, ivec3(uvec3(uvec2(1u), uint(1))), ivec4(1));
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 
 layout(rgba16i) uniform highp writeonly iimage2DArray arg_0;
 void textureStore_0cc825() {
-  imageStore(arg_0, ivec3(uvec3(0u, 0u, uint(1))), ivec4(0));
+  imageStore(arg_0, ivec3(uvec3(uvec2(1u), uint(1))), ivec4(1));
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 layout(rgba16i) uniform highp writeonly iimage2DArray arg_0;
 void textureStore_0cc825() {
-  imageStore(arg_0, ivec3(uvec3(0u, 0u, uint(1))), ivec4(0));
+  imageStore(arg_0, ivec3(uvec3(uvec2(1u), uint(1))), ivec4(1));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureStore/0cc825.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/0cc825.wgsl.expected.msl
index 5f737ac..3157ac4 100644
--- a/test/tint/builtins/gen/literal/textureStore/0cc825.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/0cc825.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureStore_0cc825(texture2d_array<int, access::write> tint_symbol_1) {
-  tint_symbol_1.write(int4(0), uint2(uint2(0u)), 1);
+  tint_symbol_1.write(int4(1), uint2(uint2(1u)), 1);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/0cc825.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/0cc825.wgsl.expected.spvasm
index 1eeb64f..d1d4490 100644
--- a/test/tint/builtins/gen/literal/textureStore/0cc825.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/0cc825.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 41
+; Bound: 45
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -39,39 +39,43 @@
          %13 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
-     %uint_0 = OpConstant %uint 0
+     %v2uint = OpTypeVector %uint 2
+     %uint_1 = OpConstant %uint 1
+         %23 = OpConstantComposite %v2uint %uint_1 %uint_1
       %int_1 = OpConstant %int 1
       %v4int = OpTypeVector %int 4
-         %26 = OpConstantNull %v4int
-         %27 = OpTypeFunction %v4float
+         %30 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+         %31 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_0cc825 = OpFunction %void None %13
          %16 = OpLabel
          %18 = OpLoad %11 %arg_0
-         %22 = OpBitcast %uint %int_1
-         %24 = OpCompositeConstruct %v3uint %uint_0 %uint_0 %22
-               OpImageWrite %18 %24 %26
+         %24 = OpCompositeExtract %uint %23 0
+         %25 = OpCompositeExtract %uint %23 1
+         %26 = OpBitcast %uint %int_1
+         %28 = OpCompositeConstruct %v3uint %24 %25 %26
+               OpImageWrite %18 %28 %30
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %27
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %textureStore_0cc825
+%vertex_main_inner = OpFunction %v4float None %31
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureStore_0cc825
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %32 = OpLabel
-         %33 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %33
+         %36 = OpLabel
+         %37 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %37
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_0cc825
+         %40 = OpLabel
+         %41 = OpFunctionCall %void %textureStore_0cc825
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_0cc825
+         %43 = OpLabel
+         %44 = OpFunctionCall %void %textureStore_0cc825
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/0cc825.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/0cc825.wgsl.expected.wgsl
index 9a44567..a7b6aeb 100644
--- a/test/tint/builtins/gen/literal/textureStore/0cc825.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/0cc825.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba16sint, write>;
 
 fn textureStore_0cc825() {
-  textureStore(arg_0, vec2<u32>(), 1i, vec4<i32>());
+  textureStore(arg_0, vec2<u32>(1u), 1i, vec4<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/102722.wgsl b/test/tint/builtins/gen/literal/textureStore/102722.wgsl
index 1bd0839..5f88023 100644
--- a/test/tint/builtins/gen/literal/textureStore/102722.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/102722.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureStore(texture: texture_storage_1d<r32uint, write>, coords: i32, value: vec4<u32>)
 fn textureStore_102722() {
-  textureStore(arg_0, 1i, vec4<u32>());
+  textureStore(arg_0, 1i, vec4<u32>(1u));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/102722.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/102722.wgsl.expected.dxc.hlsl
index cf95c7c..e3a48f2 100644
--- a/test/tint/builtins/gen/literal/textureStore/102722.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/102722.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture1D<uint4> arg_0 : register(u0, space1);
 
 void textureStore_102722() {
-  arg_0[1] = (0u).xxxx;
+  arg_0[1] = (1u).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/102722.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/102722.wgsl.expected.fxc.hlsl
index cf95c7c..e3a48f2 100644
--- a/test/tint/builtins/gen/literal/textureStore/102722.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/102722.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture1D<uint4> arg_0 : register(u0, space1);
 
 void textureStore_102722() {
-  arg_0[1] = (0u).xxxx;
+  arg_0[1] = (1u).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/102722.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/102722.wgsl.expected.msl
index c4a5d5a..f2c85aa 100644
--- a/test/tint/builtins/gen/literal/textureStore/102722.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/102722.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureStore_102722(texture1d<uint, access::write> tint_symbol_1) {
-  tint_symbol_1.write(uint4(0u), uint(1));
+  tint_symbol_1.write(uint4(1u), uint(1));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/102722.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/102722.wgsl.expected.spvasm
index f1a4f4f..98830a8 100644
--- a/test/tint/builtins/gen/literal/textureStore/102722.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/102722.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 37
+; Bound: 38
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
@@ -41,34 +41,35 @@
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
      %v4uint = OpTypeVector %uint 4
-         %22 = OpConstantNull %v4uint
-         %23 = OpTypeFunction %v4float
+     %uint_1 = OpConstant %uint 1
+         %23 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+         %24 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_102722 = OpFunction %void None %13
          %16 = OpLabel
          %18 = OpLoad %11 %arg_0
-               OpImageWrite %18 %int_1 %22
+               OpImageWrite %18 %int_1 %23
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %23
-         %25 = OpLabel
-         %26 = OpFunctionCall %void %textureStore_102722
+%vertex_main_inner = OpFunction %v4float None %24
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %textureStore_102722
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %28 = OpLabel
-         %29 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %29
+         %29 = OpLabel
+         %30 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %30
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_102722
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureStore_102722
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureStore_102722
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureStore_102722
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/102722.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/102722.wgsl.expected.wgsl
index dd665bf..7853e25 100644
--- a/test/tint/builtins/gen/literal/textureStore/102722.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/102722.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_storage_1d<r32uint, write>;
 
 fn textureStore_102722() {
-  textureStore(arg_0, 1i, vec4<u32>());
+  textureStore(arg_0, 1i, vec4<u32>(1u));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/158cf0.wgsl b/test/tint/builtins/gen/literal/textureStore/158cf0.wgsl
index 439e2b7..5e852dc 100644
--- a/test/tint/builtins/gen/literal/textureStore/158cf0.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/158cf0.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureStore(texture: texture_storage_2d_array<r32uint, write>, coords: vec2<u32>, array_index: u32, value: vec4<u32>)
 fn textureStore_158cf0() {
-  textureStore(arg_0, vec2<u32>(), 1u, vec4<u32>());
+  textureStore(arg_0, vec2<u32>(1u), 1u, vec4<u32>(1u));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/158cf0.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/158cf0.wgsl.expected.dxc.hlsl
index b9bb3f4..4a8c1e8 100644
--- a/test/tint/builtins/gen/literal/textureStore/158cf0.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/158cf0.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 void textureStore_158cf0() {
-  arg_0[uint3(0u, 0u, 1u)] = (0u).xxxx;
+  arg_0[uint3((1u).xx, 1u)] = (1u).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/158cf0.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/158cf0.wgsl.expected.fxc.hlsl
index b9bb3f4..4a8c1e8 100644
--- a/test/tint/builtins/gen/literal/textureStore/158cf0.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/158cf0.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 void textureStore_158cf0() {
-  arg_0[uint3(0u, 0u, 1u)] = (0u).xxxx;
+  arg_0[uint3((1u).xx, 1u)] = (1u).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/158cf0.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/158cf0.wgsl.expected.glsl
index f8eb6ee..7a7040b 100644
--- a/test/tint/builtins/gen/literal/textureStore/158cf0.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/158cf0.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 layout(r32ui) uniform highp writeonly uimage2DArray arg_0;
 void textureStore_158cf0() {
-  imageStore(arg_0, ivec3(uvec3(0u, 0u, 1u)), uvec4(0u));
+  imageStore(arg_0, ivec3(uvec3(uvec2(1u), 1u)), uvec4(1u));
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 
 layout(r32ui) uniform highp writeonly uimage2DArray arg_0;
 void textureStore_158cf0() {
-  imageStore(arg_0, ivec3(uvec3(0u, 0u, 1u)), uvec4(0u));
+  imageStore(arg_0, ivec3(uvec3(uvec2(1u), 1u)), uvec4(1u));
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 layout(r32ui) uniform highp writeonly uimage2DArray arg_0;
 void textureStore_158cf0() {
-  imageStore(arg_0, ivec3(uvec3(0u, 0u, 1u)), uvec4(0u));
+  imageStore(arg_0, ivec3(uvec3(uvec2(1u), 1u)), uvec4(1u));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureStore/158cf0.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/158cf0.wgsl.expected.msl
index 8b86324..820b78d 100644
--- a/test/tint/builtins/gen/literal/textureStore/158cf0.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/158cf0.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureStore_158cf0(texture2d_array<uint, access::write> tint_symbol_1) {
-  tint_symbol_1.write(uint4(0u), uint2(uint2(0u)), 1u);
+  tint_symbol_1.write(uint4(1u), uint2(uint2(1u)), 1u);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/158cf0.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/158cf0.wgsl.expected.spvasm
index 57856cd..e41ab4c 100644
--- a/test/tint/builtins/gen/literal/textureStore/158cf0.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/158cf0.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 39
+; Bound: 42
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -38,38 +38,41 @@
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
      %v3uint = OpTypeVector %uint 3
-     %uint_0 = OpConstant %uint 0
+     %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %22 = OpConstantComposite %v3uint %uint_0 %uint_0 %uint_1
+         %22 = OpConstantComposite %v2uint %uint_1 %uint_1
      %v4uint = OpTypeVector %uint 4
-         %24 = OpConstantNull %v4uint
-         %25 = OpTypeFunction %v4float
+         %27 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+         %28 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_158cf0 = OpFunction %void None %13
          %16 = OpLabel
          %18 = OpLoad %11 %arg_0
-               OpImageWrite %18 %22 %24
+         %23 = OpCompositeExtract %uint %22 0
+         %24 = OpCompositeExtract %uint %22 1
+         %25 = OpCompositeConstruct %v3uint %23 %24 %uint_1
+               OpImageWrite %18 %25 %27
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %25
-         %27 = OpLabel
-         %28 = OpFunctionCall %void %textureStore_158cf0
+%vertex_main_inner = OpFunction %v4float None %28
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %textureStore_158cf0
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %30 = OpLabel
-         %31 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %31
+         %33 = OpLabel
+         %34 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %34
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureStore_158cf0
+         %37 = OpLabel
+         %38 = OpFunctionCall %void %textureStore_158cf0
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureStore_158cf0
+         %40 = OpLabel
+         %41 = OpFunctionCall %void %textureStore_158cf0
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/158cf0.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/158cf0.wgsl.expected.wgsl
index 0a13e2f..49944b6 100644
--- a/test/tint/builtins/gen/literal/textureStore/158cf0.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/158cf0.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<r32uint, write>;
 
 fn textureStore_158cf0() {
-  textureStore(arg_0, vec2<u32>(), 1u, vec4<u32>());
+  textureStore(arg_0, vec2<u32>(1u), 1u, vec4<u32>(1u));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/1839f2.wgsl b/test/tint/builtins/gen/literal/textureStore/1839f2.wgsl
index 9d5ba32..b339550 100644
--- a/test/tint/builtins/gen/literal/textureStore/1839f2.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/1839f2.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureStore(texture: texture_storage_2d<rgba8sint, write>, coords: vec2<u32>, value: vec4<i32>)
 fn textureStore_1839f2() {
-  textureStore(arg_0, vec2<u32>(), vec4<i32>());
+  textureStore(arg_0, vec2<u32>(1u), vec4<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/1839f2.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/1839f2.wgsl.expected.dxc.hlsl
index d27947f..198f00e 100644
--- a/test/tint/builtins/gen/literal/textureStore/1839f2.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/1839f2.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2D<int4> arg_0 : register(u0, space1);
 
 void textureStore_1839f2() {
-  arg_0[(0u).xx] = (0).xxxx;
+  arg_0[(1u).xx] = (1).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/1839f2.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/1839f2.wgsl.expected.fxc.hlsl
index d27947f..198f00e 100644
--- a/test/tint/builtins/gen/literal/textureStore/1839f2.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/1839f2.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2D<int4> arg_0 : register(u0, space1);
 
 void textureStore_1839f2() {
-  arg_0[(0u).xx] = (0).xxxx;
+  arg_0[(1u).xx] = (1).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/1839f2.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/1839f2.wgsl.expected.glsl
index 3d314fa..360dde1 100644
--- a/test/tint/builtins/gen/literal/textureStore/1839f2.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/1839f2.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 layout(rgba8i) uniform highp writeonly iimage2D arg_0;
 void textureStore_1839f2() {
-  imageStore(arg_0, ivec2(uvec2(0u)), ivec4(0));
+  imageStore(arg_0, ivec2(uvec2(1u)), ivec4(1));
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 
 layout(rgba8i) uniform highp writeonly iimage2D arg_0;
 void textureStore_1839f2() {
-  imageStore(arg_0, ivec2(uvec2(0u)), ivec4(0));
+  imageStore(arg_0, ivec2(uvec2(1u)), ivec4(1));
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 layout(rgba8i) uniform highp writeonly iimage2D arg_0;
 void textureStore_1839f2() {
-  imageStore(arg_0, ivec2(uvec2(0u)), ivec4(0));
+  imageStore(arg_0, ivec2(uvec2(1u)), ivec4(1));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureStore/1839f2.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/1839f2.wgsl.expected.msl
index f0251ba..669e5fc 100644
--- a/test/tint/builtins/gen/literal/textureStore/1839f2.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/1839f2.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureStore_1839f2(texture2d<int, access::write> tint_symbol_1) {
-  tint_symbol_1.write(int4(0), uint2(uint2(0u)));
+  tint_symbol_1.write(int4(1), uint2(uint2(1u)));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/1839f2.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/1839f2.wgsl.expected.spvasm
index c1f7242..c8d32a3 100644
--- a/test/tint/builtins/gen/literal/textureStore/1839f2.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/1839f2.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 38
+; Bound: 40
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -39,36 +39,38 @@
          %13 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
-         %21 = OpConstantNull %v2uint
+     %uint_1 = OpConstant %uint 1
+         %22 = OpConstantComposite %v2uint %uint_1 %uint_1
       %v4int = OpTypeVector %int 4
-         %23 = OpConstantNull %v4int
-         %24 = OpTypeFunction %v4float
+      %int_1 = OpConstant %int 1
+         %25 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+         %26 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_1839f2 = OpFunction %void None %13
          %16 = OpLabel
          %18 = OpLoad %11 %arg_0
-               OpImageWrite %18 %21 %23
+               OpImageWrite %18 %22 %25
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %24
-         %26 = OpLabel
-         %27 = OpFunctionCall %void %textureStore_1839f2
+%vertex_main_inner = OpFunction %v4float None %26
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %textureStore_1839f2
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %29 = OpLabel
-         %30 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %30
+         %31 = OpLabel
+         %32 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %32
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_1839f2
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureStore_1839f2
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_1839f2
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %textureStore_1839f2
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/1839f2.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/1839f2.wgsl.expected.wgsl
index 7da29d2..971a7bb 100644
--- a/test/tint/builtins/gen/literal/textureStore/1839f2.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/1839f2.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba8sint, write>;
 
 fn textureStore_1839f2() {
-  textureStore(arg_0, vec2<u32>(), vec4<i32>());
+  textureStore(arg_0, vec2<u32>(1u), vec4<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/1a7d35.wgsl b/test/tint/builtins/gen/literal/textureStore/1a7d35.wgsl
index 3ee0b86..7382854 100644
--- a/test/tint/builtins/gen/literal/textureStore/1a7d35.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/1a7d35.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureStore(texture: texture_storage_2d_array<r32sint, write>, coords: vec2<u32>, array_index: u32, value: vec4<i32>)
 fn textureStore_1a7d35() {
-  textureStore(arg_0, vec2<u32>(), 1u, vec4<i32>());
+  textureStore(arg_0, vec2<u32>(1u), 1u, vec4<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/1a7d35.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/1a7d35.wgsl.expected.dxc.hlsl
index 1c3f667..842544a 100644
--- a/test/tint/builtins/gen/literal/textureStore/1a7d35.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/1a7d35.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 void textureStore_1a7d35() {
-  arg_0[uint3(0u, 0u, 1u)] = (0).xxxx;
+  arg_0[uint3((1u).xx, 1u)] = (1).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/1a7d35.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/1a7d35.wgsl.expected.fxc.hlsl
index 1c3f667..842544a 100644
--- a/test/tint/builtins/gen/literal/textureStore/1a7d35.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/1a7d35.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 void textureStore_1a7d35() {
-  arg_0[uint3(0u, 0u, 1u)] = (0).xxxx;
+  arg_0[uint3((1u).xx, 1u)] = (1).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/1a7d35.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/1a7d35.wgsl.expected.glsl
index ca69181..16992aa 100644
--- a/test/tint/builtins/gen/literal/textureStore/1a7d35.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/1a7d35.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 layout(r32i) uniform highp writeonly iimage2DArray arg_0;
 void textureStore_1a7d35() {
-  imageStore(arg_0, ivec3(uvec3(0u, 0u, 1u)), ivec4(0));
+  imageStore(arg_0, ivec3(uvec3(uvec2(1u), 1u)), ivec4(1));
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 
 layout(r32i) uniform highp writeonly iimage2DArray arg_0;
 void textureStore_1a7d35() {
-  imageStore(arg_0, ivec3(uvec3(0u, 0u, 1u)), ivec4(0));
+  imageStore(arg_0, ivec3(uvec3(uvec2(1u), 1u)), ivec4(1));
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 layout(r32i) uniform highp writeonly iimage2DArray arg_0;
 void textureStore_1a7d35() {
-  imageStore(arg_0, ivec3(uvec3(0u, 0u, 1u)), ivec4(0));
+  imageStore(arg_0, ivec3(uvec3(uvec2(1u), 1u)), ivec4(1));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureStore/1a7d35.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/1a7d35.wgsl.expected.msl
index c857308..9cac721 100644
--- a/test/tint/builtins/gen/literal/textureStore/1a7d35.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/1a7d35.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureStore_1a7d35(texture2d_array<int, access::write> tint_symbol_1) {
-  tint_symbol_1.write(int4(0), uint2(uint2(0u)), 1u);
+  tint_symbol_1.write(int4(1), uint2(uint2(1u)), 1u);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/1a7d35.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/1a7d35.wgsl.expected.spvasm
index cac9cad..cea0b97 100644
--- a/test/tint/builtins/gen/literal/textureStore/1a7d35.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/1a7d35.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 40
+; Bound: 44
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -39,38 +39,42 @@
          %13 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
-     %uint_0 = OpConstant %uint 0
+     %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %23 = OpConstantComposite %v3uint %uint_0 %uint_0 %uint_1
+         %23 = OpConstantComposite %v2uint %uint_1 %uint_1
       %v4int = OpTypeVector %int 4
-         %25 = OpConstantNull %v4int
-         %26 = OpTypeFunction %v4float
+      %int_1 = OpConstant %int 1
+         %29 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+         %30 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_1a7d35 = OpFunction %void None %13
          %16 = OpLabel
          %18 = OpLoad %11 %arg_0
-               OpImageWrite %18 %23 %25
+         %24 = OpCompositeExtract %uint %23 0
+         %25 = OpCompositeExtract %uint %23 1
+         %26 = OpCompositeConstruct %v3uint %24 %25 %uint_1
+               OpImageWrite %18 %26 %29
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %26
-         %28 = OpLabel
-         %29 = OpFunctionCall %void %textureStore_1a7d35
+%vertex_main_inner = OpFunction %v4float None %30
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %textureStore_1a7d35
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %31 = OpLabel
-         %32 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %32
+         %35 = OpLabel
+         %36 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %36
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureStore_1a7d35
+         %39 = OpLabel
+         %40 = OpFunctionCall %void %textureStore_1a7d35
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureStore_1a7d35
+         %42 = OpLabel
+         %43 = OpFunctionCall %void %textureStore_1a7d35
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/1a7d35.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/1a7d35.wgsl.expected.wgsl
index 83b8de3..c8483a6 100644
--- a/test/tint/builtins/gen/literal/textureStore/1a7d35.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/1a7d35.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<r32sint, write>;
 
 fn textureStore_1a7d35() {
-  textureStore(arg_0, vec2<u32>(), 1u, vec4<i32>());
+  textureStore(arg_0, vec2<u32>(1u), 1u, vec4<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/1bbd08.wgsl b/test/tint/builtins/gen/literal/textureStore/1bbd08.wgsl
index b0103e8..4ea9716 100644
--- a/test/tint/builtins/gen/literal/textureStore/1bbd08.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/1bbd08.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureStore(texture: texture_storage_3d<rgba8unorm, write>, coords: vec3<i32>, value: vec4<f32>)
 fn textureStore_1bbd08() {
-  textureStore(arg_0, vec3<i32>(), vec4<f32>());
+  textureStore(arg_0, vec3<i32>(1i), vec4<f32>(1.f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/1bbd08.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/1bbd08.wgsl.expected.dxc.hlsl
index 21d658e..bceaccf 100644
--- a/test/tint/builtins/gen/literal/textureStore/1bbd08.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/1bbd08.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture3D<float4> arg_0 : register(u0, space1);
 
 void textureStore_1bbd08() {
-  arg_0[(0).xxx] = (0.0f).xxxx;
+  arg_0[(1).xxx] = (1.0f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/1bbd08.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/1bbd08.wgsl.expected.fxc.hlsl
index 21d658e..bceaccf 100644
--- a/test/tint/builtins/gen/literal/textureStore/1bbd08.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/1bbd08.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture3D<float4> arg_0 : register(u0, space1);
 
 void textureStore_1bbd08() {
-  arg_0[(0).xxx] = (0.0f).xxxx;
+  arg_0[(1).xxx] = (1.0f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/1bbd08.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/1bbd08.wgsl.expected.glsl
index a26b65d..7d04d1f 100644
--- a/test/tint/builtins/gen/literal/textureStore/1bbd08.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/1bbd08.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 layout(rgba8) uniform highp writeonly image3D arg_0;
 void textureStore_1bbd08() {
-  imageStore(arg_0, ivec3(0), vec4(0.0f));
+  imageStore(arg_0, ivec3(1), vec4(1.0f));
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 
 layout(rgba8) uniform highp writeonly image3D arg_0;
 void textureStore_1bbd08() {
-  imageStore(arg_0, ivec3(0), vec4(0.0f));
+  imageStore(arg_0, ivec3(1), vec4(1.0f));
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 layout(rgba8) uniform highp writeonly image3D arg_0;
 void textureStore_1bbd08() {
-  imageStore(arg_0, ivec3(0), vec4(0.0f));
+  imageStore(arg_0, ivec3(1), vec4(1.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureStore/1bbd08.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/1bbd08.wgsl.expected.msl
index c05a7e5..81cad88 100644
--- a/test/tint/builtins/gen/literal/textureStore/1bbd08.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/1bbd08.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureStore_1bbd08(texture3d<float, access::write> tint_symbol_1) {
-  tint_symbol_1.write(float4(0.0f), uint3(int3(0)));
+  tint_symbol_1.write(float4(1.0f), uint3(int3(1)));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/1bbd08.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/1bbd08.wgsl.expected.spvasm
index f1316a5..20e4438 100644
--- a/test/tint/builtins/gen/literal/textureStore/1bbd08.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/1bbd08.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 35
+; Bound: 37
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -38,34 +38,36 @@
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
-         %20 = OpConstantNull %v3int
-         %21 = OpTypeFunction %v4float
+      %int_1 = OpConstant %int 1
+         %21 = OpConstantComposite %v3int %int_1 %int_1 %int_1
     %float_1 = OpConstant %float 1
+         %23 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %24 = OpTypeFunction %v4float
 %textureStore_1bbd08 = OpFunction %void None %12
          %15 = OpLabel
          %17 = OpLoad %11 %arg_0
-               OpImageWrite %17 %20 %5
+               OpImageWrite %17 %21 %23
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %21
-         %23 = OpLabel
-         %24 = OpFunctionCall %void %textureStore_1bbd08
+%vertex_main_inner = OpFunction %v4float None %24
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %textureStore_1bbd08
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %26 = OpLabel
-         %27 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %27
+         %29 = OpLabel
+         %30 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %30
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %textureStore_1bbd08
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %textureStore_1bbd08
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_1bbd08
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureStore_1bbd08
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/1bbd08.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/1bbd08.wgsl.expected.wgsl
index b6aa3ff..889b97a 100644
--- a/test/tint/builtins/gen/literal/textureStore/1bbd08.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/1bbd08.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rgba8unorm, write>;
 
 fn textureStore_1bbd08() {
-  textureStore(arg_0, vec3<i32>(), vec4<f32>());
+  textureStore(arg_0, vec3<i32>(1i), vec4<f32>(1.0f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/1c02e7.wgsl b/test/tint/builtins/gen/literal/textureStore/1c02e7.wgsl
index cc58e9a..ee0cfd9 100644
--- a/test/tint/builtins/gen/literal/textureStore/1c02e7.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/1c02e7.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureStore(texture: texture_storage_2d_array<r32sint, write>, coords: vec2<i32>, array_index: i32, value: vec4<i32>)
 fn textureStore_1c02e7() {
-  textureStore(arg_0, vec2<i32>(), 1i, vec4<i32>());
+  textureStore(arg_0, vec2<i32>(1i), 1i, vec4<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/1c02e7.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/1c02e7.wgsl.expected.dxc.hlsl
index f4ad1a0..6add803 100644
--- a/test/tint/builtins/gen/literal/textureStore/1c02e7.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/1c02e7.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 void textureStore_1c02e7() {
-  arg_0[int3(0, 0, 1)] = (0).xxxx;
+  arg_0[int3((1).xx, 1)] = (1).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/1c02e7.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/1c02e7.wgsl.expected.fxc.hlsl
index f4ad1a0..6add803 100644
--- a/test/tint/builtins/gen/literal/textureStore/1c02e7.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/1c02e7.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 void textureStore_1c02e7() {
-  arg_0[int3(0, 0, 1)] = (0).xxxx;
+  arg_0[int3((1).xx, 1)] = (1).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/1c02e7.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/1c02e7.wgsl.expected.glsl
index 8e9601c..28735ea 100644
--- a/test/tint/builtins/gen/literal/textureStore/1c02e7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/1c02e7.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 layout(r32i) uniform highp writeonly iimage2DArray arg_0;
 void textureStore_1c02e7() {
-  imageStore(arg_0, ivec3(0, 0, 1), ivec4(0));
+  imageStore(arg_0, ivec3(ivec2(1), 1), ivec4(1));
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 
 layout(r32i) uniform highp writeonly iimage2DArray arg_0;
 void textureStore_1c02e7() {
-  imageStore(arg_0, ivec3(0, 0, 1), ivec4(0));
+  imageStore(arg_0, ivec3(ivec2(1), 1), ivec4(1));
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 layout(r32i) uniform highp writeonly iimage2DArray arg_0;
 void textureStore_1c02e7() {
-  imageStore(arg_0, ivec3(0, 0, 1), ivec4(0));
+  imageStore(arg_0, ivec3(ivec2(1), 1), ivec4(1));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureStore/1c02e7.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/1c02e7.wgsl.expected.msl
index a17b971..4229a33 100644
--- a/test/tint/builtins/gen/literal/textureStore/1c02e7.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/1c02e7.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureStore_1c02e7(texture2d_array<int, access::write> tint_symbol_1) {
-  tint_symbol_1.write(int4(0), uint2(int2(0)), 1);
+  tint_symbol_1.write(int4(1), uint2(int2(1)), 1);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/1c02e7.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/1c02e7.wgsl.expected.spvasm
index 320d4a9..f70ea85 100644
--- a/test/tint/builtins/gen/literal/textureStore/1c02e7.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/1c02e7.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 39
+; Bound: 42
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -38,38 +38,41 @@
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
       %v3int = OpTypeVector %int 3
-      %int_0 = OpConstant %int 0
+      %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %22 = OpConstantComposite %v3int %int_0 %int_0 %int_1
+         %22 = OpConstantComposite %v2int %int_1 %int_1
       %v4int = OpTypeVector %int 4
-         %24 = OpConstantNull %v4int
-         %25 = OpTypeFunction %v4float
+         %27 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+         %28 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_1c02e7 = OpFunction %void None %13
          %16 = OpLabel
          %18 = OpLoad %11 %arg_0
-               OpImageWrite %18 %22 %24
+         %23 = OpCompositeExtract %int %22 0
+         %24 = OpCompositeExtract %int %22 1
+         %25 = OpCompositeConstruct %v3int %23 %24 %int_1
+               OpImageWrite %18 %25 %27
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %25
-         %27 = OpLabel
-         %28 = OpFunctionCall %void %textureStore_1c02e7
+%vertex_main_inner = OpFunction %v4float None %28
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %textureStore_1c02e7
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %30 = OpLabel
-         %31 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %31
+         %33 = OpLabel
+         %34 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %34
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureStore_1c02e7
+         %37 = OpLabel
+         %38 = OpFunctionCall %void %textureStore_1c02e7
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureStore_1c02e7
+         %40 = OpLabel
+         %41 = OpFunctionCall %void %textureStore_1c02e7
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/1c02e7.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/1c02e7.wgsl.expected.wgsl
index bc7cea2..81cd3a7 100644
--- a/test/tint/builtins/gen/literal/textureStore/1c02e7.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/1c02e7.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<r32sint, write>;
 
 fn textureStore_1c02e7() {
-  textureStore(arg_0, vec2<i32>(), 1i, vec4<i32>());
+  textureStore(arg_0, vec2<i32>(1i), 1i, vec4<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/1dc954.wgsl b/test/tint/builtins/gen/literal/textureStore/1dc954.wgsl
index 5f1165a..6817caa 100644
--- a/test/tint/builtins/gen/literal/textureStore/1dc954.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/1dc954.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureStore(texture: texture_storage_1d<rgba32sint, write>, coords: u32, value: vec4<i32>)
 fn textureStore_1dc954() {
-  textureStore(arg_0, 1u, vec4<i32>());
+  textureStore(arg_0, 1u, vec4<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/1dc954.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/1dc954.wgsl.expected.dxc.hlsl
index aa78a7d..bc9dfae 100644
--- a/test/tint/builtins/gen/literal/textureStore/1dc954.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/1dc954.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture1D<int4> arg_0 : register(u0, space1);
 
 void textureStore_1dc954() {
-  arg_0[1u] = (0).xxxx;
+  arg_0[1u] = (1).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/1dc954.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/1dc954.wgsl.expected.fxc.hlsl
index aa78a7d..bc9dfae 100644
--- a/test/tint/builtins/gen/literal/textureStore/1dc954.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/1dc954.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture1D<int4> arg_0 : register(u0, space1);
 
 void textureStore_1dc954() {
-  arg_0[1u] = (0).xxxx;
+  arg_0[1u] = (1).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/1dc954.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/1dc954.wgsl.expected.msl
index 94daa3b..780f957 100644
--- a/test/tint/builtins/gen/literal/textureStore/1dc954.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/1dc954.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureStore_1dc954(texture1d<int, access::write> tint_symbol_1) {
-  tint_symbol_1.write(int4(0), uint(1u));
+  tint_symbol_1.write(int4(1), uint(1u));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/1dc954.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/1dc954.wgsl.expected.spvasm
index 399c07d..9d7f783 100644
--- a/test/tint/builtins/gen/literal/textureStore/1dc954.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/1dc954.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 37
+; Bound: 38
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
@@ -41,34 +41,35 @@
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
       %v4int = OpTypeVector %int 4
-         %22 = OpConstantNull %v4int
-         %23 = OpTypeFunction %v4float
+      %int_1 = OpConstant %int 1
+         %23 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+         %24 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_1dc954 = OpFunction %void None %13
          %16 = OpLabel
          %18 = OpLoad %11 %arg_0
-               OpImageWrite %18 %uint_1 %22
+               OpImageWrite %18 %uint_1 %23
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %23
-         %25 = OpLabel
-         %26 = OpFunctionCall %void %textureStore_1dc954
+%vertex_main_inner = OpFunction %v4float None %24
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %textureStore_1dc954
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %28 = OpLabel
-         %29 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %29
+         %29 = OpLabel
+         %30 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %30
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_1dc954
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureStore_1dc954
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureStore_1dc954
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureStore_1dc954
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/1dc954.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/1dc954.wgsl.expected.wgsl
index 6ea1f64..09a5154 100644
--- a/test/tint/builtins/gen/literal/textureStore/1dc954.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/1dc954.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rgba32sint, write>;
 
 fn textureStore_1dc954() {
-  textureStore(arg_0, 1u, vec4<i32>());
+  textureStore(arg_0, 1u, vec4<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/1e20f2.wgsl b/test/tint/builtins/gen/literal/textureStore/1e20f2.wgsl
index ac0ac7b..743981b 100644
--- a/test/tint/builtins/gen/literal/textureStore/1e20f2.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/1e20f2.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureStore(texture: texture_storage_2d<r32float, write>, coords: vec2<u32>, value: vec4<f32>)
 fn textureStore_1e20f2() {
-  textureStore(arg_0, vec2<u32>(), vec4<f32>());
+  textureStore(arg_0, vec2<u32>(1u), vec4<f32>(1.f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/1e20f2.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/1e20f2.wgsl.expected.dxc.hlsl
index 1c1d0a9..37c57c2 100644
--- a/test/tint/builtins/gen/literal/textureStore/1e20f2.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/1e20f2.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2D<float4> arg_0 : register(u0, space1);
 
 void textureStore_1e20f2() {
-  arg_0[(0u).xx] = (0.0f).xxxx;
+  arg_0[(1u).xx] = (1.0f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/1e20f2.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/1e20f2.wgsl.expected.fxc.hlsl
index 1c1d0a9..37c57c2 100644
--- a/test/tint/builtins/gen/literal/textureStore/1e20f2.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/1e20f2.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2D<float4> arg_0 : register(u0, space1);
 
 void textureStore_1e20f2() {
-  arg_0[(0u).xx] = (0.0f).xxxx;
+  arg_0[(1u).xx] = (1.0f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/1e20f2.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/1e20f2.wgsl.expected.glsl
index 45ecb44..ff9ee4a 100644
--- a/test/tint/builtins/gen/literal/textureStore/1e20f2.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/1e20f2.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 layout(r32f) uniform highp writeonly image2D arg_0;
 void textureStore_1e20f2() {
-  imageStore(arg_0, ivec2(uvec2(0u)), vec4(0.0f));
+  imageStore(arg_0, ivec2(uvec2(1u)), vec4(1.0f));
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 
 layout(r32f) uniform highp writeonly image2D arg_0;
 void textureStore_1e20f2() {
-  imageStore(arg_0, ivec2(uvec2(0u)), vec4(0.0f));
+  imageStore(arg_0, ivec2(uvec2(1u)), vec4(1.0f));
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 layout(r32f) uniform highp writeonly image2D arg_0;
 void textureStore_1e20f2() {
-  imageStore(arg_0, ivec2(uvec2(0u)), vec4(0.0f));
+  imageStore(arg_0, ivec2(uvec2(1u)), vec4(1.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureStore/1e20f2.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/1e20f2.wgsl.expected.msl
index 85e7418..485e4e6 100644
--- a/test/tint/builtins/gen/literal/textureStore/1e20f2.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/1e20f2.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureStore_1e20f2(texture2d<float, access::write> tint_symbol_1) {
-  tint_symbol_1.write(float4(0.0f), uint2(uint2(0u)));
+  tint_symbol_1.write(float4(1.0f), uint2(uint2(1u)));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/1e20f2.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/1e20f2.wgsl.expected.spvasm
index 446cf04..9b00b86 100644
--- a/test/tint/builtins/gen/literal/textureStore/1e20f2.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/1e20f2.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 35
+; Bound: 37
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -38,34 +38,36 @@
          %12 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
-         %20 = OpConstantNull %v2uint
-         %21 = OpTypeFunction %v4float
+     %uint_1 = OpConstant %uint 1
+         %21 = OpConstantComposite %v2uint %uint_1 %uint_1
     %float_1 = OpConstant %float 1
+         %23 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %24 = OpTypeFunction %v4float
 %textureStore_1e20f2 = OpFunction %void None %12
          %15 = OpLabel
          %17 = OpLoad %11 %arg_0
-               OpImageWrite %17 %20 %5
+               OpImageWrite %17 %21 %23
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %21
-         %23 = OpLabel
-         %24 = OpFunctionCall %void %textureStore_1e20f2
+%vertex_main_inner = OpFunction %v4float None %24
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %textureStore_1e20f2
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %26 = OpLabel
-         %27 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %27
+         %29 = OpLabel
+         %30 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %30
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %textureStore_1e20f2
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %textureStore_1e20f2
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_1e20f2
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureStore_1e20f2
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/1e20f2.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/1e20f2.wgsl.expected.wgsl
index 8762625..61a9732 100644
--- a/test/tint/builtins/gen/literal/textureStore/1e20f2.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/1e20f2.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d<r32float, write>;
 
 fn textureStore_1e20f2() {
-  textureStore(arg_0, vec2<u32>(), vec4<f32>());
+  textureStore(arg_0, vec2<u32>(1u), vec4<f32>(1.0f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/1f1ef8.wgsl b/test/tint/builtins/gen/literal/textureStore/1f1ef8.wgsl
index 5a8267a..eb0ff77 100644
--- a/test/tint/builtins/gen/literal/textureStore/1f1ef8.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/1f1ef8.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureStore(texture: texture_storage_2d_array<rgba16sint, write>, coords: vec2<i32>, array_index: u32, value: vec4<i32>)
 fn textureStore_1f1ef8() {
-  textureStore(arg_0, vec2<i32>(), 1u, vec4<i32>());
+  textureStore(arg_0, vec2<i32>(1i), 1u, vec4<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/1f1ef8.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/1f1ef8.wgsl.expected.dxc.hlsl
index c38dfe8..7dc2888 100644
--- a/test/tint/builtins/gen/literal/textureStore/1f1ef8.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/1f1ef8.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 void textureStore_1f1ef8() {
-  arg_0[int3(0, 0, int(1u))] = (0).xxxx;
+  arg_0[int3((1).xx, int(1u))] = (1).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/1f1ef8.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/1f1ef8.wgsl.expected.fxc.hlsl
index c38dfe8..7dc2888 100644
--- a/test/tint/builtins/gen/literal/textureStore/1f1ef8.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/1f1ef8.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 void textureStore_1f1ef8() {
-  arg_0[int3(0, 0, int(1u))] = (0).xxxx;
+  arg_0[int3((1).xx, int(1u))] = (1).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/1f1ef8.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/1f1ef8.wgsl.expected.glsl
index 72a9bec5..5ee4edb 100644
--- a/test/tint/builtins/gen/literal/textureStore/1f1ef8.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/1f1ef8.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 layout(rgba16i) uniform highp writeonly iimage2DArray arg_0;
 void textureStore_1f1ef8() {
-  imageStore(arg_0, ivec3(0, 0, int(1u)), ivec4(0));
+  imageStore(arg_0, ivec3(ivec2(1), int(1u)), ivec4(1));
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 
 layout(rgba16i) uniform highp writeonly iimage2DArray arg_0;
 void textureStore_1f1ef8() {
-  imageStore(arg_0, ivec3(0, 0, int(1u)), ivec4(0));
+  imageStore(arg_0, ivec3(ivec2(1), int(1u)), ivec4(1));
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 layout(rgba16i) uniform highp writeonly iimage2DArray arg_0;
 void textureStore_1f1ef8() {
-  imageStore(arg_0, ivec3(0, 0, int(1u)), ivec4(0));
+  imageStore(arg_0, ivec3(ivec2(1), int(1u)), ivec4(1));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureStore/1f1ef8.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/1f1ef8.wgsl.expected.msl
index b85f5e5..d517025 100644
--- a/test/tint/builtins/gen/literal/textureStore/1f1ef8.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/1f1ef8.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureStore_1f1ef8(texture2d_array<int, access::write> tint_symbol_1) {
-  tint_symbol_1.write(int4(0), uint2(int2(0)), 1u);
+  tint_symbol_1.write(int4(1), uint2(int2(1)), 1u);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/1f1ef8.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/1f1ef8.wgsl.expected.spvasm
index 6aff314..a92e0d4 100644
--- a/test/tint/builtins/gen/literal/textureStore/1f1ef8.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/1f1ef8.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 41
+; Bound: 45
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -38,40 +38,44 @@
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
       %v3int = OpTypeVector %int 3
-      %int_0 = OpConstant %int 0
+      %v2int = OpTypeVector %int 2
+      %int_1 = OpConstant %int 1
+         %22 = OpConstantComposite %v2int %int_1 %int_1
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
       %v4int = OpTypeVector %int 4
-         %26 = OpConstantNull %v4int
-         %27 = OpTypeFunction %v4float
+         %30 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+         %31 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_1f1ef8 = OpFunction %void None %13
          %16 = OpLabel
          %18 = OpLoad %11 %arg_0
-         %21 = OpBitcast %int %uint_1
-         %24 = OpCompositeConstruct %v3int %int_0 %int_0 %21
-               OpImageWrite %18 %24 %26
+         %23 = OpCompositeExtract %int %22 0
+         %24 = OpCompositeExtract %int %22 1
+         %25 = OpBitcast %int %uint_1
+         %28 = OpCompositeConstruct %v3int %23 %24 %25
+               OpImageWrite %18 %28 %30
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %27
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %textureStore_1f1ef8
+%vertex_main_inner = OpFunction %v4float None %31
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureStore_1f1ef8
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %32 = OpLabel
-         %33 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %33
+         %36 = OpLabel
+         %37 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %37
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_1f1ef8
+         %40 = OpLabel
+         %41 = OpFunctionCall %void %textureStore_1f1ef8
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_1f1ef8
+         %43 = OpLabel
+         %44 = OpFunctionCall %void %textureStore_1f1ef8
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/1f1ef8.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/1f1ef8.wgsl.expected.wgsl
index 1651670..10e652a 100644
--- a/test/tint/builtins/gen/literal/textureStore/1f1ef8.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/1f1ef8.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba16sint, write>;
 
 fn textureStore_1f1ef8() {
-  textureStore(arg_0, vec2<i32>(), 1u, vec4<i32>());
+  textureStore(arg_0, vec2<i32>(1i), 1u, vec4<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/207fdd.wgsl b/test/tint/builtins/gen/literal/textureStore/207fdd.wgsl
index 11c0772..409e57b 100644
--- a/test/tint/builtins/gen/literal/textureStore/207fdd.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/207fdd.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureStore(texture: texture_storage_3d<rgba8snorm, write>, coords: vec3<u32>, value: vec4<f32>)
 fn textureStore_207fdd() {
-  textureStore(arg_0, vec3<u32>(), vec4<f32>());
+  textureStore(arg_0, vec3<u32>(1u), vec4<f32>(1.f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/207fdd.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/207fdd.wgsl.expected.dxc.hlsl
index 4078bc2..8b06dea 100644
--- a/test/tint/builtins/gen/literal/textureStore/207fdd.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/207fdd.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture3D<float4> arg_0 : register(u0, space1);
 
 void textureStore_207fdd() {
-  arg_0[(0u).xxx] = (0.0f).xxxx;
+  arg_0[(1u).xxx] = (1.0f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/207fdd.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/207fdd.wgsl.expected.fxc.hlsl
index 4078bc2..8b06dea 100644
--- a/test/tint/builtins/gen/literal/textureStore/207fdd.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/207fdd.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture3D<float4> arg_0 : register(u0, space1);
 
 void textureStore_207fdd() {
-  arg_0[(0u).xxx] = (0.0f).xxxx;
+  arg_0[(1u).xxx] = (1.0f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/207fdd.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/207fdd.wgsl.expected.glsl
index b780a95..81a7915 100644
--- a/test/tint/builtins/gen/literal/textureStore/207fdd.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/207fdd.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 layout(rgba8_snorm) uniform highp writeonly image3D arg_0;
 void textureStore_207fdd() {
-  imageStore(arg_0, ivec3(uvec3(0u)), vec4(0.0f));
+  imageStore(arg_0, ivec3(uvec3(1u)), vec4(1.0f));
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 
 layout(rgba8_snorm) uniform highp writeonly image3D arg_0;
 void textureStore_207fdd() {
-  imageStore(arg_0, ivec3(uvec3(0u)), vec4(0.0f));
+  imageStore(arg_0, ivec3(uvec3(1u)), vec4(1.0f));
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 layout(rgba8_snorm) uniform highp writeonly image3D arg_0;
 void textureStore_207fdd() {
-  imageStore(arg_0, ivec3(uvec3(0u)), vec4(0.0f));
+  imageStore(arg_0, ivec3(uvec3(1u)), vec4(1.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureStore/207fdd.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/207fdd.wgsl.expected.msl
index 9e3c0e8..c050074 100644
--- a/test/tint/builtins/gen/literal/textureStore/207fdd.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/207fdd.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureStore_207fdd(texture3d<float, access::write> tint_symbol_1) {
-  tint_symbol_1.write(float4(0.0f), uint3(uint3(0u)));
+  tint_symbol_1.write(float4(1.0f), uint3(uint3(1u)));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/207fdd.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/207fdd.wgsl.expected.spvasm
index 4c90dfc..2007bb4 100644
--- a/test/tint/builtins/gen/literal/textureStore/207fdd.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/207fdd.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 35
+; Bound: 37
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -38,34 +38,36 @@
          %12 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
-         %20 = OpConstantNull %v3uint
-         %21 = OpTypeFunction %v4float
+     %uint_1 = OpConstant %uint 1
+         %21 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
     %float_1 = OpConstant %float 1
+         %23 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %24 = OpTypeFunction %v4float
 %textureStore_207fdd = OpFunction %void None %12
          %15 = OpLabel
          %17 = OpLoad %11 %arg_0
-               OpImageWrite %17 %20 %5
+               OpImageWrite %17 %21 %23
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %21
-         %23 = OpLabel
-         %24 = OpFunctionCall %void %textureStore_207fdd
+%vertex_main_inner = OpFunction %v4float None %24
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %textureStore_207fdd
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %26 = OpLabel
-         %27 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %27
+         %29 = OpLabel
+         %30 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %30
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %textureStore_207fdd
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %textureStore_207fdd
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_207fdd
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureStore_207fdd
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/207fdd.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/207fdd.wgsl.expected.wgsl
index 50d6dc5..7687fee 100644
--- a/test/tint/builtins/gen/literal/textureStore/207fdd.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/207fdd.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rgba8snorm, write>;
 
 fn textureStore_207fdd() {
-  textureStore(arg_0, vec3<u32>(), vec4<f32>());
+  textureStore(arg_0, vec3<u32>(1u), vec4<f32>(1.0f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/22d955.wgsl b/test/tint/builtins/gen/literal/textureStore/22d955.wgsl
index 2f1f79b..12fdc66 100644
--- a/test/tint/builtins/gen/literal/textureStore/22d955.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/22d955.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureStore(texture: texture_storage_2d_array<rgba8uint, write>, coords: vec2<i32>, array_index: i32, value: vec4<u32>)
 fn textureStore_22d955() {
-  textureStore(arg_0, vec2<i32>(), 1i, vec4<u32>());
+  textureStore(arg_0, vec2<i32>(1i), 1i, vec4<u32>(1u));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/22d955.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/22d955.wgsl.expected.dxc.hlsl
index c998bd8..7148014 100644
--- a/test/tint/builtins/gen/literal/textureStore/22d955.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/22d955.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 void textureStore_22d955() {
-  arg_0[int3(0, 0, 1)] = (0u).xxxx;
+  arg_0[int3((1).xx, 1)] = (1u).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/22d955.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/22d955.wgsl.expected.fxc.hlsl
index c998bd8..7148014 100644
--- a/test/tint/builtins/gen/literal/textureStore/22d955.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/22d955.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 void textureStore_22d955() {
-  arg_0[int3(0, 0, 1)] = (0u).xxxx;
+  arg_0[int3((1).xx, 1)] = (1u).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/22d955.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/22d955.wgsl.expected.glsl
index b904bcd..f05be5e 100644
--- a/test/tint/builtins/gen/literal/textureStore/22d955.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/22d955.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 layout(rgba8ui) uniform highp writeonly uimage2DArray arg_0;
 void textureStore_22d955() {
-  imageStore(arg_0, ivec3(0, 0, 1), uvec4(0u));
+  imageStore(arg_0, ivec3(ivec2(1), 1), uvec4(1u));
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 
 layout(rgba8ui) uniform highp writeonly uimage2DArray arg_0;
 void textureStore_22d955() {
-  imageStore(arg_0, ivec3(0, 0, 1), uvec4(0u));
+  imageStore(arg_0, ivec3(ivec2(1), 1), uvec4(1u));
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 layout(rgba8ui) uniform highp writeonly uimage2DArray arg_0;
 void textureStore_22d955() {
-  imageStore(arg_0, ivec3(0, 0, 1), uvec4(0u));
+  imageStore(arg_0, ivec3(ivec2(1), 1), uvec4(1u));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureStore/22d955.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/22d955.wgsl.expected.msl
index 4bf37e1..78e57e3 100644
--- a/test/tint/builtins/gen/literal/textureStore/22d955.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/22d955.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureStore_22d955(texture2d_array<uint, access::write> tint_symbol_1) {
-  tint_symbol_1.write(uint4(0u), uint2(int2(0)), 1);
+  tint_symbol_1.write(uint4(1u), uint2(int2(1)), 1);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/22d955.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/22d955.wgsl.expected.spvasm
index ac3fcad..a87e0bc 100644
--- a/test/tint/builtins/gen/literal/textureStore/22d955.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/22d955.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 40
+; Bound: 44
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -39,38 +39,42 @@
          %13 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
-      %int_0 = OpConstant %int 0
+      %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %23 = OpConstantComposite %v3int %int_0 %int_0 %int_1
+         %23 = OpConstantComposite %v2int %int_1 %int_1
      %v4uint = OpTypeVector %uint 4
-         %25 = OpConstantNull %v4uint
-         %26 = OpTypeFunction %v4float
+     %uint_1 = OpConstant %uint 1
+         %29 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+         %30 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_22d955 = OpFunction %void None %13
          %16 = OpLabel
          %18 = OpLoad %11 %arg_0
-               OpImageWrite %18 %23 %25
+         %24 = OpCompositeExtract %int %23 0
+         %25 = OpCompositeExtract %int %23 1
+         %26 = OpCompositeConstruct %v3int %24 %25 %int_1
+               OpImageWrite %18 %26 %29
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %26
-         %28 = OpLabel
-         %29 = OpFunctionCall %void %textureStore_22d955
+%vertex_main_inner = OpFunction %v4float None %30
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %textureStore_22d955
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %31 = OpLabel
-         %32 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %32
+         %35 = OpLabel
+         %36 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %36
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureStore_22d955
+         %39 = OpLabel
+         %40 = OpFunctionCall %void %textureStore_22d955
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureStore_22d955
+         %42 = OpLabel
+         %43 = OpFunctionCall %void %textureStore_22d955
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/22d955.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/22d955.wgsl.expected.wgsl
index 6cdb5e7..c7b43ee 100644
--- a/test/tint/builtins/gen/literal/textureStore/22d955.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/22d955.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba8uint, write>;
 
 fn textureStore_22d955() {
-  textureStore(arg_0, vec2<i32>(), 1i, vec4<u32>());
+  textureStore(arg_0, vec2<i32>(1i), 1i, vec4<u32>(1u));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/22f045.wgsl b/test/tint/builtins/gen/literal/textureStore/22f045.wgsl
index 415716e..d9c15d2 100644
--- a/test/tint/builtins/gen/literal/textureStore/22f045.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/22f045.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureStore(texture: texture_storage_2d_array<rgba8snorm, write>, coords: vec2<i32>, array_index: u32, value: vec4<f32>)
 fn textureStore_22f045() {
-  textureStore(arg_0, vec2<i32>(), 1u, vec4<f32>());
+  textureStore(arg_0, vec2<i32>(1i), 1u, vec4<f32>(1.f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/22f045.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/22f045.wgsl.expected.dxc.hlsl
index ae1649c..ea7f63e 100644
--- a/test/tint/builtins/gen/literal/textureStore/22f045.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/22f045.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 void textureStore_22f045() {
-  arg_0[int3(0, 0, int(1u))] = (0.0f).xxxx;
+  arg_0[int3((1).xx, int(1u))] = (1.0f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/22f045.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/22f045.wgsl.expected.fxc.hlsl
index ae1649c..ea7f63e 100644
--- a/test/tint/builtins/gen/literal/textureStore/22f045.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/22f045.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 void textureStore_22f045() {
-  arg_0[int3(0, 0, int(1u))] = (0.0f).xxxx;
+  arg_0[int3((1).xx, int(1u))] = (1.0f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/22f045.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/22f045.wgsl.expected.glsl
index 204ab9d..8443dcb 100644
--- a/test/tint/builtins/gen/literal/textureStore/22f045.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/22f045.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 layout(rgba8_snorm) uniform highp writeonly image2DArray arg_0;
 void textureStore_22f045() {
-  imageStore(arg_0, ivec3(0, 0, int(1u)), vec4(0.0f));
+  imageStore(arg_0, ivec3(ivec2(1), int(1u)), vec4(1.0f));
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 
 layout(rgba8_snorm) uniform highp writeonly image2DArray arg_0;
 void textureStore_22f045() {
-  imageStore(arg_0, ivec3(0, 0, int(1u)), vec4(0.0f));
+  imageStore(arg_0, ivec3(ivec2(1), int(1u)), vec4(1.0f));
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 layout(rgba8_snorm) uniform highp writeonly image2DArray arg_0;
 void textureStore_22f045() {
-  imageStore(arg_0, ivec3(0, 0, int(1u)), vec4(0.0f));
+  imageStore(arg_0, ivec3(ivec2(1), int(1u)), vec4(1.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureStore/22f045.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/22f045.wgsl.expected.msl
index f07f39f..69dfed2 100644
--- a/test/tint/builtins/gen/literal/textureStore/22f045.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/22f045.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureStore_22f045(texture2d_array<float, access::write> tint_symbol_1) {
-  tint_symbol_1.write(float4(0.0f), uint2(int2(0)), 1u);
+  tint_symbol_1.write(float4(1.0f), uint2(int2(1)), 1u);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/22f045.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/22f045.wgsl.expected.spvasm
index 69ce3d4..2e7da5d 100644
--- a/test/tint/builtins/gen/literal/textureStore/22f045.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/22f045.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 39
+; Bound: 44
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -38,38 +38,43 @@
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
-      %int_0 = OpConstant %int 0
+      %v2int = OpTypeVector %int 2
+      %int_1 = OpConstant %int 1
+         %22 = OpConstantComposite %v2int %int_1 %int_1
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
-         %25 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
+         %30 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %31 = OpTypeFunction %v4float
 %textureStore_22f045 = OpFunction %void None %12
          %15 = OpLabel
          %17 = OpLoad %11 %arg_0
-         %21 = OpBitcast %int %uint_1
-         %24 = OpCompositeConstruct %v3int %int_0 %int_0 %21
-               OpImageWrite %17 %24 %5
+         %23 = OpCompositeExtract %int %22 0
+         %24 = OpCompositeExtract %int %22 1
+         %25 = OpBitcast %int %uint_1
+         %28 = OpCompositeConstruct %v3int %23 %24 %25
+               OpImageWrite %17 %28 %30
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %25
-         %27 = OpLabel
-         %28 = OpFunctionCall %void %textureStore_22f045
+%vertex_main_inner = OpFunction %v4float None %31
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureStore_22f045
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %30 = OpLabel
-         %31 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %31
+         %36 = OpLabel
+         %37 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %37
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureStore_22f045
+         %39 = OpLabel
+         %40 = OpFunctionCall %void %textureStore_22f045
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureStore_22f045
+         %42 = OpLabel
+         %43 = OpFunctionCall %void %textureStore_22f045
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/22f045.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/22f045.wgsl.expected.wgsl
index 688f6a4..2b2abf6 100644
--- a/test/tint/builtins/gen/literal/textureStore/22f045.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/22f045.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba8snorm, write>;
 
 fn textureStore_22f045() {
-  textureStore(arg_0, vec2<i32>(), 1u, vec4<f32>());
+  textureStore(arg_0, vec2<i32>(1i), 1u, vec4<f32>(1.0f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/2383fc.wgsl b/test/tint/builtins/gen/literal/textureStore/2383fc.wgsl
index 09b48b1..6b799cf 100644
--- a/test/tint/builtins/gen/literal/textureStore/2383fc.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/2383fc.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureStore(texture: texture_storage_2d_array<r32uint, write>, coords: vec2<u32>, array_index: i32, value: vec4<u32>)
 fn textureStore_2383fc() {
-  textureStore(arg_0, vec2<u32>(), 1i, vec4<u32>());
+  textureStore(arg_0, vec2<u32>(1u), 1i, vec4<u32>(1u));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/2383fc.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/2383fc.wgsl.expected.dxc.hlsl
index 3e78178..ba95459d 100644
--- a/test/tint/builtins/gen/literal/textureStore/2383fc.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/2383fc.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 void textureStore_2383fc() {
-  arg_0[uint3(0u, 0u, uint(1))] = (0u).xxxx;
+  arg_0[uint3((1u).xx, uint(1))] = (1u).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/2383fc.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/2383fc.wgsl.expected.fxc.hlsl
index 3e78178..ba95459d 100644
--- a/test/tint/builtins/gen/literal/textureStore/2383fc.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/2383fc.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 void textureStore_2383fc() {
-  arg_0[uint3(0u, 0u, uint(1))] = (0u).xxxx;
+  arg_0[uint3((1u).xx, uint(1))] = (1u).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/2383fc.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/2383fc.wgsl.expected.glsl
index 6691080..1d4c29a 100644
--- a/test/tint/builtins/gen/literal/textureStore/2383fc.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/2383fc.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 layout(r32ui) uniform highp writeonly uimage2DArray arg_0;
 void textureStore_2383fc() {
-  imageStore(arg_0, ivec3(uvec3(0u, 0u, uint(1))), uvec4(0u));
+  imageStore(arg_0, ivec3(uvec3(uvec2(1u), uint(1))), uvec4(1u));
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 
 layout(r32ui) uniform highp writeonly uimage2DArray arg_0;
 void textureStore_2383fc() {
-  imageStore(arg_0, ivec3(uvec3(0u, 0u, uint(1))), uvec4(0u));
+  imageStore(arg_0, ivec3(uvec3(uvec2(1u), uint(1))), uvec4(1u));
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 layout(r32ui) uniform highp writeonly uimage2DArray arg_0;
 void textureStore_2383fc() {
-  imageStore(arg_0, ivec3(uvec3(0u, 0u, uint(1))), uvec4(0u));
+  imageStore(arg_0, ivec3(uvec3(uvec2(1u), uint(1))), uvec4(1u));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureStore/2383fc.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/2383fc.wgsl.expected.msl
index b56a39a..f521f18 100644
--- a/test/tint/builtins/gen/literal/textureStore/2383fc.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/2383fc.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureStore_2383fc(texture2d_array<uint, access::write> tint_symbol_1) {
-  tint_symbol_1.write(uint4(0u), uint2(uint2(0u)), 1);
+  tint_symbol_1.write(uint4(1u), uint2(uint2(1u)), 1);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/2383fc.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/2383fc.wgsl.expected.spvasm
index 4b7a731..5de3a69 100644
--- a/test/tint/builtins/gen/literal/textureStore/2383fc.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/2383fc.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 41
+; Bound: 45
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -38,40 +38,44 @@
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
      %v3uint = OpTypeVector %uint 3
-     %uint_0 = OpConstant %uint 0
+     %v2uint = OpTypeVector %uint 2
+     %uint_1 = OpConstant %uint 1
+         %22 = OpConstantComposite %v2uint %uint_1 %uint_1
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
      %v4uint = OpTypeVector %uint 4
-         %26 = OpConstantNull %v4uint
-         %27 = OpTypeFunction %v4float
+         %30 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+         %31 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_2383fc = OpFunction %void None %13
          %16 = OpLabel
          %18 = OpLoad %11 %arg_0
-         %21 = OpBitcast %uint %int_1
-         %24 = OpCompositeConstruct %v3uint %uint_0 %uint_0 %21
-               OpImageWrite %18 %24 %26
+         %23 = OpCompositeExtract %uint %22 0
+         %24 = OpCompositeExtract %uint %22 1
+         %25 = OpBitcast %uint %int_1
+         %28 = OpCompositeConstruct %v3uint %23 %24 %25
+               OpImageWrite %18 %28 %30
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %27
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %textureStore_2383fc
+%vertex_main_inner = OpFunction %v4float None %31
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureStore_2383fc
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %32 = OpLabel
-         %33 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %33
+         %36 = OpLabel
+         %37 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %37
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_2383fc
+         %40 = OpLabel
+         %41 = OpFunctionCall %void %textureStore_2383fc
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_2383fc
+         %43 = OpLabel
+         %44 = OpFunctionCall %void %textureStore_2383fc
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/2383fc.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/2383fc.wgsl.expected.wgsl
index 58bfd01..e0a6d6f 100644
--- a/test/tint/builtins/gen/literal/textureStore/2383fc.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/2383fc.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<r32uint, write>;
 
 fn textureStore_2383fc() {
-  textureStore(arg_0, vec2<u32>(), 1i, vec4<u32>());
+  textureStore(arg_0, vec2<u32>(1u), 1i, vec4<u32>(1u));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/258ab0.wgsl b/test/tint/builtins/gen/literal/textureStore/258ab0.wgsl
index a0c5fcb..a9ce3e0 100644
--- a/test/tint/builtins/gen/literal/textureStore/258ab0.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/258ab0.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureStore(texture: texture_storage_2d_array<rgba8unorm, write>, coords: vec2<u32>, array_index: i32, value: vec4<f32>)
 fn textureStore_258ab0() {
-  textureStore(arg_0, vec2<u32>(), 1i, vec4<f32>());
+  textureStore(arg_0, vec2<u32>(1u), 1i, vec4<f32>(1.f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/258ab0.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/258ab0.wgsl.expected.dxc.hlsl
index 60afdb8..c07e9c5 100644
--- a/test/tint/builtins/gen/literal/textureStore/258ab0.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/258ab0.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 void textureStore_258ab0() {
-  arg_0[uint3(0u, 0u, uint(1))] = (0.0f).xxxx;
+  arg_0[uint3((1u).xx, uint(1))] = (1.0f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/258ab0.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/258ab0.wgsl.expected.fxc.hlsl
index 60afdb8..c07e9c5 100644
--- a/test/tint/builtins/gen/literal/textureStore/258ab0.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/258ab0.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 void textureStore_258ab0() {
-  arg_0[uint3(0u, 0u, uint(1))] = (0.0f).xxxx;
+  arg_0[uint3((1u).xx, uint(1))] = (1.0f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/258ab0.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/258ab0.wgsl.expected.glsl
index 8590cc9..84b9c35 100644
--- a/test/tint/builtins/gen/literal/textureStore/258ab0.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/258ab0.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 layout(rgba8) uniform highp writeonly image2DArray arg_0;
 void textureStore_258ab0() {
-  imageStore(arg_0, ivec3(uvec3(0u, 0u, uint(1))), vec4(0.0f));
+  imageStore(arg_0, ivec3(uvec3(uvec2(1u), uint(1))), vec4(1.0f));
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 
 layout(rgba8) uniform highp writeonly image2DArray arg_0;
 void textureStore_258ab0() {
-  imageStore(arg_0, ivec3(uvec3(0u, 0u, uint(1))), vec4(0.0f));
+  imageStore(arg_0, ivec3(uvec3(uvec2(1u), uint(1))), vec4(1.0f));
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 layout(rgba8) uniform highp writeonly image2DArray arg_0;
 void textureStore_258ab0() {
-  imageStore(arg_0, ivec3(uvec3(0u, 0u, uint(1))), vec4(0.0f));
+  imageStore(arg_0, ivec3(uvec3(uvec2(1u), uint(1))), vec4(1.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureStore/258ab0.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/258ab0.wgsl.expected.msl
index 0a3abff..c1acf06 100644
--- a/test/tint/builtins/gen/literal/textureStore/258ab0.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/258ab0.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureStore_258ab0(texture2d_array<float, access::write> tint_symbol_1) {
-  tint_symbol_1.write(float4(0.0f), uint2(uint2(0u)), 1);
+  tint_symbol_1.write(float4(1.0f), uint2(uint2(1u)), 1);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/258ab0.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/258ab0.wgsl.expected.spvasm
index 3333cbe..2d466a6 100644
--- a/test/tint/builtins/gen/literal/textureStore/258ab0.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/258ab0.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 39
+; Bound: 44
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -38,38 +38,43 @@
          %12 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
-     %uint_0 = OpConstant %uint 0
+     %v2uint = OpTypeVector %uint 2
+     %uint_1 = OpConstant %uint 1
+         %22 = OpConstantComposite %v2uint %uint_1 %uint_1
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
-         %25 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
+         %30 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %31 = OpTypeFunction %v4float
 %textureStore_258ab0 = OpFunction %void None %12
          %15 = OpLabel
          %17 = OpLoad %11 %arg_0
-         %21 = OpBitcast %uint %int_1
-         %24 = OpCompositeConstruct %v3uint %uint_0 %uint_0 %21
-               OpImageWrite %17 %24 %5
+         %23 = OpCompositeExtract %uint %22 0
+         %24 = OpCompositeExtract %uint %22 1
+         %25 = OpBitcast %uint %int_1
+         %28 = OpCompositeConstruct %v3uint %23 %24 %25
+               OpImageWrite %17 %28 %30
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %25
-         %27 = OpLabel
-         %28 = OpFunctionCall %void %textureStore_258ab0
+%vertex_main_inner = OpFunction %v4float None %31
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureStore_258ab0
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %30 = OpLabel
-         %31 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %31
+         %36 = OpLabel
+         %37 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %37
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureStore_258ab0
+         %39 = OpLabel
+         %40 = OpFunctionCall %void %textureStore_258ab0
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureStore_258ab0
+         %42 = OpLabel
+         %43 = OpFunctionCall %void %textureStore_258ab0
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/258ab0.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/258ab0.wgsl.expected.wgsl
index 40d4997..c4d6c00 100644
--- a/test/tint/builtins/gen/literal/textureStore/258ab0.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/258ab0.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba8unorm, write>;
 
 fn textureStore_258ab0() {
-  textureStore(arg_0, vec2<u32>(), 1i, vec4<f32>());
+  textureStore(arg_0, vec2<u32>(1u), 1i, vec4<f32>(1.0f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/26bf70.wgsl b/test/tint/builtins/gen/literal/textureStore/26bf70.wgsl
index 8edb0ae..ad36c53 100644
--- a/test/tint/builtins/gen/literal/textureStore/26bf70.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/26bf70.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureStore(texture: texture_storage_2d<rgba32uint, write>, coords: vec2<i32>, value: vec4<u32>)
 fn textureStore_26bf70() {
-  textureStore(arg_0, vec2<i32>(), vec4<u32>());
+  textureStore(arg_0, vec2<i32>(1i), vec4<u32>(1u));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/26bf70.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/26bf70.wgsl.expected.dxc.hlsl
index 7c666e2..99c6d57 100644
--- a/test/tint/builtins/gen/literal/textureStore/26bf70.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/26bf70.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2D<uint4> arg_0 : register(u0, space1);
 
 void textureStore_26bf70() {
-  arg_0[(0).xx] = (0u).xxxx;
+  arg_0[(1).xx] = (1u).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/26bf70.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/26bf70.wgsl.expected.fxc.hlsl
index 7c666e2..99c6d57 100644
--- a/test/tint/builtins/gen/literal/textureStore/26bf70.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/26bf70.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2D<uint4> arg_0 : register(u0, space1);
 
 void textureStore_26bf70() {
-  arg_0[(0).xx] = (0u).xxxx;
+  arg_0[(1).xx] = (1u).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/26bf70.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/26bf70.wgsl.expected.glsl
index b3fe0dd..5da5639 100644
--- a/test/tint/builtins/gen/literal/textureStore/26bf70.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/26bf70.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 layout(rgba32ui) uniform highp writeonly uimage2D arg_0;
 void textureStore_26bf70() {
-  imageStore(arg_0, ivec2(0), uvec4(0u));
+  imageStore(arg_0, ivec2(1), uvec4(1u));
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 
 layout(rgba32ui) uniform highp writeonly uimage2D arg_0;
 void textureStore_26bf70() {
-  imageStore(arg_0, ivec2(0), uvec4(0u));
+  imageStore(arg_0, ivec2(1), uvec4(1u));
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 layout(rgba32ui) uniform highp writeonly uimage2D arg_0;
 void textureStore_26bf70() {
-  imageStore(arg_0, ivec2(0), uvec4(0u));
+  imageStore(arg_0, ivec2(1), uvec4(1u));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureStore/26bf70.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/26bf70.wgsl.expected.msl
index 9b32850..c206178 100644
--- a/test/tint/builtins/gen/literal/textureStore/26bf70.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/26bf70.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureStore_26bf70(texture2d<uint, access::write> tint_symbol_1) {
-  tint_symbol_1.write(uint4(0u), uint2(int2(0)));
+  tint_symbol_1.write(uint4(1u), uint2(int2(1)));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/26bf70.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/26bf70.wgsl.expected.spvasm
index 4040d99..ff6c49d 100644
--- a/test/tint/builtins/gen/literal/textureStore/26bf70.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/26bf70.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 38
+; Bound: 40
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -39,36 +39,38 @@
          %13 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
-         %21 = OpConstantNull %v2int
+      %int_1 = OpConstant %int 1
+         %22 = OpConstantComposite %v2int %int_1 %int_1
      %v4uint = OpTypeVector %uint 4
-         %23 = OpConstantNull %v4uint
-         %24 = OpTypeFunction %v4float
+     %uint_1 = OpConstant %uint 1
+         %25 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+         %26 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_26bf70 = OpFunction %void None %13
          %16 = OpLabel
          %18 = OpLoad %11 %arg_0
-               OpImageWrite %18 %21 %23
+               OpImageWrite %18 %22 %25
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %24
-         %26 = OpLabel
-         %27 = OpFunctionCall %void %textureStore_26bf70
+%vertex_main_inner = OpFunction %v4float None %26
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %textureStore_26bf70
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %29 = OpLabel
-         %30 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %30
+         %31 = OpLabel
+         %32 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %32
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_26bf70
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureStore_26bf70
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_26bf70
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %textureStore_26bf70
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/26bf70.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/26bf70.wgsl.expected.wgsl
index 10aa757..f17425a 100644
--- a/test/tint/builtins/gen/literal/textureStore/26bf70.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/26bf70.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba32uint, write>;
 
 fn textureStore_26bf70() {
-  textureStore(arg_0, vec2<i32>(), vec4<u32>());
+  textureStore(arg_0, vec2<i32>(1i), vec4<u32>(1u));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/2796b4.wgsl b/test/tint/builtins/gen/literal/textureStore/2796b4.wgsl
index ada88c1..16dcbf6 100644
--- a/test/tint/builtins/gen/literal/textureStore/2796b4.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/2796b4.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureStore(texture: texture_storage_3d<rg32sint, write>, coords: vec3<i32>, value: vec4<i32>)
 fn textureStore_2796b4() {
-  textureStore(arg_0, vec3<i32>(), vec4<i32>());
+  textureStore(arg_0, vec3<i32>(1i), vec4<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/2796b4.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/2796b4.wgsl.expected.dxc.hlsl
index 95522d9..dca2de1 100644
--- a/test/tint/builtins/gen/literal/textureStore/2796b4.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/2796b4.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture3D<int4> arg_0 : register(u0, space1);
 
 void textureStore_2796b4() {
-  arg_0[(0).xxx] = (0).xxxx;
+  arg_0[(1).xxx] = (1).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/2796b4.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/2796b4.wgsl.expected.fxc.hlsl
index 95522d9..dca2de1 100644
--- a/test/tint/builtins/gen/literal/textureStore/2796b4.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/2796b4.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture3D<int4> arg_0 : register(u0, space1);
 
 void textureStore_2796b4() {
-  arg_0[(0).xxx] = (0).xxxx;
+  arg_0[(1).xxx] = (1).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/2796b4.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/2796b4.wgsl.expected.msl
index 0fc2e68..c60e59c 100644
--- a/test/tint/builtins/gen/literal/textureStore/2796b4.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/2796b4.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureStore_2796b4(texture3d<int, access::write> tint_symbol_1) {
-  tint_symbol_1.write(int4(0), uint3(int3(0)));
+  tint_symbol_1.write(int4(1), uint3(int3(1)));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/2796b4.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/2796b4.wgsl.expected.spvasm
index 1c76893..0325344 100644
--- a/test/tint/builtins/gen/literal/textureStore/2796b4.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/2796b4.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 37
+; Bound: 38
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
@@ -39,36 +39,37 @@
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
       %v3int = OpTypeVector %int 3
-         %20 = OpConstantNull %v3int
+      %int_1 = OpConstant %int 1
+         %21 = OpConstantComposite %v3int %int_1 %int_1 %int_1
       %v4int = OpTypeVector %int 4
-         %22 = OpConstantNull %v4int
-         %23 = OpTypeFunction %v4float
+         %23 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+         %24 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_2796b4 = OpFunction %void None %13
          %16 = OpLabel
          %18 = OpLoad %11 %arg_0
-               OpImageWrite %18 %20 %22
+               OpImageWrite %18 %21 %23
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %23
-         %25 = OpLabel
-         %26 = OpFunctionCall %void %textureStore_2796b4
+%vertex_main_inner = OpFunction %v4float None %24
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %textureStore_2796b4
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %28 = OpLabel
-         %29 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %29
+         %29 = OpLabel
+         %30 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %30
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_2796b4
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureStore_2796b4
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureStore_2796b4
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureStore_2796b4
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/2796b4.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/2796b4.wgsl.expected.wgsl
index 60ac36f..f358f55 100644
--- a/test/tint/builtins/gen/literal/textureStore/2796b4.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/2796b4.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rg32sint, write>;
 
 fn textureStore_2796b4() {
-  textureStore(arg_0, vec3<i32>(), vec4<i32>());
+  textureStore(arg_0, vec3<i32>(1i), vec4<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/285218.wgsl b/test/tint/builtins/gen/literal/textureStore/285218.wgsl
index d8da3e5..19a48c3 100644
--- a/test/tint/builtins/gen/literal/textureStore/285218.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/285218.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureStore(texture: texture_storage_1d<rgba32float, write>, coords: u32, value: vec4<f32>)
 fn textureStore_285218() {
-  textureStore(arg_0, 1u, vec4<f32>());
+  textureStore(arg_0, 1u, vec4<f32>(1.f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/285218.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/285218.wgsl.expected.dxc.hlsl
index bdd814e..d06be2b 100644
--- a/test/tint/builtins/gen/literal/textureStore/285218.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/285218.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture1D<float4> arg_0 : register(u0, space1);
 
 void textureStore_285218() {
-  arg_0[1u] = (0.0f).xxxx;
+  arg_0[1u] = (1.0f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/285218.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/285218.wgsl.expected.fxc.hlsl
index bdd814e..d06be2b 100644
--- a/test/tint/builtins/gen/literal/textureStore/285218.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/285218.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture1D<float4> arg_0 : register(u0, space1);
 
 void textureStore_285218() {
-  arg_0[1u] = (0.0f).xxxx;
+  arg_0[1u] = (1.0f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/285218.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/285218.wgsl.expected.msl
index f55cc01..f7d44c3 100644
--- a/test/tint/builtins/gen/literal/textureStore/285218.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/285218.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureStore_285218(texture1d<float, access::write> tint_symbol_1) {
-  tint_symbol_1.write(float4(0.0f), uint(1u));
+  tint_symbol_1.write(float4(1.0f), uint(1u));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/285218.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/285218.wgsl.expected.spvasm
index 72dc9e7..1443184 100644
--- a/test/tint/builtins/gen/literal/textureStore/285218.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/285218.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 34
+; Bound: 35
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
@@ -39,33 +39,34 @@
          %12 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
-         %20 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
+         %21 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %22 = OpTypeFunction %v4float
 %textureStore_285218 = OpFunction %void None %12
          %15 = OpLabel
          %17 = OpLoad %11 %arg_0
-               OpImageWrite %17 %uint_1 %5
+               OpImageWrite %17 %uint_1 %21
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %20
-         %22 = OpLabel
-         %23 = OpFunctionCall %void %textureStore_285218
+%vertex_main_inner = OpFunction %v4float None %22
+         %24 = OpLabel
+         %25 = OpFunctionCall %void %textureStore_285218
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %25 = OpLabel
-         %26 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %26
+         %27 = OpLabel
+         %28 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %28
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %textureStore_285218
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %textureStore_285218
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_285218
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureStore_285218
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/285218.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/285218.wgsl.expected.wgsl
index b479a5b..71a3111 100644
--- a/test/tint/builtins/gen/literal/textureStore/285218.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/285218.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rgba32float, write>;
 
 fn textureStore_285218() {
-  textureStore(arg_0, 1u, vec4<f32>());
+  textureStore(arg_0, 1u, vec4<f32>(1.0f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/28a7ec.wgsl b/test/tint/builtins/gen/literal/textureStore/28a7ec.wgsl
index 1146908..51efb58 100644
--- a/test/tint/builtins/gen/literal/textureStore/28a7ec.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/28a7ec.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureStore(texture: texture_storage_2d_array<r32sint, write>, coords: vec2<u32>, array_index: i32, value: vec4<i32>)
 fn textureStore_28a7ec() {
-  textureStore(arg_0, vec2<u32>(), 1i, vec4<i32>());
+  textureStore(arg_0, vec2<u32>(1u), 1i, vec4<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/28a7ec.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/28a7ec.wgsl.expected.dxc.hlsl
index 828727c..476f0f9 100644
--- a/test/tint/builtins/gen/literal/textureStore/28a7ec.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/28a7ec.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 void textureStore_28a7ec() {
-  arg_0[uint3(0u, 0u, uint(1))] = (0).xxxx;
+  arg_0[uint3((1u).xx, uint(1))] = (1).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/28a7ec.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/28a7ec.wgsl.expected.fxc.hlsl
index 828727c..476f0f9 100644
--- a/test/tint/builtins/gen/literal/textureStore/28a7ec.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/28a7ec.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 void textureStore_28a7ec() {
-  arg_0[uint3(0u, 0u, uint(1))] = (0).xxxx;
+  arg_0[uint3((1u).xx, uint(1))] = (1).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/28a7ec.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/28a7ec.wgsl.expected.glsl
index 53936c4..cd0e4c2 100644
--- a/test/tint/builtins/gen/literal/textureStore/28a7ec.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/28a7ec.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 layout(r32i) uniform highp writeonly iimage2DArray arg_0;
 void textureStore_28a7ec() {
-  imageStore(arg_0, ivec3(uvec3(0u, 0u, uint(1))), ivec4(0));
+  imageStore(arg_0, ivec3(uvec3(uvec2(1u), uint(1))), ivec4(1));
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 
 layout(r32i) uniform highp writeonly iimage2DArray arg_0;
 void textureStore_28a7ec() {
-  imageStore(arg_0, ivec3(uvec3(0u, 0u, uint(1))), ivec4(0));
+  imageStore(arg_0, ivec3(uvec3(uvec2(1u), uint(1))), ivec4(1));
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 layout(r32i) uniform highp writeonly iimage2DArray arg_0;
 void textureStore_28a7ec() {
-  imageStore(arg_0, ivec3(uvec3(0u, 0u, uint(1))), ivec4(0));
+  imageStore(arg_0, ivec3(uvec3(uvec2(1u), uint(1))), ivec4(1));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureStore/28a7ec.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/28a7ec.wgsl.expected.msl
index 65d7504..9b26b6b 100644
--- a/test/tint/builtins/gen/literal/textureStore/28a7ec.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/28a7ec.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureStore_28a7ec(texture2d_array<int, access::write> tint_symbol_1) {
-  tint_symbol_1.write(int4(0), uint2(uint2(0u)), 1);
+  tint_symbol_1.write(int4(1), uint2(uint2(1u)), 1);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/28a7ec.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/28a7ec.wgsl.expected.spvasm
index 51ce8d9..65dac0c 100644
--- a/test/tint/builtins/gen/literal/textureStore/28a7ec.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/28a7ec.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 41
+; Bound: 45
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -39,39 +39,43 @@
          %13 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
-     %uint_0 = OpConstant %uint 0
+     %v2uint = OpTypeVector %uint 2
+     %uint_1 = OpConstant %uint 1
+         %23 = OpConstantComposite %v2uint %uint_1 %uint_1
       %int_1 = OpConstant %int 1
       %v4int = OpTypeVector %int 4
-         %26 = OpConstantNull %v4int
-         %27 = OpTypeFunction %v4float
+         %30 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+         %31 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_28a7ec = OpFunction %void None %13
          %16 = OpLabel
          %18 = OpLoad %11 %arg_0
-         %22 = OpBitcast %uint %int_1
-         %24 = OpCompositeConstruct %v3uint %uint_0 %uint_0 %22
-               OpImageWrite %18 %24 %26
+         %24 = OpCompositeExtract %uint %23 0
+         %25 = OpCompositeExtract %uint %23 1
+         %26 = OpBitcast %uint %int_1
+         %28 = OpCompositeConstruct %v3uint %24 %25 %26
+               OpImageWrite %18 %28 %30
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %27
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %textureStore_28a7ec
+%vertex_main_inner = OpFunction %v4float None %31
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureStore_28a7ec
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %32 = OpLabel
-         %33 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %33
+         %36 = OpLabel
+         %37 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %37
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_28a7ec
+         %40 = OpLabel
+         %41 = OpFunctionCall %void %textureStore_28a7ec
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_28a7ec
+         %43 = OpLabel
+         %44 = OpFunctionCall %void %textureStore_28a7ec
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/28a7ec.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/28a7ec.wgsl.expected.wgsl
index 01b44fa..14ce9f8 100644
--- a/test/tint/builtins/gen/literal/textureStore/28a7ec.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/28a7ec.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<r32sint, write>;
 
 fn textureStore_28a7ec() {
-  textureStore(arg_0, vec2<u32>(), 1i, vec4<i32>());
+  textureStore(arg_0, vec2<u32>(1u), 1i, vec4<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/2ac6c7.wgsl b/test/tint/builtins/gen/literal/textureStore/2ac6c7.wgsl
index d69d314..0fae6bb 100644
--- a/test/tint/builtins/gen/literal/textureStore/2ac6c7.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/2ac6c7.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureStore(texture: texture_storage_1d<r32float, write>, coords: i32, value: vec4<f32>)
 fn textureStore_2ac6c7() {
-  textureStore(arg_0, 1i, vec4<f32>());
+  textureStore(arg_0, 1i, vec4<f32>(1.f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/2ac6c7.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/2ac6c7.wgsl.expected.dxc.hlsl
index a3e5a4c..c09574d 100644
--- a/test/tint/builtins/gen/literal/textureStore/2ac6c7.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/2ac6c7.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture1D<float4> arg_0 : register(u0, space1);
 
 void textureStore_2ac6c7() {
-  arg_0[1] = (0.0f).xxxx;
+  arg_0[1] = (1.0f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/2ac6c7.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/2ac6c7.wgsl.expected.fxc.hlsl
index a3e5a4c..c09574d 100644
--- a/test/tint/builtins/gen/literal/textureStore/2ac6c7.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/2ac6c7.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture1D<float4> arg_0 : register(u0, space1);
 
 void textureStore_2ac6c7() {
-  arg_0[1] = (0.0f).xxxx;
+  arg_0[1] = (1.0f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/2ac6c7.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/2ac6c7.wgsl.expected.msl
index dc2cb99..a975f3d 100644
--- a/test/tint/builtins/gen/literal/textureStore/2ac6c7.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/2ac6c7.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureStore_2ac6c7(texture1d<float, access::write> tint_symbol_1) {
-  tint_symbol_1.write(float4(0.0f), uint(1));
+  tint_symbol_1.write(float4(1.0f), uint(1));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/2ac6c7.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/2ac6c7.wgsl.expected.spvasm
index 0440137..dc7dbdb 100644
--- a/test/tint/builtins/gen/literal/textureStore/2ac6c7.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/2ac6c7.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 34
+; Bound: 35
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
@@ -39,33 +39,34 @@
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
-         %20 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
+         %21 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %22 = OpTypeFunction %v4float
 %textureStore_2ac6c7 = OpFunction %void None %12
          %15 = OpLabel
          %17 = OpLoad %11 %arg_0
-               OpImageWrite %17 %int_1 %5
+               OpImageWrite %17 %int_1 %21
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %20
-         %22 = OpLabel
-         %23 = OpFunctionCall %void %textureStore_2ac6c7
+%vertex_main_inner = OpFunction %v4float None %22
+         %24 = OpLabel
+         %25 = OpFunctionCall %void %textureStore_2ac6c7
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %25 = OpLabel
-         %26 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %26
+         %27 = OpLabel
+         %28 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %28
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %textureStore_2ac6c7
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %textureStore_2ac6c7
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_2ac6c7
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureStore_2ac6c7
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/2ac6c7.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/2ac6c7.wgsl.expected.wgsl
index b48d70e..8abb7ce 100644
--- a/test/tint/builtins/gen/literal/textureStore/2ac6c7.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/2ac6c7.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_storage_1d<r32float, write>;
 
 fn textureStore_2ac6c7() {
-  textureStore(arg_0, 1i, vec4<f32>());
+  textureStore(arg_0, 1i, vec4<f32>(1.0f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/2d2835.wgsl b/test/tint/builtins/gen/literal/textureStore/2d2835.wgsl
index 3c0db21..9bc1cb5 100644
--- a/test/tint/builtins/gen/literal/textureStore/2d2835.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/2d2835.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureStore(texture: texture_storage_2d_array<rg32float, write>, coords: vec2<u32>, array_index: u32, value: vec4<f32>)
 fn textureStore_2d2835() {
-  textureStore(arg_0, vec2<u32>(), 1u, vec4<f32>());
+  textureStore(arg_0, vec2<u32>(1u), 1u, vec4<f32>(1.f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/2d2835.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/2d2835.wgsl.expected.dxc.hlsl
index ffe3cb5..0920cc2 100644
--- a/test/tint/builtins/gen/literal/textureStore/2d2835.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/2d2835.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 void textureStore_2d2835() {
-  arg_0[uint3(0u, 0u, 1u)] = (0.0f).xxxx;
+  arg_0[uint3((1u).xx, 1u)] = (1.0f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/2d2835.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/2d2835.wgsl.expected.fxc.hlsl
index ffe3cb5..0920cc2 100644
--- a/test/tint/builtins/gen/literal/textureStore/2d2835.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/2d2835.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 void textureStore_2d2835() {
-  arg_0[uint3(0u, 0u, 1u)] = (0.0f).xxxx;
+  arg_0[uint3((1u).xx, 1u)] = (1.0f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/2d2835.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/2d2835.wgsl.expected.msl
index 958833b..7b4f3ea 100644
--- a/test/tint/builtins/gen/literal/textureStore/2d2835.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/2d2835.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureStore_2d2835(texture2d_array<float, access::write> tint_symbol_1) {
-  tint_symbol_1.write(float4(0.0f), uint2(uint2(0u)), 1u);
+  tint_symbol_1.write(float4(1.0f), uint2(uint2(1u)), 1u);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/2d2835.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/2d2835.wgsl.expected.spvasm
index cf70248..5b7d6a7 100644
--- a/test/tint/builtins/gen/literal/textureStore/2d2835.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/2d2835.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 37
+; Bound: 41
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
@@ -39,36 +39,40 @@
          %12 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
-     %uint_0 = OpConstant %uint 0
+     %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %22 = OpConstantComposite %v3uint %uint_0 %uint_0 %uint_1
-         %23 = OpTypeFunction %v4float
+         %22 = OpConstantComposite %v2uint %uint_1 %uint_1
     %float_1 = OpConstant %float 1
+         %27 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %28 = OpTypeFunction %v4float
 %textureStore_2d2835 = OpFunction %void None %12
          %15 = OpLabel
          %17 = OpLoad %11 %arg_0
-               OpImageWrite %17 %22 %5
+         %23 = OpCompositeExtract %uint %22 0
+         %24 = OpCompositeExtract %uint %22 1
+         %25 = OpCompositeConstruct %v3uint %23 %24 %uint_1
+               OpImageWrite %17 %25 %27
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %23
-         %25 = OpLabel
-         %26 = OpFunctionCall %void %textureStore_2d2835
+%vertex_main_inner = OpFunction %v4float None %28
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %textureStore_2d2835
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %28 = OpLabel
-         %29 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %29
+         %33 = OpLabel
+         %34 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %34
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_2d2835
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureStore_2d2835
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureStore_2d2835
+         %39 = OpLabel
+         %40 = OpFunctionCall %void %textureStore_2d2835
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/2d2835.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/2d2835.wgsl.expected.wgsl
index 2506162..ce653b2 100644
--- a/test/tint/builtins/gen/literal/textureStore/2d2835.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/2d2835.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rg32float, write>;
 
 fn textureStore_2d2835() {
-  textureStore(arg_0, vec2<u32>(), 1u, vec4<f32>());
+  textureStore(arg_0, vec2<u32>(1u), 1u, vec4<f32>(1.0f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/2e6102.wgsl b/test/tint/builtins/gen/literal/textureStore/2e6102.wgsl
index 3283fb9..9b4969a 100644
--- a/test/tint/builtins/gen/literal/textureStore/2e6102.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/2e6102.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureStore(texture: texture_storage_2d<rgba32float, write>, coords: vec2<u32>, value: vec4<f32>)
 fn textureStore_2e6102() {
-  textureStore(arg_0, vec2<u32>(), vec4<f32>());
+  textureStore(arg_0, vec2<u32>(1u), vec4<f32>(1.f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/2e6102.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/2e6102.wgsl.expected.dxc.hlsl
index 5f60ae7..50a80ef 100644
--- a/test/tint/builtins/gen/literal/textureStore/2e6102.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/2e6102.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2D<float4> arg_0 : register(u0, space1);
 
 void textureStore_2e6102() {
-  arg_0[(0u).xx] = (0.0f).xxxx;
+  arg_0[(1u).xx] = (1.0f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/2e6102.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/2e6102.wgsl.expected.fxc.hlsl
index 5f60ae7..50a80ef 100644
--- a/test/tint/builtins/gen/literal/textureStore/2e6102.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/2e6102.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2D<float4> arg_0 : register(u0, space1);
 
 void textureStore_2e6102() {
-  arg_0[(0u).xx] = (0.0f).xxxx;
+  arg_0[(1u).xx] = (1.0f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/2e6102.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/2e6102.wgsl.expected.glsl
index 2767363..1b49822 100644
--- a/test/tint/builtins/gen/literal/textureStore/2e6102.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/2e6102.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 layout(rgba32f) uniform highp writeonly image2D arg_0;
 void textureStore_2e6102() {
-  imageStore(arg_0, ivec2(uvec2(0u)), vec4(0.0f));
+  imageStore(arg_0, ivec2(uvec2(1u)), vec4(1.0f));
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 
 layout(rgba32f) uniform highp writeonly image2D arg_0;
 void textureStore_2e6102() {
-  imageStore(arg_0, ivec2(uvec2(0u)), vec4(0.0f));
+  imageStore(arg_0, ivec2(uvec2(1u)), vec4(1.0f));
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 layout(rgba32f) uniform highp writeonly image2D arg_0;
 void textureStore_2e6102() {
-  imageStore(arg_0, ivec2(uvec2(0u)), vec4(0.0f));
+  imageStore(arg_0, ivec2(uvec2(1u)), vec4(1.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureStore/2e6102.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/2e6102.wgsl.expected.msl
index 9bcd5aa..e876971 100644
--- a/test/tint/builtins/gen/literal/textureStore/2e6102.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/2e6102.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureStore_2e6102(texture2d<float, access::write> tint_symbol_1) {
-  tint_symbol_1.write(float4(0.0f), uint2(uint2(0u)));
+  tint_symbol_1.write(float4(1.0f), uint2(uint2(1u)));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/2e6102.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/2e6102.wgsl.expected.spvasm
index 57c1ad1..1fb04e4 100644
--- a/test/tint/builtins/gen/literal/textureStore/2e6102.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/2e6102.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 35
+; Bound: 37
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -38,34 +38,36 @@
          %12 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
-         %20 = OpConstantNull %v2uint
-         %21 = OpTypeFunction %v4float
+     %uint_1 = OpConstant %uint 1
+         %21 = OpConstantComposite %v2uint %uint_1 %uint_1
     %float_1 = OpConstant %float 1
+         %23 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %24 = OpTypeFunction %v4float
 %textureStore_2e6102 = OpFunction %void None %12
          %15 = OpLabel
          %17 = OpLoad %11 %arg_0
-               OpImageWrite %17 %20 %5
+               OpImageWrite %17 %21 %23
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %21
-         %23 = OpLabel
-         %24 = OpFunctionCall %void %textureStore_2e6102
+%vertex_main_inner = OpFunction %v4float None %24
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %textureStore_2e6102
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %26 = OpLabel
-         %27 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %27
+         %29 = OpLabel
+         %30 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %30
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %textureStore_2e6102
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %textureStore_2e6102
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_2e6102
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureStore_2e6102
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/2e6102.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/2e6102.wgsl.expected.wgsl
index 7c3458e..374522a 100644
--- a/test/tint/builtins/gen/literal/textureStore/2e6102.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/2e6102.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba32float, write>;
 
 fn textureStore_2e6102() {
-  textureStore(arg_0, vec2<u32>(), vec4<f32>());
+  textureStore(arg_0, vec2<u32>(1u), vec4<f32>(1.0f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/2eb2a4.wgsl b/test/tint/builtins/gen/literal/textureStore/2eb2a4.wgsl
index 945cd47..cd85730 100644
--- a/test/tint/builtins/gen/literal/textureStore/2eb2a4.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/2eb2a4.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureStore(texture: texture_storage_1d<rgba16uint, write>, coords: i32, value: vec4<u32>)
 fn textureStore_2eb2a4() {
-  textureStore(arg_0, 1i, vec4<u32>());
+  textureStore(arg_0, 1i, vec4<u32>(1u));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/2eb2a4.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/2eb2a4.wgsl.expected.dxc.hlsl
index 94f6628..5fece95 100644
--- a/test/tint/builtins/gen/literal/textureStore/2eb2a4.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/2eb2a4.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture1D<uint4> arg_0 : register(u0, space1);
 
 void textureStore_2eb2a4() {
-  arg_0[1] = (0u).xxxx;
+  arg_0[1] = (1u).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/2eb2a4.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/2eb2a4.wgsl.expected.fxc.hlsl
index 94f6628..5fece95 100644
--- a/test/tint/builtins/gen/literal/textureStore/2eb2a4.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/2eb2a4.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture1D<uint4> arg_0 : register(u0, space1);
 
 void textureStore_2eb2a4() {
-  arg_0[1] = (0u).xxxx;
+  arg_0[1] = (1u).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/2eb2a4.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/2eb2a4.wgsl.expected.msl
index 015e052..47ffde0 100644
--- a/test/tint/builtins/gen/literal/textureStore/2eb2a4.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/2eb2a4.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureStore_2eb2a4(texture1d<uint, access::write> tint_symbol_1) {
-  tint_symbol_1.write(uint4(0u), uint(1));
+  tint_symbol_1.write(uint4(1u), uint(1));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/2eb2a4.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/2eb2a4.wgsl.expected.spvasm
index 24d2ecd..bef9eb9 100644
--- a/test/tint/builtins/gen/literal/textureStore/2eb2a4.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/2eb2a4.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 37
+; Bound: 38
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
@@ -41,34 +41,35 @@
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
      %v4uint = OpTypeVector %uint 4
-         %22 = OpConstantNull %v4uint
-         %23 = OpTypeFunction %v4float
+     %uint_1 = OpConstant %uint 1
+         %23 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+         %24 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_2eb2a4 = OpFunction %void None %13
          %16 = OpLabel
          %18 = OpLoad %11 %arg_0
-               OpImageWrite %18 %int_1 %22
+               OpImageWrite %18 %int_1 %23
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %23
-         %25 = OpLabel
-         %26 = OpFunctionCall %void %textureStore_2eb2a4
+%vertex_main_inner = OpFunction %v4float None %24
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %textureStore_2eb2a4
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %28 = OpLabel
-         %29 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %29
+         %29 = OpLabel
+         %30 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %30
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_2eb2a4
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureStore_2eb2a4
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureStore_2eb2a4
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureStore_2eb2a4
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/2eb2a4.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/2eb2a4.wgsl.expected.wgsl
index 089951d..b7ff47b 100644
--- a/test/tint/builtins/gen/literal/textureStore/2eb2a4.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/2eb2a4.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rgba16uint, write>;
 
 fn textureStore_2eb2a4() {
-  textureStore(arg_0, 1i, vec4<u32>());
+  textureStore(arg_0, 1i, vec4<u32>(1u));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/2ed2a3.wgsl b/test/tint/builtins/gen/literal/textureStore/2ed2a3.wgsl
index 89188ea..2c3f288 100644
--- a/test/tint/builtins/gen/literal/textureStore/2ed2a3.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/2ed2a3.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureStore(texture: texture_storage_1d<rgba8snorm, write>, coords: i32, value: vec4<f32>)
 fn textureStore_2ed2a3() {
-  textureStore(arg_0, 1i, vec4<f32>());
+  textureStore(arg_0, 1i, vec4<f32>(1.f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/2ed2a3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/2ed2a3.wgsl.expected.dxc.hlsl
index 38a94e7..2e462a4 100644
--- a/test/tint/builtins/gen/literal/textureStore/2ed2a3.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/2ed2a3.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture1D<float4> arg_0 : register(u0, space1);
 
 void textureStore_2ed2a3() {
-  arg_0[1] = (0.0f).xxxx;
+  arg_0[1] = (1.0f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/2ed2a3.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/2ed2a3.wgsl.expected.fxc.hlsl
index 38a94e7..2e462a4 100644
--- a/test/tint/builtins/gen/literal/textureStore/2ed2a3.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/2ed2a3.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture1D<float4> arg_0 : register(u0, space1);
 
 void textureStore_2ed2a3() {
-  arg_0[1] = (0.0f).xxxx;
+  arg_0[1] = (1.0f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/2ed2a3.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/2ed2a3.wgsl.expected.msl
index e49cb93..04c9cda 100644
--- a/test/tint/builtins/gen/literal/textureStore/2ed2a3.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/2ed2a3.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureStore_2ed2a3(texture1d<float, access::write> tint_symbol_1) {
-  tint_symbol_1.write(float4(0.0f), uint(1));
+  tint_symbol_1.write(float4(1.0f), uint(1));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/2ed2a3.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/2ed2a3.wgsl.expected.spvasm
index d529e14..b97d0ad 100644
--- a/test/tint/builtins/gen/literal/textureStore/2ed2a3.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/2ed2a3.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 34
+; Bound: 35
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
@@ -39,33 +39,34 @@
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
-         %20 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
+         %21 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %22 = OpTypeFunction %v4float
 %textureStore_2ed2a3 = OpFunction %void None %12
          %15 = OpLabel
          %17 = OpLoad %11 %arg_0
-               OpImageWrite %17 %int_1 %5
+               OpImageWrite %17 %int_1 %21
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %20
-         %22 = OpLabel
-         %23 = OpFunctionCall %void %textureStore_2ed2a3
+%vertex_main_inner = OpFunction %v4float None %22
+         %24 = OpLabel
+         %25 = OpFunctionCall %void %textureStore_2ed2a3
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %25 = OpLabel
-         %26 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %26
+         %27 = OpLabel
+         %28 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %28
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %textureStore_2ed2a3
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %textureStore_2ed2a3
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_2ed2a3
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureStore_2ed2a3
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/2ed2a3.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/2ed2a3.wgsl.expected.wgsl
index c974cc8..599c722 100644
--- a/test/tint/builtins/gen/literal/textureStore/2ed2a3.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/2ed2a3.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rgba8snorm, write>;
 
 fn textureStore_2ed2a3() {
-  textureStore(arg_0, 1i, vec4<f32>());
+  textureStore(arg_0, 1i, vec4<f32>(1.0f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/30b0b0.wgsl b/test/tint/builtins/gen/literal/textureStore/30b0b0.wgsl
index b4d61dc..70fa904 100644
--- a/test/tint/builtins/gen/literal/textureStore/30b0b0.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/30b0b0.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureStore(texture: texture_storage_2d_array<rgba32sint, write>, coords: vec2<i32>, array_index: u32, value: vec4<i32>)
 fn textureStore_30b0b0() {
-  textureStore(arg_0, vec2<i32>(), 1u, vec4<i32>());
+  textureStore(arg_0, vec2<i32>(1i), 1u, vec4<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/30b0b0.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/30b0b0.wgsl.expected.dxc.hlsl
index 21e26cc..2c4e933 100644
--- a/test/tint/builtins/gen/literal/textureStore/30b0b0.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/30b0b0.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 void textureStore_30b0b0() {
-  arg_0[int3(0, 0, int(1u))] = (0).xxxx;
+  arg_0[int3((1).xx, int(1u))] = (1).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/30b0b0.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/30b0b0.wgsl.expected.fxc.hlsl
index 21e26cc..2c4e933 100644
--- a/test/tint/builtins/gen/literal/textureStore/30b0b0.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/30b0b0.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 void textureStore_30b0b0() {
-  arg_0[int3(0, 0, int(1u))] = (0).xxxx;
+  arg_0[int3((1).xx, int(1u))] = (1).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/30b0b0.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/30b0b0.wgsl.expected.glsl
index 6e95a8b..894ec52 100644
--- a/test/tint/builtins/gen/literal/textureStore/30b0b0.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/30b0b0.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 layout(rgba32i) uniform highp writeonly iimage2DArray arg_0;
 void textureStore_30b0b0() {
-  imageStore(arg_0, ivec3(0, 0, int(1u)), ivec4(0));
+  imageStore(arg_0, ivec3(ivec2(1), int(1u)), ivec4(1));
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 
 layout(rgba32i) uniform highp writeonly iimage2DArray arg_0;
 void textureStore_30b0b0() {
-  imageStore(arg_0, ivec3(0, 0, int(1u)), ivec4(0));
+  imageStore(arg_0, ivec3(ivec2(1), int(1u)), ivec4(1));
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 layout(rgba32i) uniform highp writeonly iimage2DArray arg_0;
 void textureStore_30b0b0() {
-  imageStore(arg_0, ivec3(0, 0, int(1u)), ivec4(0));
+  imageStore(arg_0, ivec3(ivec2(1), int(1u)), ivec4(1));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureStore/30b0b0.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/30b0b0.wgsl.expected.msl
index 540c35a..611742a 100644
--- a/test/tint/builtins/gen/literal/textureStore/30b0b0.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/30b0b0.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureStore_30b0b0(texture2d_array<int, access::write> tint_symbol_1) {
-  tint_symbol_1.write(int4(0), uint2(int2(0)), 1u);
+  tint_symbol_1.write(int4(1), uint2(int2(1)), 1u);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/30b0b0.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/30b0b0.wgsl.expected.spvasm
index 4eef3b4..91e4a80 100644
--- a/test/tint/builtins/gen/literal/textureStore/30b0b0.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/30b0b0.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 41
+; Bound: 45
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -38,40 +38,44 @@
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
       %v3int = OpTypeVector %int 3
-      %int_0 = OpConstant %int 0
+      %v2int = OpTypeVector %int 2
+      %int_1 = OpConstant %int 1
+         %22 = OpConstantComposite %v2int %int_1 %int_1
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
       %v4int = OpTypeVector %int 4
-         %26 = OpConstantNull %v4int
-         %27 = OpTypeFunction %v4float
+         %30 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+         %31 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_30b0b0 = OpFunction %void None %13
          %16 = OpLabel
          %18 = OpLoad %11 %arg_0
-         %21 = OpBitcast %int %uint_1
-         %24 = OpCompositeConstruct %v3int %int_0 %int_0 %21
-               OpImageWrite %18 %24 %26
+         %23 = OpCompositeExtract %int %22 0
+         %24 = OpCompositeExtract %int %22 1
+         %25 = OpBitcast %int %uint_1
+         %28 = OpCompositeConstruct %v3int %23 %24 %25
+               OpImageWrite %18 %28 %30
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %27
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %textureStore_30b0b0
+%vertex_main_inner = OpFunction %v4float None %31
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureStore_30b0b0
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %32 = OpLabel
-         %33 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %33
+         %36 = OpLabel
+         %37 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %37
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_30b0b0
+         %40 = OpLabel
+         %41 = OpFunctionCall %void %textureStore_30b0b0
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_30b0b0
+         %43 = OpLabel
+         %44 = OpFunctionCall %void %textureStore_30b0b0
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/30b0b0.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/30b0b0.wgsl.expected.wgsl
index 158559f..cf6003b 100644
--- a/test/tint/builtins/gen/literal/textureStore/30b0b0.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/30b0b0.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba32sint, write>;
 
 fn textureStore_30b0b0() {
-  textureStore(arg_0, vec2<i32>(), 1u, vec4<i32>());
+  textureStore(arg_0, vec2<i32>(1i), 1u, vec4<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/31745b.wgsl b/test/tint/builtins/gen/literal/textureStore/31745b.wgsl
index 2cec898..c215a35 100644
--- a/test/tint/builtins/gen/literal/textureStore/31745b.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/31745b.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureStore(texture: texture_storage_2d<rg32sint, write>, coords: vec2<i32>, value: vec4<i32>)
 fn textureStore_31745b() {
-  textureStore(arg_0, vec2<i32>(), vec4<i32>());
+  textureStore(arg_0, vec2<i32>(1i), vec4<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/31745b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/31745b.wgsl.expected.dxc.hlsl
index 6a31872..6a2450f 100644
--- a/test/tint/builtins/gen/literal/textureStore/31745b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/31745b.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2D<int4> arg_0 : register(u0, space1);
 
 void textureStore_31745b() {
-  arg_0[(0).xx] = (0).xxxx;
+  arg_0[(1).xx] = (1).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/31745b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/31745b.wgsl.expected.fxc.hlsl
index 6a31872..6a2450f 100644
--- a/test/tint/builtins/gen/literal/textureStore/31745b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/31745b.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2D<int4> arg_0 : register(u0, space1);
 
 void textureStore_31745b() {
-  arg_0[(0).xx] = (0).xxxx;
+  arg_0[(1).xx] = (1).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/31745b.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/31745b.wgsl.expected.msl
index fab9cdc..a051a4d 100644
--- a/test/tint/builtins/gen/literal/textureStore/31745b.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/31745b.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureStore_31745b(texture2d<int, access::write> tint_symbol_1) {
-  tint_symbol_1.write(int4(0), uint2(int2(0)));
+  tint_symbol_1.write(int4(1), uint2(int2(1)));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/31745b.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/31745b.wgsl.expected.spvasm
index d401580..9827d2d 100644
--- a/test/tint/builtins/gen/literal/textureStore/31745b.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/31745b.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 37
+; Bound: 38
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
@@ -39,36 +39,37 @@
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
       %v2int = OpTypeVector %int 2
-         %20 = OpConstantNull %v2int
+      %int_1 = OpConstant %int 1
+         %21 = OpConstantComposite %v2int %int_1 %int_1
       %v4int = OpTypeVector %int 4
-         %22 = OpConstantNull %v4int
-         %23 = OpTypeFunction %v4float
+         %23 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+         %24 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_31745b = OpFunction %void None %13
          %16 = OpLabel
          %18 = OpLoad %11 %arg_0
-               OpImageWrite %18 %20 %22
+               OpImageWrite %18 %21 %23
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %23
-         %25 = OpLabel
-         %26 = OpFunctionCall %void %textureStore_31745b
+%vertex_main_inner = OpFunction %v4float None %24
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %textureStore_31745b
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %28 = OpLabel
-         %29 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %29
+         %29 = OpLabel
+         %30 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %30
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_31745b
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureStore_31745b
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureStore_31745b
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureStore_31745b
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/31745b.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/31745b.wgsl.expected.wgsl
index 0280681..0652c26 100644
--- a/test/tint/builtins/gen/literal/textureStore/31745b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/31745b.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rg32sint, write>;
 
 fn textureStore_31745b() {
-  textureStore(arg_0, vec2<i32>(), vec4<i32>());
+  textureStore(arg_0, vec2<i32>(1i), vec4<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/32f368.wgsl b/test/tint/builtins/gen/literal/textureStore/32f368.wgsl
index 8b66228..092d9bc 100644
--- a/test/tint/builtins/gen/literal/textureStore/32f368.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/32f368.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureStore(texture: texture_storage_2d_array<rgba16float, write>, coords: vec2<i32>, array_index: i32, value: vec4<f32>)
 fn textureStore_32f368() {
-  textureStore(arg_0, vec2<i32>(), 1i, vec4<f32>());
+  textureStore(arg_0, vec2<i32>(1i), 1i, vec4<f32>(1.f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/32f368.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/32f368.wgsl.expected.dxc.hlsl
index 6a94d6b..2281122 100644
--- a/test/tint/builtins/gen/literal/textureStore/32f368.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/32f368.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 void textureStore_32f368() {
-  arg_0[int3(0, 0, 1)] = (0.0f).xxxx;
+  arg_0[int3((1).xx, 1)] = (1.0f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/32f368.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/32f368.wgsl.expected.fxc.hlsl
index 6a94d6b..2281122 100644
--- a/test/tint/builtins/gen/literal/textureStore/32f368.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/32f368.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 void textureStore_32f368() {
-  arg_0[int3(0, 0, 1)] = (0.0f).xxxx;
+  arg_0[int3((1).xx, 1)] = (1.0f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/32f368.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/32f368.wgsl.expected.glsl
index c2bf038..5c4305d 100644
--- a/test/tint/builtins/gen/literal/textureStore/32f368.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/32f368.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 layout(rgba16f) uniform highp writeonly image2DArray arg_0;
 void textureStore_32f368() {
-  imageStore(arg_0, ivec3(0, 0, 1), vec4(0.0f));
+  imageStore(arg_0, ivec3(ivec2(1), 1), vec4(1.0f));
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 
 layout(rgba16f) uniform highp writeonly image2DArray arg_0;
 void textureStore_32f368() {
-  imageStore(arg_0, ivec3(0, 0, 1), vec4(0.0f));
+  imageStore(arg_0, ivec3(ivec2(1), 1), vec4(1.0f));
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 layout(rgba16f) uniform highp writeonly image2DArray arg_0;
 void textureStore_32f368() {
-  imageStore(arg_0, ivec3(0, 0, 1), vec4(0.0f));
+  imageStore(arg_0, ivec3(ivec2(1), 1), vec4(1.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureStore/32f368.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/32f368.wgsl.expected.msl
index f60e099..40ee25c 100644
--- a/test/tint/builtins/gen/literal/textureStore/32f368.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/32f368.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureStore_32f368(texture2d_array<float, access::write> tint_symbol_1) {
-  tint_symbol_1.write(float4(0.0f), uint2(int2(0)), 1);
+  tint_symbol_1.write(float4(1.0f), uint2(int2(1)), 1);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/32f368.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/32f368.wgsl.expected.spvasm
index 0990ac0..26a37de 100644
--- a/test/tint/builtins/gen/literal/textureStore/32f368.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/32f368.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 37
+; Bound: 41
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -38,36 +38,40 @@
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
-      %int_0 = OpConstant %int 0
+      %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %22 = OpConstantComposite %v3int %int_0 %int_0 %int_1
-         %23 = OpTypeFunction %v4float
+         %22 = OpConstantComposite %v2int %int_1 %int_1
     %float_1 = OpConstant %float 1
+         %27 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %28 = OpTypeFunction %v4float
 %textureStore_32f368 = OpFunction %void None %12
          %15 = OpLabel
          %17 = OpLoad %11 %arg_0
-               OpImageWrite %17 %22 %5
+         %23 = OpCompositeExtract %int %22 0
+         %24 = OpCompositeExtract %int %22 1
+         %25 = OpCompositeConstruct %v3int %23 %24 %int_1
+               OpImageWrite %17 %25 %27
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %23
-         %25 = OpLabel
-         %26 = OpFunctionCall %void %textureStore_32f368
+%vertex_main_inner = OpFunction %v4float None %28
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %textureStore_32f368
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %28 = OpLabel
-         %29 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %29
+         %33 = OpLabel
+         %34 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %34
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_32f368
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureStore_32f368
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureStore_32f368
+         %39 = OpLabel
+         %40 = OpFunctionCall %void %textureStore_32f368
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/32f368.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/32f368.wgsl.expected.wgsl
index 160e1ff..cb63ff9 100644
--- a/test/tint/builtins/gen/literal/textureStore/32f368.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/32f368.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba16float, write>;
 
 fn textureStore_32f368() {
-  textureStore(arg_0, vec2<i32>(), 1i, vec4<f32>());
+  textureStore(arg_0, vec2<i32>(1i), 1i, vec4<f32>(1.0f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/330b7c.wgsl b/test/tint/builtins/gen/literal/textureStore/330b7c.wgsl
index fe8f3e7..4135564 100644
--- a/test/tint/builtins/gen/literal/textureStore/330b7c.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/330b7c.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureStore(texture: texture_storage_2d_array<rgba8unorm, write>, coords: vec2<u32>, array_index: u32, value: vec4<f32>)
 fn textureStore_330b7c() {
-  textureStore(arg_0, vec2<u32>(), 1u, vec4<f32>());
+  textureStore(arg_0, vec2<u32>(1u), 1u, vec4<f32>(1.f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/330b7c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/330b7c.wgsl.expected.dxc.hlsl
index 8cf1f94..879a714 100644
--- a/test/tint/builtins/gen/literal/textureStore/330b7c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/330b7c.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 void textureStore_330b7c() {
-  arg_0[uint3(0u, 0u, 1u)] = (0.0f).xxxx;
+  arg_0[uint3((1u).xx, 1u)] = (1.0f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/330b7c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/330b7c.wgsl.expected.fxc.hlsl
index 8cf1f94..879a714 100644
--- a/test/tint/builtins/gen/literal/textureStore/330b7c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/330b7c.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 void textureStore_330b7c() {
-  arg_0[uint3(0u, 0u, 1u)] = (0.0f).xxxx;
+  arg_0[uint3((1u).xx, 1u)] = (1.0f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/330b7c.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/330b7c.wgsl.expected.glsl
index 1a37be2..2fc62dc 100644
--- a/test/tint/builtins/gen/literal/textureStore/330b7c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/330b7c.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 layout(rgba8) uniform highp writeonly image2DArray arg_0;
 void textureStore_330b7c() {
-  imageStore(arg_0, ivec3(uvec3(0u, 0u, 1u)), vec4(0.0f));
+  imageStore(arg_0, ivec3(uvec3(uvec2(1u), 1u)), vec4(1.0f));
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 
 layout(rgba8) uniform highp writeonly image2DArray arg_0;
 void textureStore_330b7c() {
-  imageStore(arg_0, ivec3(uvec3(0u, 0u, 1u)), vec4(0.0f));
+  imageStore(arg_0, ivec3(uvec3(uvec2(1u), 1u)), vec4(1.0f));
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 layout(rgba8) uniform highp writeonly image2DArray arg_0;
 void textureStore_330b7c() {
-  imageStore(arg_0, ivec3(uvec3(0u, 0u, 1u)), vec4(0.0f));
+  imageStore(arg_0, ivec3(uvec3(uvec2(1u), 1u)), vec4(1.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureStore/330b7c.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/330b7c.wgsl.expected.msl
index e08e7b1..03f8eb3 100644
--- a/test/tint/builtins/gen/literal/textureStore/330b7c.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/330b7c.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureStore_330b7c(texture2d_array<float, access::write> tint_symbol_1) {
-  tint_symbol_1.write(float4(0.0f), uint2(uint2(0u)), 1u);
+  tint_symbol_1.write(float4(1.0f), uint2(uint2(1u)), 1u);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/330b7c.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/330b7c.wgsl.expected.spvasm
index 8142b42..eb78ea6 100644
--- a/test/tint/builtins/gen/literal/textureStore/330b7c.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/330b7c.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 37
+; Bound: 41
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -38,36 +38,40 @@
          %12 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
-     %uint_0 = OpConstant %uint 0
+     %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %22 = OpConstantComposite %v3uint %uint_0 %uint_0 %uint_1
-         %23 = OpTypeFunction %v4float
+         %22 = OpConstantComposite %v2uint %uint_1 %uint_1
     %float_1 = OpConstant %float 1
+         %27 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %28 = OpTypeFunction %v4float
 %textureStore_330b7c = OpFunction %void None %12
          %15 = OpLabel
          %17 = OpLoad %11 %arg_0
-               OpImageWrite %17 %22 %5
+         %23 = OpCompositeExtract %uint %22 0
+         %24 = OpCompositeExtract %uint %22 1
+         %25 = OpCompositeConstruct %v3uint %23 %24 %uint_1
+               OpImageWrite %17 %25 %27
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %23
-         %25 = OpLabel
-         %26 = OpFunctionCall %void %textureStore_330b7c
+%vertex_main_inner = OpFunction %v4float None %28
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %textureStore_330b7c
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %28 = OpLabel
-         %29 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %29
+         %33 = OpLabel
+         %34 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %34
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_330b7c
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureStore_330b7c
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureStore_330b7c
+         %39 = OpLabel
+         %40 = OpFunctionCall %void %textureStore_330b7c
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/330b7c.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/330b7c.wgsl.expected.wgsl
index e93891f..f44f87a 100644
--- a/test/tint/builtins/gen/literal/textureStore/330b7c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/330b7c.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba8unorm, write>;
 
 fn textureStore_330b7c() {
-  textureStore(arg_0, vec2<u32>(), 1u, vec4<f32>());
+  textureStore(arg_0, vec2<u32>(1u), 1u, vec4<f32>(1.0f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/331aee.wgsl b/test/tint/builtins/gen/literal/textureStore/331aee.wgsl
index 0db96c1..40d5811 100644
--- a/test/tint/builtins/gen/literal/textureStore/331aee.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/331aee.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureStore(texture: texture_storage_3d<rgba32float, write>, coords: vec3<i32>, value: vec4<f32>)
 fn textureStore_331aee() {
-  textureStore(arg_0, vec3<i32>(), vec4<f32>());
+  textureStore(arg_0, vec3<i32>(1i), vec4<f32>(1.f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/331aee.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/331aee.wgsl.expected.dxc.hlsl
index 53f938c..263c8a6 100644
--- a/test/tint/builtins/gen/literal/textureStore/331aee.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/331aee.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture3D<float4> arg_0 : register(u0, space1);
 
 void textureStore_331aee() {
-  arg_0[(0).xxx] = (0.0f).xxxx;
+  arg_0[(1).xxx] = (1.0f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/331aee.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/331aee.wgsl.expected.fxc.hlsl
index 53f938c..263c8a6 100644
--- a/test/tint/builtins/gen/literal/textureStore/331aee.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/331aee.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture3D<float4> arg_0 : register(u0, space1);
 
 void textureStore_331aee() {
-  arg_0[(0).xxx] = (0.0f).xxxx;
+  arg_0[(1).xxx] = (1.0f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/331aee.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/331aee.wgsl.expected.glsl
index 150214d..0abfb90 100644
--- a/test/tint/builtins/gen/literal/textureStore/331aee.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/331aee.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 layout(rgba32f) uniform highp writeonly image3D arg_0;
 void textureStore_331aee() {
-  imageStore(arg_0, ivec3(0), vec4(0.0f));
+  imageStore(arg_0, ivec3(1), vec4(1.0f));
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 
 layout(rgba32f) uniform highp writeonly image3D arg_0;
 void textureStore_331aee() {
-  imageStore(arg_0, ivec3(0), vec4(0.0f));
+  imageStore(arg_0, ivec3(1), vec4(1.0f));
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 layout(rgba32f) uniform highp writeonly image3D arg_0;
 void textureStore_331aee() {
-  imageStore(arg_0, ivec3(0), vec4(0.0f));
+  imageStore(arg_0, ivec3(1), vec4(1.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureStore/331aee.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/331aee.wgsl.expected.msl
index b79b25e..14e276e 100644
--- a/test/tint/builtins/gen/literal/textureStore/331aee.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/331aee.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureStore_331aee(texture3d<float, access::write> tint_symbol_1) {
-  tint_symbol_1.write(float4(0.0f), uint3(int3(0)));
+  tint_symbol_1.write(float4(1.0f), uint3(int3(1)));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/331aee.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/331aee.wgsl.expected.spvasm
index e27f41a..8b4e49e 100644
--- a/test/tint/builtins/gen/literal/textureStore/331aee.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/331aee.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 35
+; Bound: 37
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -38,34 +38,36 @@
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
-         %20 = OpConstantNull %v3int
-         %21 = OpTypeFunction %v4float
+      %int_1 = OpConstant %int 1
+         %21 = OpConstantComposite %v3int %int_1 %int_1 %int_1
     %float_1 = OpConstant %float 1
+         %23 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %24 = OpTypeFunction %v4float
 %textureStore_331aee = OpFunction %void None %12
          %15 = OpLabel
          %17 = OpLoad %11 %arg_0
-               OpImageWrite %17 %20 %5
+               OpImageWrite %17 %21 %23
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %21
-         %23 = OpLabel
-         %24 = OpFunctionCall %void %textureStore_331aee
+%vertex_main_inner = OpFunction %v4float None %24
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %textureStore_331aee
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %26 = OpLabel
-         %27 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %27
+         %29 = OpLabel
+         %30 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %30
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %textureStore_331aee
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %textureStore_331aee
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_331aee
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureStore_331aee
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/331aee.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/331aee.wgsl.expected.wgsl
index c56aa25..40a206b 100644
--- a/test/tint/builtins/gen/literal/textureStore/331aee.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/331aee.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rgba32float, write>;
 
 fn textureStore_331aee() {
-  textureStore(arg_0, vec3<i32>(), vec4<f32>());
+  textureStore(arg_0, vec3<i32>(1i), vec4<f32>(1.0f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/33cec0.wgsl b/test/tint/builtins/gen/literal/textureStore/33cec0.wgsl
index 4119114..32257a3 100644
--- a/test/tint/builtins/gen/literal/textureStore/33cec0.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/33cec0.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureStore(texture: texture_storage_2d_array<rgba16uint, write>, coords: vec2<u32>, array_index: i32, value: vec4<u32>)
 fn textureStore_33cec0() {
-  textureStore(arg_0, vec2<u32>(), 1i, vec4<u32>());
+  textureStore(arg_0, vec2<u32>(1u), 1i, vec4<u32>(1u));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/33cec0.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/33cec0.wgsl.expected.dxc.hlsl
index 86c488b..08d323b 100644
--- a/test/tint/builtins/gen/literal/textureStore/33cec0.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/33cec0.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 void textureStore_33cec0() {
-  arg_0[uint3(0u, 0u, uint(1))] = (0u).xxxx;
+  arg_0[uint3((1u).xx, uint(1))] = (1u).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/33cec0.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/33cec0.wgsl.expected.fxc.hlsl
index 86c488b..08d323b 100644
--- a/test/tint/builtins/gen/literal/textureStore/33cec0.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/33cec0.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 void textureStore_33cec0() {
-  arg_0[uint3(0u, 0u, uint(1))] = (0u).xxxx;
+  arg_0[uint3((1u).xx, uint(1))] = (1u).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/33cec0.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/33cec0.wgsl.expected.glsl
index 26fe35d..82aa4fd 100644
--- a/test/tint/builtins/gen/literal/textureStore/33cec0.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/33cec0.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 layout(rgba16ui) uniform highp writeonly uimage2DArray arg_0;
 void textureStore_33cec0() {
-  imageStore(arg_0, ivec3(uvec3(0u, 0u, uint(1))), uvec4(0u));
+  imageStore(arg_0, ivec3(uvec3(uvec2(1u), uint(1))), uvec4(1u));
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 
 layout(rgba16ui) uniform highp writeonly uimage2DArray arg_0;
 void textureStore_33cec0() {
-  imageStore(arg_0, ivec3(uvec3(0u, 0u, uint(1))), uvec4(0u));
+  imageStore(arg_0, ivec3(uvec3(uvec2(1u), uint(1))), uvec4(1u));
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 layout(rgba16ui) uniform highp writeonly uimage2DArray arg_0;
 void textureStore_33cec0() {
-  imageStore(arg_0, ivec3(uvec3(0u, 0u, uint(1))), uvec4(0u));
+  imageStore(arg_0, ivec3(uvec3(uvec2(1u), uint(1))), uvec4(1u));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureStore/33cec0.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/33cec0.wgsl.expected.msl
index 0f73a0c..7a12c75 100644
--- a/test/tint/builtins/gen/literal/textureStore/33cec0.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/33cec0.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureStore_33cec0(texture2d_array<uint, access::write> tint_symbol_1) {
-  tint_symbol_1.write(uint4(0u), uint2(uint2(0u)), 1);
+  tint_symbol_1.write(uint4(1u), uint2(uint2(1u)), 1);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/33cec0.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/33cec0.wgsl.expected.spvasm
index b62536b..0a3d4cd 100644
--- a/test/tint/builtins/gen/literal/textureStore/33cec0.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/33cec0.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 41
+; Bound: 45
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -38,40 +38,44 @@
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
      %v3uint = OpTypeVector %uint 3
-     %uint_0 = OpConstant %uint 0
+     %v2uint = OpTypeVector %uint 2
+     %uint_1 = OpConstant %uint 1
+         %22 = OpConstantComposite %v2uint %uint_1 %uint_1
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
      %v4uint = OpTypeVector %uint 4
-         %26 = OpConstantNull %v4uint
-         %27 = OpTypeFunction %v4float
+         %30 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+         %31 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_33cec0 = OpFunction %void None %13
          %16 = OpLabel
          %18 = OpLoad %11 %arg_0
-         %21 = OpBitcast %uint %int_1
-         %24 = OpCompositeConstruct %v3uint %uint_0 %uint_0 %21
-               OpImageWrite %18 %24 %26
+         %23 = OpCompositeExtract %uint %22 0
+         %24 = OpCompositeExtract %uint %22 1
+         %25 = OpBitcast %uint %int_1
+         %28 = OpCompositeConstruct %v3uint %23 %24 %25
+               OpImageWrite %18 %28 %30
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %27
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %textureStore_33cec0
+%vertex_main_inner = OpFunction %v4float None %31
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureStore_33cec0
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %32 = OpLabel
-         %33 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %33
+         %36 = OpLabel
+         %37 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %37
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_33cec0
+         %40 = OpLabel
+         %41 = OpFunctionCall %void %textureStore_33cec0
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_33cec0
+         %43 = OpLabel
+         %44 = OpFunctionCall %void %textureStore_33cec0
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/33cec0.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/33cec0.wgsl.expected.wgsl
index 5ee34fe..b8abfcf 100644
--- a/test/tint/builtins/gen/literal/textureStore/33cec0.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/33cec0.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba16uint, write>;
 
 fn textureStore_33cec0() {
-  textureStore(arg_0, vec2<u32>(), 1i, vec4<u32>());
+  textureStore(arg_0, vec2<u32>(1u), 1i, vec4<u32>(1u));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/37ffd4.wgsl b/test/tint/builtins/gen/literal/textureStore/37ffd4.wgsl
index f8299a6..f83d1fc 100644
--- a/test/tint/builtins/gen/literal/textureStore/37ffd4.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/37ffd4.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureStore(texture: texture_storage_2d_array<rgba32float, write>, coords: vec2<u32>, array_index: i32, value: vec4<f32>)
 fn textureStore_37ffd4() {
-  textureStore(arg_0, vec2<u32>(), 1i, vec4<f32>());
+  textureStore(arg_0, vec2<u32>(1u), 1i, vec4<f32>(1.f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/37ffd4.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/37ffd4.wgsl.expected.dxc.hlsl
index 7bafb82..5694464 100644
--- a/test/tint/builtins/gen/literal/textureStore/37ffd4.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/37ffd4.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 void textureStore_37ffd4() {
-  arg_0[uint3(0u, 0u, uint(1))] = (0.0f).xxxx;
+  arg_0[uint3((1u).xx, uint(1))] = (1.0f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/37ffd4.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/37ffd4.wgsl.expected.fxc.hlsl
index 7bafb82..5694464 100644
--- a/test/tint/builtins/gen/literal/textureStore/37ffd4.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/37ffd4.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 void textureStore_37ffd4() {
-  arg_0[uint3(0u, 0u, uint(1))] = (0.0f).xxxx;
+  arg_0[uint3((1u).xx, uint(1))] = (1.0f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/37ffd4.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/37ffd4.wgsl.expected.glsl
index 1c7cfb6..f503dba 100644
--- a/test/tint/builtins/gen/literal/textureStore/37ffd4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/37ffd4.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 layout(rgba32f) uniform highp writeonly image2DArray arg_0;
 void textureStore_37ffd4() {
-  imageStore(arg_0, ivec3(uvec3(0u, 0u, uint(1))), vec4(0.0f));
+  imageStore(arg_0, ivec3(uvec3(uvec2(1u), uint(1))), vec4(1.0f));
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 
 layout(rgba32f) uniform highp writeonly image2DArray arg_0;
 void textureStore_37ffd4() {
-  imageStore(arg_0, ivec3(uvec3(0u, 0u, uint(1))), vec4(0.0f));
+  imageStore(arg_0, ivec3(uvec3(uvec2(1u), uint(1))), vec4(1.0f));
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 layout(rgba32f) uniform highp writeonly image2DArray arg_0;
 void textureStore_37ffd4() {
-  imageStore(arg_0, ivec3(uvec3(0u, 0u, uint(1))), vec4(0.0f));
+  imageStore(arg_0, ivec3(uvec3(uvec2(1u), uint(1))), vec4(1.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureStore/37ffd4.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/37ffd4.wgsl.expected.msl
index 85bb75c..ccd0fe7 100644
--- a/test/tint/builtins/gen/literal/textureStore/37ffd4.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/37ffd4.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureStore_37ffd4(texture2d_array<float, access::write> tint_symbol_1) {
-  tint_symbol_1.write(float4(0.0f), uint2(uint2(0u)), 1);
+  tint_symbol_1.write(float4(1.0f), uint2(uint2(1u)), 1);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/37ffd4.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/37ffd4.wgsl.expected.spvasm
index b865d9c..588fc63 100644
--- a/test/tint/builtins/gen/literal/textureStore/37ffd4.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/37ffd4.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 39
+; Bound: 44
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -38,38 +38,43 @@
          %12 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
-     %uint_0 = OpConstant %uint 0
+     %v2uint = OpTypeVector %uint 2
+     %uint_1 = OpConstant %uint 1
+         %22 = OpConstantComposite %v2uint %uint_1 %uint_1
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
-         %25 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
+         %30 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %31 = OpTypeFunction %v4float
 %textureStore_37ffd4 = OpFunction %void None %12
          %15 = OpLabel
          %17 = OpLoad %11 %arg_0
-         %21 = OpBitcast %uint %int_1
-         %24 = OpCompositeConstruct %v3uint %uint_0 %uint_0 %21
-               OpImageWrite %17 %24 %5
+         %23 = OpCompositeExtract %uint %22 0
+         %24 = OpCompositeExtract %uint %22 1
+         %25 = OpBitcast %uint %int_1
+         %28 = OpCompositeConstruct %v3uint %23 %24 %25
+               OpImageWrite %17 %28 %30
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %25
-         %27 = OpLabel
-         %28 = OpFunctionCall %void %textureStore_37ffd4
+%vertex_main_inner = OpFunction %v4float None %31
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureStore_37ffd4
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %30 = OpLabel
-         %31 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %31
+         %36 = OpLabel
+         %37 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %37
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureStore_37ffd4
+         %39 = OpLabel
+         %40 = OpFunctionCall %void %textureStore_37ffd4
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureStore_37ffd4
+         %42 = OpLabel
+         %43 = OpFunctionCall %void %textureStore_37ffd4
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/37ffd4.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/37ffd4.wgsl.expected.wgsl
index 1142990..de7daec 100644
--- a/test/tint/builtins/gen/literal/textureStore/37ffd4.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/37ffd4.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba32float, write>;
 
 fn textureStore_37ffd4() {
-  textureStore(arg_0, vec2<u32>(), 1i, vec4<f32>());
+  textureStore(arg_0, vec2<u32>(1u), 1i, vec4<f32>(1.0f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/38e8d7.wgsl b/test/tint/builtins/gen/literal/textureStore/38e8d7.wgsl
index a7bf084..681e37c 100644
--- a/test/tint/builtins/gen/literal/textureStore/38e8d7.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/38e8d7.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureStore(texture: texture_storage_2d_array<r32uint, write>, coords: vec2<i32>, array_index: i32, value: vec4<u32>)
 fn textureStore_38e8d7() {
-  textureStore(arg_0, vec2<i32>(), 1i, vec4<u32>());
+  textureStore(arg_0, vec2<i32>(1i), 1i, vec4<u32>(1u));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/38e8d7.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/38e8d7.wgsl.expected.dxc.hlsl
index 8c2dd24..77ffb74 100644
--- a/test/tint/builtins/gen/literal/textureStore/38e8d7.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/38e8d7.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 void textureStore_38e8d7() {
-  arg_0[int3(0, 0, 1)] = (0u).xxxx;
+  arg_0[int3((1).xx, 1)] = (1u).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/38e8d7.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/38e8d7.wgsl.expected.fxc.hlsl
index 8c2dd24..77ffb74 100644
--- a/test/tint/builtins/gen/literal/textureStore/38e8d7.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/38e8d7.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 void textureStore_38e8d7() {
-  arg_0[int3(0, 0, 1)] = (0u).xxxx;
+  arg_0[int3((1).xx, 1)] = (1u).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/38e8d7.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/38e8d7.wgsl.expected.glsl
index d898f5e..bc05eea 100644
--- a/test/tint/builtins/gen/literal/textureStore/38e8d7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/38e8d7.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 layout(r32ui) uniform highp writeonly uimage2DArray arg_0;
 void textureStore_38e8d7() {
-  imageStore(arg_0, ivec3(0, 0, 1), uvec4(0u));
+  imageStore(arg_0, ivec3(ivec2(1), 1), uvec4(1u));
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 
 layout(r32ui) uniform highp writeonly uimage2DArray arg_0;
 void textureStore_38e8d7() {
-  imageStore(arg_0, ivec3(0, 0, 1), uvec4(0u));
+  imageStore(arg_0, ivec3(ivec2(1), 1), uvec4(1u));
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 layout(r32ui) uniform highp writeonly uimage2DArray arg_0;
 void textureStore_38e8d7() {
-  imageStore(arg_0, ivec3(0, 0, 1), uvec4(0u));
+  imageStore(arg_0, ivec3(ivec2(1), 1), uvec4(1u));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureStore/38e8d7.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/38e8d7.wgsl.expected.msl
index ac1cd5a..1609b52 100644
--- a/test/tint/builtins/gen/literal/textureStore/38e8d7.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/38e8d7.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureStore_38e8d7(texture2d_array<uint, access::write> tint_symbol_1) {
-  tint_symbol_1.write(uint4(0u), uint2(int2(0)), 1);
+  tint_symbol_1.write(uint4(1u), uint2(int2(1)), 1);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/38e8d7.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/38e8d7.wgsl.expected.spvasm
index 5bf4b4a..fad0694 100644
--- a/test/tint/builtins/gen/literal/textureStore/38e8d7.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/38e8d7.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 40
+; Bound: 44
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -39,38 +39,42 @@
          %13 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
-      %int_0 = OpConstant %int 0
+      %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %23 = OpConstantComposite %v3int %int_0 %int_0 %int_1
+         %23 = OpConstantComposite %v2int %int_1 %int_1
      %v4uint = OpTypeVector %uint 4
-         %25 = OpConstantNull %v4uint
-         %26 = OpTypeFunction %v4float
+     %uint_1 = OpConstant %uint 1
+         %29 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+         %30 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_38e8d7 = OpFunction %void None %13
          %16 = OpLabel
          %18 = OpLoad %11 %arg_0
-               OpImageWrite %18 %23 %25
+         %24 = OpCompositeExtract %int %23 0
+         %25 = OpCompositeExtract %int %23 1
+         %26 = OpCompositeConstruct %v3int %24 %25 %int_1
+               OpImageWrite %18 %26 %29
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %26
-         %28 = OpLabel
-         %29 = OpFunctionCall %void %textureStore_38e8d7
+%vertex_main_inner = OpFunction %v4float None %30
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %textureStore_38e8d7
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %31 = OpLabel
-         %32 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %32
+         %35 = OpLabel
+         %36 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %36
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureStore_38e8d7
+         %39 = OpLabel
+         %40 = OpFunctionCall %void %textureStore_38e8d7
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureStore_38e8d7
+         %42 = OpLabel
+         %43 = OpFunctionCall %void %textureStore_38e8d7
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/38e8d7.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/38e8d7.wgsl.expected.wgsl
index 080c74f..c89dfae 100644
--- a/test/tint/builtins/gen/literal/textureStore/38e8d7.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/38e8d7.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<r32uint, write>;
 
 fn textureStore_38e8d7() {
-  textureStore(arg_0, vec2<i32>(), 1i, vec4<u32>());
+  textureStore(arg_0, vec2<i32>(1i), 1i, vec4<u32>(1u));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/3a52ac.wgsl b/test/tint/builtins/gen/literal/textureStore/3a52ac.wgsl
index 028ac8a..cb12161 100644
--- a/test/tint/builtins/gen/literal/textureStore/3a52ac.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/3a52ac.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureStore(texture: texture_storage_2d_array<rgba16sint, write>, coords: vec2<i32>, array_index: i32, value: vec4<i32>)
 fn textureStore_3a52ac() {
-  textureStore(arg_0, vec2<i32>(), 1i, vec4<i32>());
+  textureStore(arg_0, vec2<i32>(1i), 1i, vec4<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/3a52ac.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/3a52ac.wgsl.expected.dxc.hlsl
index b0fd8b1..90738ec 100644
--- a/test/tint/builtins/gen/literal/textureStore/3a52ac.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/3a52ac.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 void textureStore_3a52ac() {
-  arg_0[int3(0, 0, 1)] = (0).xxxx;
+  arg_0[int3((1).xx, 1)] = (1).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/3a52ac.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/3a52ac.wgsl.expected.fxc.hlsl
index b0fd8b1..90738ec 100644
--- a/test/tint/builtins/gen/literal/textureStore/3a52ac.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/3a52ac.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 void textureStore_3a52ac() {
-  arg_0[int3(0, 0, 1)] = (0).xxxx;
+  arg_0[int3((1).xx, 1)] = (1).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/3a52ac.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/3a52ac.wgsl.expected.glsl
index 604ece2..3ff7e90 100644
--- a/test/tint/builtins/gen/literal/textureStore/3a52ac.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/3a52ac.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 layout(rgba16i) uniform highp writeonly iimage2DArray arg_0;
 void textureStore_3a52ac() {
-  imageStore(arg_0, ivec3(0, 0, 1), ivec4(0));
+  imageStore(arg_0, ivec3(ivec2(1), 1), ivec4(1));
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 
 layout(rgba16i) uniform highp writeonly iimage2DArray arg_0;
 void textureStore_3a52ac() {
-  imageStore(arg_0, ivec3(0, 0, 1), ivec4(0));
+  imageStore(arg_0, ivec3(ivec2(1), 1), ivec4(1));
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 layout(rgba16i) uniform highp writeonly iimage2DArray arg_0;
 void textureStore_3a52ac() {
-  imageStore(arg_0, ivec3(0, 0, 1), ivec4(0));
+  imageStore(arg_0, ivec3(ivec2(1), 1), ivec4(1));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureStore/3a52ac.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/3a52ac.wgsl.expected.msl
index b40ea4b..1c566a2 100644
--- a/test/tint/builtins/gen/literal/textureStore/3a52ac.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/3a52ac.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureStore_3a52ac(texture2d_array<int, access::write> tint_symbol_1) {
-  tint_symbol_1.write(int4(0), uint2(int2(0)), 1);
+  tint_symbol_1.write(int4(1), uint2(int2(1)), 1);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/3a52ac.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/3a52ac.wgsl.expected.spvasm
index 2208840..c1f5cbc 100644
--- a/test/tint/builtins/gen/literal/textureStore/3a52ac.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/3a52ac.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 39
+; Bound: 42
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -38,38 +38,41 @@
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
       %v3int = OpTypeVector %int 3
-      %int_0 = OpConstant %int 0
+      %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %22 = OpConstantComposite %v3int %int_0 %int_0 %int_1
+         %22 = OpConstantComposite %v2int %int_1 %int_1
       %v4int = OpTypeVector %int 4
-         %24 = OpConstantNull %v4int
-         %25 = OpTypeFunction %v4float
+         %27 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+         %28 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_3a52ac = OpFunction %void None %13
          %16 = OpLabel
          %18 = OpLoad %11 %arg_0
-               OpImageWrite %18 %22 %24
+         %23 = OpCompositeExtract %int %22 0
+         %24 = OpCompositeExtract %int %22 1
+         %25 = OpCompositeConstruct %v3int %23 %24 %int_1
+               OpImageWrite %18 %25 %27
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %25
-         %27 = OpLabel
-         %28 = OpFunctionCall %void %textureStore_3a52ac
+%vertex_main_inner = OpFunction %v4float None %28
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %textureStore_3a52ac
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %30 = OpLabel
-         %31 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %31
+         %33 = OpLabel
+         %34 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %34
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureStore_3a52ac
+         %37 = OpLabel
+         %38 = OpFunctionCall %void %textureStore_3a52ac
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureStore_3a52ac
+         %40 = OpLabel
+         %41 = OpFunctionCall %void %textureStore_3a52ac
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/3a52ac.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/3a52ac.wgsl.expected.wgsl
index 241766e..7ff9b1e 100644
--- a/test/tint/builtins/gen/literal/textureStore/3a52ac.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/3a52ac.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba16sint, write>;
 
 fn textureStore_3a52ac() {
-  textureStore(arg_0, vec2<i32>(), 1i, vec4<i32>());
+  textureStore(arg_0, vec2<i32>(1i), 1i, vec4<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/3bb7a1.wgsl b/test/tint/builtins/gen/literal/textureStore/3bb7a1.wgsl
index 170257b..febc992 100644
--- a/test/tint/builtins/gen/literal/textureStore/3bb7a1.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/3bb7a1.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureStore(texture: texture_storage_2d_array<r32float, write>, coords: vec2<i32>, array_index: i32, value: vec4<f32>)
 fn textureStore_3bb7a1() {
-  textureStore(arg_0, vec2<i32>(), 1i, vec4<f32>());
+  textureStore(arg_0, vec2<i32>(1i), 1i, vec4<f32>(1.f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/3bb7a1.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/3bb7a1.wgsl.expected.dxc.hlsl
index 879dea5..b8ad4cf 100644
--- a/test/tint/builtins/gen/literal/textureStore/3bb7a1.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/3bb7a1.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 void textureStore_3bb7a1() {
-  arg_0[int3(0, 0, 1)] = (0.0f).xxxx;
+  arg_0[int3((1).xx, 1)] = (1.0f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/3bb7a1.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/3bb7a1.wgsl.expected.fxc.hlsl
index 879dea5..b8ad4cf 100644
--- a/test/tint/builtins/gen/literal/textureStore/3bb7a1.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/3bb7a1.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 void textureStore_3bb7a1() {
-  arg_0[int3(0, 0, 1)] = (0.0f).xxxx;
+  arg_0[int3((1).xx, 1)] = (1.0f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/3bb7a1.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/3bb7a1.wgsl.expected.glsl
index 52c2ee4..e903047 100644
--- a/test/tint/builtins/gen/literal/textureStore/3bb7a1.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/3bb7a1.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 layout(r32f) uniform highp writeonly image2DArray arg_0;
 void textureStore_3bb7a1() {
-  imageStore(arg_0, ivec3(0, 0, 1), vec4(0.0f));
+  imageStore(arg_0, ivec3(ivec2(1), 1), vec4(1.0f));
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 
 layout(r32f) uniform highp writeonly image2DArray arg_0;
 void textureStore_3bb7a1() {
-  imageStore(arg_0, ivec3(0, 0, 1), vec4(0.0f));
+  imageStore(arg_0, ivec3(ivec2(1), 1), vec4(1.0f));
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 layout(r32f) uniform highp writeonly image2DArray arg_0;
 void textureStore_3bb7a1() {
-  imageStore(arg_0, ivec3(0, 0, 1), vec4(0.0f));
+  imageStore(arg_0, ivec3(ivec2(1), 1), vec4(1.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureStore/3bb7a1.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/3bb7a1.wgsl.expected.msl
index 8cd1fce..e00c212 100644
--- a/test/tint/builtins/gen/literal/textureStore/3bb7a1.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/3bb7a1.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureStore_3bb7a1(texture2d_array<float, access::write> tint_symbol_1) {
-  tint_symbol_1.write(float4(0.0f), uint2(int2(0)), 1);
+  tint_symbol_1.write(float4(1.0f), uint2(int2(1)), 1);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/3bb7a1.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/3bb7a1.wgsl.expected.spvasm
index 042c17d..c506090 100644
--- a/test/tint/builtins/gen/literal/textureStore/3bb7a1.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/3bb7a1.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 37
+; Bound: 41
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -38,36 +38,40 @@
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
-      %int_0 = OpConstant %int 0
+      %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %22 = OpConstantComposite %v3int %int_0 %int_0 %int_1
-         %23 = OpTypeFunction %v4float
+         %22 = OpConstantComposite %v2int %int_1 %int_1
     %float_1 = OpConstant %float 1
+         %27 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %28 = OpTypeFunction %v4float
 %textureStore_3bb7a1 = OpFunction %void None %12
          %15 = OpLabel
          %17 = OpLoad %11 %arg_0
-               OpImageWrite %17 %22 %5
+         %23 = OpCompositeExtract %int %22 0
+         %24 = OpCompositeExtract %int %22 1
+         %25 = OpCompositeConstruct %v3int %23 %24 %int_1
+               OpImageWrite %17 %25 %27
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %23
-         %25 = OpLabel
-         %26 = OpFunctionCall %void %textureStore_3bb7a1
+%vertex_main_inner = OpFunction %v4float None %28
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %textureStore_3bb7a1
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %28 = OpLabel
-         %29 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %29
+         %33 = OpLabel
+         %34 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %34
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_3bb7a1
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureStore_3bb7a1
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureStore_3bb7a1
+         %39 = OpLabel
+         %40 = OpFunctionCall %void %textureStore_3bb7a1
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/3bb7a1.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/3bb7a1.wgsl.expected.wgsl
index 0b7b71d..941bf58 100644
--- a/test/tint/builtins/gen/literal/textureStore/3bb7a1.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/3bb7a1.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<r32float, write>;
 
 fn textureStore_3bb7a1() {
-  textureStore(arg_0, vec2<i32>(), 1i, vec4<f32>());
+  textureStore(arg_0, vec2<i32>(1i), 1i, vec4<f32>(1.0f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/3bec15.wgsl b/test/tint/builtins/gen/literal/textureStore/3bec15.wgsl
index e6050ab..3db2638 100644
--- a/test/tint/builtins/gen/literal/textureStore/3bec15.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/3bec15.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureStore(texture: texture_storage_1d<rgba8uint, write>, coords: i32, value: vec4<u32>)
 fn textureStore_3bec15() {
-  textureStore(arg_0, 1i, vec4<u32>());
+  textureStore(arg_0, 1i, vec4<u32>(1u));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/3bec15.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/3bec15.wgsl.expected.dxc.hlsl
index cc77637..1ee37ac 100644
--- a/test/tint/builtins/gen/literal/textureStore/3bec15.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/3bec15.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture1D<uint4> arg_0 : register(u0, space1);
 
 void textureStore_3bec15() {
-  arg_0[1] = (0u).xxxx;
+  arg_0[1] = (1u).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/3bec15.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/3bec15.wgsl.expected.fxc.hlsl
index cc77637..1ee37ac 100644
--- a/test/tint/builtins/gen/literal/textureStore/3bec15.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/3bec15.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture1D<uint4> arg_0 : register(u0, space1);
 
 void textureStore_3bec15() {
-  arg_0[1] = (0u).xxxx;
+  arg_0[1] = (1u).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/3bec15.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/3bec15.wgsl.expected.msl
index b08f7bb..9dbe6b0 100644
--- a/test/tint/builtins/gen/literal/textureStore/3bec15.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/3bec15.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureStore_3bec15(texture1d<uint, access::write> tint_symbol_1) {
-  tint_symbol_1.write(uint4(0u), uint(1));
+  tint_symbol_1.write(uint4(1u), uint(1));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/3bec15.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/3bec15.wgsl.expected.spvasm
index 617f660..44546d3 100644
--- a/test/tint/builtins/gen/literal/textureStore/3bec15.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/3bec15.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 37
+; Bound: 38
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
@@ -41,34 +41,35 @@
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
      %v4uint = OpTypeVector %uint 4
-         %22 = OpConstantNull %v4uint
-         %23 = OpTypeFunction %v4float
+     %uint_1 = OpConstant %uint 1
+         %23 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+         %24 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_3bec15 = OpFunction %void None %13
          %16 = OpLabel
          %18 = OpLoad %11 %arg_0
-               OpImageWrite %18 %int_1 %22
+               OpImageWrite %18 %int_1 %23
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %23
-         %25 = OpLabel
-         %26 = OpFunctionCall %void %textureStore_3bec15
+%vertex_main_inner = OpFunction %v4float None %24
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %textureStore_3bec15
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %28 = OpLabel
-         %29 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %29
+         %29 = OpLabel
+         %30 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %30
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_3bec15
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureStore_3bec15
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureStore_3bec15
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureStore_3bec15
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/3bec15.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/3bec15.wgsl.expected.wgsl
index 54a9a18..73d8e4b 100644
--- a/test/tint/builtins/gen/literal/textureStore/3bec15.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/3bec15.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rgba8uint, write>;
 
 fn textureStore_3bec15() {
-  textureStore(arg_0, 1i, vec4<u32>());
+  textureStore(arg_0, 1i, vec4<u32>(1u));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/3c1937.wgsl b/test/tint/builtins/gen/literal/textureStore/3c1937.wgsl
index 599a5aa..2d6cdca 100644
--- a/test/tint/builtins/gen/literal/textureStore/3c1937.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/3c1937.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureStore(texture: texture_storage_1d<rgba8uint, write>, coords: u32, value: vec4<u32>)
 fn textureStore_3c1937() {
-  textureStore(arg_0, 1u, vec4<u32>());
+  textureStore(arg_0, 1u, vec4<u32>(1u));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/3c1937.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/3c1937.wgsl.expected.dxc.hlsl
index 3c35d23..7de0dd0 100644
--- a/test/tint/builtins/gen/literal/textureStore/3c1937.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/3c1937.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture1D<uint4> arg_0 : register(u0, space1);
 
 void textureStore_3c1937() {
-  arg_0[1u] = (0u).xxxx;
+  arg_0[1u] = (1u).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/3c1937.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/3c1937.wgsl.expected.fxc.hlsl
index 3c35d23..7de0dd0 100644
--- a/test/tint/builtins/gen/literal/textureStore/3c1937.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/3c1937.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture1D<uint4> arg_0 : register(u0, space1);
 
 void textureStore_3c1937() {
-  arg_0[1u] = (0u).xxxx;
+  arg_0[1u] = (1u).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/3c1937.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/3c1937.wgsl.expected.msl
index 66c76cc..670464d 100644
--- a/test/tint/builtins/gen/literal/textureStore/3c1937.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/3c1937.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureStore_3c1937(texture1d<uint, access::write> tint_symbol_1) {
-  tint_symbol_1.write(uint4(0u), uint(1u));
+  tint_symbol_1.write(uint4(1u), uint(1u));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/3c1937.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/3c1937.wgsl.expected.spvasm
index ceae29a..003ee50 100644
--- a/test/tint/builtins/gen/literal/textureStore/3c1937.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/3c1937.wgsl.expected.spvasm
@@ -40,7 +40,7 @@
          %13 = OpTypeFunction %void
      %uint_1 = OpConstant %uint 1
      %v4uint = OpTypeVector %uint 4
-         %21 = OpConstantNull %v4uint
+         %21 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
          %22 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_3c1937 = OpFunction %void None %13
diff --git a/test/tint/builtins/gen/literal/textureStore/3c1937.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/3c1937.wgsl.expected.wgsl
index b26afa2..7da0a5f 100644
--- a/test/tint/builtins/gen/literal/textureStore/3c1937.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/3c1937.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rgba8uint, write>;
 
 fn textureStore_3c1937() {
-  textureStore(arg_0, 1u, vec4<u32>());
+  textureStore(arg_0, 1u, vec4<u32>(1u));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/3d6f01.wgsl b/test/tint/builtins/gen/literal/textureStore/3d6f01.wgsl
index 9bddb8a..5e013cc 100644
--- a/test/tint/builtins/gen/literal/textureStore/3d6f01.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/3d6f01.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureStore(texture: texture_storage_1d<rg32sint, write>, coords: u32, value: vec4<i32>)
 fn textureStore_3d6f01() {
-  textureStore(arg_0, 1u, vec4<i32>());
+  textureStore(arg_0, 1u, vec4<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/3d6f01.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/3d6f01.wgsl.expected.dxc.hlsl
index 24d481d..ed58795 100644
--- a/test/tint/builtins/gen/literal/textureStore/3d6f01.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/3d6f01.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture1D<int4> arg_0 : register(u0, space1);
 
 void textureStore_3d6f01() {
-  arg_0[1u] = (0).xxxx;
+  arg_0[1u] = (1).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/3d6f01.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/3d6f01.wgsl.expected.fxc.hlsl
index 24d481d..ed58795 100644
--- a/test/tint/builtins/gen/literal/textureStore/3d6f01.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/3d6f01.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture1D<int4> arg_0 : register(u0, space1);
 
 void textureStore_3d6f01() {
-  arg_0[1u] = (0).xxxx;
+  arg_0[1u] = (1).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/3d6f01.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/3d6f01.wgsl.expected.msl
index 04287c4..a6989b8 100644
--- a/test/tint/builtins/gen/literal/textureStore/3d6f01.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/3d6f01.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureStore_3d6f01(texture1d<int, access::write> tint_symbol_1) {
-  tint_symbol_1.write(int4(0), uint(1u));
+  tint_symbol_1.write(int4(1), uint(1u));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/3d6f01.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/3d6f01.wgsl.expected.spvasm
index 658ccf1..45b0b4d 100644
--- a/test/tint/builtins/gen/literal/textureStore/3d6f01.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/3d6f01.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 37
+; Bound: 38
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
@@ -42,34 +42,35 @@
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
       %v4int = OpTypeVector %int 4
-         %22 = OpConstantNull %v4int
-         %23 = OpTypeFunction %v4float
+      %int_1 = OpConstant %int 1
+         %23 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+         %24 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_3d6f01 = OpFunction %void None %13
          %16 = OpLabel
          %18 = OpLoad %11 %arg_0
-               OpImageWrite %18 %uint_1 %22
+               OpImageWrite %18 %uint_1 %23
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %23
-         %25 = OpLabel
-         %26 = OpFunctionCall %void %textureStore_3d6f01
+%vertex_main_inner = OpFunction %v4float None %24
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %textureStore_3d6f01
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %28 = OpLabel
-         %29 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %29
+         %29 = OpLabel
+         %30 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %30
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_3d6f01
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureStore_3d6f01
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureStore_3d6f01
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureStore_3d6f01
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/3d6f01.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/3d6f01.wgsl.expected.wgsl
index ec89f38..bc5feb5 100644
--- a/test/tint/builtins/gen/literal/textureStore/3d6f01.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/3d6f01.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rg32sint, write>;
 
 fn textureStore_3d6f01() {
-  textureStore(arg_0, 1u, vec4<i32>());
+  textureStore(arg_0, 1u, vec4<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/40c455.wgsl b/test/tint/builtins/gen/literal/textureStore/40c455.wgsl
index 8383481..7ea64eb 100644
--- a/test/tint/builtins/gen/literal/textureStore/40c455.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/40c455.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureStore(texture: texture_storage_2d<rgba8snorm, write>, coords: vec2<u32>, value: vec4<f32>)
 fn textureStore_40c455() {
-  textureStore(arg_0, vec2<u32>(), vec4<f32>());
+  textureStore(arg_0, vec2<u32>(1u), vec4<f32>(1.f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/40c455.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/40c455.wgsl.expected.dxc.hlsl
index a34c109..181450b 100644
--- a/test/tint/builtins/gen/literal/textureStore/40c455.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/40c455.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2D<float4> arg_0 : register(u0, space1);
 
 void textureStore_40c455() {
-  arg_0[(0u).xx] = (0.0f).xxxx;
+  arg_0[(1u).xx] = (1.0f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/40c455.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/40c455.wgsl.expected.fxc.hlsl
index a34c109..181450b 100644
--- a/test/tint/builtins/gen/literal/textureStore/40c455.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/40c455.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2D<float4> arg_0 : register(u0, space1);
 
 void textureStore_40c455() {
-  arg_0[(0u).xx] = (0.0f).xxxx;
+  arg_0[(1u).xx] = (1.0f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/40c455.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/40c455.wgsl.expected.glsl
index cf38074..91e06cc 100644
--- a/test/tint/builtins/gen/literal/textureStore/40c455.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/40c455.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 layout(rgba8_snorm) uniform highp writeonly image2D arg_0;
 void textureStore_40c455() {
-  imageStore(arg_0, ivec2(uvec2(0u)), vec4(0.0f));
+  imageStore(arg_0, ivec2(uvec2(1u)), vec4(1.0f));
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 
 layout(rgba8_snorm) uniform highp writeonly image2D arg_0;
 void textureStore_40c455() {
-  imageStore(arg_0, ivec2(uvec2(0u)), vec4(0.0f));
+  imageStore(arg_0, ivec2(uvec2(1u)), vec4(1.0f));
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 layout(rgba8_snorm) uniform highp writeonly image2D arg_0;
 void textureStore_40c455() {
-  imageStore(arg_0, ivec2(uvec2(0u)), vec4(0.0f));
+  imageStore(arg_0, ivec2(uvec2(1u)), vec4(1.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureStore/40c455.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/40c455.wgsl.expected.msl
index aca14e6..b90a54c 100644
--- a/test/tint/builtins/gen/literal/textureStore/40c455.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/40c455.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureStore_40c455(texture2d<float, access::write> tint_symbol_1) {
-  tint_symbol_1.write(float4(0.0f), uint2(uint2(0u)));
+  tint_symbol_1.write(float4(1.0f), uint2(uint2(1u)));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/40c455.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/40c455.wgsl.expected.spvasm
index d6742e1..1990f95 100644
--- a/test/tint/builtins/gen/literal/textureStore/40c455.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/40c455.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 35
+; Bound: 37
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -38,34 +38,36 @@
          %12 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
-         %20 = OpConstantNull %v2uint
-         %21 = OpTypeFunction %v4float
+     %uint_1 = OpConstant %uint 1
+         %21 = OpConstantComposite %v2uint %uint_1 %uint_1
     %float_1 = OpConstant %float 1
+         %23 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %24 = OpTypeFunction %v4float
 %textureStore_40c455 = OpFunction %void None %12
          %15 = OpLabel
          %17 = OpLoad %11 %arg_0
-               OpImageWrite %17 %20 %5
+               OpImageWrite %17 %21 %23
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %21
-         %23 = OpLabel
-         %24 = OpFunctionCall %void %textureStore_40c455
+%vertex_main_inner = OpFunction %v4float None %24
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %textureStore_40c455
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %26 = OpLabel
-         %27 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %27
+         %29 = OpLabel
+         %30 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %30
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %textureStore_40c455
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %textureStore_40c455
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_40c455
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureStore_40c455
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/40c455.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/40c455.wgsl.expected.wgsl
index 17ec04a..9e144de 100644
--- a/test/tint/builtins/gen/literal/textureStore/40c455.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/40c455.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba8snorm, write>;
 
 fn textureStore_40c455() {
-  textureStore(arg_0, vec2<u32>(), vec4<f32>());
+  textureStore(arg_0, vec2<u32>(1u), vec4<f32>(1.0f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/4288fc.wgsl b/test/tint/builtins/gen/literal/textureStore/4288fc.wgsl
index 086f268..b54bc38 100644
--- a/test/tint/builtins/gen/literal/textureStore/4288fc.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/4288fc.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureStore(texture: texture_storage_3d<r32float, write>, coords: vec3<u32>, value: vec4<f32>)
 fn textureStore_4288fc() {
-  textureStore(arg_0, vec3<u32>(), vec4<f32>());
+  textureStore(arg_0, vec3<u32>(1u), vec4<f32>(1.f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/4288fc.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/4288fc.wgsl.expected.dxc.hlsl
index 53c3ae0..baac045 100644
--- a/test/tint/builtins/gen/literal/textureStore/4288fc.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/4288fc.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture3D<float4> arg_0 : register(u0, space1);
 
 void textureStore_4288fc() {
-  arg_0[(0u).xxx] = (0.0f).xxxx;
+  arg_0[(1u).xxx] = (1.0f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/4288fc.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/4288fc.wgsl.expected.fxc.hlsl
index 53c3ae0..baac045 100644
--- a/test/tint/builtins/gen/literal/textureStore/4288fc.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/4288fc.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture3D<float4> arg_0 : register(u0, space1);
 
 void textureStore_4288fc() {
-  arg_0[(0u).xxx] = (0.0f).xxxx;
+  arg_0[(1u).xxx] = (1.0f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/4288fc.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/4288fc.wgsl.expected.glsl
index 0d55884..dcc4af3 100644
--- a/test/tint/builtins/gen/literal/textureStore/4288fc.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/4288fc.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 layout(r32f) uniform highp writeonly image3D arg_0;
 void textureStore_4288fc() {
-  imageStore(arg_0, ivec3(uvec3(0u)), vec4(0.0f));
+  imageStore(arg_0, ivec3(uvec3(1u)), vec4(1.0f));
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 
 layout(r32f) uniform highp writeonly image3D arg_0;
 void textureStore_4288fc() {
-  imageStore(arg_0, ivec3(uvec3(0u)), vec4(0.0f));
+  imageStore(arg_0, ivec3(uvec3(1u)), vec4(1.0f));
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 layout(r32f) uniform highp writeonly image3D arg_0;
 void textureStore_4288fc() {
-  imageStore(arg_0, ivec3(uvec3(0u)), vec4(0.0f));
+  imageStore(arg_0, ivec3(uvec3(1u)), vec4(1.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureStore/4288fc.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/4288fc.wgsl.expected.msl
index e865bdc..7642d26 100644
--- a/test/tint/builtins/gen/literal/textureStore/4288fc.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/4288fc.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureStore_4288fc(texture3d<float, access::write> tint_symbol_1) {
-  tint_symbol_1.write(float4(0.0f), uint3(uint3(0u)));
+  tint_symbol_1.write(float4(1.0f), uint3(uint3(1u)));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/4288fc.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/4288fc.wgsl.expected.spvasm
index 0251157..2c8b573 100644
--- a/test/tint/builtins/gen/literal/textureStore/4288fc.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/4288fc.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 35
+; Bound: 37
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -38,34 +38,36 @@
          %12 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
-         %20 = OpConstantNull %v3uint
-         %21 = OpTypeFunction %v4float
+     %uint_1 = OpConstant %uint 1
+         %21 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
     %float_1 = OpConstant %float 1
+         %23 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %24 = OpTypeFunction %v4float
 %textureStore_4288fc = OpFunction %void None %12
          %15 = OpLabel
          %17 = OpLoad %11 %arg_0
-               OpImageWrite %17 %20 %5
+               OpImageWrite %17 %21 %23
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %21
-         %23 = OpLabel
-         %24 = OpFunctionCall %void %textureStore_4288fc
+%vertex_main_inner = OpFunction %v4float None %24
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %textureStore_4288fc
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %26 = OpLabel
-         %27 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %27
+         %29 = OpLabel
+         %30 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %30
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %textureStore_4288fc
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %textureStore_4288fc
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_4288fc
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureStore_4288fc
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/4288fc.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/4288fc.wgsl.expected.wgsl
index 5a88ca4..ed36fbe 100644
--- a/test/tint/builtins/gen/literal/textureStore/4288fc.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/4288fc.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_storage_3d<r32float, write>;
 
 fn textureStore_4288fc() {
-  textureStore(arg_0, vec3<u32>(), vec4<f32>());
+  textureStore(arg_0, vec3<u32>(1u), vec4<f32>(1.0f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/441ba8.wgsl b/test/tint/builtins/gen/literal/textureStore/441ba8.wgsl
index a81a84b..7f2af68 100644
--- a/test/tint/builtins/gen/literal/textureStore/441ba8.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/441ba8.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureStore(texture: texture_storage_3d<rgba32uint, write>, coords: vec3<i32>, value: vec4<u32>)
 fn textureStore_441ba8() {
-  textureStore(arg_0, vec3<i32>(), vec4<u32>());
+  textureStore(arg_0, vec3<i32>(1i), vec4<u32>(1u));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/441ba8.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/441ba8.wgsl.expected.dxc.hlsl
index c2c79ae..487e37a 100644
--- a/test/tint/builtins/gen/literal/textureStore/441ba8.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/441ba8.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture3D<uint4> arg_0 : register(u0, space1);
 
 void textureStore_441ba8() {
-  arg_0[(0).xxx] = (0u).xxxx;
+  arg_0[(1).xxx] = (1u).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/441ba8.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/441ba8.wgsl.expected.fxc.hlsl
index c2c79ae..487e37a 100644
--- a/test/tint/builtins/gen/literal/textureStore/441ba8.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/441ba8.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture3D<uint4> arg_0 : register(u0, space1);
 
 void textureStore_441ba8() {
-  arg_0[(0).xxx] = (0u).xxxx;
+  arg_0[(1).xxx] = (1u).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/441ba8.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/441ba8.wgsl.expected.glsl
index 5dfe9b5..6c29a7e 100644
--- a/test/tint/builtins/gen/literal/textureStore/441ba8.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/441ba8.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 layout(rgba32ui) uniform highp writeonly uimage3D arg_0;
 void textureStore_441ba8() {
-  imageStore(arg_0, ivec3(0), uvec4(0u));
+  imageStore(arg_0, ivec3(1), uvec4(1u));
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 
 layout(rgba32ui) uniform highp writeonly uimage3D arg_0;
 void textureStore_441ba8() {
-  imageStore(arg_0, ivec3(0), uvec4(0u));
+  imageStore(arg_0, ivec3(1), uvec4(1u));
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 layout(rgba32ui) uniform highp writeonly uimage3D arg_0;
 void textureStore_441ba8() {
-  imageStore(arg_0, ivec3(0), uvec4(0u));
+  imageStore(arg_0, ivec3(1), uvec4(1u));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureStore/441ba8.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/441ba8.wgsl.expected.msl
index 4d5772e..8135665 100644
--- a/test/tint/builtins/gen/literal/textureStore/441ba8.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/441ba8.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureStore_441ba8(texture3d<uint, access::write> tint_symbol_1) {
-  tint_symbol_1.write(uint4(0u), uint3(int3(0)));
+  tint_symbol_1.write(uint4(1u), uint3(int3(1)));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/441ba8.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/441ba8.wgsl.expected.spvasm
index f90cc46..3dc4d15 100644
--- a/test/tint/builtins/gen/literal/textureStore/441ba8.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/441ba8.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 38
+; Bound: 40
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -39,36 +39,38 @@
          %13 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
-         %21 = OpConstantNull %v3int
+      %int_1 = OpConstant %int 1
+         %22 = OpConstantComposite %v3int %int_1 %int_1 %int_1
      %v4uint = OpTypeVector %uint 4
-         %23 = OpConstantNull %v4uint
-         %24 = OpTypeFunction %v4float
+     %uint_1 = OpConstant %uint 1
+         %25 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+         %26 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_441ba8 = OpFunction %void None %13
          %16 = OpLabel
          %18 = OpLoad %11 %arg_0
-               OpImageWrite %18 %21 %23
+               OpImageWrite %18 %22 %25
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %24
-         %26 = OpLabel
-         %27 = OpFunctionCall %void %textureStore_441ba8
+%vertex_main_inner = OpFunction %v4float None %26
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %textureStore_441ba8
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %29 = OpLabel
-         %30 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %30
+         %31 = OpLabel
+         %32 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %32
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_441ba8
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureStore_441ba8
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_441ba8
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %textureStore_441ba8
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/441ba8.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/441ba8.wgsl.expected.wgsl
index 6014c40..e50241e 100644
--- a/test/tint/builtins/gen/literal/textureStore/441ba8.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/441ba8.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rgba32uint, write>;
 
 fn textureStore_441ba8() {
-  textureStore(arg_0, vec3<i32>(), vec4<u32>());
+  textureStore(arg_0, vec3<i32>(1i), vec4<u32>(1u));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/44daa7.wgsl b/test/tint/builtins/gen/literal/textureStore/44daa7.wgsl
index 1cd12d9..072c3f6 100644
--- a/test/tint/builtins/gen/literal/textureStore/44daa7.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/44daa7.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureStore(texture: texture_storage_2d_array<rgba16float, write>, coords: vec2<i32>, array_index: u32, value: vec4<f32>)
 fn textureStore_44daa7() {
-  textureStore(arg_0, vec2<i32>(), 1u, vec4<f32>());
+  textureStore(arg_0, vec2<i32>(1i), 1u, vec4<f32>(1.f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/44daa7.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/44daa7.wgsl.expected.dxc.hlsl
index 987f074..c2c0090 100644
--- a/test/tint/builtins/gen/literal/textureStore/44daa7.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/44daa7.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 void textureStore_44daa7() {
-  arg_0[int3(0, 0, int(1u))] = (0.0f).xxxx;
+  arg_0[int3((1).xx, int(1u))] = (1.0f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/44daa7.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/44daa7.wgsl.expected.fxc.hlsl
index 987f074..c2c0090 100644
--- a/test/tint/builtins/gen/literal/textureStore/44daa7.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/44daa7.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 void textureStore_44daa7() {
-  arg_0[int3(0, 0, int(1u))] = (0.0f).xxxx;
+  arg_0[int3((1).xx, int(1u))] = (1.0f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/44daa7.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/44daa7.wgsl.expected.glsl
index a45332f..b3d2ffd 100644
--- a/test/tint/builtins/gen/literal/textureStore/44daa7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/44daa7.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 layout(rgba16f) uniform highp writeonly image2DArray arg_0;
 void textureStore_44daa7() {
-  imageStore(arg_0, ivec3(0, 0, int(1u)), vec4(0.0f));
+  imageStore(arg_0, ivec3(ivec2(1), int(1u)), vec4(1.0f));
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 
 layout(rgba16f) uniform highp writeonly image2DArray arg_0;
 void textureStore_44daa7() {
-  imageStore(arg_0, ivec3(0, 0, int(1u)), vec4(0.0f));
+  imageStore(arg_0, ivec3(ivec2(1), int(1u)), vec4(1.0f));
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 layout(rgba16f) uniform highp writeonly image2DArray arg_0;
 void textureStore_44daa7() {
-  imageStore(arg_0, ivec3(0, 0, int(1u)), vec4(0.0f));
+  imageStore(arg_0, ivec3(ivec2(1), int(1u)), vec4(1.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureStore/44daa7.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/44daa7.wgsl.expected.msl
index 65604af..c13854b 100644
--- a/test/tint/builtins/gen/literal/textureStore/44daa7.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/44daa7.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureStore_44daa7(texture2d_array<float, access::write> tint_symbol_1) {
-  tint_symbol_1.write(float4(0.0f), uint2(int2(0)), 1u);
+  tint_symbol_1.write(float4(1.0f), uint2(int2(1)), 1u);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/44daa7.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/44daa7.wgsl.expected.spvasm
index 3a6ccca..1096e90 100644
--- a/test/tint/builtins/gen/literal/textureStore/44daa7.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/44daa7.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 39
+; Bound: 44
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -38,38 +38,43 @@
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
-      %int_0 = OpConstant %int 0
+      %v2int = OpTypeVector %int 2
+      %int_1 = OpConstant %int 1
+         %22 = OpConstantComposite %v2int %int_1 %int_1
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
-         %25 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
+         %30 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %31 = OpTypeFunction %v4float
 %textureStore_44daa7 = OpFunction %void None %12
          %15 = OpLabel
          %17 = OpLoad %11 %arg_0
-         %21 = OpBitcast %int %uint_1
-         %24 = OpCompositeConstruct %v3int %int_0 %int_0 %21
-               OpImageWrite %17 %24 %5
+         %23 = OpCompositeExtract %int %22 0
+         %24 = OpCompositeExtract %int %22 1
+         %25 = OpBitcast %int %uint_1
+         %28 = OpCompositeConstruct %v3int %23 %24 %25
+               OpImageWrite %17 %28 %30
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %25
-         %27 = OpLabel
-         %28 = OpFunctionCall %void %textureStore_44daa7
+%vertex_main_inner = OpFunction %v4float None %31
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureStore_44daa7
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %30 = OpLabel
-         %31 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %31
+         %36 = OpLabel
+         %37 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %37
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureStore_44daa7
+         %39 = OpLabel
+         %40 = OpFunctionCall %void %textureStore_44daa7
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureStore_44daa7
+         %42 = OpLabel
+         %43 = OpFunctionCall %void %textureStore_44daa7
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/44daa7.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/44daa7.wgsl.expected.wgsl
index 1deb175..8e5eb43 100644
--- a/test/tint/builtins/gen/literal/textureStore/44daa7.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/44daa7.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba16float, write>;
 
 fn textureStore_44daa7() {
-  textureStore(arg_0, vec2<i32>(), 1u, vec4<f32>());
+  textureStore(arg_0, vec2<i32>(1i), 1u, vec4<f32>(1.0f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/486500.wgsl b/test/tint/builtins/gen/literal/textureStore/486500.wgsl
index e05a98c..baeedc4 100644
--- a/test/tint/builtins/gen/literal/textureStore/486500.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/486500.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureStore(texture: texture_storage_3d<rgba32sint, write>, coords: vec3<u32>, value: vec4<i32>)
 fn textureStore_486500() {
-  textureStore(arg_0, vec3<u32>(), vec4<i32>());
+  textureStore(arg_0, vec3<u32>(1u), vec4<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/486500.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/486500.wgsl.expected.dxc.hlsl
index 5eb3313..6907fa7 100644
--- a/test/tint/builtins/gen/literal/textureStore/486500.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/486500.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture3D<int4> arg_0 : register(u0, space1);
 
 void textureStore_486500() {
-  arg_0[(0u).xxx] = (0).xxxx;
+  arg_0[(1u).xxx] = (1).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/486500.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/486500.wgsl.expected.fxc.hlsl
index 5eb3313..6907fa7 100644
--- a/test/tint/builtins/gen/literal/textureStore/486500.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/486500.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture3D<int4> arg_0 : register(u0, space1);
 
 void textureStore_486500() {
-  arg_0[(0u).xxx] = (0).xxxx;
+  arg_0[(1u).xxx] = (1).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/486500.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/486500.wgsl.expected.glsl
index 88ef8d3..071e1b7 100644
--- a/test/tint/builtins/gen/literal/textureStore/486500.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/486500.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 layout(rgba32i) uniform highp writeonly iimage3D arg_0;
 void textureStore_486500() {
-  imageStore(arg_0, ivec3(uvec3(0u)), ivec4(0));
+  imageStore(arg_0, ivec3(uvec3(1u)), ivec4(1));
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 
 layout(rgba32i) uniform highp writeonly iimage3D arg_0;
 void textureStore_486500() {
-  imageStore(arg_0, ivec3(uvec3(0u)), ivec4(0));
+  imageStore(arg_0, ivec3(uvec3(1u)), ivec4(1));
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 layout(rgba32i) uniform highp writeonly iimage3D arg_0;
 void textureStore_486500() {
-  imageStore(arg_0, ivec3(uvec3(0u)), ivec4(0));
+  imageStore(arg_0, ivec3(uvec3(1u)), ivec4(1));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureStore/486500.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/486500.wgsl.expected.msl
index 9007838..4718b8d 100644
--- a/test/tint/builtins/gen/literal/textureStore/486500.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/486500.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureStore_486500(texture3d<int, access::write> tint_symbol_1) {
-  tint_symbol_1.write(int4(0), uint3(uint3(0u)));
+  tint_symbol_1.write(int4(1), uint3(uint3(1u)));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/486500.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/486500.wgsl.expected.spvasm
index da34216..f89fab7 100644
--- a/test/tint/builtins/gen/literal/textureStore/486500.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/486500.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 38
+; Bound: 40
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -39,36 +39,38 @@
          %13 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
-         %21 = OpConstantNull %v3uint
+     %uint_1 = OpConstant %uint 1
+         %22 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
       %v4int = OpTypeVector %int 4
-         %23 = OpConstantNull %v4int
-         %24 = OpTypeFunction %v4float
+      %int_1 = OpConstant %int 1
+         %25 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+         %26 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_486500 = OpFunction %void None %13
          %16 = OpLabel
          %18 = OpLoad %11 %arg_0
-               OpImageWrite %18 %21 %23
+               OpImageWrite %18 %22 %25
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %24
-         %26 = OpLabel
-         %27 = OpFunctionCall %void %textureStore_486500
+%vertex_main_inner = OpFunction %v4float None %26
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %textureStore_486500
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %29 = OpLabel
-         %30 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %30
+         %31 = OpLabel
+         %32 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %32
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_486500
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureStore_486500
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_486500
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %textureStore_486500
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/486500.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/486500.wgsl.expected.wgsl
index bbb5e94..7008d69 100644
--- a/test/tint/builtins/gen/literal/textureStore/486500.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/486500.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rgba32sint, write>;
 
 fn textureStore_486500() {
-  textureStore(arg_0, vec3<u32>(), vec4<i32>());
+  textureStore(arg_0, vec3<u32>(1u), vec4<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/4c454f.wgsl b/test/tint/builtins/gen/literal/textureStore/4c454f.wgsl
index bb7e882..3fad484 100644
--- a/test/tint/builtins/gen/literal/textureStore/4c454f.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/4c454f.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureStore(texture: texture_storage_2d_array<rg32sint, write>, coords: vec2<u32>, array_index: u32, value: vec4<i32>)
 fn textureStore_4c454f() {
-  textureStore(arg_0, vec2<u32>(), 1u, vec4<i32>());
+  textureStore(arg_0, vec2<u32>(1u), 1u, vec4<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/4c454f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/4c454f.wgsl.expected.dxc.hlsl
index 4ab4c39..8b72e1b 100644
--- a/test/tint/builtins/gen/literal/textureStore/4c454f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/4c454f.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 void textureStore_4c454f() {
-  arg_0[uint3(0u, 0u, 1u)] = (0).xxxx;
+  arg_0[uint3((1u).xx, 1u)] = (1).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/4c454f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/4c454f.wgsl.expected.fxc.hlsl
index 4ab4c39..8b72e1b 100644
--- a/test/tint/builtins/gen/literal/textureStore/4c454f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/4c454f.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 void textureStore_4c454f() {
-  arg_0[uint3(0u, 0u, 1u)] = (0).xxxx;
+  arg_0[uint3((1u).xx, 1u)] = (1).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/4c454f.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/4c454f.wgsl.expected.msl
index f608d9c..bf71b07 100644
--- a/test/tint/builtins/gen/literal/textureStore/4c454f.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/4c454f.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureStore_4c454f(texture2d_array<int, access::write> tint_symbol_1) {
-  tint_symbol_1.write(int4(0), uint2(uint2(0u)), 1u);
+  tint_symbol_1.write(int4(1), uint2(uint2(1u)), 1u);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/4c454f.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/4c454f.wgsl.expected.spvasm
index 7d89bf6..addc252 100644
--- a/test/tint/builtins/gen/literal/textureStore/4c454f.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/4c454f.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 40
+; Bound: 44
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
@@ -40,38 +40,42 @@
          %13 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
-     %uint_0 = OpConstant %uint 0
+     %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %23 = OpConstantComposite %v3uint %uint_0 %uint_0 %uint_1
+         %23 = OpConstantComposite %v2uint %uint_1 %uint_1
       %v4int = OpTypeVector %int 4
-         %25 = OpConstantNull %v4int
-         %26 = OpTypeFunction %v4float
+      %int_1 = OpConstant %int 1
+         %29 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+         %30 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_4c454f = OpFunction %void None %13
          %16 = OpLabel
          %18 = OpLoad %11 %arg_0
-               OpImageWrite %18 %23 %25
+         %24 = OpCompositeExtract %uint %23 0
+         %25 = OpCompositeExtract %uint %23 1
+         %26 = OpCompositeConstruct %v3uint %24 %25 %uint_1
+               OpImageWrite %18 %26 %29
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %26
-         %28 = OpLabel
-         %29 = OpFunctionCall %void %textureStore_4c454f
+%vertex_main_inner = OpFunction %v4float None %30
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %textureStore_4c454f
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %31 = OpLabel
-         %32 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %32
+         %35 = OpLabel
+         %36 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %36
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureStore_4c454f
+         %39 = OpLabel
+         %40 = OpFunctionCall %void %textureStore_4c454f
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureStore_4c454f
+         %42 = OpLabel
+         %43 = OpFunctionCall %void %textureStore_4c454f
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/4c454f.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/4c454f.wgsl.expected.wgsl
index 8b60830..77a6758 100644
--- a/test/tint/builtins/gen/literal/textureStore/4c454f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/4c454f.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rg32sint, write>;
 
 fn textureStore_4c454f() {
-  textureStore(arg_0, vec2<u32>(), 1u, vec4<i32>());
+  textureStore(arg_0, vec2<u32>(1u), 1u, vec4<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/4d359d.wgsl b/test/tint/builtins/gen/literal/textureStore/4d359d.wgsl
index f239e4e..bde5c95 100644
--- a/test/tint/builtins/gen/literal/textureStore/4d359d.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/4d359d.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureStore(texture: texture_storage_2d_array<rg32uint, write>, coords: vec2<u32>, array_index: i32, value: vec4<u32>)
 fn textureStore_4d359d() {
-  textureStore(arg_0, vec2<u32>(), 1i, vec4<u32>());
+  textureStore(arg_0, vec2<u32>(1u), 1i, vec4<u32>(1u));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/4d359d.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/4d359d.wgsl.expected.dxc.hlsl
index 39ad70a..4c1b12c 100644
--- a/test/tint/builtins/gen/literal/textureStore/4d359d.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/4d359d.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 void textureStore_4d359d() {
-  arg_0[uint3(0u, 0u, uint(1))] = (0u).xxxx;
+  arg_0[uint3((1u).xx, uint(1))] = (1u).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/4d359d.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/4d359d.wgsl.expected.fxc.hlsl
index 39ad70a..4c1b12c 100644
--- a/test/tint/builtins/gen/literal/textureStore/4d359d.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/4d359d.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 void textureStore_4d359d() {
-  arg_0[uint3(0u, 0u, uint(1))] = (0u).xxxx;
+  arg_0[uint3((1u).xx, uint(1))] = (1u).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/4d359d.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/4d359d.wgsl.expected.msl
index db817af..b100b64 100644
--- a/test/tint/builtins/gen/literal/textureStore/4d359d.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/4d359d.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureStore_4d359d(texture2d_array<uint, access::write> tint_symbol_1) {
-  tint_symbol_1.write(uint4(0u), uint2(uint2(0u)), 1);
+  tint_symbol_1.write(uint4(1u), uint2(uint2(1u)), 1);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/4d359d.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/4d359d.wgsl.expected.spvasm
index a218220..7971519 100644
--- a/test/tint/builtins/gen/literal/textureStore/4d359d.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/4d359d.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 41
+; Bound: 45
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
@@ -39,40 +39,44 @@
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
      %v3uint = OpTypeVector %uint 3
-     %uint_0 = OpConstant %uint 0
+     %v2uint = OpTypeVector %uint 2
+     %uint_1 = OpConstant %uint 1
+         %22 = OpConstantComposite %v2uint %uint_1 %uint_1
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
      %v4uint = OpTypeVector %uint 4
-         %26 = OpConstantNull %v4uint
-         %27 = OpTypeFunction %v4float
+         %30 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+         %31 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_4d359d = OpFunction %void None %13
          %16 = OpLabel
          %18 = OpLoad %11 %arg_0
-         %21 = OpBitcast %uint %int_1
-         %24 = OpCompositeConstruct %v3uint %uint_0 %uint_0 %21
-               OpImageWrite %18 %24 %26
+         %23 = OpCompositeExtract %uint %22 0
+         %24 = OpCompositeExtract %uint %22 1
+         %25 = OpBitcast %uint %int_1
+         %28 = OpCompositeConstruct %v3uint %23 %24 %25
+               OpImageWrite %18 %28 %30
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %27
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %textureStore_4d359d
+%vertex_main_inner = OpFunction %v4float None %31
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureStore_4d359d
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %32 = OpLabel
-         %33 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %33
+         %36 = OpLabel
+         %37 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %37
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_4d359d
+         %40 = OpLabel
+         %41 = OpFunctionCall %void %textureStore_4d359d
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_4d359d
+         %43 = OpLabel
+         %44 = OpFunctionCall %void %textureStore_4d359d
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/4d359d.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/4d359d.wgsl.expected.wgsl
index aeeef6a..1dd8775 100644
--- a/test/tint/builtins/gen/literal/textureStore/4d359d.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/4d359d.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rg32uint, write>;
 
 fn textureStore_4d359d() {
-  textureStore(arg_0, vec2<u32>(), 1i, vec4<u32>());
+  textureStore(arg_0, vec2<u32>(1u), 1i, vec4<u32>(1u));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/4fc057.wgsl b/test/tint/builtins/gen/literal/textureStore/4fc057.wgsl
index d79d3d2..14faea8 100644
--- a/test/tint/builtins/gen/literal/textureStore/4fc057.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/4fc057.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureStore(texture: texture_storage_2d_array<rgba8snorm, write>, coords: vec2<i32>, array_index: i32, value: vec4<f32>)
 fn textureStore_4fc057() {
-  textureStore(arg_0, vec2<i32>(), 1i, vec4<f32>());
+  textureStore(arg_0, vec2<i32>(1i), 1i, vec4<f32>(1.f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/4fc057.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/4fc057.wgsl.expected.dxc.hlsl
index d485fcc..2ae84da 100644
--- a/test/tint/builtins/gen/literal/textureStore/4fc057.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/4fc057.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 void textureStore_4fc057() {
-  arg_0[int3(0, 0, 1)] = (0.0f).xxxx;
+  arg_0[int3((1).xx, 1)] = (1.0f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/4fc057.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/4fc057.wgsl.expected.fxc.hlsl
index d485fcc..2ae84da 100644
--- a/test/tint/builtins/gen/literal/textureStore/4fc057.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/4fc057.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 void textureStore_4fc057() {
-  arg_0[int3(0, 0, 1)] = (0.0f).xxxx;
+  arg_0[int3((1).xx, 1)] = (1.0f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/4fc057.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/4fc057.wgsl.expected.glsl
index 4853b57..7e577e5 100644
--- a/test/tint/builtins/gen/literal/textureStore/4fc057.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/4fc057.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 layout(rgba8_snorm) uniform highp writeonly image2DArray arg_0;
 void textureStore_4fc057() {
-  imageStore(arg_0, ivec3(0, 0, 1), vec4(0.0f));
+  imageStore(arg_0, ivec3(ivec2(1), 1), vec4(1.0f));
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 
 layout(rgba8_snorm) uniform highp writeonly image2DArray arg_0;
 void textureStore_4fc057() {
-  imageStore(arg_0, ivec3(0, 0, 1), vec4(0.0f));
+  imageStore(arg_0, ivec3(ivec2(1), 1), vec4(1.0f));
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 layout(rgba8_snorm) uniform highp writeonly image2DArray arg_0;
 void textureStore_4fc057() {
-  imageStore(arg_0, ivec3(0, 0, 1), vec4(0.0f));
+  imageStore(arg_0, ivec3(ivec2(1), 1), vec4(1.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureStore/4fc057.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/4fc057.wgsl.expected.msl
index f3c66c8..9c97891 100644
--- a/test/tint/builtins/gen/literal/textureStore/4fc057.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/4fc057.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureStore_4fc057(texture2d_array<float, access::write> tint_symbol_1) {
-  tint_symbol_1.write(float4(0.0f), uint2(int2(0)), 1);
+  tint_symbol_1.write(float4(1.0f), uint2(int2(1)), 1);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/4fc057.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/4fc057.wgsl.expected.spvasm
index 22d3d46..f15b6dd 100644
--- a/test/tint/builtins/gen/literal/textureStore/4fc057.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/4fc057.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 37
+; Bound: 41
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -38,36 +38,40 @@
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
-      %int_0 = OpConstant %int 0
+      %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %22 = OpConstantComposite %v3int %int_0 %int_0 %int_1
-         %23 = OpTypeFunction %v4float
+         %22 = OpConstantComposite %v2int %int_1 %int_1
     %float_1 = OpConstant %float 1
+         %27 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %28 = OpTypeFunction %v4float
 %textureStore_4fc057 = OpFunction %void None %12
          %15 = OpLabel
          %17 = OpLoad %11 %arg_0
-               OpImageWrite %17 %22 %5
+         %23 = OpCompositeExtract %int %22 0
+         %24 = OpCompositeExtract %int %22 1
+         %25 = OpCompositeConstruct %v3int %23 %24 %int_1
+               OpImageWrite %17 %25 %27
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %23
-         %25 = OpLabel
-         %26 = OpFunctionCall %void %textureStore_4fc057
+%vertex_main_inner = OpFunction %v4float None %28
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %textureStore_4fc057
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %28 = OpLabel
-         %29 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %29
+         %33 = OpLabel
+         %34 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %34
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_4fc057
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureStore_4fc057
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureStore_4fc057
+         %39 = OpLabel
+         %40 = OpFunctionCall %void %textureStore_4fc057
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/4fc057.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/4fc057.wgsl.expected.wgsl
index bc88011..34cfaeb 100644
--- a/test/tint/builtins/gen/literal/textureStore/4fc057.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/4fc057.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba8snorm, write>;
 
 fn textureStore_4fc057() {
-  textureStore(arg_0, vec2<i32>(), 1i, vec4<f32>());
+  textureStore(arg_0, vec2<i32>(1i), 1i, vec4<f32>(1.0f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/506a71.wgsl b/test/tint/builtins/gen/literal/textureStore/506a71.wgsl
index ffd82b2..5ae5d4c 100644
--- a/test/tint/builtins/gen/literal/textureStore/506a71.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/506a71.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureStore(texture: texture_storage_2d<rg32uint, write>, coords: vec2<u32>, value: vec4<u32>)
 fn textureStore_506a71() {
-  textureStore(arg_0, vec2<u32>(), vec4<u32>());
+  textureStore(arg_0, vec2<u32>(1u), vec4<u32>(1u));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/506a71.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/506a71.wgsl.expected.dxc.hlsl
index 4d77b11..cdf1190 100644
--- a/test/tint/builtins/gen/literal/textureStore/506a71.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/506a71.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2D<uint4> arg_0 : register(u0, space1);
 
 void textureStore_506a71() {
-  arg_0[(0u).xx] = (0u).xxxx;
+  arg_0[(1u).xx] = (1u).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/506a71.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/506a71.wgsl.expected.fxc.hlsl
index 4d77b11..cdf1190 100644
--- a/test/tint/builtins/gen/literal/textureStore/506a71.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/506a71.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2D<uint4> arg_0 : register(u0, space1);
 
 void textureStore_506a71() {
-  arg_0[(0u).xx] = (0u).xxxx;
+  arg_0[(1u).xx] = (1u).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/506a71.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/506a71.wgsl.expected.msl
index f67d858..73ff967 100644
--- a/test/tint/builtins/gen/literal/textureStore/506a71.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/506a71.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureStore_506a71(texture2d<uint, access::write> tint_symbol_1) {
-  tint_symbol_1.write(uint4(0u), uint2(uint2(0u)));
+  tint_symbol_1.write(uint4(1u), uint2(uint2(1u)));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/506a71.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/506a71.wgsl.expected.spvasm
index 9315213..64a7f82 100644
--- a/test/tint/builtins/gen/literal/textureStore/506a71.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/506a71.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 37
+; Bound: 38
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
@@ -39,36 +39,37 @@
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
      %v2uint = OpTypeVector %uint 2
-         %20 = OpConstantNull %v2uint
+     %uint_1 = OpConstant %uint 1
+         %21 = OpConstantComposite %v2uint %uint_1 %uint_1
      %v4uint = OpTypeVector %uint 4
-         %22 = OpConstantNull %v4uint
-         %23 = OpTypeFunction %v4float
+         %23 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+         %24 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_506a71 = OpFunction %void None %13
          %16 = OpLabel
          %18 = OpLoad %11 %arg_0
-               OpImageWrite %18 %20 %22
+               OpImageWrite %18 %21 %23
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %23
-         %25 = OpLabel
-         %26 = OpFunctionCall %void %textureStore_506a71
+%vertex_main_inner = OpFunction %v4float None %24
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %textureStore_506a71
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %28 = OpLabel
-         %29 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %29
+         %29 = OpLabel
+         %30 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %30
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_506a71
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureStore_506a71
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureStore_506a71
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureStore_506a71
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/506a71.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/506a71.wgsl.expected.wgsl
index a37a117..59d771d 100644
--- a/test/tint/builtins/gen/literal/textureStore/506a71.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/506a71.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rg32uint, write>;
 
 fn textureStore_506a71() {
-  textureStore(arg_0, vec2<u32>(), vec4<u32>());
+  textureStore(arg_0, vec2<u32>(1u), vec4<u32>(1u));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/52f503.wgsl b/test/tint/builtins/gen/literal/textureStore/52f503.wgsl
index e8a74d2..cdcebf9 100644
--- a/test/tint/builtins/gen/literal/textureStore/52f503.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/52f503.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureStore(texture: texture_storage_2d<rgba32sint, write>, coords: vec2<u32>, value: vec4<i32>)
 fn textureStore_52f503() {
-  textureStore(arg_0, vec2<u32>(), vec4<i32>());
+  textureStore(arg_0, vec2<u32>(1u), vec4<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/52f503.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/52f503.wgsl.expected.dxc.hlsl
index dc3e1b7..d3308a5 100644
--- a/test/tint/builtins/gen/literal/textureStore/52f503.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/52f503.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2D<int4> arg_0 : register(u0, space1);
 
 void textureStore_52f503() {
-  arg_0[(0u).xx] = (0).xxxx;
+  arg_0[(1u).xx] = (1).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/52f503.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/52f503.wgsl.expected.fxc.hlsl
index dc3e1b7..d3308a5 100644
--- a/test/tint/builtins/gen/literal/textureStore/52f503.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/52f503.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2D<int4> arg_0 : register(u0, space1);
 
 void textureStore_52f503() {
-  arg_0[(0u).xx] = (0).xxxx;
+  arg_0[(1u).xx] = (1).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/52f503.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/52f503.wgsl.expected.glsl
index 3b9248f..53ede68 100644
--- a/test/tint/builtins/gen/literal/textureStore/52f503.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/52f503.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 layout(rgba32i) uniform highp writeonly iimage2D arg_0;
 void textureStore_52f503() {
-  imageStore(arg_0, ivec2(uvec2(0u)), ivec4(0));
+  imageStore(arg_0, ivec2(uvec2(1u)), ivec4(1));
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 
 layout(rgba32i) uniform highp writeonly iimage2D arg_0;
 void textureStore_52f503() {
-  imageStore(arg_0, ivec2(uvec2(0u)), ivec4(0));
+  imageStore(arg_0, ivec2(uvec2(1u)), ivec4(1));
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 layout(rgba32i) uniform highp writeonly iimage2D arg_0;
 void textureStore_52f503() {
-  imageStore(arg_0, ivec2(uvec2(0u)), ivec4(0));
+  imageStore(arg_0, ivec2(uvec2(1u)), ivec4(1));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureStore/52f503.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/52f503.wgsl.expected.msl
index 0930d28..73f8fee 100644
--- a/test/tint/builtins/gen/literal/textureStore/52f503.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/52f503.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureStore_52f503(texture2d<int, access::write> tint_symbol_1) {
-  tint_symbol_1.write(int4(0), uint2(uint2(0u)));
+  tint_symbol_1.write(int4(1), uint2(uint2(1u)));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/52f503.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/52f503.wgsl.expected.spvasm
index cd373e8..86ebd4c 100644
--- a/test/tint/builtins/gen/literal/textureStore/52f503.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/52f503.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 38
+; Bound: 40
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -39,36 +39,38 @@
          %13 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
-         %21 = OpConstantNull %v2uint
+     %uint_1 = OpConstant %uint 1
+         %22 = OpConstantComposite %v2uint %uint_1 %uint_1
       %v4int = OpTypeVector %int 4
-         %23 = OpConstantNull %v4int
-         %24 = OpTypeFunction %v4float
+      %int_1 = OpConstant %int 1
+         %25 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+         %26 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_52f503 = OpFunction %void None %13
          %16 = OpLabel
          %18 = OpLoad %11 %arg_0
-               OpImageWrite %18 %21 %23
+               OpImageWrite %18 %22 %25
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %24
-         %26 = OpLabel
-         %27 = OpFunctionCall %void %textureStore_52f503
+%vertex_main_inner = OpFunction %v4float None %26
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %textureStore_52f503
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %29 = OpLabel
-         %30 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %30
+         %31 = OpLabel
+         %32 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %32
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_52f503
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureStore_52f503
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_52f503
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %textureStore_52f503
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/52f503.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/52f503.wgsl.expected.wgsl
index 61ad0ec..d273fee 100644
--- a/test/tint/builtins/gen/literal/textureStore/52f503.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/52f503.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba32sint, write>;
 
 fn textureStore_52f503() {
-  textureStore(arg_0, vec2<u32>(), vec4<i32>());
+  textureStore(arg_0, vec2<u32>(1u), vec4<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/5841f8.wgsl b/test/tint/builtins/gen/literal/textureStore/5841f8.wgsl
index 1a7d7ba..4b376a5 100644
--- a/test/tint/builtins/gen/literal/textureStore/5841f8.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/5841f8.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureStore(texture: texture_storage_2d_array<rgba32float, write>, coords: vec2<u32>, array_index: u32, value: vec4<f32>)
 fn textureStore_5841f8() {
-  textureStore(arg_0, vec2<u32>(), 1u, vec4<f32>());
+  textureStore(arg_0, vec2<u32>(1u), 1u, vec4<f32>(1.f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/5841f8.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/5841f8.wgsl.expected.dxc.hlsl
index f8784c5..386fd2f 100644
--- a/test/tint/builtins/gen/literal/textureStore/5841f8.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/5841f8.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 void textureStore_5841f8() {
-  arg_0[uint3(0u, 0u, 1u)] = (0.0f).xxxx;
+  arg_0[uint3((1u).xx, 1u)] = (1.0f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/5841f8.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/5841f8.wgsl.expected.fxc.hlsl
index f8784c5..386fd2f 100644
--- a/test/tint/builtins/gen/literal/textureStore/5841f8.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/5841f8.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 void textureStore_5841f8() {
-  arg_0[uint3(0u, 0u, 1u)] = (0.0f).xxxx;
+  arg_0[uint3((1u).xx, 1u)] = (1.0f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/5841f8.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/5841f8.wgsl.expected.glsl
index a1b2d3c..3bbe9a3 100644
--- a/test/tint/builtins/gen/literal/textureStore/5841f8.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/5841f8.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 layout(rgba32f) uniform highp writeonly image2DArray arg_0;
 void textureStore_5841f8() {
-  imageStore(arg_0, ivec3(uvec3(0u, 0u, 1u)), vec4(0.0f));
+  imageStore(arg_0, ivec3(uvec3(uvec2(1u), 1u)), vec4(1.0f));
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 
 layout(rgba32f) uniform highp writeonly image2DArray arg_0;
 void textureStore_5841f8() {
-  imageStore(arg_0, ivec3(uvec3(0u, 0u, 1u)), vec4(0.0f));
+  imageStore(arg_0, ivec3(uvec3(uvec2(1u), 1u)), vec4(1.0f));
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 layout(rgba32f) uniform highp writeonly image2DArray arg_0;
 void textureStore_5841f8() {
-  imageStore(arg_0, ivec3(uvec3(0u, 0u, 1u)), vec4(0.0f));
+  imageStore(arg_0, ivec3(uvec3(uvec2(1u), 1u)), vec4(1.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureStore/5841f8.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/5841f8.wgsl.expected.msl
index 691fffc..5a95763 100644
--- a/test/tint/builtins/gen/literal/textureStore/5841f8.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/5841f8.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureStore_5841f8(texture2d_array<float, access::write> tint_symbol_1) {
-  tint_symbol_1.write(float4(0.0f), uint2(uint2(0u)), 1u);
+  tint_symbol_1.write(float4(1.0f), uint2(uint2(1u)), 1u);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/5841f8.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/5841f8.wgsl.expected.spvasm
index 27b2fce..2e43444 100644
--- a/test/tint/builtins/gen/literal/textureStore/5841f8.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/5841f8.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 37
+; Bound: 41
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -38,36 +38,40 @@
          %12 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
-     %uint_0 = OpConstant %uint 0
+     %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %22 = OpConstantComposite %v3uint %uint_0 %uint_0 %uint_1
-         %23 = OpTypeFunction %v4float
+         %22 = OpConstantComposite %v2uint %uint_1 %uint_1
     %float_1 = OpConstant %float 1
+         %27 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %28 = OpTypeFunction %v4float
 %textureStore_5841f8 = OpFunction %void None %12
          %15 = OpLabel
          %17 = OpLoad %11 %arg_0
-               OpImageWrite %17 %22 %5
+         %23 = OpCompositeExtract %uint %22 0
+         %24 = OpCompositeExtract %uint %22 1
+         %25 = OpCompositeConstruct %v3uint %23 %24 %uint_1
+               OpImageWrite %17 %25 %27
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %23
-         %25 = OpLabel
-         %26 = OpFunctionCall %void %textureStore_5841f8
+%vertex_main_inner = OpFunction %v4float None %28
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %textureStore_5841f8
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %28 = OpLabel
-         %29 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %29
+         %33 = OpLabel
+         %34 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %34
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_5841f8
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureStore_5841f8
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureStore_5841f8
+         %39 = OpLabel
+         %40 = OpFunctionCall %void %textureStore_5841f8
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/5841f8.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/5841f8.wgsl.expected.wgsl
index 8881fcc..f3aa2f5 100644
--- a/test/tint/builtins/gen/literal/textureStore/5841f8.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/5841f8.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba32float, write>;
 
 fn textureStore_5841f8() {
-  textureStore(arg_0, vec2<u32>(), 1u, vec4<f32>());
+  textureStore(arg_0, vec2<u32>(1u), 1u, vec4<f32>(1.0f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/59a0ab.wgsl b/test/tint/builtins/gen/literal/textureStore/59a0ab.wgsl
index 482beb0..f3eef94 100644
--- a/test/tint/builtins/gen/literal/textureStore/59a0ab.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/59a0ab.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureStore(texture: texture_storage_2d_array<rgba8snorm, write>, coords: vec2<u32>, array_index: i32, value: vec4<f32>)
 fn textureStore_59a0ab() {
-  textureStore(arg_0, vec2<u32>(), 1i, vec4<f32>());
+  textureStore(arg_0, vec2<u32>(1u), 1i, vec4<f32>(1.f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/59a0ab.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/59a0ab.wgsl.expected.dxc.hlsl
index 1a0d898..994a8a0 100644
--- a/test/tint/builtins/gen/literal/textureStore/59a0ab.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/59a0ab.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 void textureStore_59a0ab() {
-  arg_0[uint3(0u, 0u, uint(1))] = (0.0f).xxxx;
+  arg_0[uint3((1u).xx, uint(1))] = (1.0f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/59a0ab.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/59a0ab.wgsl.expected.fxc.hlsl
index 1a0d898..994a8a0 100644
--- a/test/tint/builtins/gen/literal/textureStore/59a0ab.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/59a0ab.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 void textureStore_59a0ab() {
-  arg_0[uint3(0u, 0u, uint(1))] = (0.0f).xxxx;
+  arg_0[uint3((1u).xx, uint(1))] = (1.0f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/59a0ab.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/59a0ab.wgsl.expected.glsl
index d89b2c7..a6864fd 100644
--- a/test/tint/builtins/gen/literal/textureStore/59a0ab.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/59a0ab.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 layout(rgba8_snorm) uniform highp writeonly image2DArray arg_0;
 void textureStore_59a0ab() {
-  imageStore(arg_0, ivec3(uvec3(0u, 0u, uint(1))), vec4(0.0f));
+  imageStore(arg_0, ivec3(uvec3(uvec2(1u), uint(1))), vec4(1.0f));
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 
 layout(rgba8_snorm) uniform highp writeonly image2DArray arg_0;
 void textureStore_59a0ab() {
-  imageStore(arg_0, ivec3(uvec3(0u, 0u, uint(1))), vec4(0.0f));
+  imageStore(arg_0, ivec3(uvec3(uvec2(1u), uint(1))), vec4(1.0f));
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 layout(rgba8_snorm) uniform highp writeonly image2DArray arg_0;
 void textureStore_59a0ab() {
-  imageStore(arg_0, ivec3(uvec3(0u, 0u, uint(1))), vec4(0.0f));
+  imageStore(arg_0, ivec3(uvec3(uvec2(1u), uint(1))), vec4(1.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureStore/59a0ab.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/59a0ab.wgsl.expected.msl
index b77b7dd..57fd487 100644
--- a/test/tint/builtins/gen/literal/textureStore/59a0ab.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/59a0ab.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureStore_59a0ab(texture2d_array<float, access::write> tint_symbol_1) {
-  tint_symbol_1.write(float4(0.0f), uint2(uint2(0u)), 1);
+  tint_symbol_1.write(float4(1.0f), uint2(uint2(1u)), 1);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/59a0ab.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/59a0ab.wgsl.expected.spvasm
index d2ecfac..37818bf 100644
--- a/test/tint/builtins/gen/literal/textureStore/59a0ab.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/59a0ab.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 39
+; Bound: 44
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -38,38 +38,43 @@
          %12 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
-     %uint_0 = OpConstant %uint 0
+     %v2uint = OpTypeVector %uint 2
+     %uint_1 = OpConstant %uint 1
+         %22 = OpConstantComposite %v2uint %uint_1 %uint_1
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
-         %25 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
+         %30 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %31 = OpTypeFunction %v4float
 %textureStore_59a0ab = OpFunction %void None %12
          %15 = OpLabel
          %17 = OpLoad %11 %arg_0
-         %21 = OpBitcast %uint %int_1
-         %24 = OpCompositeConstruct %v3uint %uint_0 %uint_0 %21
-               OpImageWrite %17 %24 %5
+         %23 = OpCompositeExtract %uint %22 0
+         %24 = OpCompositeExtract %uint %22 1
+         %25 = OpBitcast %uint %int_1
+         %28 = OpCompositeConstruct %v3uint %23 %24 %25
+               OpImageWrite %17 %28 %30
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %25
-         %27 = OpLabel
-         %28 = OpFunctionCall %void %textureStore_59a0ab
+%vertex_main_inner = OpFunction %v4float None %31
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureStore_59a0ab
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %30 = OpLabel
-         %31 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %31
+         %36 = OpLabel
+         %37 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %37
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureStore_59a0ab
+         %39 = OpLabel
+         %40 = OpFunctionCall %void %textureStore_59a0ab
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureStore_59a0ab
+         %42 = OpLabel
+         %43 = OpFunctionCall %void %textureStore_59a0ab
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/59a0ab.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/59a0ab.wgsl.expected.wgsl
index 2b2d44c..c2b7e2f 100644
--- a/test/tint/builtins/gen/literal/textureStore/59a0ab.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/59a0ab.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba8snorm, write>;
 
 fn textureStore_59a0ab() {
-  textureStore(arg_0, vec2<u32>(), 1i, vec4<f32>());
+  textureStore(arg_0, vec2<u32>(1u), 1i, vec4<f32>(1.0f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/5a2f8f.wgsl b/test/tint/builtins/gen/literal/textureStore/5a2f8f.wgsl
index cc7d1ac..f45005d 100644
--- a/test/tint/builtins/gen/literal/textureStore/5a2f8f.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/5a2f8f.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureStore(texture: texture_storage_1d<rgba16sint, write>, coords: i32, value: vec4<i32>)
 fn textureStore_5a2f8f() {
-  textureStore(arg_0, 1i, vec4<i32>());
+  textureStore(arg_0, 1i, vec4<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/5a2f8f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/5a2f8f.wgsl.expected.dxc.hlsl
index 7d0eb61..26c2342 100644
--- a/test/tint/builtins/gen/literal/textureStore/5a2f8f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/5a2f8f.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture1D<int4> arg_0 : register(u0, space1);
 
 void textureStore_5a2f8f() {
-  arg_0[1] = (0).xxxx;
+  arg_0[1] = (1).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/5a2f8f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/5a2f8f.wgsl.expected.fxc.hlsl
index 7d0eb61..26c2342 100644
--- a/test/tint/builtins/gen/literal/textureStore/5a2f8f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/5a2f8f.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture1D<int4> arg_0 : register(u0, space1);
 
 void textureStore_5a2f8f() {
-  arg_0[1] = (0).xxxx;
+  arg_0[1] = (1).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/5a2f8f.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/5a2f8f.wgsl.expected.msl
index dde59b8..52905ad 100644
--- a/test/tint/builtins/gen/literal/textureStore/5a2f8f.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/5a2f8f.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureStore_5a2f8f(texture1d<int, access::write> tint_symbol_1) {
-  tint_symbol_1.write(int4(0), uint(1));
+  tint_symbol_1.write(int4(1), uint(1));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/5a2f8f.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/5a2f8f.wgsl.expected.spvasm
index 83dac17..4775bee 100644
--- a/test/tint/builtins/gen/literal/textureStore/5a2f8f.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/5a2f8f.wgsl.expected.spvasm
@@ -40,7 +40,7 @@
          %13 = OpTypeFunction %void
       %int_1 = OpConstant %int 1
       %v4int = OpTypeVector %int 4
-         %21 = OpConstantNull %v4int
+         %21 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
          %22 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_5a2f8f = OpFunction %void None %13
diff --git a/test/tint/builtins/gen/literal/textureStore/5a2f8f.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/5a2f8f.wgsl.expected.wgsl
index 55a791e..c7b1590 100644
--- a/test/tint/builtins/gen/literal/textureStore/5a2f8f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/5a2f8f.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rgba16sint, write>;
 
 fn textureStore_5a2f8f() {
-  textureStore(arg_0, 1i, vec4<i32>());
+  textureStore(arg_0, 1i, vec4<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/5bc4f3.wgsl b/test/tint/builtins/gen/literal/textureStore/5bc4f3.wgsl
index 9b03422..e6d8690 100644
--- a/test/tint/builtins/gen/literal/textureStore/5bc4f3.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/5bc4f3.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureStore(texture: texture_storage_2d_array<rg32uint, write>, coords: vec2<u32>, array_index: u32, value: vec4<u32>)
 fn textureStore_5bc4f3() {
-  textureStore(arg_0, vec2<u32>(), 1u, vec4<u32>());
+  textureStore(arg_0, vec2<u32>(1u), 1u, vec4<u32>(1u));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/5bc4f3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/5bc4f3.wgsl.expected.dxc.hlsl
index 729e6f7..9e4fe3f 100644
--- a/test/tint/builtins/gen/literal/textureStore/5bc4f3.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/5bc4f3.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 void textureStore_5bc4f3() {
-  arg_0[uint3(0u, 0u, 1u)] = (0u).xxxx;
+  arg_0[uint3((1u).xx, 1u)] = (1u).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/5bc4f3.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/5bc4f3.wgsl.expected.fxc.hlsl
index 729e6f7..9e4fe3f 100644
--- a/test/tint/builtins/gen/literal/textureStore/5bc4f3.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/5bc4f3.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 void textureStore_5bc4f3() {
-  arg_0[uint3(0u, 0u, 1u)] = (0u).xxxx;
+  arg_0[uint3((1u).xx, 1u)] = (1u).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/5bc4f3.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/5bc4f3.wgsl.expected.msl
index 9cb2ab3..1f9ae17 100644
--- a/test/tint/builtins/gen/literal/textureStore/5bc4f3.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/5bc4f3.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureStore_5bc4f3(texture2d_array<uint, access::write> tint_symbol_1) {
-  tint_symbol_1.write(uint4(0u), uint2(uint2(0u)), 1u);
+  tint_symbol_1.write(uint4(1u), uint2(uint2(1u)), 1u);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/5bc4f3.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/5bc4f3.wgsl.expected.spvasm
index 297fd44..5353efe 100644
--- a/test/tint/builtins/gen/literal/textureStore/5bc4f3.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/5bc4f3.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 39
+; Bound: 42
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
@@ -39,38 +39,41 @@
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
      %v3uint = OpTypeVector %uint 3
-     %uint_0 = OpConstant %uint 0
+     %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %22 = OpConstantComposite %v3uint %uint_0 %uint_0 %uint_1
+         %22 = OpConstantComposite %v2uint %uint_1 %uint_1
      %v4uint = OpTypeVector %uint 4
-         %24 = OpConstantNull %v4uint
-         %25 = OpTypeFunction %v4float
+         %27 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+         %28 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_5bc4f3 = OpFunction %void None %13
          %16 = OpLabel
          %18 = OpLoad %11 %arg_0
-               OpImageWrite %18 %22 %24
+         %23 = OpCompositeExtract %uint %22 0
+         %24 = OpCompositeExtract %uint %22 1
+         %25 = OpCompositeConstruct %v3uint %23 %24 %uint_1
+               OpImageWrite %18 %25 %27
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %25
-         %27 = OpLabel
-         %28 = OpFunctionCall %void %textureStore_5bc4f3
+%vertex_main_inner = OpFunction %v4float None %28
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %textureStore_5bc4f3
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %30 = OpLabel
-         %31 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %31
+         %33 = OpLabel
+         %34 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %34
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureStore_5bc4f3
+         %37 = OpLabel
+         %38 = OpFunctionCall %void %textureStore_5bc4f3
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureStore_5bc4f3
+         %40 = OpLabel
+         %41 = OpFunctionCall %void %textureStore_5bc4f3
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/5bc4f3.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/5bc4f3.wgsl.expected.wgsl
index 840e0f3..e3486d7 100644
--- a/test/tint/builtins/gen/literal/textureStore/5bc4f3.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/5bc4f3.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rg32uint, write>;
 
 fn textureStore_5bc4f3() {
-  textureStore(arg_0, vec2<u32>(), 1u, vec4<u32>());
+  textureStore(arg_0, vec2<u32>(1u), 1u, vec4<u32>(1u));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/5ddc61.wgsl b/test/tint/builtins/gen/literal/textureStore/5ddc61.wgsl
index 9b84f6d..5dd56c6 100644
--- a/test/tint/builtins/gen/literal/textureStore/5ddc61.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/5ddc61.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureStore(texture: texture_storage_2d_array<rgba8sint, write>, coords: vec2<i32>, array_index: u32, value: vec4<i32>)
 fn textureStore_5ddc61() {
-  textureStore(arg_0, vec2<i32>(), 1u, vec4<i32>());
+  textureStore(arg_0, vec2<i32>(1i), 1u, vec4<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/5ddc61.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/5ddc61.wgsl.expected.dxc.hlsl
index e916cf9..1638ba0 100644
--- a/test/tint/builtins/gen/literal/textureStore/5ddc61.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/5ddc61.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 void textureStore_5ddc61() {
-  arg_0[int3(0, 0, int(1u))] = (0).xxxx;
+  arg_0[int3((1).xx, int(1u))] = (1).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/5ddc61.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/5ddc61.wgsl.expected.fxc.hlsl
index e916cf9..1638ba0 100644
--- a/test/tint/builtins/gen/literal/textureStore/5ddc61.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/5ddc61.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 void textureStore_5ddc61() {
-  arg_0[int3(0, 0, int(1u))] = (0).xxxx;
+  arg_0[int3((1).xx, int(1u))] = (1).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/5ddc61.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/5ddc61.wgsl.expected.glsl
index a94cc1a..46377e4 100644
--- a/test/tint/builtins/gen/literal/textureStore/5ddc61.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/5ddc61.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 layout(rgba8i) uniform highp writeonly iimage2DArray arg_0;
 void textureStore_5ddc61() {
-  imageStore(arg_0, ivec3(0, 0, int(1u)), ivec4(0));
+  imageStore(arg_0, ivec3(ivec2(1), int(1u)), ivec4(1));
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 
 layout(rgba8i) uniform highp writeonly iimage2DArray arg_0;
 void textureStore_5ddc61() {
-  imageStore(arg_0, ivec3(0, 0, int(1u)), ivec4(0));
+  imageStore(arg_0, ivec3(ivec2(1), int(1u)), ivec4(1));
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 layout(rgba8i) uniform highp writeonly iimage2DArray arg_0;
 void textureStore_5ddc61() {
-  imageStore(arg_0, ivec3(0, 0, int(1u)), ivec4(0));
+  imageStore(arg_0, ivec3(ivec2(1), int(1u)), ivec4(1));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureStore/5ddc61.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/5ddc61.wgsl.expected.msl
index e8b62ee..de56731 100644
--- a/test/tint/builtins/gen/literal/textureStore/5ddc61.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/5ddc61.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureStore_5ddc61(texture2d_array<int, access::write> tint_symbol_1) {
-  tint_symbol_1.write(int4(0), uint2(int2(0)), 1u);
+  tint_symbol_1.write(int4(1), uint2(int2(1)), 1u);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/5ddc61.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/5ddc61.wgsl.expected.spvasm
index 68f61b9..4b17a36 100644
--- a/test/tint/builtins/gen/literal/textureStore/5ddc61.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/5ddc61.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 41
+; Bound: 45
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -38,40 +38,44 @@
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
       %v3int = OpTypeVector %int 3
-      %int_0 = OpConstant %int 0
+      %v2int = OpTypeVector %int 2
+      %int_1 = OpConstant %int 1
+         %22 = OpConstantComposite %v2int %int_1 %int_1
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
       %v4int = OpTypeVector %int 4
-         %26 = OpConstantNull %v4int
-         %27 = OpTypeFunction %v4float
+         %30 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+         %31 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_5ddc61 = OpFunction %void None %13
          %16 = OpLabel
          %18 = OpLoad %11 %arg_0
-         %21 = OpBitcast %int %uint_1
-         %24 = OpCompositeConstruct %v3int %int_0 %int_0 %21
-               OpImageWrite %18 %24 %26
+         %23 = OpCompositeExtract %int %22 0
+         %24 = OpCompositeExtract %int %22 1
+         %25 = OpBitcast %int %uint_1
+         %28 = OpCompositeConstruct %v3int %23 %24 %25
+               OpImageWrite %18 %28 %30
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %27
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %textureStore_5ddc61
+%vertex_main_inner = OpFunction %v4float None %31
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureStore_5ddc61
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %32 = OpLabel
-         %33 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %33
+         %36 = OpLabel
+         %37 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %37
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_5ddc61
+         %40 = OpLabel
+         %41 = OpFunctionCall %void %textureStore_5ddc61
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_5ddc61
+         %43 = OpLabel
+         %44 = OpFunctionCall %void %textureStore_5ddc61
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/5ddc61.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/5ddc61.wgsl.expected.wgsl
index de8f621..33304b9 100644
--- a/test/tint/builtins/gen/literal/textureStore/5ddc61.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/5ddc61.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba8sint, write>;
 
 fn textureStore_5ddc61() {
-  textureStore(arg_0, vec2<i32>(), 1u, vec4<i32>());
+  textureStore(arg_0, vec2<i32>(1i), 1u, vec4<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/5f9a49.wgsl b/test/tint/builtins/gen/literal/textureStore/5f9a49.wgsl
index cb02f5f..3353cbf 100644
--- a/test/tint/builtins/gen/literal/textureStore/5f9a49.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/5f9a49.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureStore(texture: texture_storage_2d_array<rgba8snorm, write>, coords: vec2<u32>, array_index: u32, value: vec4<f32>)
 fn textureStore_5f9a49() {
-  textureStore(arg_0, vec2<u32>(), 1u, vec4<f32>());
+  textureStore(arg_0, vec2<u32>(1u), 1u, vec4<f32>(1.f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/5f9a49.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/5f9a49.wgsl.expected.dxc.hlsl
index da08207..fbcfe31 100644
--- a/test/tint/builtins/gen/literal/textureStore/5f9a49.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/5f9a49.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 void textureStore_5f9a49() {
-  arg_0[uint3(0u, 0u, 1u)] = (0.0f).xxxx;
+  arg_0[uint3((1u).xx, 1u)] = (1.0f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/5f9a49.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/5f9a49.wgsl.expected.fxc.hlsl
index da08207..fbcfe31 100644
--- a/test/tint/builtins/gen/literal/textureStore/5f9a49.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/5f9a49.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 void textureStore_5f9a49() {
-  arg_0[uint3(0u, 0u, 1u)] = (0.0f).xxxx;
+  arg_0[uint3((1u).xx, 1u)] = (1.0f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/5f9a49.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/5f9a49.wgsl.expected.glsl
index 24392ad..91a0642 100644
--- a/test/tint/builtins/gen/literal/textureStore/5f9a49.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/5f9a49.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 layout(rgba8_snorm) uniform highp writeonly image2DArray arg_0;
 void textureStore_5f9a49() {
-  imageStore(arg_0, ivec3(uvec3(0u, 0u, 1u)), vec4(0.0f));
+  imageStore(arg_0, ivec3(uvec3(uvec2(1u), 1u)), vec4(1.0f));
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 
 layout(rgba8_snorm) uniform highp writeonly image2DArray arg_0;
 void textureStore_5f9a49() {
-  imageStore(arg_0, ivec3(uvec3(0u, 0u, 1u)), vec4(0.0f));
+  imageStore(arg_0, ivec3(uvec3(uvec2(1u), 1u)), vec4(1.0f));
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 layout(rgba8_snorm) uniform highp writeonly image2DArray arg_0;
 void textureStore_5f9a49() {
-  imageStore(arg_0, ivec3(uvec3(0u, 0u, 1u)), vec4(0.0f));
+  imageStore(arg_0, ivec3(uvec3(uvec2(1u), 1u)), vec4(1.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureStore/5f9a49.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/5f9a49.wgsl.expected.msl
index f6b2d1b..6e12956 100644
--- a/test/tint/builtins/gen/literal/textureStore/5f9a49.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/5f9a49.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureStore_5f9a49(texture2d_array<float, access::write> tint_symbol_1) {
-  tint_symbol_1.write(float4(0.0f), uint2(uint2(0u)), 1u);
+  tint_symbol_1.write(float4(1.0f), uint2(uint2(1u)), 1u);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/5f9a49.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/5f9a49.wgsl.expected.spvasm
index 7a64ab7..0fbfca7 100644
--- a/test/tint/builtins/gen/literal/textureStore/5f9a49.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/5f9a49.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 37
+; Bound: 41
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -38,36 +38,40 @@
          %12 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
-     %uint_0 = OpConstant %uint 0
+     %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %22 = OpConstantComposite %v3uint %uint_0 %uint_0 %uint_1
-         %23 = OpTypeFunction %v4float
+         %22 = OpConstantComposite %v2uint %uint_1 %uint_1
     %float_1 = OpConstant %float 1
+         %27 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %28 = OpTypeFunction %v4float
 %textureStore_5f9a49 = OpFunction %void None %12
          %15 = OpLabel
          %17 = OpLoad %11 %arg_0
-               OpImageWrite %17 %22 %5
+         %23 = OpCompositeExtract %uint %22 0
+         %24 = OpCompositeExtract %uint %22 1
+         %25 = OpCompositeConstruct %v3uint %23 %24 %uint_1
+               OpImageWrite %17 %25 %27
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %23
-         %25 = OpLabel
-         %26 = OpFunctionCall %void %textureStore_5f9a49
+%vertex_main_inner = OpFunction %v4float None %28
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %textureStore_5f9a49
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %28 = OpLabel
-         %29 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %29
+         %33 = OpLabel
+         %34 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %34
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_5f9a49
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureStore_5f9a49
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureStore_5f9a49
+         %39 = OpLabel
+         %40 = OpFunctionCall %void %textureStore_5f9a49
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/5f9a49.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/5f9a49.wgsl.expected.wgsl
index 97187c8..fb329f4 100644
--- a/test/tint/builtins/gen/literal/textureStore/5f9a49.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/5f9a49.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba8snorm, write>;
 
 fn textureStore_5f9a49() {
-  textureStore(arg_0, vec2<u32>(), 1u, vec4<f32>());
+  textureStore(arg_0, vec2<u32>(1u), 1u, vec4<f32>(1.0f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/602b5a.wgsl b/test/tint/builtins/gen/literal/textureStore/602b5a.wgsl
index ba90890..3a27370 100644
--- a/test/tint/builtins/gen/literal/textureStore/602b5a.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/602b5a.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureStore(texture: texture_storage_1d<rg32float, write>, coords: u32, value: vec4<f32>)
 fn textureStore_602b5a() {
-  textureStore(arg_0, 1u, vec4<f32>());
+  textureStore(arg_0, 1u, vec4<f32>(1.f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/602b5a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/602b5a.wgsl.expected.dxc.hlsl
index 4f0db55..e18bdc5 100644
--- a/test/tint/builtins/gen/literal/textureStore/602b5a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/602b5a.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture1D<float4> arg_0 : register(u0, space1);
 
 void textureStore_602b5a() {
-  arg_0[1u] = (0.0f).xxxx;
+  arg_0[1u] = (1.0f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/602b5a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/602b5a.wgsl.expected.fxc.hlsl
index 4f0db55..e18bdc5 100644
--- a/test/tint/builtins/gen/literal/textureStore/602b5a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/602b5a.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture1D<float4> arg_0 : register(u0, space1);
 
 void textureStore_602b5a() {
-  arg_0[1u] = (0.0f).xxxx;
+  arg_0[1u] = (1.0f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/602b5a.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/602b5a.wgsl.expected.msl
index c41e010..f391359 100644
--- a/test/tint/builtins/gen/literal/textureStore/602b5a.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/602b5a.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureStore_602b5a(texture1d<float, access::write> tint_symbol_1) {
-  tint_symbol_1.write(float4(0.0f), uint(1u));
+  tint_symbol_1.write(float4(1.0f), uint(1u));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/602b5a.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/602b5a.wgsl.expected.spvasm
index 93c189d..84cabb6 100644
--- a/test/tint/builtins/gen/literal/textureStore/602b5a.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/602b5a.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 34
+; Bound: 35
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
@@ -40,33 +40,34 @@
          %12 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
-         %20 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
+         %21 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %22 = OpTypeFunction %v4float
 %textureStore_602b5a = OpFunction %void None %12
          %15 = OpLabel
          %17 = OpLoad %11 %arg_0
-               OpImageWrite %17 %uint_1 %5
+               OpImageWrite %17 %uint_1 %21
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %20
-         %22 = OpLabel
-         %23 = OpFunctionCall %void %textureStore_602b5a
+%vertex_main_inner = OpFunction %v4float None %22
+         %24 = OpLabel
+         %25 = OpFunctionCall %void %textureStore_602b5a
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %25 = OpLabel
-         %26 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %26
+         %27 = OpLabel
+         %28 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %28
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %textureStore_602b5a
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %textureStore_602b5a
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_602b5a
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureStore_602b5a
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/602b5a.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/602b5a.wgsl.expected.wgsl
index a7c2f31..28692b5 100644
--- a/test/tint/builtins/gen/literal/textureStore/602b5a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/602b5a.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rg32float, write>;
 
 fn textureStore_602b5a() {
-  textureStore(arg_0, 1u, vec4<f32>());
+  textureStore(arg_0, 1u, vec4<f32>(1.0f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/60975f.wgsl b/test/tint/builtins/gen/literal/textureStore/60975f.wgsl
index bbc6c40..57bbc65 100644
--- a/test/tint/builtins/gen/literal/textureStore/60975f.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/60975f.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureStore(texture: texture_storage_2d_array<rgba8unorm, write>, coords: vec2<i32>, array_index: i32, value: vec4<f32>)
 fn textureStore_60975f() {
-  textureStore(arg_0, vec2<i32>(), 1i, vec4<f32>());
+  textureStore(arg_0, vec2<i32>(1i), 1i, vec4<f32>(1.f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/60975f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/60975f.wgsl.expected.dxc.hlsl
index ab19974..1bd75dd 100644
--- a/test/tint/builtins/gen/literal/textureStore/60975f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/60975f.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 void textureStore_60975f() {
-  arg_0[int3(0, 0, 1)] = (0.0f).xxxx;
+  arg_0[int3((1).xx, 1)] = (1.0f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/60975f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/60975f.wgsl.expected.fxc.hlsl
index ab19974..1bd75dd 100644
--- a/test/tint/builtins/gen/literal/textureStore/60975f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/60975f.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 void textureStore_60975f() {
-  arg_0[int3(0, 0, 1)] = (0.0f).xxxx;
+  arg_0[int3((1).xx, 1)] = (1.0f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/60975f.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/60975f.wgsl.expected.glsl
index acc1ece..9d806ca 100644
--- a/test/tint/builtins/gen/literal/textureStore/60975f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/60975f.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 layout(rgba8) uniform highp writeonly image2DArray arg_0;
 void textureStore_60975f() {
-  imageStore(arg_0, ivec3(0, 0, 1), vec4(0.0f));
+  imageStore(arg_0, ivec3(ivec2(1), 1), vec4(1.0f));
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 
 layout(rgba8) uniform highp writeonly image2DArray arg_0;
 void textureStore_60975f() {
-  imageStore(arg_0, ivec3(0, 0, 1), vec4(0.0f));
+  imageStore(arg_0, ivec3(ivec2(1), 1), vec4(1.0f));
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 layout(rgba8) uniform highp writeonly image2DArray arg_0;
 void textureStore_60975f() {
-  imageStore(arg_0, ivec3(0, 0, 1), vec4(0.0f));
+  imageStore(arg_0, ivec3(ivec2(1), 1), vec4(1.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureStore/60975f.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/60975f.wgsl.expected.msl
index bc1e09a..d2473f0 100644
--- a/test/tint/builtins/gen/literal/textureStore/60975f.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/60975f.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureStore_60975f(texture2d_array<float, access::write> tint_symbol_1) {
-  tint_symbol_1.write(float4(0.0f), uint2(int2(0)), 1);
+  tint_symbol_1.write(float4(1.0f), uint2(int2(1)), 1);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/60975f.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/60975f.wgsl.expected.spvasm
index fb1d691..710cc14 100644
--- a/test/tint/builtins/gen/literal/textureStore/60975f.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/60975f.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 37
+; Bound: 41
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -38,36 +38,40 @@
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
-      %int_0 = OpConstant %int 0
+      %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %22 = OpConstantComposite %v3int %int_0 %int_0 %int_1
-         %23 = OpTypeFunction %v4float
+         %22 = OpConstantComposite %v2int %int_1 %int_1
     %float_1 = OpConstant %float 1
+         %27 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %28 = OpTypeFunction %v4float
 %textureStore_60975f = OpFunction %void None %12
          %15 = OpLabel
          %17 = OpLoad %11 %arg_0
-               OpImageWrite %17 %22 %5
+         %23 = OpCompositeExtract %int %22 0
+         %24 = OpCompositeExtract %int %22 1
+         %25 = OpCompositeConstruct %v3int %23 %24 %int_1
+               OpImageWrite %17 %25 %27
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %23
-         %25 = OpLabel
-         %26 = OpFunctionCall %void %textureStore_60975f
+%vertex_main_inner = OpFunction %v4float None %28
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %textureStore_60975f
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %28 = OpLabel
-         %29 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %29
+         %33 = OpLabel
+         %34 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %34
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_60975f
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureStore_60975f
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureStore_60975f
+         %39 = OpLabel
+         %40 = OpFunctionCall %void %textureStore_60975f
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/60975f.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/60975f.wgsl.expected.wgsl
index ac8ff98..ad81fa1 100644
--- a/test/tint/builtins/gen/literal/textureStore/60975f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/60975f.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba8unorm, write>;
 
 fn textureStore_60975f() {
-  textureStore(arg_0, vec2<i32>(), 1i, vec4<f32>());
+  textureStore(arg_0, vec2<i32>(1i), 1i, vec4<f32>(1.0f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/658a74.wgsl b/test/tint/builtins/gen/literal/textureStore/658a74.wgsl
index 92689e1..f97502d 100644
--- a/test/tint/builtins/gen/literal/textureStore/658a74.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/658a74.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureStore(texture: texture_storage_2d_array<rg32float, write>, coords: vec2<i32>, array_index: u32, value: vec4<f32>)
 fn textureStore_658a74() {
-  textureStore(arg_0, vec2<i32>(), 1u, vec4<f32>());
+  textureStore(arg_0, vec2<i32>(1i), 1u, vec4<f32>(1.f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/658a74.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/658a74.wgsl.expected.dxc.hlsl
index d3dcb5b..51f28b3 100644
--- a/test/tint/builtins/gen/literal/textureStore/658a74.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/658a74.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 void textureStore_658a74() {
-  arg_0[int3(0, 0, int(1u))] = (0.0f).xxxx;
+  arg_0[int3((1).xx, int(1u))] = (1.0f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/658a74.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/658a74.wgsl.expected.fxc.hlsl
index d3dcb5b..51f28b3 100644
--- a/test/tint/builtins/gen/literal/textureStore/658a74.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/658a74.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 void textureStore_658a74() {
-  arg_0[int3(0, 0, int(1u))] = (0.0f).xxxx;
+  arg_0[int3((1).xx, int(1u))] = (1.0f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/658a74.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/658a74.wgsl.expected.msl
index 0921ddc..0a88f99 100644
--- a/test/tint/builtins/gen/literal/textureStore/658a74.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/658a74.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureStore_658a74(texture2d_array<float, access::write> tint_symbol_1) {
-  tint_symbol_1.write(float4(0.0f), uint2(int2(0)), 1u);
+  tint_symbol_1.write(float4(1.0f), uint2(int2(1)), 1u);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/658a74.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/658a74.wgsl.expected.spvasm
index 5607331..146556e 100644
--- a/test/tint/builtins/gen/literal/textureStore/658a74.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/658a74.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 39
+; Bound: 44
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
@@ -39,38 +39,43 @@
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
-      %int_0 = OpConstant %int 0
+      %v2int = OpTypeVector %int 2
+      %int_1 = OpConstant %int 1
+         %22 = OpConstantComposite %v2int %int_1 %int_1
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
-         %25 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
+         %30 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %31 = OpTypeFunction %v4float
 %textureStore_658a74 = OpFunction %void None %12
          %15 = OpLabel
          %17 = OpLoad %11 %arg_0
-         %21 = OpBitcast %int %uint_1
-         %24 = OpCompositeConstruct %v3int %int_0 %int_0 %21
-               OpImageWrite %17 %24 %5
+         %23 = OpCompositeExtract %int %22 0
+         %24 = OpCompositeExtract %int %22 1
+         %25 = OpBitcast %int %uint_1
+         %28 = OpCompositeConstruct %v3int %23 %24 %25
+               OpImageWrite %17 %28 %30
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %25
-         %27 = OpLabel
-         %28 = OpFunctionCall %void %textureStore_658a74
+%vertex_main_inner = OpFunction %v4float None %31
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureStore_658a74
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %30 = OpLabel
-         %31 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %31
+         %36 = OpLabel
+         %37 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %37
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureStore_658a74
+         %39 = OpLabel
+         %40 = OpFunctionCall %void %textureStore_658a74
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureStore_658a74
+         %42 = OpLabel
+         %43 = OpFunctionCall %void %textureStore_658a74
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/658a74.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/658a74.wgsl.expected.wgsl
index 9c8cc3a..79d89b0 100644
--- a/test/tint/builtins/gen/literal/textureStore/658a74.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/658a74.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rg32float, write>;
 
 fn textureStore_658a74() {
-  textureStore(arg_0, vec2<i32>(), 1u, vec4<f32>());
+  textureStore(arg_0, vec2<i32>(1i), 1u, vec4<f32>(1.0f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/682fd6.wgsl b/test/tint/builtins/gen/literal/textureStore/682fd6.wgsl
index 7920724..90a24f3 100644
--- a/test/tint/builtins/gen/literal/textureStore/682fd6.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/682fd6.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureStore(texture: texture_storage_2d<rg32uint, write>, coords: vec2<i32>, value: vec4<u32>)
 fn textureStore_682fd6() {
-  textureStore(arg_0, vec2<i32>(), vec4<u32>());
+  textureStore(arg_0, vec2<i32>(1i), vec4<u32>(1u));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/682fd6.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/682fd6.wgsl.expected.dxc.hlsl
index b8d65cc..8d85e07 100644
--- a/test/tint/builtins/gen/literal/textureStore/682fd6.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/682fd6.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2D<uint4> arg_0 : register(u0, space1);
 
 void textureStore_682fd6() {
-  arg_0[(0).xx] = (0u).xxxx;
+  arg_0[(1).xx] = (1u).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/682fd6.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/682fd6.wgsl.expected.fxc.hlsl
index b8d65cc..8d85e07 100644
--- a/test/tint/builtins/gen/literal/textureStore/682fd6.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/682fd6.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2D<uint4> arg_0 : register(u0, space1);
 
 void textureStore_682fd6() {
-  arg_0[(0).xx] = (0u).xxxx;
+  arg_0[(1).xx] = (1u).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/682fd6.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/682fd6.wgsl.expected.msl
index 9fddf06..5bb5624 100644
--- a/test/tint/builtins/gen/literal/textureStore/682fd6.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/682fd6.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureStore_682fd6(texture2d<uint, access::write> tint_symbol_1) {
-  tint_symbol_1.write(uint4(0u), uint2(int2(0)));
+  tint_symbol_1.write(uint4(1u), uint2(int2(1)));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/682fd6.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/682fd6.wgsl.expected.spvasm
index 420e450..60b8553 100644
--- a/test/tint/builtins/gen/literal/textureStore/682fd6.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/682fd6.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 38
+; Bound: 40
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
@@ -40,36 +40,38 @@
          %13 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
-         %21 = OpConstantNull %v2int
+      %int_1 = OpConstant %int 1
+         %22 = OpConstantComposite %v2int %int_1 %int_1
      %v4uint = OpTypeVector %uint 4
-         %23 = OpConstantNull %v4uint
-         %24 = OpTypeFunction %v4float
+     %uint_1 = OpConstant %uint 1
+         %25 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+         %26 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_682fd6 = OpFunction %void None %13
          %16 = OpLabel
          %18 = OpLoad %11 %arg_0
-               OpImageWrite %18 %21 %23
+               OpImageWrite %18 %22 %25
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %24
-         %26 = OpLabel
-         %27 = OpFunctionCall %void %textureStore_682fd6
+%vertex_main_inner = OpFunction %v4float None %26
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %textureStore_682fd6
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %29 = OpLabel
-         %30 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %30
+         %31 = OpLabel
+         %32 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %32
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_682fd6
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureStore_682fd6
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_682fd6
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %textureStore_682fd6
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/682fd6.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/682fd6.wgsl.expected.wgsl
index 15cae1d..9b4623d 100644
--- a/test/tint/builtins/gen/literal/textureStore/682fd6.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/682fd6.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rg32uint, write>;
 
 fn textureStore_682fd6() {
-  textureStore(arg_0, vec2<i32>(), vec4<u32>());
+  textureStore(arg_0, vec2<i32>(1i), vec4<u32>(1u));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/699a1b.wgsl b/test/tint/builtins/gen/literal/textureStore/699a1b.wgsl
index 0b39052..f9d3b89 100644
--- a/test/tint/builtins/gen/literal/textureStore/699a1b.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/699a1b.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureStore(texture: texture_storage_2d_array<r32float, write>, coords: vec2<u32>, array_index: u32, value: vec4<f32>)
 fn textureStore_699a1b() {
-  textureStore(arg_0, vec2<u32>(), 1u, vec4<f32>());
+  textureStore(arg_0, vec2<u32>(1u), 1u, vec4<f32>(1.f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/699a1b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/699a1b.wgsl.expected.dxc.hlsl
index f3d78c6..8b6de07 100644
--- a/test/tint/builtins/gen/literal/textureStore/699a1b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/699a1b.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 void textureStore_699a1b() {
-  arg_0[uint3(0u, 0u, 1u)] = (0.0f).xxxx;
+  arg_0[uint3((1u).xx, 1u)] = (1.0f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/699a1b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/699a1b.wgsl.expected.fxc.hlsl
index f3d78c6..8b6de07 100644
--- a/test/tint/builtins/gen/literal/textureStore/699a1b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/699a1b.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 void textureStore_699a1b() {
-  arg_0[uint3(0u, 0u, 1u)] = (0.0f).xxxx;
+  arg_0[uint3((1u).xx, 1u)] = (1.0f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/699a1b.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/699a1b.wgsl.expected.glsl
index 6b80b95..30ce8f9 100644
--- a/test/tint/builtins/gen/literal/textureStore/699a1b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/699a1b.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 layout(r32f) uniform highp writeonly image2DArray arg_0;
 void textureStore_699a1b() {
-  imageStore(arg_0, ivec3(uvec3(0u, 0u, 1u)), vec4(0.0f));
+  imageStore(arg_0, ivec3(uvec3(uvec2(1u), 1u)), vec4(1.0f));
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 
 layout(r32f) uniform highp writeonly image2DArray arg_0;
 void textureStore_699a1b() {
-  imageStore(arg_0, ivec3(uvec3(0u, 0u, 1u)), vec4(0.0f));
+  imageStore(arg_0, ivec3(uvec3(uvec2(1u), 1u)), vec4(1.0f));
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 layout(r32f) uniform highp writeonly image2DArray arg_0;
 void textureStore_699a1b() {
-  imageStore(arg_0, ivec3(uvec3(0u, 0u, 1u)), vec4(0.0f));
+  imageStore(arg_0, ivec3(uvec3(uvec2(1u), 1u)), vec4(1.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureStore/699a1b.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/699a1b.wgsl.expected.msl
index 4c739f8..b564cde 100644
--- a/test/tint/builtins/gen/literal/textureStore/699a1b.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/699a1b.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureStore_699a1b(texture2d_array<float, access::write> tint_symbol_1) {
-  tint_symbol_1.write(float4(0.0f), uint2(uint2(0u)), 1u);
+  tint_symbol_1.write(float4(1.0f), uint2(uint2(1u)), 1u);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/699a1b.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/699a1b.wgsl.expected.spvasm
index b8f5015..41ee6a7 100644
--- a/test/tint/builtins/gen/literal/textureStore/699a1b.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/699a1b.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 37
+; Bound: 41
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -38,36 +38,40 @@
          %12 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
-     %uint_0 = OpConstant %uint 0
+     %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %22 = OpConstantComposite %v3uint %uint_0 %uint_0 %uint_1
-         %23 = OpTypeFunction %v4float
+         %22 = OpConstantComposite %v2uint %uint_1 %uint_1
     %float_1 = OpConstant %float 1
+         %27 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %28 = OpTypeFunction %v4float
 %textureStore_699a1b = OpFunction %void None %12
          %15 = OpLabel
          %17 = OpLoad %11 %arg_0
-               OpImageWrite %17 %22 %5
+         %23 = OpCompositeExtract %uint %22 0
+         %24 = OpCompositeExtract %uint %22 1
+         %25 = OpCompositeConstruct %v3uint %23 %24 %uint_1
+               OpImageWrite %17 %25 %27
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %23
-         %25 = OpLabel
-         %26 = OpFunctionCall %void %textureStore_699a1b
+%vertex_main_inner = OpFunction %v4float None %28
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %textureStore_699a1b
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %28 = OpLabel
-         %29 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %29
+         %33 = OpLabel
+         %34 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %34
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_699a1b
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureStore_699a1b
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureStore_699a1b
+         %39 = OpLabel
+         %40 = OpFunctionCall %void %textureStore_699a1b
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/699a1b.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/699a1b.wgsl.expected.wgsl
index 7585470..7856f3d 100644
--- a/test/tint/builtins/gen/literal/textureStore/699a1b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/699a1b.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<r32float, write>;
 
 fn textureStore_699a1b() {
-  textureStore(arg_0, vec2<u32>(), 1u, vec4<f32>());
+  textureStore(arg_0, vec2<u32>(1u), 1u, vec4<f32>(1.0f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/6b75c3.wgsl b/test/tint/builtins/gen/literal/textureStore/6b75c3.wgsl
index 1c97c4c..36cf30c 100644
--- a/test/tint/builtins/gen/literal/textureStore/6b75c3.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/6b75c3.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureStore(texture: texture_storage_1d<rgba32float, write>, coords: i32, value: vec4<f32>)
 fn textureStore_6b75c3() {
-  textureStore(arg_0, 1i, vec4<f32>());
+  textureStore(arg_0, 1i, vec4<f32>(1.f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/6b75c3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/6b75c3.wgsl.expected.dxc.hlsl
index df1c070..fd7b01f 100644
--- a/test/tint/builtins/gen/literal/textureStore/6b75c3.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/6b75c3.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture1D<float4> arg_0 : register(u0, space1);
 
 void textureStore_6b75c3() {
-  arg_0[1] = (0.0f).xxxx;
+  arg_0[1] = (1.0f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/6b75c3.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/6b75c3.wgsl.expected.fxc.hlsl
index df1c070..fd7b01f 100644
--- a/test/tint/builtins/gen/literal/textureStore/6b75c3.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/6b75c3.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture1D<float4> arg_0 : register(u0, space1);
 
 void textureStore_6b75c3() {
-  arg_0[1] = (0.0f).xxxx;
+  arg_0[1] = (1.0f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/6b75c3.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/6b75c3.wgsl.expected.msl
index a92d69a..df1eb89 100644
--- a/test/tint/builtins/gen/literal/textureStore/6b75c3.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/6b75c3.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureStore_6b75c3(texture1d<float, access::write> tint_symbol_1) {
-  tint_symbol_1.write(float4(0.0f), uint(1));
+  tint_symbol_1.write(float4(1.0f), uint(1));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/6b75c3.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/6b75c3.wgsl.expected.spvasm
index 1c3b265..24633ee 100644
--- a/test/tint/builtins/gen/literal/textureStore/6b75c3.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/6b75c3.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 34
+; Bound: 35
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
@@ -39,33 +39,34 @@
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
-         %20 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
+         %21 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %22 = OpTypeFunction %v4float
 %textureStore_6b75c3 = OpFunction %void None %12
          %15 = OpLabel
          %17 = OpLoad %11 %arg_0
-               OpImageWrite %17 %int_1 %5
+               OpImageWrite %17 %int_1 %21
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %20
-         %22 = OpLabel
-         %23 = OpFunctionCall %void %textureStore_6b75c3
+%vertex_main_inner = OpFunction %v4float None %22
+         %24 = OpLabel
+         %25 = OpFunctionCall %void %textureStore_6b75c3
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %25 = OpLabel
-         %26 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %26
+         %27 = OpLabel
+         %28 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %28
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %textureStore_6b75c3
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %textureStore_6b75c3
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_6b75c3
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureStore_6b75c3
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/6b75c3.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/6b75c3.wgsl.expected.wgsl
index 6022b91..1619dae 100644
--- a/test/tint/builtins/gen/literal/textureStore/6b75c3.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/6b75c3.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rgba32float, write>;
 
 fn textureStore_6b75c3() {
-  textureStore(arg_0, 1i, vec4<f32>());
+  textureStore(arg_0, 1i, vec4<f32>(1.0f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/6b80d2.wgsl b/test/tint/builtins/gen/literal/textureStore/6b80d2.wgsl
index bc36f22..01c9531 100644
--- a/test/tint/builtins/gen/literal/textureStore/6b80d2.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/6b80d2.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureStore(texture: texture_storage_1d<r32sint, write>, coords: i32, value: vec4<i32>)
 fn textureStore_6b80d2() {
-  textureStore(arg_0, 1i, vec4<i32>());
+  textureStore(arg_0, 1i, vec4<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/6b80d2.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/6b80d2.wgsl.expected.dxc.hlsl
index a2e5c73..cb4329d 100644
--- a/test/tint/builtins/gen/literal/textureStore/6b80d2.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/6b80d2.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture1D<int4> arg_0 : register(u0, space1);
 
 void textureStore_6b80d2() {
-  arg_0[1] = (0).xxxx;
+  arg_0[1] = (1).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/6b80d2.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/6b80d2.wgsl.expected.fxc.hlsl
index a2e5c73..cb4329d 100644
--- a/test/tint/builtins/gen/literal/textureStore/6b80d2.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/6b80d2.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture1D<int4> arg_0 : register(u0, space1);
 
 void textureStore_6b80d2() {
-  arg_0[1] = (0).xxxx;
+  arg_0[1] = (1).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/6b80d2.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/6b80d2.wgsl.expected.msl
index b73343e..b93c6f8 100644
--- a/test/tint/builtins/gen/literal/textureStore/6b80d2.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/6b80d2.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureStore_6b80d2(texture1d<int, access::write> tint_symbol_1) {
-  tint_symbol_1.write(int4(0), uint(1));
+  tint_symbol_1.write(int4(1), uint(1));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/6b80d2.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/6b80d2.wgsl.expected.spvasm
index f5112ee..66cc308 100644
--- a/test/tint/builtins/gen/literal/textureStore/6b80d2.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/6b80d2.wgsl.expected.spvasm
@@ -40,7 +40,7 @@
          %13 = OpTypeFunction %void
       %int_1 = OpConstant %int 1
       %v4int = OpTypeVector %int 4
-         %21 = OpConstantNull %v4int
+         %21 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
          %22 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_6b80d2 = OpFunction %void None %13
diff --git a/test/tint/builtins/gen/literal/textureStore/6b80d2.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/6b80d2.wgsl.expected.wgsl
index 7cd817f..a5b1793 100644
--- a/test/tint/builtins/gen/literal/textureStore/6b80d2.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/6b80d2.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_storage_1d<r32sint, write>;
 
 fn textureStore_6b80d2() {
-  textureStore(arg_0, 1i, vec4<i32>());
+  textureStore(arg_0, 1i, vec4<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/6cff2e.wgsl b/test/tint/builtins/gen/literal/textureStore/6cff2e.wgsl
index fe20069..a24470c 100644
--- a/test/tint/builtins/gen/literal/textureStore/6cff2e.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/6cff2e.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureStore(texture: texture_storage_2d<r32uint, write>, coords: vec2<i32>, value: vec4<u32>)
 fn textureStore_6cff2e() {
-  textureStore(arg_0, vec2<i32>(), vec4<u32>());
+  textureStore(arg_0, vec2<i32>(1i), vec4<u32>(1u));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/6cff2e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/6cff2e.wgsl.expected.dxc.hlsl
index a9f96b4..e55171a 100644
--- a/test/tint/builtins/gen/literal/textureStore/6cff2e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/6cff2e.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2D<uint4> arg_0 : register(u0, space1);
 
 void textureStore_6cff2e() {
-  arg_0[(0).xx] = (0u).xxxx;
+  arg_0[(1).xx] = (1u).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/6cff2e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/6cff2e.wgsl.expected.fxc.hlsl
index a9f96b4..e55171a 100644
--- a/test/tint/builtins/gen/literal/textureStore/6cff2e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/6cff2e.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2D<uint4> arg_0 : register(u0, space1);
 
 void textureStore_6cff2e() {
-  arg_0[(0).xx] = (0u).xxxx;
+  arg_0[(1).xx] = (1u).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/6cff2e.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/6cff2e.wgsl.expected.glsl
index f4458c4..7f42837 100644
--- a/test/tint/builtins/gen/literal/textureStore/6cff2e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/6cff2e.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 layout(r32ui) uniform highp writeonly uimage2D arg_0;
 void textureStore_6cff2e() {
-  imageStore(arg_0, ivec2(0), uvec4(0u));
+  imageStore(arg_0, ivec2(1), uvec4(1u));
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 
 layout(r32ui) uniform highp writeonly uimage2D arg_0;
 void textureStore_6cff2e() {
-  imageStore(arg_0, ivec2(0), uvec4(0u));
+  imageStore(arg_0, ivec2(1), uvec4(1u));
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 layout(r32ui) uniform highp writeonly uimage2D arg_0;
 void textureStore_6cff2e() {
-  imageStore(arg_0, ivec2(0), uvec4(0u));
+  imageStore(arg_0, ivec2(1), uvec4(1u));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureStore/6cff2e.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/6cff2e.wgsl.expected.msl
index 8a1d610..ae8205a 100644
--- a/test/tint/builtins/gen/literal/textureStore/6cff2e.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/6cff2e.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureStore_6cff2e(texture2d<uint, access::write> tint_symbol_1) {
-  tint_symbol_1.write(uint4(0u), uint2(int2(0)));
+  tint_symbol_1.write(uint4(1u), uint2(int2(1)));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/6cff2e.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/6cff2e.wgsl.expected.spvasm
index 8e80a59..782456e 100644
--- a/test/tint/builtins/gen/literal/textureStore/6cff2e.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/6cff2e.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 38
+; Bound: 40
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -39,36 +39,38 @@
          %13 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
-         %21 = OpConstantNull %v2int
+      %int_1 = OpConstant %int 1
+         %22 = OpConstantComposite %v2int %int_1 %int_1
      %v4uint = OpTypeVector %uint 4
-         %23 = OpConstantNull %v4uint
-         %24 = OpTypeFunction %v4float
+     %uint_1 = OpConstant %uint 1
+         %25 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+         %26 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_6cff2e = OpFunction %void None %13
          %16 = OpLabel
          %18 = OpLoad %11 %arg_0
-               OpImageWrite %18 %21 %23
+               OpImageWrite %18 %22 %25
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %24
-         %26 = OpLabel
-         %27 = OpFunctionCall %void %textureStore_6cff2e
+%vertex_main_inner = OpFunction %v4float None %26
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %textureStore_6cff2e
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %29 = OpLabel
-         %30 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %30
+         %31 = OpLabel
+         %32 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %32
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_6cff2e
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureStore_6cff2e
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_6cff2e
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %textureStore_6cff2e
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/6cff2e.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/6cff2e.wgsl.expected.wgsl
index bc09df8..981078b 100644
--- a/test/tint/builtins/gen/literal/textureStore/6cff2e.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/6cff2e.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d<r32uint, write>;
 
 fn textureStore_6cff2e() {
-  textureStore(arg_0, vec2<i32>(), vec4<u32>());
+  textureStore(arg_0, vec2<i32>(1i), vec4<u32>(1u));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/6da692.wgsl b/test/tint/builtins/gen/literal/textureStore/6da692.wgsl
index a50c0f3..a517a3b 100644
--- a/test/tint/builtins/gen/literal/textureStore/6da692.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/6da692.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureStore(texture: texture_storage_2d_array<rgba16uint, write>, coords: vec2<i32>, array_index: i32, value: vec4<u32>)
 fn textureStore_6da692() {
-  textureStore(arg_0, vec2<i32>(), 1i, vec4<u32>());
+  textureStore(arg_0, vec2<i32>(1i), 1i, vec4<u32>(1u));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/6da692.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/6da692.wgsl.expected.dxc.hlsl
index 69e93a9..385f6ac 100644
--- a/test/tint/builtins/gen/literal/textureStore/6da692.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/6da692.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 void textureStore_6da692() {
-  arg_0[int3(0, 0, 1)] = (0u).xxxx;
+  arg_0[int3((1).xx, 1)] = (1u).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/6da692.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/6da692.wgsl.expected.fxc.hlsl
index 69e93a9..385f6ac 100644
--- a/test/tint/builtins/gen/literal/textureStore/6da692.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/6da692.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 void textureStore_6da692() {
-  arg_0[int3(0, 0, 1)] = (0u).xxxx;
+  arg_0[int3((1).xx, 1)] = (1u).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/6da692.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/6da692.wgsl.expected.glsl
index 81dc6f5..9b05317 100644
--- a/test/tint/builtins/gen/literal/textureStore/6da692.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/6da692.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 layout(rgba16ui) uniform highp writeonly uimage2DArray arg_0;
 void textureStore_6da692() {
-  imageStore(arg_0, ivec3(0, 0, 1), uvec4(0u));
+  imageStore(arg_0, ivec3(ivec2(1), 1), uvec4(1u));
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 
 layout(rgba16ui) uniform highp writeonly uimage2DArray arg_0;
 void textureStore_6da692() {
-  imageStore(arg_0, ivec3(0, 0, 1), uvec4(0u));
+  imageStore(arg_0, ivec3(ivec2(1), 1), uvec4(1u));
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 layout(rgba16ui) uniform highp writeonly uimage2DArray arg_0;
 void textureStore_6da692() {
-  imageStore(arg_0, ivec3(0, 0, 1), uvec4(0u));
+  imageStore(arg_0, ivec3(ivec2(1), 1), uvec4(1u));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureStore/6da692.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/6da692.wgsl.expected.msl
index 49e92c6..7651247 100644
--- a/test/tint/builtins/gen/literal/textureStore/6da692.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/6da692.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureStore_6da692(texture2d_array<uint, access::write> tint_symbol_1) {
-  tint_symbol_1.write(uint4(0u), uint2(int2(0)), 1);
+  tint_symbol_1.write(uint4(1u), uint2(int2(1)), 1);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/6da692.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/6da692.wgsl.expected.spvasm
index d1101ca..47f56f5 100644
--- a/test/tint/builtins/gen/literal/textureStore/6da692.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/6da692.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 40
+; Bound: 44
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -39,38 +39,42 @@
          %13 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
-      %int_0 = OpConstant %int 0
+      %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %23 = OpConstantComposite %v3int %int_0 %int_0 %int_1
+         %23 = OpConstantComposite %v2int %int_1 %int_1
      %v4uint = OpTypeVector %uint 4
-         %25 = OpConstantNull %v4uint
-         %26 = OpTypeFunction %v4float
+     %uint_1 = OpConstant %uint 1
+         %29 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+         %30 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_6da692 = OpFunction %void None %13
          %16 = OpLabel
          %18 = OpLoad %11 %arg_0
-               OpImageWrite %18 %23 %25
+         %24 = OpCompositeExtract %int %23 0
+         %25 = OpCompositeExtract %int %23 1
+         %26 = OpCompositeConstruct %v3int %24 %25 %int_1
+               OpImageWrite %18 %26 %29
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %26
-         %28 = OpLabel
-         %29 = OpFunctionCall %void %textureStore_6da692
+%vertex_main_inner = OpFunction %v4float None %30
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %textureStore_6da692
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %31 = OpLabel
-         %32 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %32
+         %35 = OpLabel
+         %36 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %36
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureStore_6da692
+         %39 = OpLabel
+         %40 = OpFunctionCall %void %textureStore_6da692
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureStore_6da692
+         %42 = OpLabel
+         %43 = OpFunctionCall %void %textureStore_6da692
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/6da692.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/6da692.wgsl.expected.wgsl
index 0a1021c..9a9c631 100644
--- a/test/tint/builtins/gen/literal/textureStore/6da692.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/6da692.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba16uint, write>;
 
 fn textureStore_6da692() {
-  textureStore(arg_0, vec2<i32>(), 1i, vec4<u32>());
+  textureStore(arg_0, vec2<i32>(1i), 1i, vec4<u32>(1u));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/6f8642.wgsl b/test/tint/builtins/gen/literal/textureStore/6f8642.wgsl
index b909a03..5007c92 100644
--- a/test/tint/builtins/gen/literal/textureStore/6f8642.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/6f8642.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureStore(texture: texture_storage_2d_array<rgba32uint, write>, coords: vec2<u32>, array_index: i32, value: vec4<u32>)
 fn textureStore_6f8642() {
-  textureStore(arg_0, vec2<u32>(), 1i, vec4<u32>());
+  textureStore(arg_0, vec2<u32>(1u), 1i, vec4<u32>(1u));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/6f8642.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/6f8642.wgsl.expected.dxc.hlsl
index 61a68cf..a36060d 100644
--- a/test/tint/builtins/gen/literal/textureStore/6f8642.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/6f8642.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 void textureStore_6f8642() {
-  arg_0[uint3(0u, 0u, uint(1))] = (0u).xxxx;
+  arg_0[uint3((1u).xx, uint(1))] = (1u).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/6f8642.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/6f8642.wgsl.expected.fxc.hlsl
index 61a68cf..a36060d 100644
--- a/test/tint/builtins/gen/literal/textureStore/6f8642.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/6f8642.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 void textureStore_6f8642() {
-  arg_0[uint3(0u, 0u, uint(1))] = (0u).xxxx;
+  arg_0[uint3((1u).xx, uint(1))] = (1u).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/6f8642.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/6f8642.wgsl.expected.glsl
index 9471f9b..e171c61 100644
--- a/test/tint/builtins/gen/literal/textureStore/6f8642.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/6f8642.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 layout(rgba32ui) uniform highp writeonly uimage2DArray arg_0;
 void textureStore_6f8642() {
-  imageStore(arg_0, ivec3(uvec3(0u, 0u, uint(1))), uvec4(0u));
+  imageStore(arg_0, ivec3(uvec3(uvec2(1u), uint(1))), uvec4(1u));
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 
 layout(rgba32ui) uniform highp writeonly uimage2DArray arg_0;
 void textureStore_6f8642() {
-  imageStore(arg_0, ivec3(uvec3(0u, 0u, uint(1))), uvec4(0u));
+  imageStore(arg_0, ivec3(uvec3(uvec2(1u), uint(1))), uvec4(1u));
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 layout(rgba32ui) uniform highp writeonly uimage2DArray arg_0;
 void textureStore_6f8642() {
-  imageStore(arg_0, ivec3(uvec3(0u, 0u, uint(1))), uvec4(0u));
+  imageStore(arg_0, ivec3(uvec3(uvec2(1u), uint(1))), uvec4(1u));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureStore/6f8642.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/6f8642.wgsl.expected.msl
index 233e519..1432b7b 100644
--- a/test/tint/builtins/gen/literal/textureStore/6f8642.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/6f8642.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureStore_6f8642(texture2d_array<uint, access::write> tint_symbol_1) {
-  tint_symbol_1.write(uint4(0u), uint2(uint2(0u)), 1);
+  tint_symbol_1.write(uint4(1u), uint2(uint2(1u)), 1);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/6f8642.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/6f8642.wgsl.expected.spvasm
index 2ce57c6..1e32ffc 100644
--- a/test/tint/builtins/gen/literal/textureStore/6f8642.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/6f8642.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 41
+; Bound: 45
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -38,40 +38,44 @@
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
      %v3uint = OpTypeVector %uint 3
-     %uint_0 = OpConstant %uint 0
+     %v2uint = OpTypeVector %uint 2
+     %uint_1 = OpConstant %uint 1
+         %22 = OpConstantComposite %v2uint %uint_1 %uint_1
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
      %v4uint = OpTypeVector %uint 4
-         %26 = OpConstantNull %v4uint
-         %27 = OpTypeFunction %v4float
+         %30 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+         %31 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_6f8642 = OpFunction %void None %13
          %16 = OpLabel
          %18 = OpLoad %11 %arg_0
-         %21 = OpBitcast %uint %int_1
-         %24 = OpCompositeConstruct %v3uint %uint_0 %uint_0 %21
-               OpImageWrite %18 %24 %26
+         %23 = OpCompositeExtract %uint %22 0
+         %24 = OpCompositeExtract %uint %22 1
+         %25 = OpBitcast %uint %int_1
+         %28 = OpCompositeConstruct %v3uint %23 %24 %25
+               OpImageWrite %18 %28 %30
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %27
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %textureStore_6f8642
+%vertex_main_inner = OpFunction %v4float None %31
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureStore_6f8642
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %32 = OpLabel
-         %33 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %33
+         %36 = OpLabel
+         %37 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %37
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_6f8642
+         %40 = OpLabel
+         %41 = OpFunctionCall %void %textureStore_6f8642
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_6f8642
+         %43 = OpLabel
+         %44 = OpFunctionCall %void %textureStore_6f8642
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/6f8642.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/6f8642.wgsl.expected.wgsl
index 631e3c1..b876de3 100644
--- a/test/tint/builtins/gen/literal/textureStore/6f8642.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/6f8642.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba32uint, write>;
 
 fn textureStore_6f8642() {
-  textureStore(arg_0, vec2<u32>(), 1i, vec4<u32>());
+  textureStore(arg_0, vec2<u32>(1u), 1i, vec4<u32>(1u));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/726472.wgsl b/test/tint/builtins/gen/literal/textureStore/726472.wgsl
index ff91148..7066bfd 100644
--- a/test/tint/builtins/gen/literal/textureStore/726472.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/726472.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureStore(texture: texture_storage_2d<rg32float, write>, coords: vec2<u32>, value: vec4<f32>)
 fn textureStore_726472() {
-  textureStore(arg_0, vec2<u32>(), vec4<f32>());
+  textureStore(arg_0, vec2<u32>(1u), vec4<f32>(1.f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/726472.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/726472.wgsl.expected.dxc.hlsl
index 9c62e84..9c1e543 100644
--- a/test/tint/builtins/gen/literal/textureStore/726472.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/726472.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2D<float4> arg_0 : register(u0, space1);
 
 void textureStore_726472() {
-  arg_0[(0u).xx] = (0.0f).xxxx;
+  arg_0[(1u).xx] = (1.0f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/726472.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/726472.wgsl.expected.fxc.hlsl
index 9c62e84..9c1e543 100644
--- a/test/tint/builtins/gen/literal/textureStore/726472.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/726472.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2D<float4> arg_0 : register(u0, space1);
 
 void textureStore_726472() {
-  arg_0[(0u).xx] = (0.0f).xxxx;
+  arg_0[(1u).xx] = (1.0f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/726472.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/726472.wgsl.expected.msl
index f2fa086..32c1a37 100644
--- a/test/tint/builtins/gen/literal/textureStore/726472.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/726472.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureStore_726472(texture2d<float, access::write> tint_symbol_1) {
-  tint_symbol_1.write(float4(0.0f), uint2(uint2(0u)));
+  tint_symbol_1.write(float4(1.0f), uint2(uint2(1u)));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/726472.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/726472.wgsl.expected.spvasm
index ead0f58..704d910 100644
--- a/test/tint/builtins/gen/literal/textureStore/726472.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/726472.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 35
+; Bound: 37
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
@@ -39,34 +39,36 @@
          %12 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
-         %20 = OpConstantNull %v2uint
-         %21 = OpTypeFunction %v4float
+     %uint_1 = OpConstant %uint 1
+         %21 = OpConstantComposite %v2uint %uint_1 %uint_1
     %float_1 = OpConstant %float 1
+         %23 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %24 = OpTypeFunction %v4float
 %textureStore_726472 = OpFunction %void None %12
          %15 = OpLabel
          %17 = OpLoad %11 %arg_0
-               OpImageWrite %17 %20 %5
+               OpImageWrite %17 %21 %23
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %21
-         %23 = OpLabel
-         %24 = OpFunctionCall %void %textureStore_726472
+%vertex_main_inner = OpFunction %v4float None %24
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %textureStore_726472
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %26 = OpLabel
-         %27 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %27
+         %29 = OpLabel
+         %30 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %30
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %textureStore_726472
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %textureStore_726472
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_726472
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureStore_726472
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/726472.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/726472.wgsl.expected.wgsl
index 87ae30c..b3d9d88 100644
--- a/test/tint/builtins/gen/literal/textureStore/726472.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/726472.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rg32float, write>;
 
 fn textureStore_726472() {
-  textureStore(arg_0, vec2<u32>(), vec4<f32>());
+  textureStore(arg_0, vec2<u32>(1u), vec4<f32>(1.0f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/72fa64.wgsl b/test/tint/builtins/gen/literal/textureStore/72fa64.wgsl
index 93ebb93..33cd067 100644
--- a/test/tint/builtins/gen/literal/textureStore/72fa64.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/72fa64.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureStore(texture: texture_storage_2d_array<rg32sint, write>, coords: vec2<u32>, array_index: i32, value: vec4<i32>)
 fn textureStore_72fa64() {
-  textureStore(arg_0, vec2<u32>(), 1i, vec4<i32>());
+  textureStore(arg_0, vec2<u32>(1u), 1i, vec4<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/72fa64.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/72fa64.wgsl.expected.dxc.hlsl
index 86c2bf4..08f8ef1 100644
--- a/test/tint/builtins/gen/literal/textureStore/72fa64.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/72fa64.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 void textureStore_72fa64() {
-  arg_0[uint3(0u, 0u, uint(1))] = (0).xxxx;
+  arg_0[uint3((1u).xx, uint(1))] = (1).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/72fa64.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/72fa64.wgsl.expected.fxc.hlsl
index 86c2bf4..08f8ef1 100644
--- a/test/tint/builtins/gen/literal/textureStore/72fa64.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/72fa64.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 void textureStore_72fa64() {
-  arg_0[uint3(0u, 0u, uint(1))] = (0).xxxx;
+  arg_0[uint3((1u).xx, uint(1))] = (1).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/72fa64.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/72fa64.wgsl.expected.msl
index a9d5d54..21ad721 100644
--- a/test/tint/builtins/gen/literal/textureStore/72fa64.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/72fa64.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureStore_72fa64(texture2d_array<int, access::write> tint_symbol_1) {
-  tint_symbol_1.write(int4(0), uint2(uint2(0u)), 1);
+  tint_symbol_1.write(int4(1), uint2(uint2(1u)), 1);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/72fa64.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/72fa64.wgsl.expected.spvasm
index 4b421e0..cac18fd 100644
--- a/test/tint/builtins/gen/literal/textureStore/72fa64.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/72fa64.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 41
+; Bound: 45
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
@@ -40,39 +40,43 @@
          %13 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
-     %uint_0 = OpConstant %uint 0
+     %v2uint = OpTypeVector %uint 2
+     %uint_1 = OpConstant %uint 1
+         %23 = OpConstantComposite %v2uint %uint_1 %uint_1
       %int_1 = OpConstant %int 1
       %v4int = OpTypeVector %int 4
-         %26 = OpConstantNull %v4int
-         %27 = OpTypeFunction %v4float
+         %30 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+         %31 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_72fa64 = OpFunction %void None %13
          %16 = OpLabel
          %18 = OpLoad %11 %arg_0
-         %22 = OpBitcast %uint %int_1
-         %24 = OpCompositeConstruct %v3uint %uint_0 %uint_0 %22
-               OpImageWrite %18 %24 %26
+         %24 = OpCompositeExtract %uint %23 0
+         %25 = OpCompositeExtract %uint %23 1
+         %26 = OpBitcast %uint %int_1
+         %28 = OpCompositeConstruct %v3uint %24 %25 %26
+               OpImageWrite %18 %28 %30
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %27
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %textureStore_72fa64
+%vertex_main_inner = OpFunction %v4float None %31
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureStore_72fa64
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %32 = OpLabel
-         %33 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %33
+         %36 = OpLabel
+         %37 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %37
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_72fa64
+         %40 = OpLabel
+         %41 = OpFunctionCall %void %textureStore_72fa64
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_72fa64
+         %43 = OpLabel
+         %44 = OpFunctionCall %void %textureStore_72fa64
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/72fa64.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/72fa64.wgsl.expected.wgsl
index cb9be28..690fc0a 100644
--- a/test/tint/builtins/gen/literal/textureStore/72fa64.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/72fa64.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rg32sint, write>;
 
 fn textureStore_72fa64() {
-  textureStore(arg_0, vec2<u32>(), 1i, vec4<i32>());
+  textureStore(arg_0, vec2<u32>(1u), 1i, vec4<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/731349.wgsl b/test/tint/builtins/gen/literal/textureStore/731349.wgsl
index feaede0..b931dcd 100644
--- a/test/tint/builtins/gen/literal/textureStore/731349.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/731349.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureStore(texture: texture_storage_2d<rgba8unorm, write>, coords: vec2<i32>, value: vec4<f32>)
 fn textureStore_731349() {
-  textureStore(arg_0, vec2<i32>(), vec4<f32>());
+  textureStore(arg_0, vec2<i32>(1i), vec4<f32>(1.f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/731349.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/731349.wgsl.expected.dxc.hlsl
index c6837de..7a9dbc7 100644
--- a/test/tint/builtins/gen/literal/textureStore/731349.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/731349.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2D<float4> arg_0 : register(u0, space1);
 
 void textureStore_731349() {
-  arg_0[(0).xx] = (0.0f).xxxx;
+  arg_0[(1).xx] = (1.0f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/731349.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/731349.wgsl.expected.fxc.hlsl
index c6837de..7a9dbc7 100644
--- a/test/tint/builtins/gen/literal/textureStore/731349.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/731349.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2D<float4> arg_0 : register(u0, space1);
 
 void textureStore_731349() {
-  arg_0[(0).xx] = (0.0f).xxxx;
+  arg_0[(1).xx] = (1.0f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/731349.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/731349.wgsl.expected.glsl
index 4d2e294..dbcd2e8 100644
--- a/test/tint/builtins/gen/literal/textureStore/731349.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/731349.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 layout(rgba8) uniform highp writeonly image2D arg_0;
 void textureStore_731349() {
-  imageStore(arg_0, ivec2(0), vec4(0.0f));
+  imageStore(arg_0, ivec2(1), vec4(1.0f));
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 
 layout(rgba8) uniform highp writeonly image2D arg_0;
 void textureStore_731349() {
-  imageStore(arg_0, ivec2(0), vec4(0.0f));
+  imageStore(arg_0, ivec2(1), vec4(1.0f));
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 layout(rgba8) uniform highp writeonly image2D arg_0;
 void textureStore_731349() {
-  imageStore(arg_0, ivec2(0), vec4(0.0f));
+  imageStore(arg_0, ivec2(1), vec4(1.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureStore/731349.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/731349.wgsl.expected.msl
index 7d335e8..119a556 100644
--- a/test/tint/builtins/gen/literal/textureStore/731349.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/731349.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureStore_731349(texture2d<float, access::write> tint_symbol_1) {
-  tint_symbol_1.write(float4(0.0f), uint2(int2(0)));
+  tint_symbol_1.write(float4(1.0f), uint2(int2(1)));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/731349.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/731349.wgsl.expected.spvasm
index 8649d67..8bba6aa 100644
--- a/test/tint/builtins/gen/literal/textureStore/731349.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/731349.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 35
+; Bound: 37
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -38,34 +38,36 @@
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
-         %20 = OpConstantNull %v2int
-         %21 = OpTypeFunction %v4float
+      %int_1 = OpConstant %int 1
+         %21 = OpConstantComposite %v2int %int_1 %int_1
     %float_1 = OpConstant %float 1
+         %23 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %24 = OpTypeFunction %v4float
 %textureStore_731349 = OpFunction %void None %12
          %15 = OpLabel
          %17 = OpLoad %11 %arg_0
-               OpImageWrite %17 %20 %5
+               OpImageWrite %17 %21 %23
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %21
-         %23 = OpLabel
-         %24 = OpFunctionCall %void %textureStore_731349
+%vertex_main_inner = OpFunction %v4float None %24
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %textureStore_731349
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %26 = OpLabel
-         %27 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %27
+         %29 = OpLabel
+         %30 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %30
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %textureStore_731349
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %textureStore_731349
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_731349
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureStore_731349
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/731349.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/731349.wgsl.expected.wgsl
index b659a87..db21ca0 100644
--- a/test/tint/builtins/gen/literal/textureStore/731349.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/731349.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba8unorm, write>;
 
 fn textureStore_731349() {
-  textureStore(arg_0, vec2<i32>(), vec4<f32>());
+  textureStore(arg_0, vec2<i32>(1i), vec4<f32>(1.0f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/73bbbc.wgsl b/test/tint/builtins/gen/literal/textureStore/73bbbc.wgsl
index 5498680..38fcded 100644
--- a/test/tint/builtins/gen/literal/textureStore/73bbbc.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/73bbbc.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureStore(texture: texture_storage_2d<rgba8unorm, write>, coords: vec2<u32>, value: vec4<f32>)
 fn textureStore_73bbbc() {
-  textureStore(arg_0, vec2<u32>(), vec4<f32>());
+  textureStore(arg_0, vec2<u32>(1u), vec4<f32>(1.f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/73bbbc.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/73bbbc.wgsl.expected.dxc.hlsl
index c0e09e4..c09389e 100644
--- a/test/tint/builtins/gen/literal/textureStore/73bbbc.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/73bbbc.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2D<float4> arg_0 : register(u0, space1);
 
 void textureStore_73bbbc() {
-  arg_0[(0u).xx] = (0.0f).xxxx;
+  arg_0[(1u).xx] = (1.0f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/73bbbc.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/73bbbc.wgsl.expected.fxc.hlsl
index c0e09e4..c09389e 100644
--- a/test/tint/builtins/gen/literal/textureStore/73bbbc.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/73bbbc.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2D<float4> arg_0 : register(u0, space1);
 
 void textureStore_73bbbc() {
-  arg_0[(0u).xx] = (0.0f).xxxx;
+  arg_0[(1u).xx] = (1.0f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/73bbbc.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/73bbbc.wgsl.expected.glsl
index ea855e6..6f63069 100644
--- a/test/tint/builtins/gen/literal/textureStore/73bbbc.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/73bbbc.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 layout(rgba8) uniform highp writeonly image2D arg_0;
 void textureStore_73bbbc() {
-  imageStore(arg_0, ivec2(uvec2(0u)), vec4(0.0f));
+  imageStore(arg_0, ivec2(uvec2(1u)), vec4(1.0f));
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 
 layout(rgba8) uniform highp writeonly image2D arg_0;
 void textureStore_73bbbc() {
-  imageStore(arg_0, ivec2(uvec2(0u)), vec4(0.0f));
+  imageStore(arg_0, ivec2(uvec2(1u)), vec4(1.0f));
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 layout(rgba8) uniform highp writeonly image2D arg_0;
 void textureStore_73bbbc() {
-  imageStore(arg_0, ivec2(uvec2(0u)), vec4(0.0f));
+  imageStore(arg_0, ivec2(uvec2(1u)), vec4(1.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureStore/73bbbc.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/73bbbc.wgsl.expected.msl
index 3c94e3d..bb254bd 100644
--- a/test/tint/builtins/gen/literal/textureStore/73bbbc.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/73bbbc.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureStore_73bbbc(texture2d<float, access::write> tint_symbol_1) {
-  tint_symbol_1.write(float4(0.0f), uint2(uint2(0u)));
+  tint_symbol_1.write(float4(1.0f), uint2(uint2(1u)));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/73bbbc.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/73bbbc.wgsl.expected.spvasm
index 2f84672..624ad76 100644
--- a/test/tint/builtins/gen/literal/textureStore/73bbbc.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/73bbbc.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 35
+; Bound: 37
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -38,34 +38,36 @@
          %12 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
-         %20 = OpConstantNull %v2uint
-         %21 = OpTypeFunction %v4float
+     %uint_1 = OpConstant %uint 1
+         %21 = OpConstantComposite %v2uint %uint_1 %uint_1
     %float_1 = OpConstant %float 1
+         %23 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %24 = OpTypeFunction %v4float
 %textureStore_73bbbc = OpFunction %void None %12
          %15 = OpLabel
          %17 = OpLoad %11 %arg_0
-               OpImageWrite %17 %20 %5
+               OpImageWrite %17 %21 %23
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %21
-         %23 = OpLabel
-         %24 = OpFunctionCall %void %textureStore_73bbbc
+%vertex_main_inner = OpFunction %v4float None %24
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %textureStore_73bbbc
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %26 = OpLabel
-         %27 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %27
+         %29 = OpLabel
+         %30 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %30
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %textureStore_73bbbc
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %textureStore_73bbbc
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_73bbbc
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureStore_73bbbc
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/73bbbc.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/73bbbc.wgsl.expected.wgsl
index 9ad3038..9365f30 100644
--- a/test/tint/builtins/gen/literal/textureStore/73bbbc.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/73bbbc.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba8unorm, write>;
 
 fn textureStore_73bbbc() {
-  textureStore(arg_0, vec2<u32>(), vec4<f32>());
+  textureStore(arg_0, vec2<u32>(1u), vec4<f32>(1.0f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/752da6.wgsl b/test/tint/builtins/gen/literal/textureStore/752da6.wgsl
index ddb2812..a9c9a47 100644
--- a/test/tint/builtins/gen/literal/textureStore/752da6.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/752da6.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureStore(texture: texture_storage_2d<rgba32sint, write>, coords: vec2<i32>, value: vec4<i32>)
 fn textureStore_752da6() {
-  textureStore(arg_0, vec2<i32>(), vec4<i32>());
+  textureStore(arg_0, vec2<i32>(1i), vec4<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/752da6.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/752da6.wgsl.expected.dxc.hlsl
index f65a408..cc81976 100644
--- a/test/tint/builtins/gen/literal/textureStore/752da6.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/752da6.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2D<int4> arg_0 : register(u0, space1);
 
 void textureStore_752da6() {
-  arg_0[(0).xx] = (0).xxxx;
+  arg_0[(1).xx] = (1).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/752da6.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/752da6.wgsl.expected.fxc.hlsl
index f65a408..cc81976 100644
--- a/test/tint/builtins/gen/literal/textureStore/752da6.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/752da6.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2D<int4> arg_0 : register(u0, space1);
 
 void textureStore_752da6() {
-  arg_0[(0).xx] = (0).xxxx;
+  arg_0[(1).xx] = (1).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/752da6.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/752da6.wgsl.expected.glsl
index 03ea3bb..04635eb 100644
--- a/test/tint/builtins/gen/literal/textureStore/752da6.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/752da6.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 layout(rgba32i) uniform highp writeonly iimage2D arg_0;
 void textureStore_752da6() {
-  imageStore(arg_0, ivec2(0), ivec4(0));
+  imageStore(arg_0, ivec2(1), ivec4(1));
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 
 layout(rgba32i) uniform highp writeonly iimage2D arg_0;
 void textureStore_752da6() {
-  imageStore(arg_0, ivec2(0), ivec4(0));
+  imageStore(arg_0, ivec2(1), ivec4(1));
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 layout(rgba32i) uniform highp writeonly iimage2D arg_0;
 void textureStore_752da6() {
-  imageStore(arg_0, ivec2(0), ivec4(0));
+  imageStore(arg_0, ivec2(1), ivec4(1));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureStore/752da6.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/752da6.wgsl.expected.msl
index 74e6cb2..3c0fbb7 100644
--- a/test/tint/builtins/gen/literal/textureStore/752da6.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/752da6.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureStore_752da6(texture2d<int, access::write> tint_symbol_1) {
-  tint_symbol_1.write(int4(0), uint2(int2(0)));
+  tint_symbol_1.write(int4(1), uint2(int2(1)));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/752da6.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/752da6.wgsl.expected.spvasm
index 35b57fb..ea0c305 100644
--- a/test/tint/builtins/gen/literal/textureStore/752da6.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/752da6.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 37
+; Bound: 38
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -38,36 +38,37 @@
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
       %v2int = OpTypeVector %int 2
-         %20 = OpConstantNull %v2int
+      %int_1 = OpConstant %int 1
+         %21 = OpConstantComposite %v2int %int_1 %int_1
       %v4int = OpTypeVector %int 4
-         %22 = OpConstantNull %v4int
-         %23 = OpTypeFunction %v4float
+         %23 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+         %24 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_752da6 = OpFunction %void None %13
          %16 = OpLabel
          %18 = OpLoad %11 %arg_0
-               OpImageWrite %18 %20 %22
+               OpImageWrite %18 %21 %23
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %23
-         %25 = OpLabel
-         %26 = OpFunctionCall %void %textureStore_752da6
+%vertex_main_inner = OpFunction %v4float None %24
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %textureStore_752da6
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %28 = OpLabel
-         %29 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %29
+         %29 = OpLabel
+         %30 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %30
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_752da6
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureStore_752da6
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureStore_752da6
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureStore_752da6
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/752da6.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/752da6.wgsl.expected.wgsl
index 9f4e06d..c953b69 100644
--- a/test/tint/builtins/gen/literal/textureStore/752da6.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/752da6.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba32sint, write>;
 
 fn textureStore_752da6() {
-  textureStore(arg_0, vec2<i32>(), vec4<i32>());
+  textureStore(arg_0, vec2<i32>(1i), vec4<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/779d14.wgsl b/test/tint/builtins/gen/literal/textureStore/779d14.wgsl
index 464bf9d3..0d358c9 100644
--- a/test/tint/builtins/gen/literal/textureStore/779d14.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/779d14.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureStore(texture: texture_storage_2d_array<rgba16uint, write>, coords: vec2<u32>, array_index: u32, value: vec4<u32>)
 fn textureStore_779d14() {
-  textureStore(arg_0, vec2<u32>(), 1u, vec4<u32>());
+  textureStore(arg_0, vec2<u32>(1u), 1u, vec4<u32>(1u));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/779d14.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/779d14.wgsl.expected.dxc.hlsl
index 253eae2..1e23d25 100644
--- a/test/tint/builtins/gen/literal/textureStore/779d14.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/779d14.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 void textureStore_779d14() {
-  arg_0[uint3(0u, 0u, 1u)] = (0u).xxxx;
+  arg_0[uint3((1u).xx, 1u)] = (1u).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/779d14.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/779d14.wgsl.expected.fxc.hlsl
index 253eae2..1e23d25 100644
--- a/test/tint/builtins/gen/literal/textureStore/779d14.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/779d14.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 void textureStore_779d14() {
-  arg_0[uint3(0u, 0u, 1u)] = (0u).xxxx;
+  arg_0[uint3((1u).xx, 1u)] = (1u).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/779d14.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/779d14.wgsl.expected.glsl
index 01199d0..2f3f36f 100644
--- a/test/tint/builtins/gen/literal/textureStore/779d14.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/779d14.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 layout(rgba16ui) uniform highp writeonly uimage2DArray arg_0;
 void textureStore_779d14() {
-  imageStore(arg_0, ivec3(uvec3(0u, 0u, 1u)), uvec4(0u));
+  imageStore(arg_0, ivec3(uvec3(uvec2(1u), 1u)), uvec4(1u));
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 
 layout(rgba16ui) uniform highp writeonly uimage2DArray arg_0;
 void textureStore_779d14() {
-  imageStore(arg_0, ivec3(uvec3(0u, 0u, 1u)), uvec4(0u));
+  imageStore(arg_0, ivec3(uvec3(uvec2(1u), 1u)), uvec4(1u));
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 layout(rgba16ui) uniform highp writeonly uimage2DArray arg_0;
 void textureStore_779d14() {
-  imageStore(arg_0, ivec3(uvec3(0u, 0u, 1u)), uvec4(0u));
+  imageStore(arg_0, ivec3(uvec3(uvec2(1u), 1u)), uvec4(1u));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureStore/779d14.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/779d14.wgsl.expected.msl
index 0593462..b53b070 100644
--- a/test/tint/builtins/gen/literal/textureStore/779d14.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/779d14.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureStore_779d14(texture2d_array<uint, access::write> tint_symbol_1) {
-  tint_symbol_1.write(uint4(0u), uint2(uint2(0u)), 1u);
+  tint_symbol_1.write(uint4(1u), uint2(uint2(1u)), 1u);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/779d14.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/779d14.wgsl.expected.spvasm
index affc5ee..76d74c7 100644
--- a/test/tint/builtins/gen/literal/textureStore/779d14.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/779d14.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 39
+; Bound: 42
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -38,38 +38,41 @@
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
      %v3uint = OpTypeVector %uint 3
-     %uint_0 = OpConstant %uint 0
+     %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %22 = OpConstantComposite %v3uint %uint_0 %uint_0 %uint_1
+         %22 = OpConstantComposite %v2uint %uint_1 %uint_1
      %v4uint = OpTypeVector %uint 4
-         %24 = OpConstantNull %v4uint
-         %25 = OpTypeFunction %v4float
+         %27 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+         %28 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_779d14 = OpFunction %void None %13
          %16 = OpLabel
          %18 = OpLoad %11 %arg_0
-               OpImageWrite %18 %22 %24
+         %23 = OpCompositeExtract %uint %22 0
+         %24 = OpCompositeExtract %uint %22 1
+         %25 = OpCompositeConstruct %v3uint %23 %24 %uint_1
+               OpImageWrite %18 %25 %27
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %25
-         %27 = OpLabel
-         %28 = OpFunctionCall %void %textureStore_779d14
+%vertex_main_inner = OpFunction %v4float None %28
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %textureStore_779d14
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %30 = OpLabel
-         %31 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %31
+         %33 = OpLabel
+         %34 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %34
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureStore_779d14
+         %37 = OpLabel
+         %38 = OpFunctionCall %void %textureStore_779d14
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureStore_779d14
+         %40 = OpLabel
+         %41 = OpFunctionCall %void %textureStore_779d14
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/779d14.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/779d14.wgsl.expected.wgsl
index baf07fd..e602376 100644
--- a/test/tint/builtins/gen/literal/textureStore/779d14.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/779d14.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba16uint, write>;
 
 fn textureStore_779d14() {
-  textureStore(arg_0, vec2<u32>(), 1u, vec4<u32>());
+  textureStore(arg_0, vec2<u32>(1u), 1u, vec4<u32>(1u));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/77c0ae.wgsl b/test/tint/builtins/gen/literal/textureStore/77c0ae.wgsl
index 8cfde02..d3629f3 100644
--- a/test/tint/builtins/gen/literal/textureStore/77c0ae.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/77c0ae.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureStore(texture: texture_storage_2d<rgba8uint, write>, coords: vec2<i32>, value: vec4<u32>)
 fn textureStore_77c0ae() {
-  textureStore(arg_0, vec2<i32>(), vec4<u32>());
+  textureStore(arg_0, vec2<i32>(1i), vec4<u32>(1u));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/77c0ae.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/77c0ae.wgsl.expected.dxc.hlsl
index 31d53b3..7515172 100644
--- a/test/tint/builtins/gen/literal/textureStore/77c0ae.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/77c0ae.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2D<uint4> arg_0 : register(u0, space1);
 
 void textureStore_77c0ae() {
-  arg_0[(0).xx] = (0u).xxxx;
+  arg_0[(1).xx] = (1u).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/77c0ae.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/77c0ae.wgsl.expected.fxc.hlsl
index 31d53b3..7515172 100644
--- a/test/tint/builtins/gen/literal/textureStore/77c0ae.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/77c0ae.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2D<uint4> arg_0 : register(u0, space1);
 
 void textureStore_77c0ae() {
-  arg_0[(0).xx] = (0u).xxxx;
+  arg_0[(1).xx] = (1u).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/77c0ae.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/77c0ae.wgsl.expected.glsl
index 34d7601..087a5ea 100644
--- a/test/tint/builtins/gen/literal/textureStore/77c0ae.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/77c0ae.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 layout(rgba8ui) uniform highp writeonly uimage2D arg_0;
 void textureStore_77c0ae() {
-  imageStore(arg_0, ivec2(0), uvec4(0u));
+  imageStore(arg_0, ivec2(1), uvec4(1u));
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 
 layout(rgba8ui) uniform highp writeonly uimage2D arg_0;
 void textureStore_77c0ae() {
-  imageStore(arg_0, ivec2(0), uvec4(0u));
+  imageStore(arg_0, ivec2(1), uvec4(1u));
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 layout(rgba8ui) uniform highp writeonly uimage2D arg_0;
 void textureStore_77c0ae() {
-  imageStore(arg_0, ivec2(0), uvec4(0u));
+  imageStore(arg_0, ivec2(1), uvec4(1u));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureStore/77c0ae.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/77c0ae.wgsl.expected.msl
index b5866746b..cbf7a2e 100644
--- a/test/tint/builtins/gen/literal/textureStore/77c0ae.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/77c0ae.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureStore_77c0ae(texture2d<uint, access::write> tint_symbol_1) {
-  tint_symbol_1.write(uint4(0u), uint2(int2(0)));
+  tint_symbol_1.write(uint4(1u), uint2(int2(1)));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/77c0ae.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/77c0ae.wgsl.expected.spvasm
index 7af51d4..40e4b5a 100644
--- a/test/tint/builtins/gen/literal/textureStore/77c0ae.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/77c0ae.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 38
+; Bound: 40
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -39,36 +39,38 @@
          %13 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
-         %21 = OpConstantNull %v2int
+      %int_1 = OpConstant %int 1
+         %22 = OpConstantComposite %v2int %int_1 %int_1
      %v4uint = OpTypeVector %uint 4
-         %23 = OpConstantNull %v4uint
-         %24 = OpTypeFunction %v4float
+     %uint_1 = OpConstant %uint 1
+         %25 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+         %26 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_77c0ae = OpFunction %void None %13
          %16 = OpLabel
          %18 = OpLoad %11 %arg_0
-               OpImageWrite %18 %21 %23
+               OpImageWrite %18 %22 %25
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %24
-         %26 = OpLabel
-         %27 = OpFunctionCall %void %textureStore_77c0ae
+%vertex_main_inner = OpFunction %v4float None %26
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %textureStore_77c0ae
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %29 = OpLabel
-         %30 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %30
+         %31 = OpLabel
+         %32 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %32
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_77c0ae
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureStore_77c0ae
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_77c0ae
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %textureStore_77c0ae
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/77c0ae.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/77c0ae.wgsl.expected.wgsl
index ddc73be..3a10e1e 100644
--- a/test/tint/builtins/gen/literal/textureStore/77c0ae.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/77c0ae.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba8uint, write>;
 
 fn textureStore_77c0ae() {
-  textureStore(arg_0, vec2<i32>(), vec4<u32>());
+  textureStore(arg_0, vec2<i32>(1i), vec4<u32>(1u));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/7bb211.wgsl b/test/tint/builtins/gen/literal/textureStore/7bb211.wgsl
index dd6f0c7..685eb9f 100644
--- a/test/tint/builtins/gen/literal/textureStore/7bb211.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/7bb211.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureStore(texture: texture_storage_2d_array<rg32sint, write>, coords: vec2<i32>, array_index: u32, value: vec4<i32>)
 fn textureStore_7bb211() {
-  textureStore(arg_0, vec2<i32>(), 1u, vec4<i32>());
+  textureStore(arg_0, vec2<i32>(1i), 1u, vec4<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/7bb211.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/7bb211.wgsl.expected.dxc.hlsl
index b1a3e77..a9bc91a 100644
--- a/test/tint/builtins/gen/literal/textureStore/7bb211.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/7bb211.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 void textureStore_7bb211() {
-  arg_0[int3(0, 0, int(1u))] = (0).xxxx;
+  arg_0[int3((1).xx, int(1u))] = (1).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/7bb211.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/7bb211.wgsl.expected.fxc.hlsl
index b1a3e77..a9bc91a 100644
--- a/test/tint/builtins/gen/literal/textureStore/7bb211.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/7bb211.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 void textureStore_7bb211() {
-  arg_0[int3(0, 0, int(1u))] = (0).xxxx;
+  arg_0[int3((1).xx, int(1u))] = (1).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/7bb211.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/7bb211.wgsl.expected.msl
index 54eca42..60815c1 100644
--- a/test/tint/builtins/gen/literal/textureStore/7bb211.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/7bb211.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureStore_7bb211(texture2d_array<int, access::write> tint_symbol_1) {
-  tint_symbol_1.write(int4(0), uint2(int2(0)), 1u);
+  tint_symbol_1.write(int4(1), uint2(int2(1)), 1u);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/7bb211.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/7bb211.wgsl.expected.spvasm
index fde30d8..faf3ec8 100644
--- a/test/tint/builtins/gen/literal/textureStore/7bb211.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/7bb211.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 41
+; Bound: 45
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
@@ -39,40 +39,44 @@
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
       %v3int = OpTypeVector %int 3
-      %int_0 = OpConstant %int 0
+      %v2int = OpTypeVector %int 2
+      %int_1 = OpConstant %int 1
+         %22 = OpConstantComposite %v2int %int_1 %int_1
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
       %v4int = OpTypeVector %int 4
-         %26 = OpConstantNull %v4int
-         %27 = OpTypeFunction %v4float
+         %30 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+         %31 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_7bb211 = OpFunction %void None %13
          %16 = OpLabel
          %18 = OpLoad %11 %arg_0
-         %21 = OpBitcast %int %uint_1
-         %24 = OpCompositeConstruct %v3int %int_0 %int_0 %21
-               OpImageWrite %18 %24 %26
+         %23 = OpCompositeExtract %int %22 0
+         %24 = OpCompositeExtract %int %22 1
+         %25 = OpBitcast %int %uint_1
+         %28 = OpCompositeConstruct %v3int %23 %24 %25
+               OpImageWrite %18 %28 %30
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %27
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %textureStore_7bb211
+%vertex_main_inner = OpFunction %v4float None %31
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureStore_7bb211
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %32 = OpLabel
-         %33 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %33
+         %36 = OpLabel
+         %37 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %37
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_7bb211
+         %40 = OpLabel
+         %41 = OpFunctionCall %void %textureStore_7bb211
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_7bb211
+         %43 = OpLabel
+         %44 = OpFunctionCall %void %textureStore_7bb211
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/7bb211.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/7bb211.wgsl.expected.wgsl
index 99a7440..1badce8 100644
--- a/test/tint/builtins/gen/literal/textureStore/7bb211.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/7bb211.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rg32sint, write>;
 
 fn textureStore_7bb211() {
-  textureStore(arg_0, vec2<i32>(), 1u, vec4<i32>());
+  textureStore(arg_0, vec2<i32>(1i), 1u, vec4<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/7cec8d.wgsl b/test/tint/builtins/gen/literal/textureStore/7cec8d.wgsl
index c22261a..a3533ae 100644
--- a/test/tint/builtins/gen/literal/textureStore/7cec8d.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/7cec8d.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureStore(texture: texture_storage_2d_array<rgba32sint, write>, coords: vec2<i32>, array_index: i32, value: vec4<i32>)
 fn textureStore_7cec8d() {
-  textureStore(arg_0, vec2<i32>(), 1i, vec4<i32>());
+  textureStore(arg_0, vec2<i32>(1i), 1i, vec4<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/7cec8d.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/7cec8d.wgsl.expected.dxc.hlsl
index a1a4198..76104fa 100644
--- a/test/tint/builtins/gen/literal/textureStore/7cec8d.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/7cec8d.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 void textureStore_7cec8d() {
-  arg_0[int3(0, 0, 1)] = (0).xxxx;
+  arg_0[int3((1).xx, 1)] = (1).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/7cec8d.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/7cec8d.wgsl.expected.fxc.hlsl
index a1a4198..76104fa 100644
--- a/test/tint/builtins/gen/literal/textureStore/7cec8d.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/7cec8d.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 void textureStore_7cec8d() {
-  arg_0[int3(0, 0, 1)] = (0).xxxx;
+  arg_0[int3((1).xx, 1)] = (1).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/7cec8d.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/7cec8d.wgsl.expected.glsl
index 0de3060..3846e41 100644
--- a/test/tint/builtins/gen/literal/textureStore/7cec8d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/7cec8d.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 layout(rgba32i) uniform highp writeonly iimage2DArray arg_0;
 void textureStore_7cec8d() {
-  imageStore(arg_0, ivec3(0, 0, 1), ivec4(0));
+  imageStore(arg_0, ivec3(ivec2(1), 1), ivec4(1));
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 
 layout(rgba32i) uniform highp writeonly iimage2DArray arg_0;
 void textureStore_7cec8d() {
-  imageStore(arg_0, ivec3(0, 0, 1), ivec4(0));
+  imageStore(arg_0, ivec3(ivec2(1), 1), ivec4(1));
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 layout(rgba32i) uniform highp writeonly iimage2DArray arg_0;
 void textureStore_7cec8d() {
-  imageStore(arg_0, ivec3(0, 0, 1), ivec4(0));
+  imageStore(arg_0, ivec3(ivec2(1), 1), ivec4(1));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureStore/7cec8d.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/7cec8d.wgsl.expected.msl
index 912d7c6..235e6f5 100644
--- a/test/tint/builtins/gen/literal/textureStore/7cec8d.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/7cec8d.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureStore_7cec8d(texture2d_array<int, access::write> tint_symbol_1) {
-  tint_symbol_1.write(int4(0), uint2(int2(0)), 1);
+  tint_symbol_1.write(int4(1), uint2(int2(1)), 1);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/7cec8d.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/7cec8d.wgsl.expected.spvasm
index 5ad44d2..572588a 100644
--- a/test/tint/builtins/gen/literal/textureStore/7cec8d.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/7cec8d.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 39
+; Bound: 42
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -38,38 +38,41 @@
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
       %v3int = OpTypeVector %int 3
-      %int_0 = OpConstant %int 0
+      %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %22 = OpConstantComposite %v3int %int_0 %int_0 %int_1
+         %22 = OpConstantComposite %v2int %int_1 %int_1
       %v4int = OpTypeVector %int 4
-         %24 = OpConstantNull %v4int
-         %25 = OpTypeFunction %v4float
+         %27 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+         %28 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_7cec8d = OpFunction %void None %13
          %16 = OpLabel
          %18 = OpLoad %11 %arg_0
-               OpImageWrite %18 %22 %24
+         %23 = OpCompositeExtract %int %22 0
+         %24 = OpCompositeExtract %int %22 1
+         %25 = OpCompositeConstruct %v3int %23 %24 %int_1
+               OpImageWrite %18 %25 %27
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %25
-         %27 = OpLabel
-         %28 = OpFunctionCall %void %textureStore_7cec8d
+%vertex_main_inner = OpFunction %v4float None %28
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %textureStore_7cec8d
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %30 = OpLabel
-         %31 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %31
+         %33 = OpLabel
+         %34 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %34
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureStore_7cec8d
+         %37 = OpLabel
+         %38 = OpFunctionCall %void %textureStore_7cec8d
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureStore_7cec8d
+         %40 = OpLabel
+         %41 = OpFunctionCall %void %textureStore_7cec8d
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/7cec8d.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/7cec8d.wgsl.expected.wgsl
index 1faa341..2b21dc1 100644
--- a/test/tint/builtins/gen/literal/textureStore/7cec8d.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/7cec8d.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba32sint, write>;
 
 fn textureStore_7cec8d() {
-  textureStore(arg_0, vec2<i32>(), 1i, vec4<i32>());
+  textureStore(arg_0, vec2<i32>(1i), 1i, vec4<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/7cf6e7.wgsl b/test/tint/builtins/gen/literal/textureStore/7cf6e7.wgsl
index 72e6ebf..a900407 100644
--- a/test/tint/builtins/gen/literal/textureStore/7cf6e7.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/7cf6e7.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureStore(texture: texture_storage_2d<rgba16float, write>, coords: vec2<u32>, value: vec4<f32>)
 fn textureStore_7cf6e7() {
-  textureStore(arg_0, vec2<u32>(), vec4<f32>());
+  textureStore(arg_0, vec2<u32>(1u), vec4<f32>(1.f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/7cf6e7.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/7cf6e7.wgsl.expected.dxc.hlsl
index 59d0258..7579779 100644
--- a/test/tint/builtins/gen/literal/textureStore/7cf6e7.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/7cf6e7.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2D<float4> arg_0 : register(u0, space1);
 
 void textureStore_7cf6e7() {
-  arg_0[(0u).xx] = (0.0f).xxxx;
+  arg_0[(1u).xx] = (1.0f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/7cf6e7.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/7cf6e7.wgsl.expected.fxc.hlsl
index 59d0258..7579779 100644
--- a/test/tint/builtins/gen/literal/textureStore/7cf6e7.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/7cf6e7.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2D<float4> arg_0 : register(u0, space1);
 
 void textureStore_7cf6e7() {
-  arg_0[(0u).xx] = (0.0f).xxxx;
+  arg_0[(1u).xx] = (1.0f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/7cf6e7.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/7cf6e7.wgsl.expected.glsl
index cfd83a1..25d6a3c 100644
--- a/test/tint/builtins/gen/literal/textureStore/7cf6e7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/7cf6e7.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 layout(rgba16f) uniform highp writeonly image2D arg_0;
 void textureStore_7cf6e7() {
-  imageStore(arg_0, ivec2(uvec2(0u)), vec4(0.0f));
+  imageStore(arg_0, ivec2(uvec2(1u)), vec4(1.0f));
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 
 layout(rgba16f) uniform highp writeonly image2D arg_0;
 void textureStore_7cf6e7() {
-  imageStore(arg_0, ivec2(uvec2(0u)), vec4(0.0f));
+  imageStore(arg_0, ivec2(uvec2(1u)), vec4(1.0f));
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 layout(rgba16f) uniform highp writeonly image2D arg_0;
 void textureStore_7cf6e7() {
-  imageStore(arg_0, ivec2(uvec2(0u)), vec4(0.0f));
+  imageStore(arg_0, ivec2(uvec2(1u)), vec4(1.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureStore/7cf6e7.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/7cf6e7.wgsl.expected.msl
index 9140107..e3638bc 100644
--- a/test/tint/builtins/gen/literal/textureStore/7cf6e7.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/7cf6e7.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureStore_7cf6e7(texture2d<float, access::write> tint_symbol_1) {
-  tint_symbol_1.write(float4(0.0f), uint2(uint2(0u)));
+  tint_symbol_1.write(float4(1.0f), uint2(uint2(1u)));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/7cf6e7.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/7cf6e7.wgsl.expected.spvasm
index b2ba99c..51603e9 100644
--- a/test/tint/builtins/gen/literal/textureStore/7cf6e7.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/7cf6e7.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 35
+; Bound: 37
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -38,34 +38,36 @@
          %12 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
-         %20 = OpConstantNull %v2uint
-         %21 = OpTypeFunction %v4float
+     %uint_1 = OpConstant %uint 1
+         %21 = OpConstantComposite %v2uint %uint_1 %uint_1
     %float_1 = OpConstant %float 1
+         %23 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %24 = OpTypeFunction %v4float
 %textureStore_7cf6e7 = OpFunction %void None %12
          %15 = OpLabel
          %17 = OpLoad %11 %arg_0
-               OpImageWrite %17 %20 %5
+               OpImageWrite %17 %21 %23
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %21
-         %23 = OpLabel
-         %24 = OpFunctionCall %void %textureStore_7cf6e7
+%vertex_main_inner = OpFunction %v4float None %24
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %textureStore_7cf6e7
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %26 = OpLabel
-         %27 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %27
+         %29 = OpLabel
+         %30 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %30
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %textureStore_7cf6e7
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %textureStore_7cf6e7
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_7cf6e7
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureStore_7cf6e7
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/7cf6e7.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/7cf6e7.wgsl.expected.wgsl
index 8a201a5..2a97507 100644
--- a/test/tint/builtins/gen/literal/textureStore/7cf6e7.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/7cf6e7.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba16float, write>;
 
 fn textureStore_7cf6e7() {
-  textureStore(arg_0, vec2<u32>(), vec4<f32>());
+  textureStore(arg_0, vec2<u32>(1u), vec4<f32>(1.0f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/7f7fae.wgsl b/test/tint/builtins/gen/literal/textureStore/7f7fae.wgsl
index edc32c8..984453f 100644
--- a/test/tint/builtins/gen/literal/textureStore/7f7fae.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/7f7fae.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureStore(texture: texture_storage_1d<rgba8unorm, write>, coords: i32, value: vec4<f32>)
 fn textureStore_7f7fae() {
-  textureStore(arg_0, 1i, vec4<f32>());
+  textureStore(arg_0, 1i, vec4<f32>(1.f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/7f7fae.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/7f7fae.wgsl.expected.dxc.hlsl
index 35b13ff..20e42ad 100644
--- a/test/tint/builtins/gen/literal/textureStore/7f7fae.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/7f7fae.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture1D<float4> arg_0 : register(u0, space1);
 
 void textureStore_7f7fae() {
-  arg_0[1] = (0.0f).xxxx;
+  arg_0[1] = (1.0f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/7f7fae.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/7f7fae.wgsl.expected.fxc.hlsl
index 35b13ff..20e42ad 100644
--- a/test/tint/builtins/gen/literal/textureStore/7f7fae.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/7f7fae.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture1D<float4> arg_0 : register(u0, space1);
 
 void textureStore_7f7fae() {
-  arg_0[1] = (0.0f).xxxx;
+  arg_0[1] = (1.0f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/7f7fae.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/7f7fae.wgsl.expected.msl
index 979f11c..af3eb5d 100644
--- a/test/tint/builtins/gen/literal/textureStore/7f7fae.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/7f7fae.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureStore_7f7fae(texture1d<float, access::write> tint_symbol_1) {
-  tint_symbol_1.write(float4(0.0f), uint(1));
+  tint_symbol_1.write(float4(1.0f), uint(1));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/7f7fae.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/7f7fae.wgsl.expected.spvasm
index d1ac585..33d5647 100644
--- a/test/tint/builtins/gen/literal/textureStore/7f7fae.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/7f7fae.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 34
+; Bound: 35
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
@@ -39,33 +39,34 @@
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
-         %20 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
+         %21 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %22 = OpTypeFunction %v4float
 %textureStore_7f7fae = OpFunction %void None %12
          %15 = OpLabel
          %17 = OpLoad %11 %arg_0
-               OpImageWrite %17 %int_1 %5
+               OpImageWrite %17 %int_1 %21
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %20
-         %22 = OpLabel
-         %23 = OpFunctionCall %void %textureStore_7f7fae
+%vertex_main_inner = OpFunction %v4float None %22
+         %24 = OpLabel
+         %25 = OpFunctionCall %void %textureStore_7f7fae
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %25 = OpLabel
-         %26 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %26
+         %27 = OpLabel
+         %28 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %28
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %textureStore_7f7fae
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %textureStore_7f7fae
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_7f7fae
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureStore_7f7fae
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/7f7fae.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/7f7fae.wgsl.expected.wgsl
index 49ff2d8..c61ad6c 100644
--- a/test/tint/builtins/gen/literal/textureStore/7f7fae.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/7f7fae.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rgba8unorm, write>;
 
 fn textureStore_7f7fae() {
-  textureStore(arg_0, 1i, vec4<f32>());
+  textureStore(arg_0, 1i, vec4<f32>(1.0f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/804942.wgsl b/test/tint/builtins/gen/literal/textureStore/804942.wgsl
index 0f067ae..81e4032 100644
--- a/test/tint/builtins/gen/literal/textureStore/804942.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/804942.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureStore(texture: texture_storage_2d<r32sint, write>, coords: vec2<i32>, value: vec4<i32>)
 fn textureStore_804942() {
-  textureStore(arg_0, vec2<i32>(), vec4<i32>());
+  textureStore(arg_0, vec2<i32>(1i), vec4<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/804942.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/804942.wgsl.expected.dxc.hlsl
index 00b02cb..0b2fa1a 100644
--- a/test/tint/builtins/gen/literal/textureStore/804942.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/804942.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2D<int4> arg_0 : register(u0, space1);
 
 void textureStore_804942() {
-  arg_0[(0).xx] = (0).xxxx;
+  arg_0[(1).xx] = (1).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/804942.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/804942.wgsl.expected.fxc.hlsl
index 00b02cb..0b2fa1a 100644
--- a/test/tint/builtins/gen/literal/textureStore/804942.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/804942.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2D<int4> arg_0 : register(u0, space1);
 
 void textureStore_804942() {
-  arg_0[(0).xx] = (0).xxxx;
+  arg_0[(1).xx] = (1).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/804942.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/804942.wgsl.expected.glsl
index 7dc0f6d..6588904 100644
--- a/test/tint/builtins/gen/literal/textureStore/804942.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/804942.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 layout(r32i) uniform highp writeonly iimage2D arg_0;
 void textureStore_804942() {
-  imageStore(arg_0, ivec2(0), ivec4(0));
+  imageStore(arg_0, ivec2(1), ivec4(1));
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 
 layout(r32i) uniform highp writeonly iimage2D arg_0;
 void textureStore_804942() {
-  imageStore(arg_0, ivec2(0), ivec4(0));
+  imageStore(arg_0, ivec2(1), ivec4(1));
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 layout(r32i) uniform highp writeonly iimage2D arg_0;
 void textureStore_804942() {
-  imageStore(arg_0, ivec2(0), ivec4(0));
+  imageStore(arg_0, ivec2(1), ivec4(1));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureStore/804942.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/804942.wgsl.expected.msl
index f963439..e70c679 100644
--- a/test/tint/builtins/gen/literal/textureStore/804942.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/804942.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureStore_804942(texture2d<int, access::write> tint_symbol_1) {
-  tint_symbol_1.write(int4(0), uint2(int2(0)));
+  tint_symbol_1.write(int4(1), uint2(int2(1)));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/804942.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/804942.wgsl.expected.spvasm
index dc2c206..8c2d46b 100644
--- a/test/tint/builtins/gen/literal/textureStore/804942.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/804942.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 37
+; Bound: 38
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -38,36 +38,37 @@
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
       %v2int = OpTypeVector %int 2
-         %20 = OpConstantNull %v2int
+      %int_1 = OpConstant %int 1
+         %21 = OpConstantComposite %v2int %int_1 %int_1
       %v4int = OpTypeVector %int 4
-         %22 = OpConstantNull %v4int
-         %23 = OpTypeFunction %v4float
+         %23 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+         %24 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_804942 = OpFunction %void None %13
          %16 = OpLabel
          %18 = OpLoad %11 %arg_0
-               OpImageWrite %18 %20 %22
+               OpImageWrite %18 %21 %23
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %23
-         %25 = OpLabel
-         %26 = OpFunctionCall %void %textureStore_804942
+%vertex_main_inner = OpFunction %v4float None %24
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %textureStore_804942
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %28 = OpLabel
-         %29 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %29
+         %29 = OpLabel
+         %30 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %30
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_804942
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureStore_804942
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureStore_804942
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureStore_804942
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/804942.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/804942.wgsl.expected.wgsl
index 06f7057..9b4303e 100644
--- a/test/tint/builtins/gen/literal/textureStore/804942.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/804942.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d<r32sint, write>;
 
 fn textureStore_804942() {
-  textureStore(arg_0, vec2<i32>(), vec4<i32>());
+  textureStore(arg_0, vec2<i32>(1i), vec4<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/805dae.wgsl b/test/tint/builtins/gen/literal/textureStore/805dae.wgsl
index 6ae5db8..c71296c 100644
--- a/test/tint/builtins/gen/literal/textureStore/805dae.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/805dae.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureStore(texture: texture_storage_2d<rgba8snorm, write>, coords: vec2<i32>, value: vec4<f32>)
 fn textureStore_805dae() {
-  textureStore(arg_0, vec2<i32>(), vec4<f32>());
+  textureStore(arg_0, vec2<i32>(1i), vec4<f32>(1.f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/805dae.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/805dae.wgsl.expected.dxc.hlsl
index 8abb6a8..da9071f 100644
--- a/test/tint/builtins/gen/literal/textureStore/805dae.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/805dae.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2D<float4> arg_0 : register(u0, space1);
 
 void textureStore_805dae() {
-  arg_0[(0).xx] = (0.0f).xxxx;
+  arg_0[(1).xx] = (1.0f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/805dae.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/805dae.wgsl.expected.fxc.hlsl
index 8abb6a8..da9071f 100644
--- a/test/tint/builtins/gen/literal/textureStore/805dae.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/805dae.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2D<float4> arg_0 : register(u0, space1);
 
 void textureStore_805dae() {
-  arg_0[(0).xx] = (0.0f).xxxx;
+  arg_0[(1).xx] = (1.0f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/805dae.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/805dae.wgsl.expected.glsl
index 2265a73..3a71c44 100644
--- a/test/tint/builtins/gen/literal/textureStore/805dae.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/805dae.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 layout(rgba8_snorm) uniform highp writeonly image2D arg_0;
 void textureStore_805dae() {
-  imageStore(arg_0, ivec2(0), vec4(0.0f));
+  imageStore(arg_0, ivec2(1), vec4(1.0f));
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 
 layout(rgba8_snorm) uniform highp writeonly image2D arg_0;
 void textureStore_805dae() {
-  imageStore(arg_0, ivec2(0), vec4(0.0f));
+  imageStore(arg_0, ivec2(1), vec4(1.0f));
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 layout(rgba8_snorm) uniform highp writeonly image2D arg_0;
 void textureStore_805dae() {
-  imageStore(arg_0, ivec2(0), vec4(0.0f));
+  imageStore(arg_0, ivec2(1), vec4(1.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureStore/805dae.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/805dae.wgsl.expected.msl
index 2dfb818..63a5354 100644
--- a/test/tint/builtins/gen/literal/textureStore/805dae.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/805dae.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureStore_805dae(texture2d<float, access::write> tint_symbol_1) {
-  tint_symbol_1.write(float4(0.0f), uint2(int2(0)));
+  tint_symbol_1.write(float4(1.0f), uint2(int2(1)));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/805dae.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/805dae.wgsl.expected.spvasm
index 55b1d44..0e9c38e 100644
--- a/test/tint/builtins/gen/literal/textureStore/805dae.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/805dae.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 35
+; Bound: 37
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -38,34 +38,36 @@
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
-         %20 = OpConstantNull %v2int
-         %21 = OpTypeFunction %v4float
+      %int_1 = OpConstant %int 1
+         %21 = OpConstantComposite %v2int %int_1 %int_1
     %float_1 = OpConstant %float 1
+         %23 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %24 = OpTypeFunction %v4float
 %textureStore_805dae = OpFunction %void None %12
          %15 = OpLabel
          %17 = OpLoad %11 %arg_0
-               OpImageWrite %17 %20 %5
+               OpImageWrite %17 %21 %23
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %21
-         %23 = OpLabel
-         %24 = OpFunctionCall %void %textureStore_805dae
+%vertex_main_inner = OpFunction %v4float None %24
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %textureStore_805dae
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %26 = OpLabel
-         %27 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %27
+         %29 = OpLabel
+         %30 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %30
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %textureStore_805dae
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %textureStore_805dae
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_805dae
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureStore_805dae
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/805dae.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/805dae.wgsl.expected.wgsl
index 7bc5067..33f56c0 100644
--- a/test/tint/builtins/gen/literal/textureStore/805dae.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/805dae.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba8snorm, write>;
 
 fn textureStore_805dae() {
-  textureStore(arg_0, vec2<i32>(), vec4<f32>());
+  textureStore(arg_0, vec2<i32>(1i), vec4<f32>(1.0f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/83bcc1.wgsl b/test/tint/builtins/gen/literal/textureStore/83bcc1.wgsl
index 4f8e627..1876a36 100644
--- a/test/tint/builtins/gen/literal/textureStore/83bcc1.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/83bcc1.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureStore(texture: texture_storage_1d<rg32uint, write>, coords: i32, value: vec4<u32>)
 fn textureStore_83bcc1() {
-  textureStore(arg_0, 1i, vec4<u32>());
+  textureStore(arg_0, 1i, vec4<u32>(1u));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/83bcc1.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/83bcc1.wgsl.expected.dxc.hlsl
index 4ca45ec..7a4268f 100644
--- a/test/tint/builtins/gen/literal/textureStore/83bcc1.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/83bcc1.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture1D<uint4> arg_0 : register(u0, space1);
 
 void textureStore_83bcc1() {
-  arg_0[1] = (0u).xxxx;
+  arg_0[1] = (1u).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/83bcc1.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/83bcc1.wgsl.expected.fxc.hlsl
index 4ca45ec..7a4268f 100644
--- a/test/tint/builtins/gen/literal/textureStore/83bcc1.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/83bcc1.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture1D<uint4> arg_0 : register(u0, space1);
 
 void textureStore_83bcc1() {
-  arg_0[1] = (0u).xxxx;
+  arg_0[1] = (1u).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/83bcc1.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/83bcc1.wgsl.expected.msl
index da45ded..09d5cff 100644
--- a/test/tint/builtins/gen/literal/textureStore/83bcc1.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/83bcc1.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureStore_83bcc1(texture1d<uint, access::write> tint_symbol_1) {
-  tint_symbol_1.write(uint4(0u), uint(1));
+  tint_symbol_1.write(uint4(1u), uint(1));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/83bcc1.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/83bcc1.wgsl.expected.spvasm
index 666ea11..14d6958 100644
--- a/test/tint/builtins/gen/literal/textureStore/83bcc1.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/83bcc1.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 37
+; Bound: 38
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
@@ -42,34 +42,35 @@
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
      %v4uint = OpTypeVector %uint 4
-         %22 = OpConstantNull %v4uint
-         %23 = OpTypeFunction %v4float
+     %uint_1 = OpConstant %uint 1
+         %23 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+         %24 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_83bcc1 = OpFunction %void None %13
          %16 = OpLabel
          %18 = OpLoad %11 %arg_0
-               OpImageWrite %18 %int_1 %22
+               OpImageWrite %18 %int_1 %23
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %23
-         %25 = OpLabel
-         %26 = OpFunctionCall %void %textureStore_83bcc1
+%vertex_main_inner = OpFunction %v4float None %24
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %textureStore_83bcc1
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %28 = OpLabel
-         %29 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %29
+         %29 = OpLabel
+         %30 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %30
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_83bcc1
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureStore_83bcc1
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureStore_83bcc1
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureStore_83bcc1
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/83bcc1.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/83bcc1.wgsl.expected.wgsl
index 436eb30..68d5b9b 100644
--- a/test/tint/builtins/gen/literal/textureStore/83bcc1.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/83bcc1.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rg32uint, write>;
 
 fn textureStore_83bcc1() {
-  textureStore(arg_0, 1i, vec4<u32>());
+  textureStore(arg_0, 1i, vec4<u32>(1u));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/872747.wgsl b/test/tint/builtins/gen/literal/textureStore/872747.wgsl
index eb4d490..bb90202 100644
--- a/test/tint/builtins/gen/literal/textureStore/872747.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/872747.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureStore(texture: texture_storage_1d<rg32float, write>, coords: i32, value: vec4<f32>)
 fn textureStore_872747() {
-  textureStore(arg_0, 1i, vec4<f32>());
+  textureStore(arg_0, 1i, vec4<f32>(1.f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/872747.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/872747.wgsl.expected.dxc.hlsl
index abc0d22..2291734 100644
--- a/test/tint/builtins/gen/literal/textureStore/872747.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/872747.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture1D<float4> arg_0 : register(u0, space1);
 
 void textureStore_872747() {
-  arg_0[1] = (0.0f).xxxx;
+  arg_0[1] = (1.0f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/872747.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/872747.wgsl.expected.fxc.hlsl
index abc0d22..2291734 100644
--- a/test/tint/builtins/gen/literal/textureStore/872747.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/872747.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture1D<float4> arg_0 : register(u0, space1);
 
 void textureStore_872747() {
-  arg_0[1] = (0.0f).xxxx;
+  arg_0[1] = (1.0f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/872747.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/872747.wgsl.expected.msl
index 2c0461e..a019adb 100644
--- a/test/tint/builtins/gen/literal/textureStore/872747.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/872747.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureStore_872747(texture1d<float, access::write> tint_symbol_1) {
-  tint_symbol_1.write(float4(0.0f), uint(1));
+  tint_symbol_1.write(float4(1.0f), uint(1));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/872747.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/872747.wgsl.expected.spvasm
index 844f37d..d2782d1 100644
--- a/test/tint/builtins/gen/literal/textureStore/872747.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/872747.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 34
+; Bound: 35
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
@@ -40,33 +40,34 @@
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
-         %20 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
+         %21 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %22 = OpTypeFunction %v4float
 %textureStore_872747 = OpFunction %void None %12
          %15 = OpLabel
          %17 = OpLoad %11 %arg_0
-               OpImageWrite %17 %int_1 %5
+               OpImageWrite %17 %int_1 %21
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %20
-         %22 = OpLabel
-         %23 = OpFunctionCall %void %textureStore_872747
+%vertex_main_inner = OpFunction %v4float None %22
+         %24 = OpLabel
+         %25 = OpFunctionCall %void %textureStore_872747
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %25 = OpLabel
-         %26 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %26
+         %27 = OpLabel
+         %28 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %28
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %textureStore_872747
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %textureStore_872747
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_872747
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureStore_872747
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/872747.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/872747.wgsl.expected.wgsl
index 61eaae0..e4ef2e3 100644
--- a/test/tint/builtins/gen/literal/textureStore/872747.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/872747.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rg32float, write>;
 
 fn textureStore_872747() {
-  textureStore(arg_0, 1i, vec4<f32>());
+  textureStore(arg_0, 1i, vec4<f32>(1.0f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/8b9310.wgsl b/test/tint/builtins/gen/literal/textureStore/8b9310.wgsl
index e60ce76..e6e6f59 100644
--- a/test/tint/builtins/gen/literal/textureStore/8b9310.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/8b9310.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureStore(texture: texture_storage_3d<rgba16float, write>, coords: vec3<u32>, value: vec4<f32>)
 fn textureStore_8b9310() {
-  textureStore(arg_0, vec3<u32>(), vec4<f32>());
+  textureStore(arg_0, vec3<u32>(1u), vec4<f32>(1.f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/8b9310.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/8b9310.wgsl.expected.dxc.hlsl
index 1f1d30e..a37807c 100644
--- a/test/tint/builtins/gen/literal/textureStore/8b9310.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/8b9310.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture3D<float4> arg_0 : register(u0, space1);
 
 void textureStore_8b9310() {
-  arg_0[(0u).xxx] = (0.0f).xxxx;
+  arg_0[(1u).xxx] = (1.0f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/8b9310.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/8b9310.wgsl.expected.fxc.hlsl
index 1f1d30e..a37807c 100644
--- a/test/tint/builtins/gen/literal/textureStore/8b9310.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/8b9310.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture3D<float4> arg_0 : register(u0, space1);
 
 void textureStore_8b9310() {
-  arg_0[(0u).xxx] = (0.0f).xxxx;
+  arg_0[(1u).xxx] = (1.0f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/8b9310.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/8b9310.wgsl.expected.glsl
index 59512b5..9cb69a4 100644
--- a/test/tint/builtins/gen/literal/textureStore/8b9310.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/8b9310.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 layout(rgba16f) uniform highp writeonly image3D arg_0;
 void textureStore_8b9310() {
-  imageStore(arg_0, ivec3(uvec3(0u)), vec4(0.0f));
+  imageStore(arg_0, ivec3(uvec3(1u)), vec4(1.0f));
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 
 layout(rgba16f) uniform highp writeonly image3D arg_0;
 void textureStore_8b9310() {
-  imageStore(arg_0, ivec3(uvec3(0u)), vec4(0.0f));
+  imageStore(arg_0, ivec3(uvec3(1u)), vec4(1.0f));
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 layout(rgba16f) uniform highp writeonly image3D arg_0;
 void textureStore_8b9310() {
-  imageStore(arg_0, ivec3(uvec3(0u)), vec4(0.0f));
+  imageStore(arg_0, ivec3(uvec3(1u)), vec4(1.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureStore/8b9310.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/8b9310.wgsl.expected.msl
index 770d905..3aa438e 100644
--- a/test/tint/builtins/gen/literal/textureStore/8b9310.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/8b9310.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureStore_8b9310(texture3d<float, access::write> tint_symbol_1) {
-  tint_symbol_1.write(float4(0.0f), uint3(uint3(0u)));
+  tint_symbol_1.write(float4(1.0f), uint3(uint3(1u)));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/8b9310.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/8b9310.wgsl.expected.spvasm
index 65de91fe..156cfba 100644
--- a/test/tint/builtins/gen/literal/textureStore/8b9310.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/8b9310.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 35
+; Bound: 37
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -38,34 +38,36 @@
          %12 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
-         %20 = OpConstantNull %v3uint
-         %21 = OpTypeFunction %v4float
+     %uint_1 = OpConstant %uint 1
+         %21 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
     %float_1 = OpConstant %float 1
+         %23 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %24 = OpTypeFunction %v4float
 %textureStore_8b9310 = OpFunction %void None %12
          %15 = OpLabel
          %17 = OpLoad %11 %arg_0
-               OpImageWrite %17 %20 %5
+               OpImageWrite %17 %21 %23
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %21
-         %23 = OpLabel
-         %24 = OpFunctionCall %void %textureStore_8b9310
+%vertex_main_inner = OpFunction %v4float None %24
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %textureStore_8b9310
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %26 = OpLabel
-         %27 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %27
+         %29 = OpLabel
+         %30 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %30
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %textureStore_8b9310
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %textureStore_8b9310
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_8b9310
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureStore_8b9310
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/8b9310.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/8b9310.wgsl.expected.wgsl
index d0c0b53..a889fbc 100644
--- a/test/tint/builtins/gen/literal/textureStore/8b9310.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/8b9310.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rgba16float, write>;
 
 fn textureStore_8b9310() {
-  textureStore(arg_0, vec3<u32>(), vec4<f32>());
+  textureStore(arg_0, vec3<u32>(1u), vec4<f32>(1.0f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/8bb287.wgsl b/test/tint/builtins/gen/literal/textureStore/8bb287.wgsl
index d0da1e5..fc96428 100644
--- a/test/tint/builtins/gen/literal/textureStore/8bb287.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/8bb287.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureStore(texture: texture_storage_2d_array<rgba32sint, write>, coords: vec2<u32>, array_index: u32, value: vec4<i32>)
 fn textureStore_8bb287() {
-  textureStore(arg_0, vec2<u32>(), 1u, vec4<i32>());
+  textureStore(arg_0, vec2<u32>(1u), 1u, vec4<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/8bb287.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/8bb287.wgsl.expected.dxc.hlsl
index 418bf3d..13c15d1 100644
--- a/test/tint/builtins/gen/literal/textureStore/8bb287.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/8bb287.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 void textureStore_8bb287() {
-  arg_0[uint3(0u, 0u, 1u)] = (0).xxxx;
+  arg_0[uint3((1u).xx, 1u)] = (1).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/8bb287.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/8bb287.wgsl.expected.fxc.hlsl
index 418bf3d..13c15d1 100644
--- a/test/tint/builtins/gen/literal/textureStore/8bb287.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/8bb287.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 void textureStore_8bb287() {
-  arg_0[uint3(0u, 0u, 1u)] = (0).xxxx;
+  arg_0[uint3((1u).xx, 1u)] = (1).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/8bb287.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/8bb287.wgsl.expected.glsl
index da9c76e..88d82ad 100644
--- a/test/tint/builtins/gen/literal/textureStore/8bb287.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/8bb287.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 layout(rgba32i) uniform highp writeonly iimage2DArray arg_0;
 void textureStore_8bb287() {
-  imageStore(arg_0, ivec3(uvec3(0u, 0u, 1u)), ivec4(0));
+  imageStore(arg_0, ivec3(uvec3(uvec2(1u), 1u)), ivec4(1));
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 
 layout(rgba32i) uniform highp writeonly iimage2DArray arg_0;
 void textureStore_8bb287() {
-  imageStore(arg_0, ivec3(uvec3(0u, 0u, 1u)), ivec4(0));
+  imageStore(arg_0, ivec3(uvec3(uvec2(1u), 1u)), ivec4(1));
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 layout(rgba32i) uniform highp writeonly iimage2DArray arg_0;
 void textureStore_8bb287() {
-  imageStore(arg_0, ivec3(uvec3(0u, 0u, 1u)), ivec4(0));
+  imageStore(arg_0, ivec3(uvec3(uvec2(1u), 1u)), ivec4(1));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureStore/8bb287.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/8bb287.wgsl.expected.msl
index 4421d40..161933ad 100644
--- a/test/tint/builtins/gen/literal/textureStore/8bb287.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/8bb287.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureStore_8bb287(texture2d_array<int, access::write> tint_symbol_1) {
-  tint_symbol_1.write(int4(0), uint2(uint2(0u)), 1u);
+  tint_symbol_1.write(int4(1), uint2(uint2(1u)), 1u);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/8bb287.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/8bb287.wgsl.expected.spvasm
index e1b64d2..e5cbdf9 100644
--- a/test/tint/builtins/gen/literal/textureStore/8bb287.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/8bb287.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 40
+; Bound: 44
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -39,38 +39,42 @@
          %13 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
-     %uint_0 = OpConstant %uint 0
+     %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %23 = OpConstantComposite %v3uint %uint_0 %uint_0 %uint_1
+         %23 = OpConstantComposite %v2uint %uint_1 %uint_1
       %v4int = OpTypeVector %int 4
-         %25 = OpConstantNull %v4int
-         %26 = OpTypeFunction %v4float
+      %int_1 = OpConstant %int 1
+         %29 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+         %30 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_8bb287 = OpFunction %void None %13
          %16 = OpLabel
          %18 = OpLoad %11 %arg_0
-               OpImageWrite %18 %23 %25
+         %24 = OpCompositeExtract %uint %23 0
+         %25 = OpCompositeExtract %uint %23 1
+         %26 = OpCompositeConstruct %v3uint %24 %25 %uint_1
+               OpImageWrite %18 %26 %29
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %26
-         %28 = OpLabel
-         %29 = OpFunctionCall %void %textureStore_8bb287
+%vertex_main_inner = OpFunction %v4float None %30
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %textureStore_8bb287
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %31 = OpLabel
-         %32 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %32
+         %35 = OpLabel
+         %36 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %36
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureStore_8bb287
+         %39 = OpLabel
+         %40 = OpFunctionCall %void %textureStore_8bb287
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureStore_8bb287
+         %42 = OpLabel
+         %43 = OpFunctionCall %void %textureStore_8bb287
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/8bb287.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/8bb287.wgsl.expected.wgsl
index 7719279..cb13b94 100644
--- a/test/tint/builtins/gen/literal/textureStore/8bb287.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/8bb287.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba32sint, write>;
 
 fn textureStore_8bb287() {
-  textureStore(arg_0, vec2<u32>(), 1u, vec4<i32>());
+  textureStore(arg_0, vec2<u32>(1u), 1u, vec4<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/8c76e9.wgsl b/test/tint/builtins/gen/literal/textureStore/8c76e9.wgsl
index acabd4f..4b54c88 100644
--- a/test/tint/builtins/gen/literal/textureStore/8c76e9.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/8c76e9.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureStore(texture: texture_storage_1d<rgba16sint, write>, coords: u32, value: vec4<i32>)
 fn textureStore_8c76e9() {
-  textureStore(arg_0, 1u, vec4<i32>());
+  textureStore(arg_0, 1u, vec4<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/8c76e9.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/8c76e9.wgsl.expected.dxc.hlsl
index 26e5180..e02ac1d 100644
--- a/test/tint/builtins/gen/literal/textureStore/8c76e9.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/8c76e9.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture1D<int4> arg_0 : register(u0, space1);
 
 void textureStore_8c76e9() {
-  arg_0[1u] = (0).xxxx;
+  arg_0[1u] = (1).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/8c76e9.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/8c76e9.wgsl.expected.fxc.hlsl
index 26e5180..e02ac1d 100644
--- a/test/tint/builtins/gen/literal/textureStore/8c76e9.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/8c76e9.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture1D<int4> arg_0 : register(u0, space1);
 
 void textureStore_8c76e9() {
-  arg_0[1u] = (0).xxxx;
+  arg_0[1u] = (1).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/8c76e9.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/8c76e9.wgsl.expected.msl
index 9d8c1e2..bb42d24 100644
--- a/test/tint/builtins/gen/literal/textureStore/8c76e9.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/8c76e9.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureStore_8c76e9(texture1d<int, access::write> tint_symbol_1) {
-  tint_symbol_1.write(int4(0), uint(1u));
+  tint_symbol_1.write(int4(1), uint(1u));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/8c76e9.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/8c76e9.wgsl.expected.spvasm
index 14e31d5..b5bcf8b 100644
--- a/test/tint/builtins/gen/literal/textureStore/8c76e9.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/8c76e9.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 37
+; Bound: 38
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
@@ -41,34 +41,35 @@
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
       %v4int = OpTypeVector %int 4
-         %22 = OpConstantNull %v4int
-         %23 = OpTypeFunction %v4float
+      %int_1 = OpConstant %int 1
+         %23 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+         %24 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_8c76e9 = OpFunction %void None %13
          %16 = OpLabel
          %18 = OpLoad %11 %arg_0
-               OpImageWrite %18 %uint_1 %22
+               OpImageWrite %18 %uint_1 %23
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %23
-         %25 = OpLabel
-         %26 = OpFunctionCall %void %textureStore_8c76e9
+%vertex_main_inner = OpFunction %v4float None %24
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %textureStore_8c76e9
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %28 = OpLabel
-         %29 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %29
+         %29 = OpLabel
+         %30 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %30
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_8c76e9
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureStore_8c76e9
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureStore_8c76e9
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureStore_8c76e9
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/8c76e9.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/8c76e9.wgsl.expected.wgsl
index ec93e21..463506d 100644
--- a/test/tint/builtins/gen/literal/textureStore/8c76e9.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/8c76e9.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rgba16sint, write>;
 
 fn textureStore_8c76e9() {
-  textureStore(arg_0, 1u, vec4<i32>());
+  textureStore(arg_0, 1u, vec4<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/8dc54f.wgsl b/test/tint/builtins/gen/literal/textureStore/8dc54f.wgsl
index 528d387..0b2ba1e 100644
--- a/test/tint/builtins/gen/literal/textureStore/8dc54f.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/8dc54f.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureStore(texture: texture_storage_2d<rgba8uint, write>, coords: vec2<u32>, value: vec4<u32>)
 fn textureStore_8dc54f() {
-  textureStore(arg_0, vec2<u32>(), vec4<u32>());
+  textureStore(arg_0, vec2<u32>(1u), vec4<u32>(1u));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/8dc54f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/8dc54f.wgsl.expected.dxc.hlsl
index 3ef51f2..aba5618 100644
--- a/test/tint/builtins/gen/literal/textureStore/8dc54f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/8dc54f.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2D<uint4> arg_0 : register(u0, space1);
 
 void textureStore_8dc54f() {
-  arg_0[(0u).xx] = (0u).xxxx;
+  arg_0[(1u).xx] = (1u).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/8dc54f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/8dc54f.wgsl.expected.fxc.hlsl
index 3ef51f2..aba5618 100644
--- a/test/tint/builtins/gen/literal/textureStore/8dc54f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/8dc54f.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2D<uint4> arg_0 : register(u0, space1);
 
 void textureStore_8dc54f() {
-  arg_0[(0u).xx] = (0u).xxxx;
+  arg_0[(1u).xx] = (1u).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/8dc54f.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/8dc54f.wgsl.expected.glsl
index 5fbcbfd..9362b4c 100644
--- a/test/tint/builtins/gen/literal/textureStore/8dc54f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/8dc54f.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 layout(rgba8ui) uniform highp writeonly uimage2D arg_0;
 void textureStore_8dc54f() {
-  imageStore(arg_0, ivec2(uvec2(0u)), uvec4(0u));
+  imageStore(arg_0, ivec2(uvec2(1u)), uvec4(1u));
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 
 layout(rgba8ui) uniform highp writeonly uimage2D arg_0;
 void textureStore_8dc54f() {
-  imageStore(arg_0, ivec2(uvec2(0u)), uvec4(0u));
+  imageStore(arg_0, ivec2(uvec2(1u)), uvec4(1u));
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 layout(rgba8ui) uniform highp writeonly uimage2D arg_0;
 void textureStore_8dc54f() {
-  imageStore(arg_0, ivec2(uvec2(0u)), uvec4(0u));
+  imageStore(arg_0, ivec2(uvec2(1u)), uvec4(1u));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureStore/8dc54f.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/8dc54f.wgsl.expected.msl
index 0f2343a..1e8931d 100644
--- a/test/tint/builtins/gen/literal/textureStore/8dc54f.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/8dc54f.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureStore_8dc54f(texture2d<uint, access::write> tint_symbol_1) {
-  tint_symbol_1.write(uint4(0u), uint2(uint2(0u)));
+  tint_symbol_1.write(uint4(1u), uint2(uint2(1u)));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/8dc54f.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/8dc54f.wgsl.expected.spvasm
index 5431052..fad4e33 100644
--- a/test/tint/builtins/gen/literal/textureStore/8dc54f.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/8dc54f.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 37
+; Bound: 38
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -38,36 +38,37 @@
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
      %v2uint = OpTypeVector %uint 2
-         %20 = OpConstantNull %v2uint
+     %uint_1 = OpConstant %uint 1
+         %21 = OpConstantComposite %v2uint %uint_1 %uint_1
      %v4uint = OpTypeVector %uint 4
-         %22 = OpConstantNull %v4uint
-         %23 = OpTypeFunction %v4float
+         %23 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+         %24 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_8dc54f = OpFunction %void None %13
          %16 = OpLabel
          %18 = OpLoad %11 %arg_0
-               OpImageWrite %18 %20 %22
+               OpImageWrite %18 %21 %23
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %23
-         %25 = OpLabel
-         %26 = OpFunctionCall %void %textureStore_8dc54f
+%vertex_main_inner = OpFunction %v4float None %24
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %textureStore_8dc54f
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %28 = OpLabel
-         %29 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %29
+         %29 = OpLabel
+         %30 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %30
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_8dc54f
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureStore_8dc54f
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureStore_8dc54f
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureStore_8dc54f
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/8dc54f.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/8dc54f.wgsl.expected.wgsl
index 0c6ac87..9e1854b 100644
--- a/test/tint/builtins/gen/literal/textureStore/8dc54f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/8dc54f.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba8uint, write>;
 
 fn textureStore_8dc54f() {
-  textureStore(arg_0, vec2<u32>(), vec4<u32>());
+  textureStore(arg_0, vec2<u32>(1u), vec4<u32>(1u));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/8e0479.wgsl b/test/tint/builtins/gen/literal/textureStore/8e0479.wgsl
index d2873c5..b44640c 100644
--- a/test/tint/builtins/gen/literal/textureStore/8e0479.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/8e0479.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureStore(texture: texture_storage_2d_array<rgba32uint, write>, coords: vec2<i32>, array_index: i32, value: vec4<u32>)
 fn textureStore_8e0479() {
-  textureStore(arg_0, vec2<i32>(), 1i, vec4<u32>());
+  textureStore(arg_0, vec2<i32>(1i), 1i, vec4<u32>(1u));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/8e0479.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/8e0479.wgsl.expected.dxc.hlsl
index e0b8d20..da6deff 100644
--- a/test/tint/builtins/gen/literal/textureStore/8e0479.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/8e0479.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 void textureStore_8e0479() {
-  arg_0[int3(0, 0, 1)] = (0u).xxxx;
+  arg_0[int3((1).xx, 1)] = (1u).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/8e0479.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/8e0479.wgsl.expected.fxc.hlsl
index e0b8d20..da6deff 100644
--- a/test/tint/builtins/gen/literal/textureStore/8e0479.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/8e0479.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 void textureStore_8e0479() {
-  arg_0[int3(0, 0, 1)] = (0u).xxxx;
+  arg_0[int3((1).xx, 1)] = (1u).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/8e0479.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/8e0479.wgsl.expected.glsl
index e0ceb95..2627dfc 100644
--- a/test/tint/builtins/gen/literal/textureStore/8e0479.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/8e0479.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 layout(rgba32ui) uniform highp writeonly uimage2DArray arg_0;
 void textureStore_8e0479() {
-  imageStore(arg_0, ivec3(0, 0, 1), uvec4(0u));
+  imageStore(arg_0, ivec3(ivec2(1), 1), uvec4(1u));
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 
 layout(rgba32ui) uniform highp writeonly uimage2DArray arg_0;
 void textureStore_8e0479() {
-  imageStore(arg_0, ivec3(0, 0, 1), uvec4(0u));
+  imageStore(arg_0, ivec3(ivec2(1), 1), uvec4(1u));
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 layout(rgba32ui) uniform highp writeonly uimage2DArray arg_0;
 void textureStore_8e0479() {
-  imageStore(arg_0, ivec3(0, 0, 1), uvec4(0u));
+  imageStore(arg_0, ivec3(ivec2(1), 1), uvec4(1u));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureStore/8e0479.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/8e0479.wgsl.expected.msl
index 3dcab98..978ed33 100644
--- a/test/tint/builtins/gen/literal/textureStore/8e0479.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/8e0479.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureStore_8e0479(texture2d_array<uint, access::write> tint_symbol_1) {
-  tint_symbol_1.write(uint4(0u), uint2(int2(0)), 1);
+  tint_symbol_1.write(uint4(1u), uint2(int2(1)), 1);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/8e0479.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/8e0479.wgsl.expected.spvasm
index 000407d..9f289d7 100644
--- a/test/tint/builtins/gen/literal/textureStore/8e0479.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/8e0479.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 40
+; Bound: 44
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -39,38 +39,42 @@
          %13 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
-      %int_0 = OpConstant %int 0
+      %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %23 = OpConstantComposite %v3int %int_0 %int_0 %int_1
+         %23 = OpConstantComposite %v2int %int_1 %int_1
      %v4uint = OpTypeVector %uint 4
-         %25 = OpConstantNull %v4uint
-         %26 = OpTypeFunction %v4float
+     %uint_1 = OpConstant %uint 1
+         %29 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+         %30 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_8e0479 = OpFunction %void None %13
          %16 = OpLabel
          %18 = OpLoad %11 %arg_0
-               OpImageWrite %18 %23 %25
+         %24 = OpCompositeExtract %int %23 0
+         %25 = OpCompositeExtract %int %23 1
+         %26 = OpCompositeConstruct %v3int %24 %25 %int_1
+               OpImageWrite %18 %26 %29
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %26
-         %28 = OpLabel
-         %29 = OpFunctionCall %void %textureStore_8e0479
+%vertex_main_inner = OpFunction %v4float None %30
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %textureStore_8e0479
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %31 = OpLabel
-         %32 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %32
+         %35 = OpLabel
+         %36 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %36
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureStore_8e0479
+         %39 = OpLabel
+         %40 = OpFunctionCall %void %textureStore_8e0479
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureStore_8e0479
+         %42 = OpLabel
+         %43 = OpFunctionCall %void %textureStore_8e0479
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/8e0479.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/8e0479.wgsl.expected.wgsl
index 17e9e38..af55e34 100644
--- a/test/tint/builtins/gen/literal/textureStore/8e0479.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/8e0479.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba32uint, write>;
 
 fn textureStore_8e0479() {
-  textureStore(arg_0, vec2<i32>(), 1i, vec4<u32>());
+  textureStore(arg_0, vec2<i32>(1i), 1i, vec4<u32>(1u));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/8ed9f8.wgsl b/test/tint/builtins/gen/literal/textureStore/8ed9f8.wgsl
index 99f57b3..a480331 100644
--- a/test/tint/builtins/gen/literal/textureStore/8ed9f8.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/8ed9f8.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureStore(texture: texture_storage_3d<rgba8unorm, write>, coords: vec3<u32>, value: vec4<f32>)
 fn textureStore_8ed9f8() {
-  textureStore(arg_0, vec3<u32>(), vec4<f32>());
+  textureStore(arg_0, vec3<u32>(1u), vec4<f32>(1.f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/8ed9f8.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/8ed9f8.wgsl.expected.dxc.hlsl
index bfb203d..16243af 100644
--- a/test/tint/builtins/gen/literal/textureStore/8ed9f8.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/8ed9f8.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture3D<float4> arg_0 : register(u0, space1);
 
 void textureStore_8ed9f8() {
-  arg_0[(0u).xxx] = (0.0f).xxxx;
+  arg_0[(1u).xxx] = (1.0f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/8ed9f8.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/8ed9f8.wgsl.expected.fxc.hlsl
index bfb203d..16243af 100644
--- a/test/tint/builtins/gen/literal/textureStore/8ed9f8.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/8ed9f8.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture3D<float4> arg_0 : register(u0, space1);
 
 void textureStore_8ed9f8() {
-  arg_0[(0u).xxx] = (0.0f).xxxx;
+  arg_0[(1u).xxx] = (1.0f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/8ed9f8.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/8ed9f8.wgsl.expected.glsl
index 5a1fd66..09b9fde 100644
--- a/test/tint/builtins/gen/literal/textureStore/8ed9f8.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/8ed9f8.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 layout(rgba8) uniform highp writeonly image3D arg_0;
 void textureStore_8ed9f8() {
-  imageStore(arg_0, ivec3(uvec3(0u)), vec4(0.0f));
+  imageStore(arg_0, ivec3(uvec3(1u)), vec4(1.0f));
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 
 layout(rgba8) uniform highp writeonly image3D arg_0;
 void textureStore_8ed9f8() {
-  imageStore(arg_0, ivec3(uvec3(0u)), vec4(0.0f));
+  imageStore(arg_0, ivec3(uvec3(1u)), vec4(1.0f));
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 layout(rgba8) uniform highp writeonly image3D arg_0;
 void textureStore_8ed9f8() {
-  imageStore(arg_0, ivec3(uvec3(0u)), vec4(0.0f));
+  imageStore(arg_0, ivec3(uvec3(1u)), vec4(1.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureStore/8ed9f8.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/8ed9f8.wgsl.expected.msl
index 007a32d..ab487c6 100644
--- a/test/tint/builtins/gen/literal/textureStore/8ed9f8.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/8ed9f8.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureStore_8ed9f8(texture3d<float, access::write> tint_symbol_1) {
-  tint_symbol_1.write(float4(0.0f), uint3(uint3(0u)));
+  tint_symbol_1.write(float4(1.0f), uint3(uint3(1u)));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/8ed9f8.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/8ed9f8.wgsl.expected.spvasm
index 78944bf..a9dbbc1 100644
--- a/test/tint/builtins/gen/literal/textureStore/8ed9f8.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/8ed9f8.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 35
+; Bound: 37
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -38,34 +38,36 @@
          %12 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
-         %20 = OpConstantNull %v3uint
-         %21 = OpTypeFunction %v4float
+     %uint_1 = OpConstant %uint 1
+         %21 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
     %float_1 = OpConstant %float 1
+         %23 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %24 = OpTypeFunction %v4float
 %textureStore_8ed9f8 = OpFunction %void None %12
          %15 = OpLabel
          %17 = OpLoad %11 %arg_0
-               OpImageWrite %17 %20 %5
+               OpImageWrite %17 %21 %23
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %21
-         %23 = OpLabel
-         %24 = OpFunctionCall %void %textureStore_8ed9f8
+%vertex_main_inner = OpFunction %v4float None %24
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %textureStore_8ed9f8
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %26 = OpLabel
-         %27 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %27
+         %29 = OpLabel
+         %30 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %30
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %textureStore_8ed9f8
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %textureStore_8ed9f8
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_8ed9f8
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureStore_8ed9f8
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/8ed9f8.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/8ed9f8.wgsl.expected.wgsl
index 8fed674..ff44f47 100644
--- a/test/tint/builtins/gen/literal/textureStore/8ed9f8.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/8ed9f8.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rgba8unorm, write>;
 
 fn textureStore_8ed9f8() {
-  textureStore(arg_0, vec3<u32>(), vec4<f32>());
+  textureStore(arg_0, vec3<u32>(1u), vec4<f32>(1.0f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/8f71a1.wgsl b/test/tint/builtins/gen/literal/textureStore/8f71a1.wgsl
index 9424ac8..46e19fe 100644
--- a/test/tint/builtins/gen/literal/textureStore/8f71a1.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/8f71a1.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureStore(texture: texture_storage_3d<rgba16sint, write>, coords: vec3<i32>, value: vec4<i32>)
 fn textureStore_8f71a1() {
-  textureStore(arg_0, vec3<i32>(), vec4<i32>());
+  textureStore(arg_0, vec3<i32>(1i), vec4<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/8f71a1.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/8f71a1.wgsl.expected.dxc.hlsl
index be336b8..6f061193 100644
--- a/test/tint/builtins/gen/literal/textureStore/8f71a1.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/8f71a1.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture3D<int4> arg_0 : register(u0, space1);
 
 void textureStore_8f71a1() {
-  arg_0[(0).xxx] = (0).xxxx;
+  arg_0[(1).xxx] = (1).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/8f71a1.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/8f71a1.wgsl.expected.fxc.hlsl
index be336b8..6f061193 100644
--- a/test/tint/builtins/gen/literal/textureStore/8f71a1.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/8f71a1.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture3D<int4> arg_0 : register(u0, space1);
 
 void textureStore_8f71a1() {
-  arg_0[(0).xxx] = (0).xxxx;
+  arg_0[(1).xxx] = (1).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/8f71a1.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/8f71a1.wgsl.expected.glsl
index 42ace3d..6532b28 100644
--- a/test/tint/builtins/gen/literal/textureStore/8f71a1.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/8f71a1.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 layout(rgba16i) uniform highp writeonly iimage3D arg_0;
 void textureStore_8f71a1() {
-  imageStore(arg_0, ivec3(0), ivec4(0));
+  imageStore(arg_0, ivec3(1), ivec4(1));
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 
 layout(rgba16i) uniform highp writeonly iimage3D arg_0;
 void textureStore_8f71a1() {
-  imageStore(arg_0, ivec3(0), ivec4(0));
+  imageStore(arg_0, ivec3(1), ivec4(1));
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 layout(rgba16i) uniform highp writeonly iimage3D arg_0;
 void textureStore_8f71a1() {
-  imageStore(arg_0, ivec3(0), ivec4(0));
+  imageStore(arg_0, ivec3(1), ivec4(1));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureStore/8f71a1.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/8f71a1.wgsl.expected.msl
index 0e8dc88..1e99a20 100644
--- a/test/tint/builtins/gen/literal/textureStore/8f71a1.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/8f71a1.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureStore_8f71a1(texture3d<int, access::write> tint_symbol_1) {
-  tint_symbol_1.write(int4(0), uint3(int3(0)));
+  tint_symbol_1.write(int4(1), uint3(int3(1)));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/8f71a1.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/8f71a1.wgsl.expected.spvasm
index c903b5c..ab44bfc 100644
--- a/test/tint/builtins/gen/literal/textureStore/8f71a1.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/8f71a1.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 37
+; Bound: 38
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -38,36 +38,37 @@
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
       %v3int = OpTypeVector %int 3
-         %20 = OpConstantNull %v3int
+      %int_1 = OpConstant %int 1
+         %21 = OpConstantComposite %v3int %int_1 %int_1 %int_1
       %v4int = OpTypeVector %int 4
-         %22 = OpConstantNull %v4int
-         %23 = OpTypeFunction %v4float
+         %23 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+         %24 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_8f71a1 = OpFunction %void None %13
          %16 = OpLabel
          %18 = OpLoad %11 %arg_0
-               OpImageWrite %18 %20 %22
+               OpImageWrite %18 %21 %23
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %23
-         %25 = OpLabel
-         %26 = OpFunctionCall %void %textureStore_8f71a1
+%vertex_main_inner = OpFunction %v4float None %24
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %textureStore_8f71a1
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %28 = OpLabel
-         %29 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %29
+         %29 = OpLabel
+         %30 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %30
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_8f71a1
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureStore_8f71a1
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureStore_8f71a1
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureStore_8f71a1
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/8f71a1.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/8f71a1.wgsl.expected.wgsl
index 5ce5918..1a31821 100644
--- a/test/tint/builtins/gen/literal/textureStore/8f71a1.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/8f71a1.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rgba16sint, write>;
 
 fn textureStore_8f71a1() {
-  textureStore(arg_0, vec3<i32>(), vec4<i32>());
+  textureStore(arg_0, vec3<i32>(1i), vec4<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/8ff674.wgsl b/test/tint/builtins/gen/literal/textureStore/8ff674.wgsl
index eca69e7..67c5919 100644
--- a/test/tint/builtins/gen/literal/textureStore/8ff674.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/8ff674.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureStore(texture: texture_storage_2d_array<r32uint, write>, coords: vec2<i32>, array_index: u32, value: vec4<u32>)
 fn textureStore_8ff674() {
-  textureStore(arg_0, vec2<i32>(), 1u, vec4<u32>());
+  textureStore(arg_0, vec2<i32>(1i), 1u, vec4<u32>(1u));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/8ff674.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/8ff674.wgsl.expected.dxc.hlsl
index 478e857..c6cdd61 100644
--- a/test/tint/builtins/gen/literal/textureStore/8ff674.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/8ff674.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 void textureStore_8ff674() {
-  arg_0[int3(0, 0, int(1u))] = (0u).xxxx;
+  arg_0[int3((1).xx, int(1u))] = (1u).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/8ff674.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/8ff674.wgsl.expected.fxc.hlsl
index 478e857..c6cdd61 100644
--- a/test/tint/builtins/gen/literal/textureStore/8ff674.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/8ff674.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 void textureStore_8ff674() {
-  arg_0[int3(0, 0, int(1u))] = (0u).xxxx;
+  arg_0[int3((1).xx, int(1u))] = (1u).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/8ff674.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/8ff674.wgsl.expected.glsl
index dc5d86b..f4e1a12 100644
--- a/test/tint/builtins/gen/literal/textureStore/8ff674.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/8ff674.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 layout(r32ui) uniform highp writeonly uimage2DArray arg_0;
 void textureStore_8ff674() {
-  imageStore(arg_0, ivec3(0, 0, int(1u)), uvec4(0u));
+  imageStore(arg_0, ivec3(ivec2(1), int(1u)), uvec4(1u));
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 
 layout(r32ui) uniform highp writeonly uimage2DArray arg_0;
 void textureStore_8ff674() {
-  imageStore(arg_0, ivec3(0, 0, int(1u)), uvec4(0u));
+  imageStore(arg_0, ivec3(ivec2(1), int(1u)), uvec4(1u));
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 layout(r32ui) uniform highp writeonly uimage2DArray arg_0;
 void textureStore_8ff674() {
-  imageStore(arg_0, ivec3(0, 0, int(1u)), uvec4(0u));
+  imageStore(arg_0, ivec3(ivec2(1), int(1u)), uvec4(1u));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureStore/8ff674.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/8ff674.wgsl.expected.msl
index ae3354e..36217d2 100644
--- a/test/tint/builtins/gen/literal/textureStore/8ff674.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/8ff674.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureStore_8ff674(texture2d_array<uint, access::write> tint_symbol_1) {
-  tint_symbol_1.write(uint4(0u), uint2(int2(0)), 1u);
+  tint_symbol_1.write(uint4(1u), uint2(int2(1)), 1u);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/8ff674.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/8ff674.wgsl.expected.spvasm
index d97d70a..af1a902 100644
--- a/test/tint/builtins/gen/literal/textureStore/8ff674.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/8ff674.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 41
+; Bound: 45
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -39,39 +39,43 @@
          %13 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
-      %int_0 = OpConstant %int 0
+      %v2int = OpTypeVector %int 2
+      %int_1 = OpConstant %int 1
+         %23 = OpConstantComposite %v2int %int_1 %int_1
      %uint_1 = OpConstant %uint 1
      %v4uint = OpTypeVector %uint 4
-         %26 = OpConstantNull %v4uint
-         %27 = OpTypeFunction %v4float
+         %30 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+         %31 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_8ff674 = OpFunction %void None %13
          %16 = OpLabel
          %18 = OpLoad %11 %arg_0
-         %22 = OpBitcast %int %uint_1
-         %24 = OpCompositeConstruct %v3int %int_0 %int_0 %22
-               OpImageWrite %18 %24 %26
+         %24 = OpCompositeExtract %int %23 0
+         %25 = OpCompositeExtract %int %23 1
+         %26 = OpBitcast %int %uint_1
+         %28 = OpCompositeConstruct %v3int %24 %25 %26
+               OpImageWrite %18 %28 %30
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %27
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %textureStore_8ff674
+%vertex_main_inner = OpFunction %v4float None %31
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureStore_8ff674
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %32 = OpLabel
-         %33 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %33
+         %36 = OpLabel
+         %37 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %37
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_8ff674
+         %40 = OpLabel
+         %41 = OpFunctionCall %void %textureStore_8ff674
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_8ff674
+         %43 = OpLabel
+         %44 = OpFunctionCall %void %textureStore_8ff674
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/8ff674.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/8ff674.wgsl.expected.wgsl
index b313be4..16987ba 100644
--- a/test/tint/builtins/gen/literal/textureStore/8ff674.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/8ff674.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<r32uint, write>;
 
 fn textureStore_8ff674() {
-  textureStore(arg_0, vec2<i32>(), 1u, vec4<u32>());
+  textureStore(arg_0, vec2<i32>(1i), 1u, vec4<u32>(1u));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/958353.wgsl b/test/tint/builtins/gen/literal/textureStore/958353.wgsl
index 2867992..975f7af8 100644
--- a/test/tint/builtins/gen/literal/textureStore/958353.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/958353.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureStore(texture: texture_storage_1d<rgba8sint, write>, coords: u32, value: vec4<i32>)
 fn textureStore_958353() {
-  textureStore(arg_0, 1u, vec4<i32>());
+  textureStore(arg_0, 1u, vec4<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/958353.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/958353.wgsl.expected.dxc.hlsl
index 8326837..5f297ea 100644
--- a/test/tint/builtins/gen/literal/textureStore/958353.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/958353.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture1D<int4> arg_0 : register(u0, space1);
 
 void textureStore_958353() {
-  arg_0[1u] = (0).xxxx;
+  arg_0[1u] = (1).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/958353.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/958353.wgsl.expected.fxc.hlsl
index 8326837..5f297ea 100644
--- a/test/tint/builtins/gen/literal/textureStore/958353.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/958353.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture1D<int4> arg_0 : register(u0, space1);
 
 void textureStore_958353() {
-  arg_0[1u] = (0).xxxx;
+  arg_0[1u] = (1).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/958353.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/958353.wgsl.expected.msl
index 4116d9d..fe84ee9 100644
--- a/test/tint/builtins/gen/literal/textureStore/958353.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/958353.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureStore_958353(texture1d<int, access::write> tint_symbol_1) {
-  tint_symbol_1.write(int4(0), uint(1u));
+  tint_symbol_1.write(int4(1), uint(1u));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/958353.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/958353.wgsl.expected.spvasm
index a0fd2d7..44b3868 100644
--- a/test/tint/builtins/gen/literal/textureStore/958353.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/958353.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 37
+; Bound: 38
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
@@ -41,34 +41,35 @@
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
       %v4int = OpTypeVector %int 4
-         %22 = OpConstantNull %v4int
-         %23 = OpTypeFunction %v4float
+      %int_1 = OpConstant %int 1
+         %23 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+         %24 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_958353 = OpFunction %void None %13
          %16 = OpLabel
          %18 = OpLoad %11 %arg_0
-               OpImageWrite %18 %uint_1 %22
+               OpImageWrite %18 %uint_1 %23
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %23
-         %25 = OpLabel
-         %26 = OpFunctionCall %void %textureStore_958353
+%vertex_main_inner = OpFunction %v4float None %24
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %textureStore_958353
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %28 = OpLabel
-         %29 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %29
+         %29 = OpLabel
+         %30 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %30
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_958353
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureStore_958353
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureStore_958353
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureStore_958353
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/958353.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/958353.wgsl.expected.wgsl
index f945b20..6bb8ca5 100644
--- a/test/tint/builtins/gen/literal/textureStore/958353.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/958353.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rgba8sint, write>;
 
 fn textureStore_958353() {
-  textureStore(arg_0, 1u, vec4<i32>());
+  textureStore(arg_0, 1u, vec4<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/959d94.wgsl b/test/tint/builtins/gen/literal/textureStore/959d94.wgsl
index 27385b3..7bd958b 100644
--- a/test/tint/builtins/gen/literal/textureStore/959d94.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/959d94.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureStore(texture: texture_storage_1d<rgba8snorm, write>, coords: u32, value: vec4<f32>)
 fn textureStore_959d94() {
-  textureStore(arg_0, 1u, vec4<f32>());
+  textureStore(arg_0, 1u, vec4<f32>(1.f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/959d94.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/959d94.wgsl.expected.dxc.hlsl
index 0053ebc..82bdc37 100644
--- a/test/tint/builtins/gen/literal/textureStore/959d94.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/959d94.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture1D<float4> arg_0 : register(u0, space1);
 
 void textureStore_959d94() {
-  arg_0[1u] = (0.0f).xxxx;
+  arg_0[1u] = (1.0f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/959d94.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/959d94.wgsl.expected.fxc.hlsl
index 0053ebc..82bdc37 100644
--- a/test/tint/builtins/gen/literal/textureStore/959d94.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/959d94.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture1D<float4> arg_0 : register(u0, space1);
 
 void textureStore_959d94() {
-  arg_0[1u] = (0.0f).xxxx;
+  arg_0[1u] = (1.0f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/959d94.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/959d94.wgsl.expected.msl
index 3d498b4..07d78e2 100644
--- a/test/tint/builtins/gen/literal/textureStore/959d94.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/959d94.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureStore_959d94(texture1d<float, access::write> tint_symbol_1) {
-  tint_symbol_1.write(float4(0.0f), uint(1u));
+  tint_symbol_1.write(float4(1.0f), uint(1u));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/959d94.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/959d94.wgsl.expected.spvasm
index 071ba77..c724ae5 100644
--- a/test/tint/builtins/gen/literal/textureStore/959d94.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/959d94.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 34
+; Bound: 35
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
@@ -39,33 +39,34 @@
          %12 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
-         %20 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
+         %21 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %22 = OpTypeFunction %v4float
 %textureStore_959d94 = OpFunction %void None %12
          %15 = OpLabel
          %17 = OpLoad %11 %arg_0
-               OpImageWrite %17 %uint_1 %5
+               OpImageWrite %17 %uint_1 %21
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %20
-         %22 = OpLabel
-         %23 = OpFunctionCall %void %textureStore_959d94
+%vertex_main_inner = OpFunction %v4float None %22
+         %24 = OpLabel
+         %25 = OpFunctionCall %void %textureStore_959d94
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %25 = OpLabel
-         %26 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %26
+         %27 = OpLabel
+         %28 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %28
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %textureStore_959d94
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %textureStore_959d94
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_959d94
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureStore_959d94
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/959d94.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/959d94.wgsl.expected.wgsl
index 548a878..afe005c 100644
--- a/test/tint/builtins/gen/literal/textureStore/959d94.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/959d94.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rgba8snorm, write>;
 
 fn textureStore_959d94() {
-  textureStore(arg_0, 1u, vec4<f32>());
+  textureStore(arg_0, 1u, vec4<f32>(1.0f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/95e452.wgsl b/test/tint/builtins/gen/literal/textureStore/95e452.wgsl
index b98336c..a75661c 100644
--- a/test/tint/builtins/gen/literal/textureStore/95e452.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/95e452.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureStore(texture: texture_storage_2d<r32sint, write>, coords: vec2<u32>, value: vec4<i32>)
 fn textureStore_95e452() {
-  textureStore(arg_0, vec2<u32>(), vec4<i32>());
+  textureStore(arg_0, vec2<u32>(1u), vec4<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/95e452.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/95e452.wgsl.expected.dxc.hlsl
index db2e297..503b09c 100644
--- a/test/tint/builtins/gen/literal/textureStore/95e452.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/95e452.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2D<int4> arg_0 : register(u0, space1);
 
 void textureStore_95e452() {
-  arg_0[(0u).xx] = (0).xxxx;
+  arg_0[(1u).xx] = (1).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/95e452.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/95e452.wgsl.expected.fxc.hlsl
index db2e297..503b09c 100644
--- a/test/tint/builtins/gen/literal/textureStore/95e452.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/95e452.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2D<int4> arg_0 : register(u0, space1);
 
 void textureStore_95e452() {
-  arg_0[(0u).xx] = (0).xxxx;
+  arg_0[(1u).xx] = (1).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/95e452.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/95e452.wgsl.expected.glsl
index c17fdcb..989356b 100644
--- a/test/tint/builtins/gen/literal/textureStore/95e452.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/95e452.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 layout(r32i) uniform highp writeonly iimage2D arg_0;
 void textureStore_95e452() {
-  imageStore(arg_0, ivec2(uvec2(0u)), ivec4(0));
+  imageStore(arg_0, ivec2(uvec2(1u)), ivec4(1));
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 
 layout(r32i) uniform highp writeonly iimage2D arg_0;
 void textureStore_95e452() {
-  imageStore(arg_0, ivec2(uvec2(0u)), ivec4(0));
+  imageStore(arg_0, ivec2(uvec2(1u)), ivec4(1));
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 layout(r32i) uniform highp writeonly iimage2D arg_0;
 void textureStore_95e452() {
-  imageStore(arg_0, ivec2(uvec2(0u)), ivec4(0));
+  imageStore(arg_0, ivec2(uvec2(1u)), ivec4(1));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureStore/95e452.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/95e452.wgsl.expected.msl
index 327ad00..ead888b 100644
--- a/test/tint/builtins/gen/literal/textureStore/95e452.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/95e452.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureStore_95e452(texture2d<int, access::write> tint_symbol_1) {
-  tint_symbol_1.write(int4(0), uint2(uint2(0u)));
+  tint_symbol_1.write(int4(1), uint2(uint2(1u)));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/95e452.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/95e452.wgsl.expected.spvasm
index 391ed7c..ccb6e02 100644
--- a/test/tint/builtins/gen/literal/textureStore/95e452.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/95e452.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 38
+; Bound: 40
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -39,36 +39,38 @@
          %13 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
-         %21 = OpConstantNull %v2uint
+     %uint_1 = OpConstant %uint 1
+         %22 = OpConstantComposite %v2uint %uint_1 %uint_1
       %v4int = OpTypeVector %int 4
-         %23 = OpConstantNull %v4int
-         %24 = OpTypeFunction %v4float
+      %int_1 = OpConstant %int 1
+         %25 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+         %26 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_95e452 = OpFunction %void None %13
          %16 = OpLabel
          %18 = OpLoad %11 %arg_0
-               OpImageWrite %18 %21 %23
+               OpImageWrite %18 %22 %25
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %24
-         %26 = OpLabel
-         %27 = OpFunctionCall %void %textureStore_95e452
+%vertex_main_inner = OpFunction %v4float None %26
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %textureStore_95e452
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %29 = OpLabel
-         %30 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %30
+         %31 = OpLabel
+         %32 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %32
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_95e452
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureStore_95e452
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_95e452
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %textureStore_95e452
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/95e452.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/95e452.wgsl.expected.wgsl
index 2f18a92..0d427eb 100644
--- a/test/tint/builtins/gen/literal/textureStore/95e452.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/95e452.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d<r32sint, write>;
 
 fn textureStore_95e452() {
-  textureStore(arg_0, vec2<u32>(), vec4<i32>());
+  textureStore(arg_0, vec2<u32>(1u), vec4<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/969534.wgsl b/test/tint/builtins/gen/literal/textureStore/969534.wgsl
index a51a043..21dfadf 100644
--- a/test/tint/builtins/gen/literal/textureStore/969534.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/969534.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureStore(texture: texture_storage_1d<rgba32sint, write>, coords: i32, value: vec4<i32>)
 fn textureStore_969534() {
-  textureStore(arg_0, 1i, vec4<i32>());
+  textureStore(arg_0, 1i, vec4<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/969534.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/969534.wgsl.expected.dxc.hlsl
index 5d1107b..578cfd4 100644
--- a/test/tint/builtins/gen/literal/textureStore/969534.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/969534.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture1D<int4> arg_0 : register(u0, space1);
 
 void textureStore_969534() {
-  arg_0[1] = (0).xxxx;
+  arg_0[1] = (1).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/969534.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/969534.wgsl.expected.fxc.hlsl
index 5d1107b..578cfd4 100644
--- a/test/tint/builtins/gen/literal/textureStore/969534.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/969534.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture1D<int4> arg_0 : register(u0, space1);
 
 void textureStore_969534() {
-  arg_0[1] = (0).xxxx;
+  arg_0[1] = (1).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/969534.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/969534.wgsl.expected.msl
index c994c24..24eabf8 100644
--- a/test/tint/builtins/gen/literal/textureStore/969534.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/969534.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureStore_969534(texture1d<int, access::write> tint_symbol_1) {
-  tint_symbol_1.write(int4(0), uint(1));
+  tint_symbol_1.write(int4(1), uint(1));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/969534.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/969534.wgsl.expected.spvasm
index aab85aa..aec627b 100644
--- a/test/tint/builtins/gen/literal/textureStore/969534.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/969534.wgsl.expected.spvasm
@@ -40,7 +40,7 @@
          %13 = OpTypeFunction %void
       %int_1 = OpConstant %int 1
       %v4int = OpTypeVector %int 4
-         %21 = OpConstantNull %v4int
+         %21 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
          %22 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_969534 = OpFunction %void None %13
diff --git a/test/tint/builtins/gen/literal/textureStore/969534.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/969534.wgsl.expected.wgsl
index d17bfa3..19b6ea0 100644
--- a/test/tint/builtins/gen/literal/textureStore/969534.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/969534.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rgba32sint, write>;
 
 fn textureStore_969534() {
-  textureStore(arg_0, 1i, vec4<i32>());
+  textureStore(arg_0, 1i, vec4<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/9938b7.wgsl b/test/tint/builtins/gen/literal/textureStore/9938b7.wgsl
index 6992b60..0441d2e 100644
--- a/test/tint/builtins/gen/literal/textureStore/9938b7.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/9938b7.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureStore(texture: texture_storage_2d_array<r32sint, write>, coords: vec2<i32>, array_index: u32, value: vec4<i32>)
 fn textureStore_9938b7() {
-  textureStore(arg_0, vec2<i32>(), 1u, vec4<i32>());
+  textureStore(arg_0, vec2<i32>(1i), 1u, vec4<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/9938b7.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/9938b7.wgsl.expected.dxc.hlsl
index 1a75432..ba535ac 100644
--- a/test/tint/builtins/gen/literal/textureStore/9938b7.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/9938b7.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 void textureStore_9938b7() {
-  arg_0[int3(0, 0, int(1u))] = (0).xxxx;
+  arg_0[int3((1).xx, int(1u))] = (1).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/9938b7.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/9938b7.wgsl.expected.fxc.hlsl
index 1a75432..ba535ac 100644
--- a/test/tint/builtins/gen/literal/textureStore/9938b7.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/9938b7.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 void textureStore_9938b7() {
-  arg_0[int3(0, 0, int(1u))] = (0).xxxx;
+  arg_0[int3((1).xx, int(1u))] = (1).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/9938b7.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/9938b7.wgsl.expected.glsl
index e448b68..8015329 100644
--- a/test/tint/builtins/gen/literal/textureStore/9938b7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/9938b7.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 layout(r32i) uniform highp writeonly iimage2DArray arg_0;
 void textureStore_9938b7() {
-  imageStore(arg_0, ivec3(0, 0, int(1u)), ivec4(0));
+  imageStore(arg_0, ivec3(ivec2(1), int(1u)), ivec4(1));
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 
 layout(r32i) uniform highp writeonly iimage2DArray arg_0;
 void textureStore_9938b7() {
-  imageStore(arg_0, ivec3(0, 0, int(1u)), ivec4(0));
+  imageStore(arg_0, ivec3(ivec2(1), int(1u)), ivec4(1));
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 layout(r32i) uniform highp writeonly iimage2DArray arg_0;
 void textureStore_9938b7() {
-  imageStore(arg_0, ivec3(0, 0, int(1u)), ivec4(0));
+  imageStore(arg_0, ivec3(ivec2(1), int(1u)), ivec4(1));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureStore/9938b7.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/9938b7.wgsl.expected.msl
index 5e76a03..3ae47d1 100644
--- a/test/tint/builtins/gen/literal/textureStore/9938b7.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/9938b7.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureStore_9938b7(texture2d_array<int, access::write> tint_symbol_1) {
-  tint_symbol_1.write(int4(0), uint2(int2(0)), 1u);
+  tint_symbol_1.write(int4(1), uint2(int2(1)), 1u);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/9938b7.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/9938b7.wgsl.expected.spvasm
index 265968a..021bbf2 100644
--- a/test/tint/builtins/gen/literal/textureStore/9938b7.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/9938b7.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 41
+; Bound: 45
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -38,40 +38,44 @@
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
       %v3int = OpTypeVector %int 3
-      %int_0 = OpConstant %int 0
+      %v2int = OpTypeVector %int 2
+      %int_1 = OpConstant %int 1
+         %22 = OpConstantComposite %v2int %int_1 %int_1
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
       %v4int = OpTypeVector %int 4
-         %26 = OpConstantNull %v4int
-         %27 = OpTypeFunction %v4float
+         %30 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+         %31 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_9938b7 = OpFunction %void None %13
          %16 = OpLabel
          %18 = OpLoad %11 %arg_0
-         %21 = OpBitcast %int %uint_1
-         %24 = OpCompositeConstruct %v3int %int_0 %int_0 %21
-               OpImageWrite %18 %24 %26
+         %23 = OpCompositeExtract %int %22 0
+         %24 = OpCompositeExtract %int %22 1
+         %25 = OpBitcast %int %uint_1
+         %28 = OpCompositeConstruct %v3int %23 %24 %25
+               OpImageWrite %18 %28 %30
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %27
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %textureStore_9938b7
+%vertex_main_inner = OpFunction %v4float None %31
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureStore_9938b7
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %32 = OpLabel
-         %33 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %33
+         %36 = OpLabel
+         %37 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %37
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_9938b7
+         %40 = OpLabel
+         %41 = OpFunctionCall %void %textureStore_9938b7
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_9938b7
+         %43 = OpLabel
+         %44 = OpFunctionCall %void %textureStore_9938b7
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/9938b7.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/9938b7.wgsl.expected.wgsl
index ed0775f..9c01171 100644
--- a/test/tint/builtins/gen/literal/textureStore/9938b7.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/9938b7.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<r32sint, write>;
 
 fn textureStore_9938b7() {
-  textureStore(arg_0, vec2<i32>(), 1u, vec4<i32>());
+  textureStore(arg_0, vec2<i32>(1i), 1u, vec4<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/9a3ecc.wgsl b/test/tint/builtins/gen/literal/textureStore/9a3ecc.wgsl
index d38ba03..82ddcfd 100644
--- a/test/tint/builtins/gen/literal/textureStore/9a3ecc.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/9a3ecc.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureStore(texture: texture_storage_3d<rgba32sint, write>, coords: vec3<i32>, value: vec4<i32>)
 fn textureStore_9a3ecc() {
-  textureStore(arg_0, vec3<i32>(), vec4<i32>());
+  textureStore(arg_0, vec3<i32>(1i), vec4<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/9a3ecc.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/9a3ecc.wgsl.expected.dxc.hlsl
index bf19cfe..4b3d041 100644
--- a/test/tint/builtins/gen/literal/textureStore/9a3ecc.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/9a3ecc.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture3D<int4> arg_0 : register(u0, space1);
 
 void textureStore_9a3ecc() {
-  arg_0[(0).xxx] = (0).xxxx;
+  arg_0[(1).xxx] = (1).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/9a3ecc.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/9a3ecc.wgsl.expected.fxc.hlsl
index bf19cfe..4b3d041 100644
--- a/test/tint/builtins/gen/literal/textureStore/9a3ecc.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/9a3ecc.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture3D<int4> arg_0 : register(u0, space1);
 
 void textureStore_9a3ecc() {
-  arg_0[(0).xxx] = (0).xxxx;
+  arg_0[(1).xxx] = (1).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/9a3ecc.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/9a3ecc.wgsl.expected.glsl
index 3867d2a..5439a69 100644
--- a/test/tint/builtins/gen/literal/textureStore/9a3ecc.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/9a3ecc.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 layout(rgba32i) uniform highp writeonly iimage3D arg_0;
 void textureStore_9a3ecc() {
-  imageStore(arg_0, ivec3(0), ivec4(0));
+  imageStore(arg_0, ivec3(1), ivec4(1));
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 
 layout(rgba32i) uniform highp writeonly iimage3D arg_0;
 void textureStore_9a3ecc() {
-  imageStore(arg_0, ivec3(0), ivec4(0));
+  imageStore(arg_0, ivec3(1), ivec4(1));
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 layout(rgba32i) uniform highp writeonly iimage3D arg_0;
 void textureStore_9a3ecc() {
-  imageStore(arg_0, ivec3(0), ivec4(0));
+  imageStore(arg_0, ivec3(1), ivec4(1));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureStore/9a3ecc.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/9a3ecc.wgsl.expected.msl
index e91a11a..46065b8 100644
--- a/test/tint/builtins/gen/literal/textureStore/9a3ecc.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/9a3ecc.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureStore_9a3ecc(texture3d<int, access::write> tint_symbol_1) {
-  tint_symbol_1.write(int4(0), uint3(int3(0)));
+  tint_symbol_1.write(int4(1), uint3(int3(1)));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/9a3ecc.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/9a3ecc.wgsl.expected.spvasm
index 6ca3785..f380281 100644
--- a/test/tint/builtins/gen/literal/textureStore/9a3ecc.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/9a3ecc.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 37
+; Bound: 38
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -38,36 +38,37 @@
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
       %v3int = OpTypeVector %int 3
-         %20 = OpConstantNull %v3int
+      %int_1 = OpConstant %int 1
+         %21 = OpConstantComposite %v3int %int_1 %int_1 %int_1
       %v4int = OpTypeVector %int 4
-         %22 = OpConstantNull %v4int
-         %23 = OpTypeFunction %v4float
+         %23 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+         %24 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_9a3ecc = OpFunction %void None %13
          %16 = OpLabel
          %18 = OpLoad %11 %arg_0
-               OpImageWrite %18 %20 %22
+               OpImageWrite %18 %21 %23
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %23
-         %25 = OpLabel
-         %26 = OpFunctionCall %void %textureStore_9a3ecc
+%vertex_main_inner = OpFunction %v4float None %24
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %textureStore_9a3ecc
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %28 = OpLabel
-         %29 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %29
+         %29 = OpLabel
+         %30 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %30
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_9a3ecc
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureStore_9a3ecc
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureStore_9a3ecc
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureStore_9a3ecc
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/9a3ecc.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/9a3ecc.wgsl.expected.wgsl
index 072ae70..bda3795 100644
--- a/test/tint/builtins/gen/literal/textureStore/9a3ecc.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/9a3ecc.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rgba32sint, write>;
 
 fn textureStore_9a3ecc() {
-  textureStore(arg_0, vec3<i32>(), vec4<i32>());
+  textureStore(arg_0, vec3<i32>(1i), vec4<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/9d8668.wgsl b/test/tint/builtins/gen/literal/textureStore/9d8668.wgsl
index 805fbf2..2151746 100644
--- a/test/tint/builtins/gen/literal/textureStore/9d8668.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/9d8668.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureStore(texture: texture_storage_2d_array<rgba8unorm, write>, coords: vec2<i32>, array_index: u32, value: vec4<f32>)
 fn textureStore_9d8668() {
-  textureStore(arg_0, vec2<i32>(), 1u, vec4<f32>());
+  textureStore(arg_0, vec2<i32>(1i), 1u, vec4<f32>(1.f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/9d8668.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/9d8668.wgsl.expected.dxc.hlsl
index 29f00cc..5bba758 100644
--- a/test/tint/builtins/gen/literal/textureStore/9d8668.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/9d8668.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 void textureStore_9d8668() {
-  arg_0[int3(0, 0, int(1u))] = (0.0f).xxxx;
+  arg_0[int3((1).xx, int(1u))] = (1.0f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/9d8668.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/9d8668.wgsl.expected.fxc.hlsl
index 29f00cc..5bba758 100644
--- a/test/tint/builtins/gen/literal/textureStore/9d8668.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/9d8668.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 void textureStore_9d8668() {
-  arg_0[int3(0, 0, int(1u))] = (0.0f).xxxx;
+  arg_0[int3((1).xx, int(1u))] = (1.0f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/9d8668.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/9d8668.wgsl.expected.glsl
index bb433ee..b57014e 100644
--- a/test/tint/builtins/gen/literal/textureStore/9d8668.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/9d8668.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 layout(rgba8) uniform highp writeonly image2DArray arg_0;
 void textureStore_9d8668() {
-  imageStore(arg_0, ivec3(0, 0, int(1u)), vec4(0.0f));
+  imageStore(arg_0, ivec3(ivec2(1), int(1u)), vec4(1.0f));
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 
 layout(rgba8) uniform highp writeonly image2DArray arg_0;
 void textureStore_9d8668() {
-  imageStore(arg_0, ivec3(0, 0, int(1u)), vec4(0.0f));
+  imageStore(arg_0, ivec3(ivec2(1), int(1u)), vec4(1.0f));
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 layout(rgba8) uniform highp writeonly image2DArray arg_0;
 void textureStore_9d8668() {
-  imageStore(arg_0, ivec3(0, 0, int(1u)), vec4(0.0f));
+  imageStore(arg_0, ivec3(ivec2(1), int(1u)), vec4(1.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureStore/9d8668.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/9d8668.wgsl.expected.msl
index 83778bb..e29a571 100644
--- a/test/tint/builtins/gen/literal/textureStore/9d8668.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/9d8668.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureStore_9d8668(texture2d_array<float, access::write> tint_symbol_1) {
-  tint_symbol_1.write(float4(0.0f), uint2(int2(0)), 1u);
+  tint_symbol_1.write(float4(1.0f), uint2(int2(1)), 1u);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/9d8668.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/9d8668.wgsl.expected.spvasm
index 7c36c49..5e76d8e 100644
--- a/test/tint/builtins/gen/literal/textureStore/9d8668.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/9d8668.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 39
+; Bound: 44
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -38,38 +38,43 @@
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
-      %int_0 = OpConstant %int 0
+      %v2int = OpTypeVector %int 2
+      %int_1 = OpConstant %int 1
+         %22 = OpConstantComposite %v2int %int_1 %int_1
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
-         %25 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
+         %30 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %31 = OpTypeFunction %v4float
 %textureStore_9d8668 = OpFunction %void None %12
          %15 = OpLabel
          %17 = OpLoad %11 %arg_0
-         %21 = OpBitcast %int %uint_1
-         %24 = OpCompositeConstruct %v3int %int_0 %int_0 %21
-               OpImageWrite %17 %24 %5
+         %23 = OpCompositeExtract %int %22 0
+         %24 = OpCompositeExtract %int %22 1
+         %25 = OpBitcast %int %uint_1
+         %28 = OpCompositeConstruct %v3int %23 %24 %25
+               OpImageWrite %17 %28 %30
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %25
-         %27 = OpLabel
-         %28 = OpFunctionCall %void %textureStore_9d8668
+%vertex_main_inner = OpFunction %v4float None %31
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureStore_9d8668
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %30 = OpLabel
-         %31 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %31
+         %36 = OpLabel
+         %37 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %37
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureStore_9d8668
+         %39 = OpLabel
+         %40 = OpFunctionCall %void %textureStore_9d8668
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureStore_9d8668
+         %42 = OpLabel
+         %43 = OpFunctionCall %void %textureStore_9d8668
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/9d8668.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/9d8668.wgsl.expected.wgsl
index 8f30157..7143481 100644
--- a/test/tint/builtins/gen/literal/textureStore/9d8668.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/9d8668.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba8unorm, write>;
 
 fn textureStore_9d8668() {
-  textureStore(arg_0, vec2<i32>(), 1u, vec4<f32>());
+  textureStore(arg_0, vec2<i32>(1i), 1u, vec4<f32>(1.0f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/9d9cd5.wgsl b/test/tint/builtins/gen/literal/textureStore/9d9cd5.wgsl
index 689372f..b7ffc63 100644
--- a/test/tint/builtins/gen/literal/textureStore/9d9cd5.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/9d9cd5.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureStore(texture: texture_storage_2d_array<rgba32float, write>, coords: vec2<i32>, array_index: i32, value: vec4<f32>)
 fn textureStore_9d9cd5() {
-  textureStore(arg_0, vec2<i32>(), 1i, vec4<f32>());
+  textureStore(arg_0, vec2<i32>(1i), 1i, vec4<f32>(1.f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/9d9cd5.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/9d9cd5.wgsl.expected.dxc.hlsl
index 0f43b6b..7672b64 100644
--- a/test/tint/builtins/gen/literal/textureStore/9d9cd5.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/9d9cd5.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 void textureStore_9d9cd5() {
-  arg_0[int3(0, 0, 1)] = (0.0f).xxxx;
+  arg_0[int3((1).xx, 1)] = (1.0f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/9d9cd5.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/9d9cd5.wgsl.expected.fxc.hlsl
index 0f43b6b..7672b64 100644
--- a/test/tint/builtins/gen/literal/textureStore/9d9cd5.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/9d9cd5.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 void textureStore_9d9cd5() {
-  arg_0[int3(0, 0, 1)] = (0.0f).xxxx;
+  arg_0[int3((1).xx, 1)] = (1.0f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/9d9cd5.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/9d9cd5.wgsl.expected.glsl
index 9c483a0..ee29fa5 100644
--- a/test/tint/builtins/gen/literal/textureStore/9d9cd5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/9d9cd5.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 layout(rgba32f) uniform highp writeonly image2DArray arg_0;
 void textureStore_9d9cd5() {
-  imageStore(arg_0, ivec3(0, 0, 1), vec4(0.0f));
+  imageStore(arg_0, ivec3(ivec2(1), 1), vec4(1.0f));
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 
 layout(rgba32f) uniform highp writeonly image2DArray arg_0;
 void textureStore_9d9cd5() {
-  imageStore(arg_0, ivec3(0, 0, 1), vec4(0.0f));
+  imageStore(arg_0, ivec3(ivec2(1), 1), vec4(1.0f));
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 layout(rgba32f) uniform highp writeonly image2DArray arg_0;
 void textureStore_9d9cd5() {
-  imageStore(arg_0, ivec3(0, 0, 1), vec4(0.0f));
+  imageStore(arg_0, ivec3(ivec2(1), 1), vec4(1.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureStore/9d9cd5.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/9d9cd5.wgsl.expected.msl
index 9468846..c22478b 100644
--- a/test/tint/builtins/gen/literal/textureStore/9d9cd5.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/9d9cd5.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureStore_9d9cd5(texture2d_array<float, access::write> tint_symbol_1) {
-  tint_symbol_1.write(float4(0.0f), uint2(int2(0)), 1);
+  tint_symbol_1.write(float4(1.0f), uint2(int2(1)), 1);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/9d9cd5.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/9d9cd5.wgsl.expected.spvasm
index 3b2ba58..b83df32 100644
--- a/test/tint/builtins/gen/literal/textureStore/9d9cd5.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/9d9cd5.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 37
+; Bound: 41
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -38,36 +38,40 @@
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
-      %int_0 = OpConstant %int 0
+      %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %22 = OpConstantComposite %v3int %int_0 %int_0 %int_1
-         %23 = OpTypeFunction %v4float
+         %22 = OpConstantComposite %v2int %int_1 %int_1
     %float_1 = OpConstant %float 1
+         %27 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %28 = OpTypeFunction %v4float
 %textureStore_9d9cd5 = OpFunction %void None %12
          %15 = OpLabel
          %17 = OpLoad %11 %arg_0
-               OpImageWrite %17 %22 %5
+         %23 = OpCompositeExtract %int %22 0
+         %24 = OpCompositeExtract %int %22 1
+         %25 = OpCompositeConstruct %v3int %23 %24 %int_1
+               OpImageWrite %17 %25 %27
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %23
-         %25 = OpLabel
-         %26 = OpFunctionCall %void %textureStore_9d9cd5
+%vertex_main_inner = OpFunction %v4float None %28
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %textureStore_9d9cd5
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %28 = OpLabel
-         %29 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %29
+         %33 = OpLabel
+         %34 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %34
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_9d9cd5
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureStore_9d9cd5
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureStore_9d9cd5
+         %39 = OpLabel
+         %40 = OpFunctionCall %void %textureStore_9d9cd5
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/9d9cd5.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/9d9cd5.wgsl.expected.wgsl
index e02d2ec..abf7d5a 100644
--- a/test/tint/builtins/gen/literal/textureStore/9d9cd5.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/9d9cd5.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba32float, write>;
 
 fn textureStore_9d9cd5() {
-  textureStore(arg_0, vec2<i32>(), 1i, vec4<f32>());
+  textureStore(arg_0, vec2<i32>(1i), 1i, vec4<f32>(1.0f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/9e3ec5.wgsl b/test/tint/builtins/gen/literal/textureStore/9e3ec5.wgsl
index 12480b4..426ca06 100644
--- a/test/tint/builtins/gen/literal/textureStore/9e3ec5.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/9e3ec5.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureStore(texture: texture_storage_2d<rgba16sint, write>, coords: vec2<i32>, value: vec4<i32>)
 fn textureStore_9e3ec5() {
-  textureStore(arg_0, vec2<i32>(), vec4<i32>());
+  textureStore(arg_0, vec2<i32>(1i), vec4<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/9e3ec5.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/9e3ec5.wgsl.expected.dxc.hlsl
index a1dff9c..53f7cf2 100644
--- a/test/tint/builtins/gen/literal/textureStore/9e3ec5.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/9e3ec5.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2D<int4> arg_0 : register(u0, space1);
 
 void textureStore_9e3ec5() {
-  arg_0[(0).xx] = (0).xxxx;
+  arg_0[(1).xx] = (1).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/9e3ec5.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/9e3ec5.wgsl.expected.fxc.hlsl
index a1dff9c..53f7cf2 100644
--- a/test/tint/builtins/gen/literal/textureStore/9e3ec5.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/9e3ec5.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2D<int4> arg_0 : register(u0, space1);
 
 void textureStore_9e3ec5() {
-  arg_0[(0).xx] = (0).xxxx;
+  arg_0[(1).xx] = (1).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/9e3ec5.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/9e3ec5.wgsl.expected.glsl
index 292c9f6..b783004 100644
--- a/test/tint/builtins/gen/literal/textureStore/9e3ec5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/9e3ec5.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 layout(rgba16i) uniform highp writeonly iimage2D arg_0;
 void textureStore_9e3ec5() {
-  imageStore(arg_0, ivec2(0), ivec4(0));
+  imageStore(arg_0, ivec2(1), ivec4(1));
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 
 layout(rgba16i) uniform highp writeonly iimage2D arg_0;
 void textureStore_9e3ec5() {
-  imageStore(arg_0, ivec2(0), ivec4(0));
+  imageStore(arg_0, ivec2(1), ivec4(1));
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 layout(rgba16i) uniform highp writeonly iimage2D arg_0;
 void textureStore_9e3ec5() {
-  imageStore(arg_0, ivec2(0), ivec4(0));
+  imageStore(arg_0, ivec2(1), ivec4(1));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureStore/9e3ec5.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/9e3ec5.wgsl.expected.msl
index 96998a4..c010dce 100644
--- a/test/tint/builtins/gen/literal/textureStore/9e3ec5.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/9e3ec5.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureStore_9e3ec5(texture2d<int, access::write> tint_symbol_1) {
-  tint_symbol_1.write(int4(0), uint2(int2(0)));
+  tint_symbol_1.write(int4(1), uint2(int2(1)));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/9e3ec5.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/9e3ec5.wgsl.expected.spvasm
index 5293d47..11456a7 100644
--- a/test/tint/builtins/gen/literal/textureStore/9e3ec5.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/9e3ec5.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 37
+; Bound: 38
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -38,36 +38,37 @@
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
       %v2int = OpTypeVector %int 2
-         %20 = OpConstantNull %v2int
+      %int_1 = OpConstant %int 1
+         %21 = OpConstantComposite %v2int %int_1 %int_1
       %v4int = OpTypeVector %int 4
-         %22 = OpConstantNull %v4int
-         %23 = OpTypeFunction %v4float
+         %23 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+         %24 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_9e3ec5 = OpFunction %void None %13
          %16 = OpLabel
          %18 = OpLoad %11 %arg_0
-               OpImageWrite %18 %20 %22
+               OpImageWrite %18 %21 %23
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %23
-         %25 = OpLabel
-         %26 = OpFunctionCall %void %textureStore_9e3ec5
+%vertex_main_inner = OpFunction %v4float None %24
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %textureStore_9e3ec5
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %28 = OpLabel
-         %29 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %29
+         %29 = OpLabel
+         %30 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %30
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_9e3ec5
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureStore_9e3ec5
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureStore_9e3ec5
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureStore_9e3ec5
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/9e3ec5.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/9e3ec5.wgsl.expected.wgsl
index b2822b3..d7d82b45 100644
--- a/test/tint/builtins/gen/literal/textureStore/9e3ec5.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/9e3ec5.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba16sint, write>;
 
 fn textureStore_9e3ec5() {
-  textureStore(arg_0, vec2<i32>(), vec4<i32>());
+  textureStore(arg_0, vec2<i32>(1i), vec4<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/9f5318.wgsl b/test/tint/builtins/gen/literal/textureStore/9f5318.wgsl
index 57f9e41..2a4613f 100644
--- a/test/tint/builtins/gen/literal/textureStore/9f5318.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/9f5318.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureStore(texture: texture_storage_2d<rg32sint, write>, coords: vec2<u32>, value: vec4<i32>)
 fn textureStore_9f5318() {
-  textureStore(arg_0, vec2<u32>(), vec4<i32>());
+  textureStore(arg_0, vec2<u32>(1u), vec4<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/9f5318.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/9f5318.wgsl.expected.dxc.hlsl
index 5f0a281..20545e4 100644
--- a/test/tint/builtins/gen/literal/textureStore/9f5318.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/9f5318.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2D<int4> arg_0 : register(u0, space1);
 
 void textureStore_9f5318() {
-  arg_0[(0u).xx] = (0).xxxx;
+  arg_0[(1u).xx] = (1).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/9f5318.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/9f5318.wgsl.expected.fxc.hlsl
index 5f0a281..20545e4 100644
--- a/test/tint/builtins/gen/literal/textureStore/9f5318.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/9f5318.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2D<int4> arg_0 : register(u0, space1);
 
 void textureStore_9f5318() {
-  arg_0[(0u).xx] = (0).xxxx;
+  arg_0[(1u).xx] = (1).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/9f5318.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/9f5318.wgsl.expected.msl
index 71eab29..ca32724 100644
--- a/test/tint/builtins/gen/literal/textureStore/9f5318.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/9f5318.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureStore_9f5318(texture2d<int, access::write> tint_symbol_1) {
-  tint_symbol_1.write(int4(0), uint2(uint2(0u)));
+  tint_symbol_1.write(int4(1), uint2(uint2(1u)));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/9f5318.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/9f5318.wgsl.expected.spvasm
index e767dff..f835ad6 100644
--- a/test/tint/builtins/gen/literal/textureStore/9f5318.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/9f5318.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 38
+; Bound: 40
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
@@ -40,36 +40,38 @@
          %13 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
-         %21 = OpConstantNull %v2uint
+     %uint_1 = OpConstant %uint 1
+         %22 = OpConstantComposite %v2uint %uint_1 %uint_1
       %v4int = OpTypeVector %int 4
-         %23 = OpConstantNull %v4int
-         %24 = OpTypeFunction %v4float
+      %int_1 = OpConstant %int 1
+         %25 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+         %26 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_9f5318 = OpFunction %void None %13
          %16 = OpLabel
          %18 = OpLoad %11 %arg_0
-               OpImageWrite %18 %21 %23
+               OpImageWrite %18 %22 %25
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %24
-         %26 = OpLabel
-         %27 = OpFunctionCall %void %textureStore_9f5318
+%vertex_main_inner = OpFunction %v4float None %26
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %textureStore_9f5318
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %29 = OpLabel
-         %30 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %30
+         %31 = OpLabel
+         %32 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %32
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_9f5318
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureStore_9f5318
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_9f5318
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %textureStore_9f5318
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/9f5318.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/9f5318.wgsl.expected.wgsl
index ba762db..0423d90 100644
--- a/test/tint/builtins/gen/literal/textureStore/9f5318.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/9f5318.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rg32sint, write>;
 
 fn textureStore_9f5318() {
-  textureStore(arg_0, vec2<u32>(), vec4<i32>());
+  textureStore(arg_0, vec2<u32>(1u), vec4<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/9f7cea.wgsl b/test/tint/builtins/gen/literal/textureStore/9f7cea.wgsl
index a100c70..5f1421e 100644
--- a/test/tint/builtins/gen/literal/textureStore/9f7cea.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/9f7cea.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureStore(texture: texture_storage_2d_array<rgba8uint, write>, coords: vec2<i32>, array_index: u32, value: vec4<u32>)
 fn textureStore_9f7cea() {
-  textureStore(arg_0, vec2<i32>(), 1u, vec4<u32>());
+  textureStore(arg_0, vec2<i32>(1i), 1u, vec4<u32>(1u));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/9f7cea.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/9f7cea.wgsl.expected.dxc.hlsl
index dfb1462..cde637f 100644
--- a/test/tint/builtins/gen/literal/textureStore/9f7cea.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/9f7cea.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 void textureStore_9f7cea() {
-  arg_0[int3(0, 0, int(1u))] = (0u).xxxx;
+  arg_0[int3((1).xx, int(1u))] = (1u).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/9f7cea.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/9f7cea.wgsl.expected.fxc.hlsl
index dfb1462..cde637f 100644
--- a/test/tint/builtins/gen/literal/textureStore/9f7cea.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/9f7cea.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 void textureStore_9f7cea() {
-  arg_0[int3(0, 0, int(1u))] = (0u).xxxx;
+  arg_0[int3((1).xx, int(1u))] = (1u).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/9f7cea.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/9f7cea.wgsl.expected.glsl
index 4639026..31ef353 100644
--- a/test/tint/builtins/gen/literal/textureStore/9f7cea.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/9f7cea.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 layout(rgba8ui) uniform highp writeonly uimage2DArray arg_0;
 void textureStore_9f7cea() {
-  imageStore(arg_0, ivec3(0, 0, int(1u)), uvec4(0u));
+  imageStore(arg_0, ivec3(ivec2(1), int(1u)), uvec4(1u));
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 
 layout(rgba8ui) uniform highp writeonly uimage2DArray arg_0;
 void textureStore_9f7cea() {
-  imageStore(arg_0, ivec3(0, 0, int(1u)), uvec4(0u));
+  imageStore(arg_0, ivec3(ivec2(1), int(1u)), uvec4(1u));
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 layout(rgba8ui) uniform highp writeonly uimage2DArray arg_0;
 void textureStore_9f7cea() {
-  imageStore(arg_0, ivec3(0, 0, int(1u)), uvec4(0u));
+  imageStore(arg_0, ivec3(ivec2(1), int(1u)), uvec4(1u));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureStore/9f7cea.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/9f7cea.wgsl.expected.msl
index 6ebb568..fa5cafb 100644
--- a/test/tint/builtins/gen/literal/textureStore/9f7cea.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/9f7cea.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureStore_9f7cea(texture2d_array<uint, access::write> tint_symbol_1) {
-  tint_symbol_1.write(uint4(0u), uint2(int2(0)), 1u);
+  tint_symbol_1.write(uint4(1u), uint2(int2(1)), 1u);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/9f7cea.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/9f7cea.wgsl.expected.spvasm
index 09b1bdd..46c70ef 100644
--- a/test/tint/builtins/gen/literal/textureStore/9f7cea.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/9f7cea.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 41
+; Bound: 45
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -39,39 +39,43 @@
          %13 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
-      %int_0 = OpConstant %int 0
+      %v2int = OpTypeVector %int 2
+      %int_1 = OpConstant %int 1
+         %23 = OpConstantComposite %v2int %int_1 %int_1
      %uint_1 = OpConstant %uint 1
      %v4uint = OpTypeVector %uint 4
-         %26 = OpConstantNull %v4uint
-         %27 = OpTypeFunction %v4float
+         %30 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+         %31 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_9f7cea = OpFunction %void None %13
          %16 = OpLabel
          %18 = OpLoad %11 %arg_0
-         %22 = OpBitcast %int %uint_1
-         %24 = OpCompositeConstruct %v3int %int_0 %int_0 %22
-               OpImageWrite %18 %24 %26
+         %24 = OpCompositeExtract %int %23 0
+         %25 = OpCompositeExtract %int %23 1
+         %26 = OpBitcast %int %uint_1
+         %28 = OpCompositeConstruct %v3int %24 %25 %26
+               OpImageWrite %18 %28 %30
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %27
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %textureStore_9f7cea
+%vertex_main_inner = OpFunction %v4float None %31
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureStore_9f7cea
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %32 = OpLabel
-         %33 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %33
+         %36 = OpLabel
+         %37 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %37
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_9f7cea
+         %40 = OpLabel
+         %41 = OpFunctionCall %void %textureStore_9f7cea
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_9f7cea
+         %43 = OpLabel
+         %44 = OpFunctionCall %void %textureStore_9f7cea
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/9f7cea.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/9f7cea.wgsl.expected.wgsl
index 2cfc03b..5c720b7 100644
--- a/test/tint/builtins/gen/literal/textureStore/9f7cea.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/9f7cea.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba8uint, write>;
 
 fn textureStore_9f7cea() {
-  textureStore(arg_0, vec2<i32>(), 1u, vec4<u32>());
+  textureStore(arg_0, vec2<i32>(1i), 1u, vec4<u32>(1u));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/a0f96e.wgsl b/test/tint/builtins/gen/literal/textureStore/a0f96e.wgsl
index 8bc5822..36452ea 100644
--- a/test/tint/builtins/gen/literal/textureStore/a0f96e.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/a0f96e.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureStore(texture: texture_storage_2d_array<rgba16float, write>, coords: vec2<u32>, array_index: u32, value: vec4<f32>)
 fn textureStore_a0f96e() {
-  textureStore(arg_0, vec2<u32>(), 1u, vec4<f32>());
+  textureStore(arg_0, vec2<u32>(1u), 1u, vec4<f32>(1.f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/a0f96e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/a0f96e.wgsl.expected.dxc.hlsl
index eac237c..7d90c8f 100644
--- a/test/tint/builtins/gen/literal/textureStore/a0f96e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/a0f96e.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 void textureStore_a0f96e() {
-  arg_0[uint3(0u, 0u, 1u)] = (0.0f).xxxx;
+  arg_0[uint3((1u).xx, 1u)] = (1.0f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/a0f96e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/a0f96e.wgsl.expected.fxc.hlsl
index eac237c..7d90c8f 100644
--- a/test/tint/builtins/gen/literal/textureStore/a0f96e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/a0f96e.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 void textureStore_a0f96e() {
-  arg_0[uint3(0u, 0u, 1u)] = (0.0f).xxxx;
+  arg_0[uint3((1u).xx, 1u)] = (1.0f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/a0f96e.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/a0f96e.wgsl.expected.glsl
index 0d052c7..5b65139 100644
--- a/test/tint/builtins/gen/literal/textureStore/a0f96e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/a0f96e.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 layout(rgba16f) uniform highp writeonly image2DArray arg_0;
 void textureStore_a0f96e() {
-  imageStore(arg_0, ivec3(uvec3(0u, 0u, 1u)), vec4(0.0f));
+  imageStore(arg_0, ivec3(uvec3(uvec2(1u), 1u)), vec4(1.0f));
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 
 layout(rgba16f) uniform highp writeonly image2DArray arg_0;
 void textureStore_a0f96e() {
-  imageStore(arg_0, ivec3(uvec3(0u, 0u, 1u)), vec4(0.0f));
+  imageStore(arg_0, ivec3(uvec3(uvec2(1u), 1u)), vec4(1.0f));
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 layout(rgba16f) uniform highp writeonly image2DArray arg_0;
 void textureStore_a0f96e() {
-  imageStore(arg_0, ivec3(uvec3(0u, 0u, 1u)), vec4(0.0f));
+  imageStore(arg_0, ivec3(uvec3(uvec2(1u), 1u)), vec4(1.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureStore/a0f96e.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/a0f96e.wgsl.expected.msl
index 55416ec..ce17fe2 100644
--- a/test/tint/builtins/gen/literal/textureStore/a0f96e.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/a0f96e.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureStore_a0f96e(texture2d_array<float, access::write> tint_symbol_1) {
-  tint_symbol_1.write(float4(0.0f), uint2(uint2(0u)), 1u);
+  tint_symbol_1.write(float4(1.0f), uint2(uint2(1u)), 1u);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/a0f96e.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/a0f96e.wgsl.expected.spvasm
index be0bd69..17183b6 100644
--- a/test/tint/builtins/gen/literal/textureStore/a0f96e.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/a0f96e.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 37
+; Bound: 41
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -38,36 +38,40 @@
          %12 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
-     %uint_0 = OpConstant %uint 0
+     %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %22 = OpConstantComposite %v3uint %uint_0 %uint_0 %uint_1
-         %23 = OpTypeFunction %v4float
+         %22 = OpConstantComposite %v2uint %uint_1 %uint_1
     %float_1 = OpConstant %float 1
+         %27 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %28 = OpTypeFunction %v4float
 %textureStore_a0f96e = OpFunction %void None %12
          %15 = OpLabel
          %17 = OpLoad %11 %arg_0
-               OpImageWrite %17 %22 %5
+         %23 = OpCompositeExtract %uint %22 0
+         %24 = OpCompositeExtract %uint %22 1
+         %25 = OpCompositeConstruct %v3uint %23 %24 %uint_1
+               OpImageWrite %17 %25 %27
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %23
-         %25 = OpLabel
-         %26 = OpFunctionCall %void %textureStore_a0f96e
+%vertex_main_inner = OpFunction %v4float None %28
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %textureStore_a0f96e
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %28 = OpLabel
-         %29 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %29
+         %33 = OpLabel
+         %34 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %34
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_a0f96e
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureStore_a0f96e
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureStore_a0f96e
+         %39 = OpLabel
+         %40 = OpFunctionCall %void %textureStore_a0f96e
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/a0f96e.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/a0f96e.wgsl.expected.wgsl
index 4903cd3..3137e47 100644
--- a/test/tint/builtins/gen/literal/textureStore/a0f96e.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/a0f96e.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba16float, write>;
 
 fn textureStore_a0f96e() {
-  textureStore(arg_0, vec2<u32>(), 1u, vec4<f32>());
+  textureStore(arg_0, vec2<u32>(1u), 1u, vec4<f32>(1.0f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/a1352c.wgsl b/test/tint/builtins/gen/literal/textureStore/a1352c.wgsl
index 1457ecf..a52b228 100644
--- a/test/tint/builtins/gen/literal/textureStore/a1352c.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/a1352c.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureStore(texture: texture_storage_2d_array<rgba8sint, write>, coords: vec2<u32>, array_index: u32, value: vec4<i32>)
 fn textureStore_a1352c() {
-  textureStore(arg_0, vec2<u32>(), 1u, vec4<i32>());
+  textureStore(arg_0, vec2<u32>(1u), 1u, vec4<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/a1352c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/a1352c.wgsl.expected.dxc.hlsl
index 852989a..b4c166d 100644
--- a/test/tint/builtins/gen/literal/textureStore/a1352c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/a1352c.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 void textureStore_a1352c() {
-  arg_0[uint3(0u, 0u, 1u)] = (0).xxxx;
+  arg_0[uint3((1u).xx, 1u)] = (1).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/a1352c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/a1352c.wgsl.expected.fxc.hlsl
index 852989a..b4c166d 100644
--- a/test/tint/builtins/gen/literal/textureStore/a1352c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/a1352c.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 void textureStore_a1352c() {
-  arg_0[uint3(0u, 0u, 1u)] = (0).xxxx;
+  arg_0[uint3((1u).xx, 1u)] = (1).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/a1352c.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/a1352c.wgsl.expected.glsl
index 69fba50..501d60e 100644
--- a/test/tint/builtins/gen/literal/textureStore/a1352c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/a1352c.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 layout(rgba8i) uniform highp writeonly iimage2DArray arg_0;
 void textureStore_a1352c() {
-  imageStore(arg_0, ivec3(uvec3(0u, 0u, 1u)), ivec4(0));
+  imageStore(arg_0, ivec3(uvec3(uvec2(1u), 1u)), ivec4(1));
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 
 layout(rgba8i) uniform highp writeonly iimage2DArray arg_0;
 void textureStore_a1352c() {
-  imageStore(arg_0, ivec3(uvec3(0u, 0u, 1u)), ivec4(0));
+  imageStore(arg_0, ivec3(uvec3(uvec2(1u), 1u)), ivec4(1));
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 layout(rgba8i) uniform highp writeonly iimage2DArray arg_0;
 void textureStore_a1352c() {
-  imageStore(arg_0, ivec3(uvec3(0u, 0u, 1u)), ivec4(0));
+  imageStore(arg_0, ivec3(uvec3(uvec2(1u), 1u)), ivec4(1));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureStore/a1352c.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/a1352c.wgsl.expected.msl
index e5aa80c..3d3ba49 100644
--- a/test/tint/builtins/gen/literal/textureStore/a1352c.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/a1352c.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureStore_a1352c(texture2d_array<int, access::write> tint_symbol_1) {
-  tint_symbol_1.write(int4(0), uint2(uint2(0u)), 1u);
+  tint_symbol_1.write(int4(1), uint2(uint2(1u)), 1u);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/a1352c.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/a1352c.wgsl.expected.spvasm
index 88ec228..b9dc68a 100644
--- a/test/tint/builtins/gen/literal/textureStore/a1352c.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/a1352c.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 40
+; Bound: 44
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -39,38 +39,42 @@
          %13 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
-     %uint_0 = OpConstant %uint 0
+     %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %23 = OpConstantComposite %v3uint %uint_0 %uint_0 %uint_1
+         %23 = OpConstantComposite %v2uint %uint_1 %uint_1
       %v4int = OpTypeVector %int 4
-         %25 = OpConstantNull %v4int
-         %26 = OpTypeFunction %v4float
+      %int_1 = OpConstant %int 1
+         %29 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+         %30 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_a1352c = OpFunction %void None %13
          %16 = OpLabel
          %18 = OpLoad %11 %arg_0
-               OpImageWrite %18 %23 %25
+         %24 = OpCompositeExtract %uint %23 0
+         %25 = OpCompositeExtract %uint %23 1
+         %26 = OpCompositeConstruct %v3uint %24 %25 %uint_1
+               OpImageWrite %18 %26 %29
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %26
-         %28 = OpLabel
-         %29 = OpFunctionCall %void %textureStore_a1352c
+%vertex_main_inner = OpFunction %v4float None %30
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %textureStore_a1352c
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %31 = OpLabel
-         %32 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %32
+         %35 = OpLabel
+         %36 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %36
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureStore_a1352c
+         %39 = OpLabel
+         %40 = OpFunctionCall %void %textureStore_a1352c
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureStore_a1352c
+         %42 = OpLabel
+         %43 = OpFunctionCall %void %textureStore_a1352c
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/a1352c.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/a1352c.wgsl.expected.wgsl
index d4ae406..b4f55b4 100644
--- a/test/tint/builtins/gen/literal/textureStore/a1352c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/a1352c.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba8sint, write>;
 
 fn textureStore_a1352c() {
-  textureStore(arg_0, vec2<u32>(), 1u, vec4<i32>());
+  textureStore(arg_0, vec2<u32>(1u), 1u, vec4<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/a4c338.wgsl b/test/tint/builtins/gen/literal/textureStore/a4c338.wgsl
index 90266ad..f05d977 100644
--- a/test/tint/builtins/gen/literal/textureStore/a4c338.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/a4c338.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureStore(texture: texture_storage_1d<rgba16float, write>, coords: u32, value: vec4<f32>)
 fn textureStore_a4c338() {
-  textureStore(arg_0, 1u, vec4<f32>());
+  textureStore(arg_0, 1u, vec4<f32>(1.f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/a4c338.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/a4c338.wgsl.expected.dxc.hlsl
index 887d1a0..ee3762e 100644
--- a/test/tint/builtins/gen/literal/textureStore/a4c338.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/a4c338.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture1D<float4> arg_0 : register(u0, space1);
 
 void textureStore_a4c338() {
-  arg_0[1u] = (0.0f).xxxx;
+  arg_0[1u] = (1.0f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/a4c338.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/a4c338.wgsl.expected.fxc.hlsl
index 887d1a0..ee3762e 100644
--- a/test/tint/builtins/gen/literal/textureStore/a4c338.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/a4c338.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture1D<float4> arg_0 : register(u0, space1);
 
 void textureStore_a4c338() {
-  arg_0[1u] = (0.0f).xxxx;
+  arg_0[1u] = (1.0f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/a4c338.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/a4c338.wgsl.expected.msl
index be778b9..519937c 100644
--- a/test/tint/builtins/gen/literal/textureStore/a4c338.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/a4c338.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureStore_a4c338(texture1d<float, access::write> tint_symbol_1) {
-  tint_symbol_1.write(float4(0.0f), uint(1u));
+  tint_symbol_1.write(float4(1.0f), uint(1u));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/a4c338.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/a4c338.wgsl.expected.spvasm
index 700238c..f5e8d49 100644
--- a/test/tint/builtins/gen/literal/textureStore/a4c338.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/a4c338.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 34
+; Bound: 35
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
@@ -39,33 +39,34 @@
          %12 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
-         %20 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
+         %21 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %22 = OpTypeFunction %v4float
 %textureStore_a4c338 = OpFunction %void None %12
          %15 = OpLabel
          %17 = OpLoad %11 %arg_0
-               OpImageWrite %17 %uint_1 %5
+               OpImageWrite %17 %uint_1 %21
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %20
-         %22 = OpLabel
-         %23 = OpFunctionCall %void %textureStore_a4c338
+%vertex_main_inner = OpFunction %v4float None %22
+         %24 = OpLabel
+         %25 = OpFunctionCall %void %textureStore_a4c338
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %25 = OpLabel
-         %26 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %26
+         %27 = OpLabel
+         %28 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %28
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %textureStore_a4c338
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %textureStore_a4c338
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_a4c338
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureStore_a4c338
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/a4c338.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/a4c338.wgsl.expected.wgsl
index 16909fd..2402733 100644
--- a/test/tint/builtins/gen/literal/textureStore/a4c338.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/a4c338.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rgba16float, write>;
 
 fn textureStore_a4c338() {
-  textureStore(arg_0, 1u, vec4<f32>());
+  textureStore(arg_0, 1u, vec4<f32>(1.0f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/a5e80d.wgsl b/test/tint/builtins/gen/literal/textureStore/a5e80d.wgsl
index d35de02..a433269 100644
--- a/test/tint/builtins/gen/literal/textureStore/a5e80d.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/a5e80d.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureStore(texture: texture_storage_3d<rgba32float, write>, coords: vec3<u32>, value: vec4<f32>)
 fn textureStore_a5e80d() {
-  textureStore(arg_0, vec3<u32>(), vec4<f32>());
+  textureStore(arg_0, vec3<u32>(1u), vec4<f32>(1.f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/a5e80d.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/a5e80d.wgsl.expected.dxc.hlsl
index beae873..b49b2b2 100644
--- a/test/tint/builtins/gen/literal/textureStore/a5e80d.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/a5e80d.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture3D<float4> arg_0 : register(u0, space1);
 
 void textureStore_a5e80d() {
-  arg_0[(0u).xxx] = (0.0f).xxxx;
+  arg_0[(1u).xxx] = (1.0f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/a5e80d.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/a5e80d.wgsl.expected.fxc.hlsl
index beae873..b49b2b2 100644
--- a/test/tint/builtins/gen/literal/textureStore/a5e80d.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/a5e80d.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture3D<float4> arg_0 : register(u0, space1);
 
 void textureStore_a5e80d() {
-  arg_0[(0u).xxx] = (0.0f).xxxx;
+  arg_0[(1u).xxx] = (1.0f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/a5e80d.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/a5e80d.wgsl.expected.glsl
index 0a280ee..7bacb6e 100644
--- a/test/tint/builtins/gen/literal/textureStore/a5e80d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/a5e80d.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 layout(rgba32f) uniform highp writeonly image3D arg_0;
 void textureStore_a5e80d() {
-  imageStore(arg_0, ivec3(uvec3(0u)), vec4(0.0f));
+  imageStore(arg_0, ivec3(uvec3(1u)), vec4(1.0f));
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 
 layout(rgba32f) uniform highp writeonly image3D arg_0;
 void textureStore_a5e80d() {
-  imageStore(arg_0, ivec3(uvec3(0u)), vec4(0.0f));
+  imageStore(arg_0, ivec3(uvec3(1u)), vec4(1.0f));
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 layout(rgba32f) uniform highp writeonly image3D arg_0;
 void textureStore_a5e80d() {
-  imageStore(arg_0, ivec3(uvec3(0u)), vec4(0.0f));
+  imageStore(arg_0, ivec3(uvec3(1u)), vec4(1.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureStore/a5e80d.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/a5e80d.wgsl.expected.msl
index b44bcec..e62a4b4 100644
--- a/test/tint/builtins/gen/literal/textureStore/a5e80d.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/a5e80d.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureStore_a5e80d(texture3d<float, access::write> tint_symbol_1) {
-  tint_symbol_1.write(float4(0.0f), uint3(uint3(0u)));
+  tint_symbol_1.write(float4(1.0f), uint3(uint3(1u)));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/a5e80d.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/a5e80d.wgsl.expected.spvasm
index 6710bee..51445f9 100644
--- a/test/tint/builtins/gen/literal/textureStore/a5e80d.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/a5e80d.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 35
+; Bound: 37
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -38,34 +38,36 @@
          %12 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
-         %20 = OpConstantNull %v3uint
-         %21 = OpTypeFunction %v4float
+     %uint_1 = OpConstant %uint 1
+         %21 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
     %float_1 = OpConstant %float 1
+         %23 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %24 = OpTypeFunction %v4float
 %textureStore_a5e80d = OpFunction %void None %12
          %15 = OpLabel
          %17 = OpLoad %11 %arg_0
-               OpImageWrite %17 %20 %5
+               OpImageWrite %17 %21 %23
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %21
-         %23 = OpLabel
-         %24 = OpFunctionCall %void %textureStore_a5e80d
+%vertex_main_inner = OpFunction %v4float None %24
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %textureStore_a5e80d
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %26 = OpLabel
-         %27 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %27
+         %29 = OpLabel
+         %30 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %30
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %textureStore_a5e80d
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %textureStore_a5e80d
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_a5e80d
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureStore_a5e80d
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/a5e80d.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/a5e80d.wgsl.expected.wgsl
index 523b068..b73edc0 100644
--- a/test/tint/builtins/gen/literal/textureStore/a5e80d.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/a5e80d.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rgba32float, write>;
 
 fn textureStore_a5e80d() {
-  textureStore(arg_0, vec3<u32>(), vec4<f32>());
+  textureStore(arg_0, vec3<u32>(1u), vec4<f32>(1.0f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/a6a986.wgsl b/test/tint/builtins/gen/literal/textureStore/a6a986.wgsl
index 8bbdda2..88d4427 100644
--- a/test/tint/builtins/gen/literal/textureStore/a6a986.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/a6a986.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureStore(texture: texture_storage_2d_array<rgba16float, write>, coords: vec2<u32>, array_index: i32, value: vec4<f32>)
 fn textureStore_a6a986() {
-  textureStore(arg_0, vec2<u32>(), 1i, vec4<f32>());
+  textureStore(arg_0, vec2<u32>(1u), 1i, vec4<f32>(1.f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/a6a986.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/a6a986.wgsl.expected.dxc.hlsl
index 7129e59..968e9e8 100644
--- a/test/tint/builtins/gen/literal/textureStore/a6a986.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/a6a986.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 void textureStore_a6a986() {
-  arg_0[uint3(0u, 0u, uint(1))] = (0.0f).xxxx;
+  arg_0[uint3((1u).xx, uint(1))] = (1.0f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/a6a986.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/a6a986.wgsl.expected.fxc.hlsl
index 7129e59..968e9e8 100644
--- a/test/tint/builtins/gen/literal/textureStore/a6a986.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/a6a986.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 void textureStore_a6a986() {
-  arg_0[uint3(0u, 0u, uint(1))] = (0.0f).xxxx;
+  arg_0[uint3((1u).xx, uint(1))] = (1.0f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/a6a986.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/a6a986.wgsl.expected.glsl
index 0d9db4a..f6bfd77 100644
--- a/test/tint/builtins/gen/literal/textureStore/a6a986.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/a6a986.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 layout(rgba16f) uniform highp writeonly image2DArray arg_0;
 void textureStore_a6a986() {
-  imageStore(arg_0, ivec3(uvec3(0u, 0u, uint(1))), vec4(0.0f));
+  imageStore(arg_0, ivec3(uvec3(uvec2(1u), uint(1))), vec4(1.0f));
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 
 layout(rgba16f) uniform highp writeonly image2DArray arg_0;
 void textureStore_a6a986() {
-  imageStore(arg_0, ivec3(uvec3(0u, 0u, uint(1))), vec4(0.0f));
+  imageStore(arg_0, ivec3(uvec3(uvec2(1u), uint(1))), vec4(1.0f));
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 layout(rgba16f) uniform highp writeonly image2DArray arg_0;
 void textureStore_a6a986() {
-  imageStore(arg_0, ivec3(uvec3(0u, 0u, uint(1))), vec4(0.0f));
+  imageStore(arg_0, ivec3(uvec3(uvec2(1u), uint(1))), vec4(1.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureStore/a6a986.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/a6a986.wgsl.expected.msl
index ecbe6c0..a0fbb24 100644
--- a/test/tint/builtins/gen/literal/textureStore/a6a986.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/a6a986.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureStore_a6a986(texture2d_array<float, access::write> tint_symbol_1) {
-  tint_symbol_1.write(float4(0.0f), uint2(uint2(0u)), 1);
+  tint_symbol_1.write(float4(1.0f), uint2(uint2(1u)), 1);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/a6a986.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/a6a986.wgsl.expected.spvasm
index 08a3859..8ca98d1 100644
--- a/test/tint/builtins/gen/literal/textureStore/a6a986.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/a6a986.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 39
+; Bound: 44
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -38,38 +38,43 @@
          %12 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
-     %uint_0 = OpConstant %uint 0
+     %v2uint = OpTypeVector %uint 2
+     %uint_1 = OpConstant %uint 1
+         %22 = OpConstantComposite %v2uint %uint_1 %uint_1
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
-         %25 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
+         %30 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %31 = OpTypeFunction %v4float
 %textureStore_a6a986 = OpFunction %void None %12
          %15 = OpLabel
          %17 = OpLoad %11 %arg_0
-         %21 = OpBitcast %uint %int_1
-         %24 = OpCompositeConstruct %v3uint %uint_0 %uint_0 %21
-               OpImageWrite %17 %24 %5
+         %23 = OpCompositeExtract %uint %22 0
+         %24 = OpCompositeExtract %uint %22 1
+         %25 = OpBitcast %uint %int_1
+         %28 = OpCompositeConstruct %v3uint %23 %24 %25
+               OpImageWrite %17 %28 %30
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %25
-         %27 = OpLabel
-         %28 = OpFunctionCall %void %textureStore_a6a986
+%vertex_main_inner = OpFunction %v4float None %31
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureStore_a6a986
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %30 = OpLabel
-         %31 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %31
+         %36 = OpLabel
+         %37 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %37
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureStore_a6a986
+         %39 = OpLabel
+         %40 = OpFunctionCall %void %textureStore_a6a986
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureStore_a6a986
+         %42 = OpLabel
+         %43 = OpFunctionCall %void %textureStore_a6a986
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/a6a986.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/a6a986.wgsl.expected.wgsl
index a07b3a2..c3c9122 100644
--- a/test/tint/builtins/gen/literal/textureStore/a6a986.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/a6a986.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba16float, write>;
 
 fn textureStore_a6a986() {
-  textureStore(arg_0, vec2<u32>(), 1i, vec4<f32>());
+  textureStore(arg_0, vec2<u32>(1u), 1i, vec4<f32>(1.0f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/a6e78f.wgsl b/test/tint/builtins/gen/literal/textureStore/a6e78f.wgsl
index 5ad97c0..af252c6 100644
--- a/test/tint/builtins/gen/literal/textureStore/a6e78f.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/a6e78f.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureStore(texture: texture_storage_1d<r32uint, write>, coords: u32, value: vec4<u32>)
 fn textureStore_a6e78f() {
-  textureStore(arg_0, 1u, vec4<u32>());
+  textureStore(arg_0, 1u, vec4<u32>(1u));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/a6e78f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/a6e78f.wgsl.expected.dxc.hlsl
index 5c32fa3..0a6ae37 100644
--- a/test/tint/builtins/gen/literal/textureStore/a6e78f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/a6e78f.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture1D<uint4> arg_0 : register(u0, space1);
 
 void textureStore_a6e78f() {
-  arg_0[1u] = (0u).xxxx;
+  arg_0[1u] = (1u).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/a6e78f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/a6e78f.wgsl.expected.fxc.hlsl
index 5c32fa3..0a6ae37 100644
--- a/test/tint/builtins/gen/literal/textureStore/a6e78f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/a6e78f.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture1D<uint4> arg_0 : register(u0, space1);
 
 void textureStore_a6e78f() {
-  arg_0[1u] = (0u).xxxx;
+  arg_0[1u] = (1u).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/a6e78f.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/a6e78f.wgsl.expected.msl
index f45f6f8..6c096f8 100644
--- a/test/tint/builtins/gen/literal/textureStore/a6e78f.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/a6e78f.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureStore_a6e78f(texture1d<uint, access::write> tint_symbol_1) {
-  tint_symbol_1.write(uint4(0u), uint(1u));
+  tint_symbol_1.write(uint4(1u), uint(1u));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/a6e78f.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/a6e78f.wgsl.expected.spvasm
index d235078..2aa2d9f 100644
--- a/test/tint/builtins/gen/literal/textureStore/a6e78f.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/a6e78f.wgsl.expected.spvasm
@@ -40,7 +40,7 @@
          %13 = OpTypeFunction %void
      %uint_1 = OpConstant %uint 1
      %v4uint = OpTypeVector %uint 4
-         %21 = OpConstantNull %v4uint
+         %21 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
          %22 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_a6e78f = OpFunction %void None %13
diff --git a/test/tint/builtins/gen/literal/textureStore/a6e78f.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/a6e78f.wgsl.expected.wgsl
index 38db884..6ba26bd 100644
--- a/test/tint/builtins/gen/literal/textureStore/a6e78f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/a6e78f.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_storage_1d<r32uint, write>;
 
 fn textureStore_a6e78f() {
-  textureStore(arg_0, 1u, vec4<u32>());
+  textureStore(arg_0, 1u, vec4<u32>(1u));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/a9426c.wgsl b/test/tint/builtins/gen/literal/textureStore/a9426c.wgsl
index 45ac5b0..2f4a346 100644
--- a/test/tint/builtins/gen/literal/textureStore/a9426c.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/a9426c.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureStore(texture: texture_storage_2d_array<rgba32uint, write>, coords: vec2<u32>, array_index: u32, value: vec4<u32>)
 fn textureStore_a9426c() {
-  textureStore(arg_0, vec2<u32>(), 1u, vec4<u32>());
+  textureStore(arg_0, vec2<u32>(1u), 1u, vec4<u32>(1u));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/a9426c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/a9426c.wgsl.expected.dxc.hlsl
index 8faa545..31cd280 100644
--- a/test/tint/builtins/gen/literal/textureStore/a9426c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/a9426c.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 void textureStore_a9426c() {
-  arg_0[uint3(0u, 0u, 1u)] = (0u).xxxx;
+  arg_0[uint3((1u).xx, 1u)] = (1u).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/a9426c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/a9426c.wgsl.expected.fxc.hlsl
index 8faa545..31cd280 100644
--- a/test/tint/builtins/gen/literal/textureStore/a9426c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/a9426c.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 void textureStore_a9426c() {
-  arg_0[uint3(0u, 0u, 1u)] = (0u).xxxx;
+  arg_0[uint3((1u).xx, 1u)] = (1u).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/a9426c.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/a9426c.wgsl.expected.glsl
index f7d65f9..18456eb 100644
--- a/test/tint/builtins/gen/literal/textureStore/a9426c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/a9426c.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 layout(rgba32ui) uniform highp writeonly uimage2DArray arg_0;
 void textureStore_a9426c() {
-  imageStore(arg_0, ivec3(uvec3(0u, 0u, 1u)), uvec4(0u));
+  imageStore(arg_0, ivec3(uvec3(uvec2(1u), 1u)), uvec4(1u));
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 
 layout(rgba32ui) uniform highp writeonly uimage2DArray arg_0;
 void textureStore_a9426c() {
-  imageStore(arg_0, ivec3(uvec3(0u, 0u, 1u)), uvec4(0u));
+  imageStore(arg_0, ivec3(uvec3(uvec2(1u), 1u)), uvec4(1u));
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 layout(rgba32ui) uniform highp writeonly uimage2DArray arg_0;
 void textureStore_a9426c() {
-  imageStore(arg_0, ivec3(uvec3(0u, 0u, 1u)), uvec4(0u));
+  imageStore(arg_0, ivec3(uvec3(uvec2(1u), 1u)), uvec4(1u));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureStore/a9426c.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/a9426c.wgsl.expected.msl
index f4bbdd4..a6335ca 100644
--- a/test/tint/builtins/gen/literal/textureStore/a9426c.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/a9426c.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureStore_a9426c(texture2d_array<uint, access::write> tint_symbol_1) {
-  tint_symbol_1.write(uint4(0u), uint2(uint2(0u)), 1u);
+  tint_symbol_1.write(uint4(1u), uint2(uint2(1u)), 1u);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/a9426c.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/a9426c.wgsl.expected.spvasm
index 9439679..9d2d116a 100644
--- a/test/tint/builtins/gen/literal/textureStore/a9426c.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/a9426c.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 39
+; Bound: 42
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -38,38 +38,41 @@
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
      %v3uint = OpTypeVector %uint 3
-     %uint_0 = OpConstant %uint 0
+     %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %22 = OpConstantComposite %v3uint %uint_0 %uint_0 %uint_1
+         %22 = OpConstantComposite %v2uint %uint_1 %uint_1
      %v4uint = OpTypeVector %uint 4
-         %24 = OpConstantNull %v4uint
-         %25 = OpTypeFunction %v4float
+         %27 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+         %28 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_a9426c = OpFunction %void None %13
          %16 = OpLabel
          %18 = OpLoad %11 %arg_0
-               OpImageWrite %18 %22 %24
+         %23 = OpCompositeExtract %uint %22 0
+         %24 = OpCompositeExtract %uint %22 1
+         %25 = OpCompositeConstruct %v3uint %23 %24 %uint_1
+               OpImageWrite %18 %25 %27
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %25
-         %27 = OpLabel
-         %28 = OpFunctionCall %void %textureStore_a9426c
+%vertex_main_inner = OpFunction %v4float None %28
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %textureStore_a9426c
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %30 = OpLabel
-         %31 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %31
+         %33 = OpLabel
+         %34 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %34
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureStore_a9426c
+         %37 = OpLabel
+         %38 = OpFunctionCall %void %textureStore_a9426c
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureStore_a9426c
+         %40 = OpLabel
+         %41 = OpFunctionCall %void %textureStore_a9426c
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/a9426c.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/a9426c.wgsl.expected.wgsl
index 186d1fc..989163f 100644
--- a/test/tint/builtins/gen/literal/textureStore/a9426c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/a9426c.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba32uint, write>;
 
 fn textureStore_a9426c() {
-  textureStore(arg_0, vec2<u32>(), 1u, vec4<u32>());
+  textureStore(arg_0, vec2<u32>(1u), 1u, vec4<u32>(1u));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/ac67aa.wgsl b/test/tint/builtins/gen/literal/textureStore/ac67aa.wgsl
index 99c466d..50fe83b 100644
--- a/test/tint/builtins/gen/literal/textureStore/ac67aa.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/ac67aa.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureStore(texture: texture_storage_3d<rg32uint, write>, coords: vec3<i32>, value: vec4<u32>)
 fn textureStore_ac67aa() {
-  textureStore(arg_0, vec3<i32>(), vec4<u32>());
+  textureStore(arg_0, vec3<i32>(1i), vec4<u32>(1u));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/ac67aa.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/ac67aa.wgsl.expected.dxc.hlsl
index 94cd654..e9ccad1 100644
--- a/test/tint/builtins/gen/literal/textureStore/ac67aa.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/ac67aa.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture3D<uint4> arg_0 : register(u0, space1);
 
 void textureStore_ac67aa() {
-  arg_0[(0).xxx] = (0u).xxxx;
+  arg_0[(1).xxx] = (1u).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/ac67aa.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/ac67aa.wgsl.expected.fxc.hlsl
index 94cd654..e9ccad1 100644
--- a/test/tint/builtins/gen/literal/textureStore/ac67aa.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/ac67aa.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture3D<uint4> arg_0 : register(u0, space1);
 
 void textureStore_ac67aa() {
-  arg_0[(0).xxx] = (0u).xxxx;
+  arg_0[(1).xxx] = (1u).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/ac67aa.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/ac67aa.wgsl.expected.msl
index a72b97c..1c5794d 100644
--- a/test/tint/builtins/gen/literal/textureStore/ac67aa.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/ac67aa.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureStore_ac67aa(texture3d<uint, access::write> tint_symbol_1) {
-  tint_symbol_1.write(uint4(0u), uint3(int3(0)));
+  tint_symbol_1.write(uint4(1u), uint3(int3(1)));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/ac67aa.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/ac67aa.wgsl.expected.spvasm
index e18042c..49759cd 100644
--- a/test/tint/builtins/gen/literal/textureStore/ac67aa.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/ac67aa.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 38
+; Bound: 40
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
@@ -40,36 +40,38 @@
          %13 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
-         %21 = OpConstantNull %v3int
+      %int_1 = OpConstant %int 1
+         %22 = OpConstantComposite %v3int %int_1 %int_1 %int_1
      %v4uint = OpTypeVector %uint 4
-         %23 = OpConstantNull %v4uint
-         %24 = OpTypeFunction %v4float
+     %uint_1 = OpConstant %uint 1
+         %25 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+         %26 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_ac67aa = OpFunction %void None %13
          %16 = OpLabel
          %18 = OpLoad %11 %arg_0
-               OpImageWrite %18 %21 %23
+               OpImageWrite %18 %22 %25
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %24
-         %26 = OpLabel
-         %27 = OpFunctionCall %void %textureStore_ac67aa
+%vertex_main_inner = OpFunction %v4float None %26
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %textureStore_ac67aa
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %29 = OpLabel
-         %30 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %30
+         %31 = OpLabel
+         %32 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %32
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_ac67aa
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureStore_ac67aa
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_ac67aa
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %textureStore_ac67aa
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/ac67aa.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/ac67aa.wgsl.expected.wgsl
index c3095f6..c7dabf6 100644
--- a/test/tint/builtins/gen/literal/textureStore/ac67aa.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/ac67aa.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rg32uint, write>;
 
 fn textureStore_ac67aa() {
-  textureStore(arg_0, vec3<i32>(), vec4<u32>());
+  textureStore(arg_0, vec3<i32>(1i), vec4<u32>(1u));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/aeb38a.wgsl b/test/tint/builtins/gen/literal/textureStore/aeb38a.wgsl
index 3eb9078..76ebe28 100644
--- a/test/tint/builtins/gen/literal/textureStore/aeb38a.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/aeb38a.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureStore(texture: texture_storage_2d<rgba32uint, write>, coords: vec2<u32>, value: vec4<u32>)
 fn textureStore_aeb38a() {
-  textureStore(arg_0, vec2<u32>(), vec4<u32>());
+  textureStore(arg_0, vec2<u32>(1u), vec4<u32>(1u));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/aeb38a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/aeb38a.wgsl.expected.dxc.hlsl
index 207747f..ff6dc85 100644
--- a/test/tint/builtins/gen/literal/textureStore/aeb38a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/aeb38a.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2D<uint4> arg_0 : register(u0, space1);
 
 void textureStore_aeb38a() {
-  arg_0[(0u).xx] = (0u).xxxx;
+  arg_0[(1u).xx] = (1u).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/aeb38a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/aeb38a.wgsl.expected.fxc.hlsl
index 207747f..ff6dc85 100644
--- a/test/tint/builtins/gen/literal/textureStore/aeb38a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/aeb38a.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2D<uint4> arg_0 : register(u0, space1);
 
 void textureStore_aeb38a() {
-  arg_0[(0u).xx] = (0u).xxxx;
+  arg_0[(1u).xx] = (1u).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/aeb38a.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/aeb38a.wgsl.expected.glsl
index 64d71b7..41fe949 100644
--- a/test/tint/builtins/gen/literal/textureStore/aeb38a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/aeb38a.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 layout(rgba32ui) uniform highp writeonly uimage2D arg_0;
 void textureStore_aeb38a() {
-  imageStore(arg_0, ivec2(uvec2(0u)), uvec4(0u));
+  imageStore(arg_0, ivec2(uvec2(1u)), uvec4(1u));
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 
 layout(rgba32ui) uniform highp writeonly uimage2D arg_0;
 void textureStore_aeb38a() {
-  imageStore(arg_0, ivec2(uvec2(0u)), uvec4(0u));
+  imageStore(arg_0, ivec2(uvec2(1u)), uvec4(1u));
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 layout(rgba32ui) uniform highp writeonly uimage2D arg_0;
 void textureStore_aeb38a() {
-  imageStore(arg_0, ivec2(uvec2(0u)), uvec4(0u));
+  imageStore(arg_0, ivec2(uvec2(1u)), uvec4(1u));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureStore/aeb38a.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/aeb38a.wgsl.expected.msl
index 816a29f..e3850a7 100644
--- a/test/tint/builtins/gen/literal/textureStore/aeb38a.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/aeb38a.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureStore_aeb38a(texture2d<uint, access::write> tint_symbol_1) {
-  tint_symbol_1.write(uint4(0u), uint2(uint2(0u)));
+  tint_symbol_1.write(uint4(1u), uint2(uint2(1u)));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/aeb38a.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/aeb38a.wgsl.expected.spvasm
index 9823237..7a929b4 100644
--- a/test/tint/builtins/gen/literal/textureStore/aeb38a.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/aeb38a.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 37
+; Bound: 38
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -38,36 +38,37 @@
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
      %v2uint = OpTypeVector %uint 2
-         %20 = OpConstantNull %v2uint
+     %uint_1 = OpConstant %uint 1
+         %21 = OpConstantComposite %v2uint %uint_1 %uint_1
      %v4uint = OpTypeVector %uint 4
-         %22 = OpConstantNull %v4uint
-         %23 = OpTypeFunction %v4float
+         %23 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+         %24 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_aeb38a = OpFunction %void None %13
          %16 = OpLabel
          %18 = OpLoad %11 %arg_0
-               OpImageWrite %18 %20 %22
+               OpImageWrite %18 %21 %23
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %23
-         %25 = OpLabel
-         %26 = OpFunctionCall %void %textureStore_aeb38a
+%vertex_main_inner = OpFunction %v4float None %24
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %textureStore_aeb38a
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %28 = OpLabel
-         %29 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %29
+         %29 = OpLabel
+         %30 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %30
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_aeb38a
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureStore_aeb38a
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureStore_aeb38a
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureStore_aeb38a
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/aeb38a.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/aeb38a.wgsl.expected.wgsl
index 9730895..da77ab2 100644
--- a/test/tint/builtins/gen/literal/textureStore/aeb38a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/aeb38a.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba32uint, write>;
 
 fn textureStore_aeb38a() {
-  textureStore(arg_0, vec2<u32>(), vec4<u32>());
+  textureStore(arg_0, vec2<u32>(1u), vec4<u32>(1u));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/b42fd3.wgsl b/test/tint/builtins/gen/literal/textureStore/b42fd3.wgsl
index 8de25c8..48348e8 100644
--- a/test/tint/builtins/gen/literal/textureStore/b42fd3.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/b42fd3.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureStore(texture: texture_storage_2d_array<rgba8uint, write>, coords: vec2<u32>, array_index: u32, value: vec4<u32>)
 fn textureStore_b42fd3() {
-  textureStore(arg_0, vec2<u32>(), 1u, vec4<u32>());
+  textureStore(arg_0, vec2<u32>(1u), 1u, vec4<u32>(1u));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/b42fd3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/b42fd3.wgsl.expected.dxc.hlsl
index 2f7eb46..e520a5a 100644
--- a/test/tint/builtins/gen/literal/textureStore/b42fd3.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/b42fd3.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 void textureStore_b42fd3() {
-  arg_0[uint3(0u, 0u, 1u)] = (0u).xxxx;
+  arg_0[uint3((1u).xx, 1u)] = (1u).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/b42fd3.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/b42fd3.wgsl.expected.fxc.hlsl
index 2f7eb46..e520a5a 100644
--- a/test/tint/builtins/gen/literal/textureStore/b42fd3.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/b42fd3.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 void textureStore_b42fd3() {
-  arg_0[uint3(0u, 0u, 1u)] = (0u).xxxx;
+  arg_0[uint3((1u).xx, 1u)] = (1u).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/b42fd3.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/b42fd3.wgsl.expected.glsl
index 921ec9e..d76d7a5 100644
--- a/test/tint/builtins/gen/literal/textureStore/b42fd3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/b42fd3.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 layout(rgba8ui) uniform highp writeonly uimage2DArray arg_0;
 void textureStore_b42fd3() {
-  imageStore(arg_0, ivec3(uvec3(0u, 0u, 1u)), uvec4(0u));
+  imageStore(arg_0, ivec3(uvec3(uvec2(1u), 1u)), uvec4(1u));
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 
 layout(rgba8ui) uniform highp writeonly uimage2DArray arg_0;
 void textureStore_b42fd3() {
-  imageStore(arg_0, ivec3(uvec3(0u, 0u, 1u)), uvec4(0u));
+  imageStore(arg_0, ivec3(uvec3(uvec2(1u), 1u)), uvec4(1u));
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 layout(rgba8ui) uniform highp writeonly uimage2DArray arg_0;
 void textureStore_b42fd3() {
-  imageStore(arg_0, ivec3(uvec3(0u, 0u, 1u)), uvec4(0u));
+  imageStore(arg_0, ivec3(uvec3(uvec2(1u), 1u)), uvec4(1u));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureStore/b42fd3.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/b42fd3.wgsl.expected.msl
index a888409..66bc913 100644
--- a/test/tint/builtins/gen/literal/textureStore/b42fd3.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/b42fd3.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureStore_b42fd3(texture2d_array<uint, access::write> tint_symbol_1) {
-  tint_symbol_1.write(uint4(0u), uint2(uint2(0u)), 1u);
+  tint_symbol_1.write(uint4(1u), uint2(uint2(1u)), 1u);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/b42fd3.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/b42fd3.wgsl.expected.spvasm
index e550c49..f08c969 100644
--- a/test/tint/builtins/gen/literal/textureStore/b42fd3.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/b42fd3.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 39
+; Bound: 42
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -38,38 +38,41 @@
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
      %v3uint = OpTypeVector %uint 3
-     %uint_0 = OpConstant %uint 0
+     %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %22 = OpConstantComposite %v3uint %uint_0 %uint_0 %uint_1
+         %22 = OpConstantComposite %v2uint %uint_1 %uint_1
      %v4uint = OpTypeVector %uint 4
-         %24 = OpConstantNull %v4uint
-         %25 = OpTypeFunction %v4float
+         %27 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+         %28 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_b42fd3 = OpFunction %void None %13
          %16 = OpLabel
          %18 = OpLoad %11 %arg_0
-               OpImageWrite %18 %22 %24
+         %23 = OpCompositeExtract %uint %22 0
+         %24 = OpCompositeExtract %uint %22 1
+         %25 = OpCompositeConstruct %v3uint %23 %24 %uint_1
+               OpImageWrite %18 %25 %27
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %25
-         %27 = OpLabel
-         %28 = OpFunctionCall %void %textureStore_b42fd3
+%vertex_main_inner = OpFunction %v4float None %28
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %textureStore_b42fd3
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %30 = OpLabel
-         %31 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %31
+         %33 = OpLabel
+         %34 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %34
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureStore_b42fd3
+         %37 = OpLabel
+         %38 = OpFunctionCall %void %textureStore_b42fd3
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureStore_b42fd3
+         %40 = OpLabel
+         %41 = OpFunctionCall %void %textureStore_b42fd3
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/b42fd3.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/b42fd3.wgsl.expected.wgsl
index 70f8fdc..fc1889f 100644
--- a/test/tint/builtins/gen/literal/textureStore/b42fd3.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/b42fd3.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba8uint, write>;
 
 fn textureStore_b42fd3() {
-  textureStore(arg_0, vec2<u32>(), 1u, vec4<u32>());
+  textureStore(arg_0, vec2<u32>(1u), 1u, vec4<u32>(1u));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/b706b1.wgsl b/test/tint/builtins/gen/literal/textureStore/b706b1.wgsl
index 2cc6a65..b4b450d 100644
--- a/test/tint/builtins/gen/literal/textureStore/b706b1.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/b706b1.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureStore(texture: texture_storage_3d<rgba8sint, write>, coords: vec3<i32>, value: vec4<i32>)
 fn textureStore_b706b1() {
-  textureStore(arg_0, vec3<i32>(), vec4<i32>());
+  textureStore(arg_0, vec3<i32>(1i), vec4<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/b706b1.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/b706b1.wgsl.expected.dxc.hlsl
index c479e1c..06f2c5f 100644
--- a/test/tint/builtins/gen/literal/textureStore/b706b1.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/b706b1.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture3D<int4> arg_0 : register(u0, space1);
 
 void textureStore_b706b1() {
-  arg_0[(0).xxx] = (0).xxxx;
+  arg_0[(1).xxx] = (1).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/b706b1.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/b706b1.wgsl.expected.fxc.hlsl
index c479e1c..06f2c5f 100644
--- a/test/tint/builtins/gen/literal/textureStore/b706b1.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/b706b1.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture3D<int4> arg_0 : register(u0, space1);
 
 void textureStore_b706b1() {
-  arg_0[(0).xxx] = (0).xxxx;
+  arg_0[(1).xxx] = (1).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/b706b1.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/b706b1.wgsl.expected.glsl
index 6e27e12..272b927 100644
--- a/test/tint/builtins/gen/literal/textureStore/b706b1.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/b706b1.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 layout(rgba8i) uniform highp writeonly iimage3D arg_0;
 void textureStore_b706b1() {
-  imageStore(arg_0, ivec3(0), ivec4(0));
+  imageStore(arg_0, ivec3(1), ivec4(1));
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 
 layout(rgba8i) uniform highp writeonly iimage3D arg_0;
 void textureStore_b706b1() {
-  imageStore(arg_0, ivec3(0), ivec4(0));
+  imageStore(arg_0, ivec3(1), ivec4(1));
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 layout(rgba8i) uniform highp writeonly iimage3D arg_0;
 void textureStore_b706b1() {
-  imageStore(arg_0, ivec3(0), ivec4(0));
+  imageStore(arg_0, ivec3(1), ivec4(1));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureStore/b706b1.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/b706b1.wgsl.expected.msl
index 270213d..d4aaf4a 100644
--- a/test/tint/builtins/gen/literal/textureStore/b706b1.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/b706b1.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureStore_b706b1(texture3d<int, access::write> tint_symbol_1) {
-  tint_symbol_1.write(int4(0), uint3(int3(0)));
+  tint_symbol_1.write(int4(1), uint3(int3(1)));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/b706b1.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/b706b1.wgsl.expected.spvasm
index 659af46..9c0194d 100644
--- a/test/tint/builtins/gen/literal/textureStore/b706b1.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/b706b1.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 37
+; Bound: 38
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -38,36 +38,37 @@
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
       %v3int = OpTypeVector %int 3
-         %20 = OpConstantNull %v3int
+      %int_1 = OpConstant %int 1
+         %21 = OpConstantComposite %v3int %int_1 %int_1 %int_1
       %v4int = OpTypeVector %int 4
-         %22 = OpConstantNull %v4int
-         %23 = OpTypeFunction %v4float
+         %23 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+         %24 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_b706b1 = OpFunction %void None %13
          %16 = OpLabel
          %18 = OpLoad %11 %arg_0
-               OpImageWrite %18 %20 %22
+               OpImageWrite %18 %21 %23
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %23
-         %25 = OpLabel
-         %26 = OpFunctionCall %void %textureStore_b706b1
+%vertex_main_inner = OpFunction %v4float None %24
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %textureStore_b706b1
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %28 = OpLabel
-         %29 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %29
+         %29 = OpLabel
+         %30 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %30
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_b706b1
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureStore_b706b1
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureStore_b706b1
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureStore_b706b1
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/b706b1.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/b706b1.wgsl.expected.wgsl
index 3c379e9..28f1c41 100644
--- a/test/tint/builtins/gen/literal/textureStore/b706b1.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/b706b1.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rgba8sint, write>;
 
 fn textureStore_b706b1() {
-  textureStore(arg_0, vec3<i32>(), vec4<i32>());
+  textureStore(arg_0, vec3<i32>(1i), vec4<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/b70ded.wgsl b/test/tint/builtins/gen/literal/textureStore/b70ded.wgsl
index c04799d..b4c02c6 100644
--- a/test/tint/builtins/gen/literal/textureStore/b70ded.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/b70ded.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureStore(texture: texture_storage_1d<rgba16uint, write>, coords: u32, value: vec4<u32>)
 fn textureStore_b70ded() {
-  textureStore(arg_0, 1u, vec4<u32>());
+  textureStore(arg_0, 1u, vec4<u32>(1u));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/b70ded.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/b70ded.wgsl.expected.dxc.hlsl
index 9fda40d..6613e71 100644
--- a/test/tint/builtins/gen/literal/textureStore/b70ded.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/b70ded.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture1D<uint4> arg_0 : register(u0, space1);
 
 void textureStore_b70ded() {
-  arg_0[1u] = (0u).xxxx;
+  arg_0[1u] = (1u).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/b70ded.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/b70ded.wgsl.expected.fxc.hlsl
index 9fda40d..6613e71 100644
--- a/test/tint/builtins/gen/literal/textureStore/b70ded.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/b70ded.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture1D<uint4> arg_0 : register(u0, space1);
 
 void textureStore_b70ded() {
-  arg_0[1u] = (0u).xxxx;
+  arg_0[1u] = (1u).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/b70ded.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/b70ded.wgsl.expected.msl
index 947fb46..4cf6aa4 100644
--- a/test/tint/builtins/gen/literal/textureStore/b70ded.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/b70ded.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureStore_b70ded(texture1d<uint, access::write> tint_symbol_1) {
-  tint_symbol_1.write(uint4(0u), uint(1u));
+  tint_symbol_1.write(uint4(1u), uint(1u));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/b70ded.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/b70ded.wgsl.expected.spvasm
index 4bef24b..08e69b1 100644
--- a/test/tint/builtins/gen/literal/textureStore/b70ded.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/b70ded.wgsl.expected.spvasm
@@ -40,7 +40,7 @@
          %13 = OpTypeFunction %void
      %uint_1 = OpConstant %uint 1
      %v4uint = OpTypeVector %uint 4
-         %21 = OpConstantNull %v4uint
+         %21 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
          %22 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_b70ded = OpFunction %void None %13
diff --git a/test/tint/builtins/gen/literal/textureStore/b70ded.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/b70ded.wgsl.expected.wgsl
index 59d6f6c..13327aa 100644
--- a/test/tint/builtins/gen/literal/textureStore/b70ded.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/b70ded.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rgba16uint, write>;
 
 fn textureStore_b70ded() {
-  textureStore(arg_0, 1u, vec4<u32>());
+  textureStore(arg_0, 1u, vec4<u32>(1u));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/b76ff3.wgsl b/test/tint/builtins/gen/literal/textureStore/b76ff3.wgsl
index f23a704..d560e0f 100644
--- a/test/tint/builtins/gen/literal/textureStore/b76ff3.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/b76ff3.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureStore(texture: texture_storage_2d<rgba16sint, write>, coords: vec2<u32>, value: vec4<i32>)
 fn textureStore_b76ff3() {
-  textureStore(arg_0, vec2<u32>(), vec4<i32>());
+  textureStore(arg_0, vec2<u32>(1u), vec4<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/b76ff3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/b76ff3.wgsl.expected.dxc.hlsl
index 2310856..a18fa2a 100644
--- a/test/tint/builtins/gen/literal/textureStore/b76ff3.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/b76ff3.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2D<int4> arg_0 : register(u0, space1);
 
 void textureStore_b76ff3() {
-  arg_0[(0u).xx] = (0).xxxx;
+  arg_0[(1u).xx] = (1).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/b76ff3.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/b76ff3.wgsl.expected.fxc.hlsl
index 2310856..a18fa2a 100644
--- a/test/tint/builtins/gen/literal/textureStore/b76ff3.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/b76ff3.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2D<int4> arg_0 : register(u0, space1);
 
 void textureStore_b76ff3() {
-  arg_0[(0u).xx] = (0).xxxx;
+  arg_0[(1u).xx] = (1).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/b76ff3.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/b76ff3.wgsl.expected.glsl
index 31af161..d3797b4 100644
--- a/test/tint/builtins/gen/literal/textureStore/b76ff3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/b76ff3.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 layout(rgba16i) uniform highp writeonly iimage2D arg_0;
 void textureStore_b76ff3() {
-  imageStore(arg_0, ivec2(uvec2(0u)), ivec4(0));
+  imageStore(arg_0, ivec2(uvec2(1u)), ivec4(1));
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 
 layout(rgba16i) uniform highp writeonly iimage2D arg_0;
 void textureStore_b76ff3() {
-  imageStore(arg_0, ivec2(uvec2(0u)), ivec4(0));
+  imageStore(arg_0, ivec2(uvec2(1u)), ivec4(1));
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 layout(rgba16i) uniform highp writeonly iimage2D arg_0;
 void textureStore_b76ff3() {
-  imageStore(arg_0, ivec2(uvec2(0u)), ivec4(0));
+  imageStore(arg_0, ivec2(uvec2(1u)), ivec4(1));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureStore/b76ff3.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/b76ff3.wgsl.expected.msl
index 04029e7..a9577d6 100644
--- a/test/tint/builtins/gen/literal/textureStore/b76ff3.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/b76ff3.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureStore_b76ff3(texture2d<int, access::write> tint_symbol_1) {
-  tint_symbol_1.write(int4(0), uint2(uint2(0u)));
+  tint_symbol_1.write(int4(1), uint2(uint2(1u)));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/b76ff3.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/b76ff3.wgsl.expected.spvasm
index 54f83ae..8458d84 100644
--- a/test/tint/builtins/gen/literal/textureStore/b76ff3.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/b76ff3.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 38
+; Bound: 40
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -39,36 +39,38 @@
          %13 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
-         %21 = OpConstantNull %v2uint
+     %uint_1 = OpConstant %uint 1
+         %22 = OpConstantComposite %v2uint %uint_1 %uint_1
       %v4int = OpTypeVector %int 4
-         %23 = OpConstantNull %v4int
-         %24 = OpTypeFunction %v4float
+      %int_1 = OpConstant %int 1
+         %25 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+         %26 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_b76ff3 = OpFunction %void None %13
          %16 = OpLabel
          %18 = OpLoad %11 %arg_0
-               OpImageWrite %18 %21 %23
+               OpImageWrite %18 %22 %25
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %24
-         %26 = OpLabel
-         %27 = OpFunctionCall %void %textureStore_b76ff3
+%vertex_main_inner = OpFunction %v4float None %26
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %textureStore_b76ff3
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %29 = OpLabel
-         %30 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %30
+         %31 = OpLabel
+         %32 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %32
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_b76ff3
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureStore_b76ff3
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_b76ff3
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %textureStore_b76ff3
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/b76ff3.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/b76ff3.wgsl.expected.wgsl
index 13c012c..eec1af1 100644
--- a/test/tint/builtins/gen/literal/textureStore/b76ff3.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/b76ff3.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba16sint, write>;
 
 fn textureStore_b76ff3() {
-  textureStore(arg_0, vec2<u32>(), vec4<i32>());
+  textureStore(arg_0, vec2<u32>(1u), vec4<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/b77161.wgsl b/test/tint/builtins/gen/literal/textureStore/b77161.wgsl
index 2503648..701e100 100644
--- a/test/tint/builtins/gen/literal/textureStore/b77161.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/b77161.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureStore(texture: texture_storage_1d<rg32uint, write>, coords: u32, value: vec4<u32>)
 fn textureStore_b77161() {
-  textureStore(arg_0, 1u, vec4<u32>());
+  textureStore(arg_0, 1u, vec4<u32>(1u));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/b77161.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/b77161.wgsl.expected.dxc.hlsl
index 59dffc9..0aa372c 100644
--- a/test/tint/builtins/gen/literal/textureStore/b77161.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/b77161.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture1D<uint4> arg_0 : register(u0, space1);
 
 void textureStore_b77161() {
-  arg_0[1u] = (0u).xxxx;
+  arg_0[1u] = (1u).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/b77161.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/b77161.wgsl.expected.fxc.hlsl
index 59dffc9..0aa372c 100644
--- a/test/tint/builtins/gen/literal/textureStore/b77161.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/b77161.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture1D<uint4> arg_0 : register(u0, space1);
 
 void textureStore_b77161() {
-  arg_0[1u] = (0u).xxxx;
+  arg_0[1u] = (1u).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/b77161.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/b77161.wgsl.expected.msl
index 260b776..794ce4a 100644
--- a/test/tint/builtins/gen/literal/textureStore/b77161.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/b77161.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureStore_b77161(texture1d<uint, access::write> tint_symbol_1) {
-  tint_symbol_1.write(uint4(0u), uint(1u));
+  tint_symbol_1.write(uint4(1u), uint(1u));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/b77161.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/b77161.wgsl.expected.spvasm
index 714b0c9..3addc3d 100644
--- a/test/tint/builtins/gen/literal/textureStore/b77161.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/b77161.wgsl.expected.spvasm
@@ -41,7 +41,7 @@
          %13 = OpTypeFunction %void
      %uint_1 = OpConstant %uint 1
      %v4uint = OpTypeVector %uint 4
-         %21 = OpConstantNull %v4uint
+         %21 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
          %22 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_b77161 = OpFunction %void None %13
diff --git a/test/tint/builtins/gen/literal/textureStore/b77161.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/b77161.wgsl.expected.wgsl
index c32b685..202e528 100644
--- a/test/tint/builtins/gen/literal/textureStore/b77161.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/b77161.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rg32uint, write>;
 
 fn textureStore_b77161() {
-  textureStore(arg_0, 1u, vec4<u32>());
+  textureStore(arg_0, 1u, vec4<u32>(1u));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/bbcb7f.wgsl b/test/tint/builtins/gen/literal/textureStore/bbcb7f.wgsl
index 5474078..5729ba5 100644
--- a/test/tint/builtins/gen/literal/textureStore/bbcb7f.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/bbcb7f.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureStore(texture: texture_storage_2d<rgba8sint, write>, coords: vec2<i32>, value: vec4<i32>)
 fn textureStore_bbcb7f() {
-  textureStore(arg_0, vec2<i32>(), vec4<i32>());
+  textureStore(arg_0, vec2<i32>(1i), vec4<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/bbcb7f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/bbcb7f.wgsl.expected.dxc.hlsl
index 0278d0e..427dbec 100644
--- a/test/tint/builtins/gen/literal/textureStore/bbcb7f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/bbcb7f.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2D<int4> arg_0 : register(u0, space1);
 
 void textureStore_bbcb7f() {
-  arg_0[(0).xx] = (0).xxxx;
+  arg_0[(1).xx] = (1).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/bbcb7f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/bbcb7f.wgsl.expected.fxc.hlsl
index 0278d0e..427dbec 100644
--- a/test/tint/builtins/gen/literal/textureStore/bbcb7f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/bbcb7f.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2D<int4> arg_0 : register(u0, space1);
 
 void textureStore_bbcb7f() {
-  arg_0[(0).xx] = (0).xxxx;
+  arg_0[(1).xx] = (1).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/bbcb7f.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/bbcb7f.wgsl.expected.glsl
index fbe98a8..b6ba883 100644
--- a/test/tint/builtins/gen/literal/textureStore/bbcb7f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/bbcb7f.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 layout(rgba8i) uniform highp writeonly iimage2D arg_0;
 void textureStore_bbcb7f() {
-  imageStore(arg_0, ivec2(0), ivec4(0));
+  imageStore(arg_0, ivec2(1), ivec4(1));
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 
 layout(rgba8i) uniform highp writeonly iimage2D arg_0;
 void textureStore_bbcb7f() {
-  imageStore(arg_0, ivec2(0), ivec4(0));
+  imageStore(arg_0, ivec2(1), ivec4(1));
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 layout(rgba8i) uniform highp writeonly iimage2D arg_0;
 void textureStore_bbcb7f() {
-  imageStore(arg_0, ivec2(0), ivec4(0));
+  imageStore(arg_0, ivec2(1), ivec4(1));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureStore/bbcb7f.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/bbcb7f.wgsl.expected.msl
index 1d091ab..835ba76 100644
--- a/test/tint/builtins/gen/literal/textureStore/bbcb7f.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/bbcb7f.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureStore_bbcb7f(texture2d<int, access::write> tint_symbol_1) {
-  tint_symbol_1.write(int4(0), uint2(int2(0)));
+  tint_symbol_1.write(int4(1), uint2(int2(1)));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/bbcb7f.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/bbcb7f.wgsl.expected.spvasm
index 7a21498..23fa748 100644
--- a/test/tint/builtins/gen/literal/textureStore/bbcb7f.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/bbcb7f.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 37
+; Bound: 38
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -38,36 +38,37 @@
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
       %v2int = OpTypeVector %int 2
-         %20 = OpConstantNull %v2int
+      %int_1 = OpConstant %int 1
+         %21 = OpConstantComposite %v2int %int_1 %int_1
       %v4int = OpTypeVector %int 4
-         %22 = OpConstantNull %v4int
-         %23 = OpTypeFunction %v4float
+         %23 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+         %24 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_bbcb7f = OpFunction %void None %13
          %16 = OpLabel
          %18 = OpLoad %11 %arg_0
-               OpImageWrite %18 %20 %22
+               OpImageWrite %18 %21 %23
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %23
-         %25 = OpLabel
-         %26 = OpFunctionCall %void %textureStore_bbcb7f
+%vertex_main_inner = OpFunction %v4float None %24
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %textureStore_bbcb7f
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %28 = OpLabel
-         %29 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %29
+         %29 = OpLabel
+         %30 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %30
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_bbcb7f
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureStore_bbcb7f
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureStore_bbcb7f
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureStore_bbcb7f
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/bbcb7f.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/bbcb7f.wgsl.expected.wgsl
index 3f24147..d168e22 100644
--- a/test/tint/builtins/gen/literal/textureStore/bbcb7f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/bbcb7f.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba8sint, write>;
 
 fn textureStore_bbcb7f() {
-  textureStore(arg_0, vec2<i32>(), vec4<i32>());
+  textureStore(arg_0, vec2<i32>(1i), vec4<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/be6e30.wgsl b/test/tint/builtins/gen/literal/textureStore/be6e30.wgsl
index 2ec8e59..792576a 100644
--- a/test/tint/builtins/gen/literal/textureStore/be6e30.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/be6e30.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureStore(texture: texture_storage_2d<rgba16float, write>, coords: vec2<i32>, value: vec4<f32>)
 fn textureStore_be6e30() {
-  textureStore(arg_0, vec2<i32>(), vec4<f32>());
+  textureStore(arg_0, vec2<i32>(1i), vec4<f32>(1.f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/be6e30.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/be6e30.wgsl.expected.dxc.hlsl
index 43f6c7e..8205b6a 100644
--- a/test/tint/builtins/gen/literal/textureStore/be6e30.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/be6e30.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2D<float4> arg_0 : register(u0, space1);
 
 void textureStore_be6e30() {
-  arg_0[(0).xx] = (0.0f).xxxx;
+  arg_0[(1).xx] = (1.0f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/be6e30.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/be6e30.wgsl.expected.fxc.hlsl
index 43f6c7e..8205b6a 100644
--- a/test/tint/builtins/gen/literal/textureStore/be6e30.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/be6e30.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2D<float4> arg_0 : register(u0, space1);
 
 void textureStore_be6e30() {
-  arg_0[(0).xx] = (0.0f).xxxx;
+  arg_0[(1).xx] = (1.0f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/be6e30.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/be6e30.wgsl.expected.glsl
index 9df8efd..b5fc1e6 100644
--- a/test/tint/builtins/gen/literal/textureStore/be6e30.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/be6e30.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 layout(rgba16f) uniform highp writeonly image2D arg_0;
 void textureStore_be6e30() {
-  imageStore(arg_0, ivec2(0), vec4(0.0f));
+  imageStore(arg_0, ivec2(1), vec4(1.0f));
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 
 layout(rgba16f) uniform highp writeonly image2D arg_0;
 void textureStore_be6e30() {
-  imageStore(arg_0, ivec2(0), vec4(0.0f));
+  imageStore(arg_0, ivec2(1), vec4(1.0f));
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 layout(rgba16f) uniform highp writeonly image2D arg_0;
 void textureStore_be6e30() {
-  imageStore(arg_0, ivec2(0), vec4(0.0f));
+  imageStore(arg_0, ivec2(1), vec4(1.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureStore/be6e30.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/be6e30.wgsl.expected.msl
index acb6216..f2cc5a4 100644
--- a/test/tint/builtins/gen/literal/textureStore/be6e30.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/be6e30.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureStore_be6e30(texture2d<float, access::write> tint_symbol_1) {
-  tint_symbol_1.write(float4(0.0f), uint2(int2(0)));
+  tint_symbol_1.write(float4(1.0f), uint2(int2(1)));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/be6e30.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/be6e30.wgsl.expected.spvasm
index 0a47c20..9f4ba46 100644
--- a/test/tint/builtins/gen/literal/textureStore/be6e30.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/be6e30.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 35
+; Bound: 37
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -38,34 +38,36 @@
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
-         %20 = OpConstantNull %v2int
-         %21 = OpTypeFunction %v4float
+      %int_1 = OpConstant %int 1
+         %21 = OpConstantComposite %v2int %int_1 %int_1
     %float_1 = OpConstant %float 1
+         %23 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %24 = OpTypeFunction %v4float
 %textureStore_be6e30 = OpFunction %void None %12
          %15 = OpLabel
          %17 = OpLoad %11 %arg_0
-               OpImageWrite %17 %20 %5
+               OpImageWrite %17 %21 %23
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %21
-         %23 = OpLabel
-         %24 = OpFunctionCall %void %textureStore_be6e30
+%vertex_main_inner = OpFunction %v4float None %24
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %textureStore_be6e30
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %26 = OpLabel
-         %27 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %27
+         %29 = OpLabel
+         %30 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %30
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %textureStore_be6e30
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %textureStore_be6e30
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_be6e30
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureStore_be6e30
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/be6e30.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/be6e30.wgsl.expected.wgsl
index cf77394..8a92711 100644
--- a/test/tint/builtins/gen/literal/textureStore/be6e30.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/be6e30.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba16float, write>;
 
 fn textureStore_be6e30() {
-  textureStore(arg_0, vec2<i32>(), vec4<f32>());
+  textureStore(arg_0, vec2<i32>(1i), vec4<f32>(1.0f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/bf775c.wgsl b/test/tint/builtins/gen/literal/textureStore/bf775c.wgsl
index 2169dff..a3405b4 100644
--- a/test/tint/builtins/gen/literal/textureStore/bf775c.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/bf775c.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureStore(texture: texture_storage_1d<rgba8sint, write>, coords: i32, value: vec4<i32>)
 fn textureStore_bf775c() {
-  textureStore(arg_0, 1i, vec4<i32>());
+  textureStore(arg_0, 1i, vec4<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/bf775c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/bf775c.wgsl.expected.dxc.hlsl
index 5928868..6a7b2e0 100644
--- a/test/tint/builtins/gen/literal/textureStore/bf775c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/bf775c.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture1D<int4> arg_0 : register(u0, space1);
 
 void textureStore_bf775c() {
-  arg_0[1] = (0).xxxx;
+  arg_0[1] = (1).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/bf775c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/bf775c.wgsl.expected.fxc.hlsl
index 5928868..6a7b2e0 100644
--- a/test/tint/builtins/gen/literal/textureStore/bf775c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/bf775c.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture1D<int4> arg_0 : register(u0, space1);
 
 void textureStore_bf775c() {
-  arg_0[1] = (0).xxxx;
+  arg_0[1] = (1).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/bf775c.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/bf775c.wgsl.expected.msl
index 3d8210b..4d6d5d9 100644
--- a/test/tint/builtins/gen/literal/textureStore/bf775c.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/bf775c.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureStore_bf775c(texture1d<int, access::write> tint_symbol_1) {
-  tint_symbol_1.write(int4(0), uint(1));
+  tint_symbol_1.write(int4(1), uint(1));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/bf775c.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/bf775c.wgsl.expected.spvasm
index 34825d5..7465b1f 100644
--- a/test/tint/builtins/gen/literal/textureStore/bf775c.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/bf775c.wgsl.expected.spvasm
@@ -40,7 +40,7 @@
          %13 = OpTypeFunction %void
       %int_1 = OpConstant %int 1
       %v4int = OpTypeVector %int 4
-         %21 = OpConstantNull %v4int
+         %21 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
          %22 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_bf775c = OpFunction %void None %13
diff --git a/test/tint/builtins/gen/literal/textureStore/bf775c.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/bf775c.wgsl.expected.wgsl
index 7e0e3fc..028926c 100644
--- a/test/tint/builtins/gen/literal/textureStore/bf775c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/bf775c.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rgba8sint, write>;
 
 fn textureStore_bf775c() {
-  textureStore(arg_0, 1i, vec4<i32>());
+  textureStore(arg_0, 1i, vec4<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/c1f29e.wgsl b/test/tint/builtins/gen/literal/textureStore/c1f29e.wgsl
index c3727f5..2b11e1d 100644
--- a/test/tint/builtins/gen/literal/textureStore/c1f29e.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/c1f29e.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureStore(texture: texture_storage_1d<r32float, write>, coords: u32, value: vec4<f32>)
 fn textureStore_c1f29e() {
-  textureStore(arg_0, 1u, vec4<f32>());
+  textureStore(arg_0, 1u, vec4<f32>(1.f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/c1f29e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/c1f29e.wgsl.expected.dxc.hlsl
index 8b2154a..237f855 100644
--- a/test/tint/builtins/gen/literal/textureStore/c1f29e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/c1f29e.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture1D<float4> arg_0 : register(u0, space1);
 
 void textureStore_c1f29e() {
-  arg_0[1u] = (0.0f).xxxx;
+  arg_0[1u] = (1.0f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/c1f29e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/c1f29e.wgsl.expected.fxc.hlsl
index 8b2154a..237f855 100644
--- a/test/tint/builtins/gen/literal/textureStore/c1f29e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/c1f29e.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture1D<float4> arg_0 : register(u0, space1);
 
 void textureStore_c1f29e() {
-  arg_0[1u] = (0.0f).xxxx;
+  arg_0[1u] = (1.0f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/c1f29e.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/c1f29e.wgsl.expected.msl
index f99aee7..d753b62 100644
--- a/test/tint/builtins/gen/literal/textureStore/c1f29e.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/c1f29e.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureStore_c1f29e(texture1d<float, access::write> tint_symbol_1) {
-  tint_symbol_1.write(float4(0.0f), uint(1u));
+  tint_symbol_1.write(float4(1.0f), uint(1u));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/c1f29e.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/c1f29e.wgsl.expected.spvasm
index 5f99a79..3c052e7 100644
--- a/test/tint/builtins/gen/literal/textureStore/c1f29e.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/c1f29e.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 34
+; Bound: 35
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
@@ -39,33 +39,34 @@
          %12 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
-         %20 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
+         %21 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %22 = OpTypeFunction %v4float
 %textureStore_c1f29e = OpFunction %void None %12
          %15 = OpLabel
          %17 = OpLoad %11 %arg_0
-               OpImageWrite %17 %uint_1 %5
+               OpImageWrite %17 %uint_1 %21
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %20
-         %22 = OpLabel
-         %23 = OpFunctionCall %void %textureStore_c1f29e
+%vertex_main_inner = OpFunction %v4float None %22
+         %24 = OpLabel
+         %25 = OpFunctionCall %void %textureStore_c1f29e
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %25 = OpLabel
-         %26 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %26
+         %27 = OpLabel
+         %28 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %28
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %textureStore_c1f29e
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %textureStore_c1f29e
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_c1f29e
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureStore_c1f29e
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/c1f29e.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/c1f29e.wgsl.expected.wgsl
index 0b929ae..8a8f8bc 100644
--- a/test/tint/builtins/gen/literal/textureStore/c1f29e.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/c1f29e.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_storage_1d<r32float, write>;
 
 fn textureStore_c1f29e() {
-  textureStore(arg_0, 1u, vec4<f32>());
+  textureStore(arg_0, 1u, vec4<f32>(1.0f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/c2ca46.wgsl b/test/tint/builtins/gen/literal/textureStore/c2ca46.wgsl
index 3263299..851fa1b 100644
--- a/test/tint/builtins/gen/literal/textureStore/c2ca46.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/c2ca46.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureStore(texture: texture_storage_2d_array<rgba16sint, write>, coords: vec2<u32>, array_index: u32, value: vec4<i32>)
 fn textureStore_c2ca46() {
-  textureStore(arg_0, vec2<u32>(), 1u, vec4<i32>());
+  textureStore(arg_0, vec2<u32>(1u), 1u, vec4<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/c2ca46.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/c2ca46.wgsl.expected.dxc.hlsl
index f8e5aee..ad4c44b 100644
--- a/test/tint/builtins/gen/literal/textureStore/c2ca46.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/c2ca46.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 void textureStore_c2ca46() {
-  arg_0[uint3(0u, 0u, 1u)] = (0).xxxx;
+  arg_0[uint3((1u).xx, 1u)] = (1).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/c2ca46.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/c2ca46.wgsl.expected.fxc.hlsl
index f8e5aee..ad4c44b 100644
--- a/test/tint/builtins/gen/literal/textureStore/c2ca46.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/c2ca46.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 void textureStore_c2ca46() {
-  arg_0[uint3(0u, 0u, 1u)] = (0).xxxx;
+  arg_0[uint3((1u).xx, 1u)] = (1).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/c2ca46.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/c2ca46.wgsl.expected.glsl
index 2155bb1..6be181b 100644
--- a/test/tint/builtins/gen/literal/textureStore/c2ca46.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/c2ca46.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 layout(rgba16i) uniform highp writeonly iimage2DArray arg_0;
 void textureStore_c2ca46() {
-  imageStore(arg_0, ivec3(uvec3(0u, 0u, 1u)), ivec4(0));
+  imageStore(arg_0, ivec3(uvec3(uvec2(1u), 1u)), ivec4(1));
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 
 layout(rgba16i) uniform highp writeonly iimage2DArray arg_0;
 void textureStore_c2ca46() {
-  imageStore(arg_0, ivec3(uvec3(0u, 0u, 1u)), ivec4(0));
+  imageStore(arg_0, ivec3(uvec3(uvec2(1u), 1u)), ivec4(1));
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 layout(rgba16i) uniform highp writeonly iimage2DArray arg_0;
 void textureStore_c2ca46() {
-  imageStore(arg_0, ivec3(uvec3(0u, 0u, 1u)), ivec4(0));
+  imageStore(arg_0, ivec3(uvec3(uvec2(1u), 1u)), ivec4(1));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureStore/c2ca46.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/c2ca46.wgsl.expected.msl
index 43cef9a..437604c 100644
--- a/test/tint/builtins/gen/literal/textureStore/c2ca46.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/c2ca46.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureStore_c2ca46(texture2d_array<int, access::write> tint_symbol_1) {
-  tint_symbol_1.write(int4(0), uint2(uint2(0u)), 1u);
+  tint_symbol_1.write(int4(1), uint2(uint2(1u)), 1u);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/c2ca46.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/c2ca46.wgsl.expected.spvasm
index 3e8f100..21a9c28 100644
--- a/test/tint/builtins/gen/literal/textureStore/c2ca46.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/c2ca46.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 40
+; Bound: 44
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -39,38 +39,42 @@
          %13 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
-     %uint_0 = OpConstant %uint 0
+     %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
-         %23 = OpConstantComposite %v3uint %uint_0 %uint_0 %uint_1
+         %23 = OpConstantComposite %v2uint %uint_1 %uint_1
       %v4int = OpTypeVector %int 4
-         %25 = OpConstantNull %v4int
-         %26 = OpTypeFunction %v4float
+      %int_1 = OpConstant %int 1
+         %29 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+         %30 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_c2ca46 = OpFunction %void None %13
          %16 = OpLabel
          %18 = OpLoad %11 %arg_0
-               OpImageWrite %18 %23 %25
+         %24 = OpCompositeExtract %uint %23 0
+         %25 = OpCompositeExtract %uint %23 1
+         %26 = OpCompositeConstruct %v3uint %24 %25 %uint_1
+               OpImageWrite %18 %26 %29
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %26
-         %28 = OpLabel
-         %29 = OpFunctionCall %void %textureStore_c2ca46
+%vertex_main_inner = OpFunction %v4float None %30
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %textureStore_c2ca46
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %31 = OpLabel
-         %32 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %32
+         %35 = OpLabel
+         %36 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %36
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureStore_c2ca46
+         %39 = OpLabel
+         %40 = OpFunctionCall %void %textureStore_c2ca46
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureStore_c2ca46
+         %42 = OpLabel
+         %43 = OpFunctionCall %void %textureStore_c2ca46
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/c2ca46.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/c2ca46.wgsl.expected.wgsl
index 2598ef9..a6a5957 100644
--- a/test/tint/builtins/gen/literal/textureStore/c2ca46.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/c2ca46.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba16sint, write>;
 
 fn textureStore_c2ca46() {
-  textureStore(arg_0, vec2<u32>(), 1u, vec4<i32>());
+  textureStore(arg_0, vec2<u32>(1u), 1u, vec4<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/c32905.wgsl b/test/tint/builtins/gen/literal/textureStore/c32905.wgsl
index ad57368..2fd65bd 100644
--- a/test/tint/builtins/gen/literal/textureStore/c32905.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/c32905.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureStore(texture: texture_storage_2d_array<rgba8sint, write>, coords: vec2<u32>, array_index: i32, value: vec4<i32>)
 fn textureStore_c32905() {
-  textureStore(arg_0, vec2<u32>(), 1i, vec4<i32>());
+  textureStore(arg_0, vec2<u32>(1u), 1i, vec4<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/c32905.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/c32905.wgsl.expected.dxc.hlsl
index 8bb2be1..86085c4 100644
--- a/test/tint/builtins/gen/literal/textureStore/c32905.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/c32905.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 void textureStore_c32905() {
-  arg_0[uint3(0u, 0u, uint(1))] = (0).xxxx;
+  arg_0[uint3((1u).xx, uint(1))] = (1).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/c32905.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/c32905.wgsl.expected.fxc.hlsl
index 8bb2be1..86085c4 100644
--- a/test/tint/builtins/gen/literal/textureStore/c32905.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/c32905.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 void textureStore_c32905() {
-  arg_0[uint3(0u, 0u, uint(1))] = (0).xxxx;
+  arg_0[uint3((1u).xx, uint(1))] = (1).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/c32905.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/c32905.wgsl.expected.glsl
index 1992aea..22d00c6 100644
--- a/test/tint/builtins/gen/literal/textureStore/c32905.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/c32905.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 layout(rgba8i) uniform highp writeonly iimage2DArray arg_0;
 void textureStore_c32905() {
-  imageStore(arg_0, ivec3(uvec3(0u, 0u, uint(1))), ivec4(0));
+  imageStore(arg_0, ivec3(uvec3(uvec2(1u), uint(1))), ivec4(1));
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 
 layout(rgba8i) uniform highp writeonly iimage2DArray arg_0;
 void textureStore_c32905() {
-  imageStore(arg_0, ivec3(uvec3(0u, 0u, uint(1))), ivec4(0));
+  imageStore(arg_0, ivec3(uvec3(uvec2(1u), uint(1))), ivec4(1));
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 layout(rgba8i) uniform highp writeonly iimage2DArray arg_0;
 void textureStore_c32905() {
-  imageStore(arg_0, ivec3(uvec3(0u, 0u, uint(1))), ivec4(0));
+  imageStore(arg_0, ivec3(uvec3(uvec2(1u), uint(1))), ivec4(1));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureStore/c32905.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/c32905.wgsl.expected.msl
index 5365b9d..e156740 100644
--- a/test/tint/builtins/gen/literal/textureStore/c32905.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/c32905.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureStore_c32905(texture2d_array<int, access::write> tint_symbol_1) {
-  tint_symbol_1.write(int4(0), uint2(uint2(0u)), 1);
+  tint_symbol_1.write(int4(1), uint2(uint2(1u)), 1);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/c32905.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/c32905.wgsl.expected.spvasm
index 81e223f..9f673bc 100644
--- a/test/tint/builtins/gen/literal/textureStore/c32905.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/c32905.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 41
+; Bound: 45
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -39,39 +39,43 @@
          %13 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
-     %uint_0 = OpConstant %uint 0
+     %v2uint = OpTypeVector %uint 2
+     %uint_1 = OpConstant %uint 1
+         %23 = OpConstantComposite %v2uint %uint_1 %uint_1
       %int_1 = OpConstant %int 1
       %v4int = OpTypeVector %int 4
-         %26 = OpConstantNull %v4int
-         %27 = OpTypeFunction %v4float
+         %30 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+         %31 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_c32905 = OpFunction %void None %13
          %16 = OpLabel
          %18 = OpLoad %11 %arg_0
-         %22 = OpBitcast %uint %int_1
-         %24 = OpCompositeConstruct %v3uint %uint_0 %uint_0 %22
-               OpImageWrite %18 %24 %26
+         %24 = OpCompositeExtract %uint %23 0
+         %25 = OpCompositeExtract %uint %23 1
+         %26 = OpBitcast %uint %int_1
+         %28 = OpCompositeConstruct %v3uint %24 %25 %26
+               OpImageWrite %18 %28 %30
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %27
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %textureStore_c32905
+%vertex_main_inner = OpFunction %v4float None %31
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureStore_c32905
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %32 = OpLabel
-         %33 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %33
+         %36 = OpLabel
+         %37 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %37
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_c32905
+         %40 = OpLabel
+         %41 = OpFunctionCall %void %textureStore_c32905
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_c32905
+         %43 = OpLabel
+         %44 = OpFunctionCall %void %textureStore_c32905
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/c32905.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/c32905.wgsl.expected.wgsl
index 1f62744..fac0821 100644
--- a/test/tint/builtins/gen/literal/textureStore/c32905.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/c32905.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba8sint, write>;
 
 fn textureStore_c32905() {
-  textureStore(arg_0, vec2<u32>(), 1i, vec4<i32>());
+  textureStore(arg_0, vec2<u32>(1u), 1i, vec4<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/c5af1e.wgsl b/test/tint/builtins/gen/literal/textureStore/c5af1e.wgsl
index bee0ccf..5eb1877 100644
--- a/test/tint/builtins/gen/literal/textureStore/c5af1e.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/c5af1e.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureStore(texture: texture_storage_3d<rgba16float, write>, coords: vec3<i32>, value: vec4<f32>)
 fn textureStore_c5af1e() {
-  textureStore(arg_0, vec3<i32>(), vec4<f32>());
+  textureStore(arg_0, vec3<i32>(1i), vec4<f32>(1.f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/c5af1e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/c5af1e.wgsl.expected.dxc.hlsl
index ba59f43..2d35b3f 100644
--- a/test/tint/builtins/gen/literal/textureStore/c5af1e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/c5af1e.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture3D<float4> arg_0 : register(u0, space1);
 
 void textureStore_c5af1e() {
-  arg_0[(0).xxx] = (0.0f).xxxx;
+  arg_0[(1).xxx] = (1.0f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/c5af1e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/c5af1e.wgsl.expected.fxc.hlsl
index ba59f43..2d35b3f 100644
--- a/test/tint/builtins/gen/literal/textureStore/c5af1e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/c5af1e.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture3D<float4> arg_0 : register(u0, space1);
 
 void textureStore_c5af1e() {
-  arg_0[(0).xxx] = (0.0f).xxxx;
+  arg_0[(1).xxx] = (1.0f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/c5af1e.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/c5af1e.wgsl.expected.glsl
index 7e8006d..98e6513 100644
--- a/test/tint/builtins/gen/literal/textureStore/c5af1e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/c5af1e.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 layout(rgba16f) uniform highp writeonly image3D arg_0;
 void textureStore_c5af1e() {
-  imageStore(arg_0, ivec3(0), vec4(0.0f));
+  imageStore(arg_0, ivec3(1), vec4(1.0f));
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 
 layout(rgba16f) uniform highp writeonly image3D arg_0;
 void textureStore_c5af1e() {
-  imageStore(arg_0, ivec3(0), vec4(0.0f));
+  imageStore(arg_0, ivec3(1), vec4(1.0f));
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 layout(rgba16f) uniform highp writeonly image3D arg_0;
 void textureStore_c5af1e() {
-  imageStore(arg_0, ivec3(0), vec4(0.0f));
+  imageStore(arg_0, ivec3(1), vec4(1.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureStore/c5af1e.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/c5af1e.wgsl.expected.msl
index 5421957..783a491 100644
--- a/test/tint/builtins/gen/literal/textureStore/c5af1e.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/c5af1e.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureStore_c5af1e(texture3d<float, access::write> tint_symbol_1) {
-  tint_symbol_1.write(float4(0.0f), uint3(int3(0)));
+  tint_symbol_1.write(float4(1.0f), uint3(int3(1)));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/c5af1e.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/c5af1e.wgsl.expected.spvasm
index 415c2a8..7e95195 100644
--- a/test/tint/builtins/gen/literal/textureStore/c5af1e.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/c5af1e.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 35
+; Bound: 37
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -38,34 +38,36 @@
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
-         %20 = OpConstantNull %v3int
-         %21 = OpTypeFunction %v4float
+      %int_1 = OpConstant %int 1
+         %21 = OpConstantComposite %v3int %int_1 %int_1 %int_1
     %float_1 = OpConstant %float 1
+         %23 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %24 = OpTypeFunction %v4float
 %textureStore_c5af1e = OpFunction %void None %12
          %15 = OpLabel
          %17 = OpLoad %11 %arg_0
-               OpImageWrite %17 %20 %5
+               OpImageWrite %17 %21 %23
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %21
-         %23 = OpLabel
-         %24 = OpFunctionCall %void %textureStore_c5af1e
+%vertex_main_inner = OpFunction %v4float None %24
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %textureStore_c5af1e
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %26 = OpLabel
-         %27 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %27
+         %29 = OpLabel
+         %30 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %30
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %textureStore_c5af1e
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %textureStore_c5af1e
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_c5af1e
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureStore_c5af1e
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/c5af1e.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/c5af1e.wgsl.expected.wgsl
index 003aee2..311449a 100644
--- a/test/tint/builtins/gen/literal/textureStore/c5af1e.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/c5af1e.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rgba16float, write>;
 
 fn textureStore_c5af1e() {
-  textureStore(arg_0, vec3<i32>(), vec4<f32>());
+  textureStore(arg_0, vec3<i32>(1i), vec4<f32>(1.0f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/c863be.wgsl b/test/tint/builtins/gen/literal/textureStore/c863be.wgsl
index 32ab308..52c9c3a 100644
--- a/test/tint/builtins/gen/literal/textureStore/c863be.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/c863be.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureStore(texture: texture_storage_2d_array<rg32float, write>, coords: vec2<i32>, array_index: i32, value: vec4<f32>)
 fn textureStore_c863be() {
-  textureStore(arg_0, vec2<i32>(), 1i, vec4<f32>());
+  textureStore(arg_0, vec2<i32>(1i), 1i, vec4<f32>(1.f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/c863be.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/c863be.wgsl.expected.dxc.hlsl
index e6948ca..d9045bb 100644
--- a/test/tint/builtins/gen/literal/textureStore/c863be.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/c863be.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 void textureStore_c863be() {
-  arg_0[int3(0, 0, 1)] = (0.0f).xxxx;
+  arg_0[int3((1).xx, 1)] = (1.0f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/c863be.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/c863be.wgsl.expected.fxc.hlsl
index e6948ca..d9045bb 100644
--- a/test/tint/builtins/gen/literal/textureStore/c863be.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/c863be.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 void textureStore_c863be() {
-  arg_0[int3(0, 0, 1)] = (0.0f).xxxx;
+  arg_0[int3((1).xx, 1)] = (1.0f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/c863be.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/c863be.wgsl.expected.msl
index bbe2282..12951ee 100644
--- a/test/tint/builtins/gen/literal/textureStore/c863be.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/c863be.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureStore_c863be(texture2d_array<float, access::write> tint_symbol_1) {
-  tint_symbol_1.write(float4(0.0f), uint2(int2(0)), 1);
+  tint_symbol_1.write(float4(1.0f), uint2(int2(1)), 1);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/c863be.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/c863be.wgsl.expected.spvasm
index 711b604..dd01bb3 100644
--- a/test/tint/builtins/gen/literal/textureStore/c863be.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/c863be.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 37
+; Bound: 41
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
@@ -39,36 +39,40 @@
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
-      %int_0 = OpConstant %int 0
+      %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %22 = OpConstantComposite %v3int %int_0 %int_0 %int_1
-         %23 = OpTypeFunction %v4float
+         %22 = OpConstantComposite %v2int %int_1 %int_1
     %float_1 = OpConstant %float 1
+         %27 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %28 = OpTypeFunction %v4float
 %textureStore_c863be = OpFunction %void None %12
          %15 = OpLabel
          %17 = OpLoad %11 %arg_0
-               OpImageWrite %17 %22 %5
+         %23 = OpCompositeExtract %int %22 0
+         %24 = OpCompositeExtract %int %22 1
+         %25 = OpCompositeConstruct %v3int %23 %24 %int_1
+               OpImageWrite %17 %25 %27
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %23
-         %25 = OpLabel
-         %26 = OpFunctionCall %void %textureStore_c863be
+%vertex_main_inner = OpFunction %v4float None %28
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %textureStore_c863be
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %28 = OpLabel
-         %29 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %29
+         %33 = OpLabel
+         %34 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %34
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_c863be
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureStore_c863be
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureStore_c863be
+         %39 = OpLabel
+         %40 = OpFunctionCall %void %textureStore_c863be
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/c863be.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/c863be.wgsl.expected.wgsl
index 627c0ca..e81dd25 100644
--- a/test/tint/builtins/gen/literal/textureStore/c863be.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/c863be.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rg32float, write>;
 
 fn textureStore_c863be() {
-  textureStore(arg_0, vec2<i32>(), 1i, vec4<f32>());
+  textureStore(arg_0, vec2<i32>(1i), 1i, vec4<f32>(1.0f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/cb3b0b.wgsl b/test/tint/builtins/gen/literal/textureStore/cb3b0b.wgsl
index fcca551..6b297eb 100644
--- a/test/tint/builtins/gen/literal/textureStore/cb3b0b.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/cb3b0b.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureStore(texture: texture_storage_3d<rgba8sint, write>, coords: vec3<u32>, value: vec4<i32>)
 fn textureStore_cb3b0b() {
-  textureStore(arg_0, vec3<u32>(), vec4<i32>());
+  textureStore(arg_0, vec3<u32>(1u), vec4<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/cb3b0b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/cb3b0b.wgsl.expected.dxc.hlsl
index 643e053..f1e2314 100644
--- a/test/tint/builtins/gen/literal/textureStore/cb3b0b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/cb3b0b.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture3D<int4> arg_0 : register(u0, space1);
 
 void textureStore_cb3b0b() {
-  arg_0[(0u).xxx] = (0).xxxx;
+  arg_0[(1u).xxx] = (1).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/cb3b0b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/cb3b0b.wgsl.expected.fxc.hlsl
index 643e053..f1e2314 100644
--- a/test/tint/builtins/gen/literal/textureStore/cb3b0b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/cb3b0b.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture3D<int4> arg_0 : register(u0, space1);
 
 void textureStore_cb3b0b() {
-  arg_0[(0u).xxx] = (0).xxxx;
+  arg_0[(1u).xxx] = (1).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/cb3b0b.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/cb3b0b.wgsl.expected.glsl
index 7d048d2..295aab0 100644
--- a/test/tint/builtins/gen/literal/textureStore/cb3b0b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/cb3b0b.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 layout(rgba8i) uniform highp writeonly iimage3D arg_0;
 void textureStore_cb3b0b() {
-  imageStore(arg_0, ivec3(uvec3(0u)), ivec4(0));
+  imageStore(arg_0, ivec3(uvec3(1u)), ivec4(1));
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 
 layout(rgba8i) uniform highp writeonly iimage3D arg_0;
 void textureStore_cb3b0b() {
-  imageStore(arg_0, ivec3(uvec3(0u)), ivec4(0));
+  imageStore(arg_0, ivec3(uvec3(1u)), ivec4(1));
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 layout(rgba8i) uniform highp writeonly iimage3D arg_0;
 void textureStore_cb3b0b() {
-  imageStore(arg_0, ivec3(uvec3(0u)), ivec4(0));
+  imageStore(arg_0, ivec3(uvec3(1u)), ivec4(1));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureStore/cb3b0b.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/cb3b0b.wgsl.expected.msl
index 070eb53..7883aab 100644
--- a/test/tint/builtins/gen/literal/textureStore/cb3b0b.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/cb3b0b.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureStore_cb3b0b(texture3d<int, access::write> tint_symbol_1) {
-  tint_symbol_1.write(int4(0), uint3(uint3(0u)));
+  tint_symbol_1.write(int4(1), uint3(uint3(1u)));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/cb3b0b.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/cb3b0b.wgsl.expected.spvasm
index 8220c1d..167bfdc 100644
--- a/test/tint/builtins/gen/literal/textureStore/cb3b0b.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/cb3b0b.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 38
+; Bound: 40
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -39,36 +39,38 @@
          %13 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
-         %21 = OpConstantNull %v3uint
+     %uint_1 = OpConstant %uint 1
+         %22 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
       %v4int = OpTypeVector %int 4
-         %23 = OpConstantNull %v4int
-         %24 = OpTypeFunction %v4float
+      %int_1 = OpConstant %int 1
+         %25 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+         %26 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_cb3b0b = OpFunction %void None %13
          %16 = OpLabel
          %18 = OpLoad %11 %arg_0
-               OpImageWrite %18 %21 %23
+               OpImageWrite %18 %22 %25
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %24
-         %26 = OpLabel
-         %27 = OpFunctionCall %void %textureStore_cb3b0b
+%vertex_main_inner = OpFunction %v4float None %26
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %textureStore_cb3b0b
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %29 = OpLabel
-         %30 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %30
+         %31 = OpLabel
+         %32 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %32
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_cb3b0b
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureStore_cb3b0b
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_cb3b0b
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %textureStore_cb3b0b
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/cb3b0b.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/cb3b0b.wgsl.expected.wgsl
index 4d7d2c0..11741a4 100644
--- a/test/tint/builtins/gen/literal/textureStore/cb3b0b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/cb3b0b.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rgba8sint, write>;
 
 fn textureStore_cb3b0b() {
-  textureStore(arg_0, vec3<u32>(), vec4<i32>());
+  textureStore(arg_0, vec3<u32>(1u), vec4<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/d26166.wgsl b/test/tint/builtins/gen/literal/textureStore/d26166.wgsl
index aff8c5c..d81dc9f 100644
--- a/test/tint/builtins/gen/literal/textureStore/d26166.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/d26166.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureStore(texture: texture_storage_1d<rgba32uint, write>, coords: u32, value: vec4<u32>)
 fn textureStore_d26166() {
-  textureStore(arg_0, 1u, vec4<u32>());
+  textureStore(arg_0, 1u, vec4<u32>(1u));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/d26166.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/d26166.wgsl.expected.dxc.hlsl
index f98702f..11e8bfa 100644
--- a/test/tint/builtins/gen/literal/textureStore/d26166.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/d26166.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture1D<uint4> arg_0 : register(u0, space1);
 
 void textureStore_d26166() {
-  arg_0[1u] = (0u).xxxx;
+  arg_0[1u] = (1u).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/d26166.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/d26166.wgsl.expected.fxc.hlsl
index f98702f..11e8bfa 100644
--- a/test/tint/builtins/gen/literal/textureStore/d26166.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/d26166.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture1D<uint4> arg_0 : register(u0, space1);
 
 void textureStore_d26166() {
-  arg_0[1u] = (0u).xxxx;
+  arg_0[1u] = (1u).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/d26166.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/d26166.wgsl.expected.msl
index ea57840..6888a47 100644
--- a/test/tint/builtins/gen/literal/textureStore/d26166.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/d26166.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureStore_d26166(texture1d<uint, access::write> tint_symbol_1) {
-  tint_symbol_1.write(uint4(0u), uint(1u));
+  tint_symbol_1.write(uint4(1u), uint(1u));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/d26166.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/d26166.wgsl.expected.spvasm
index b619746..c34f375 100644
--- a/test/tint/builtins/gen/literal/textureStore/d26166.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/d26166.wgsl.expected.spvasm
@@ -40,7 +40,7 @@
          %13 = OpTypeFunction %void
      %uint_1 = OpConstant %uint 1
      %v4uint = OpTypeVector %uint 4
-         %21 = OpConstantNull %v4uint
+         %21 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
          %22 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_d26166 = OpFunction %void None %13
diff --git a/test/tint/builtins/gen/literal/textureStore/d26166.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/d26166.wgsl.expected.wgsl
index 9ae6acf..db59747 100644
--- a/test/tint/builtins/gen/literal/textureStore/d26166.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/d26166.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rgba32uint, write>;
 
 fn textureStore_d26166() {
-  textureStore(arg_0, 1u, vec4<u32>());
+  textureStore(arg_0, 1u, vec4<u32>(1u));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/d55e65.wgsl b/test/tint/builtins/gen/literal/textureStore/d55e65.wgsl
index 4477682..bfeba0d 100644
--- a/test/tint/builtins/gen/literal/textureStore/d55e65.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/d55e65.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureStore(texture: texture_storage_2d_array<r32float, write>, coords: vec2<u32>, array_index: i32, value: vec4<f32>)
 fn textureStore_d55e65() {
-  textureStore(arg_0, vec2<u32>(), 1i, vec4<f32>());
+  textureStore(arg_0, vec2<u32>(1u), 1i, vec4<f32>(1.f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/d55e65.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/d55e65.wgsl.expected.dxc.hlsl
index 2da0b0d..0b27d0c 100644
--- a/test/tint/builtins/gen/literal/textureStore/d55e65.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/d55e65.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 void textureStore_d55e65() {
-  arg_0[uint3(0u, 0u, uint(1))] = (0.0f).xxxx;
+  arg_0[uint3((1u).xx, uint(1))] = (1.0f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/d55e65.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/d55e65.wgsl.expected.fxc.hlsl
index 2da0b0d..0b27d0c 100644
--- a/test/tint/builtins/gen/literal/textureStore/d55e65.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/d55e65.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 void textureStore_d55e65() {
-  arg_0[uint3(0u, 0u, uint(1))] = (0.0f).xxxx;
+  arg_0[uint3((1u).xx, uint(1))] = (1.0f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/d55e65.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/d55e65.wgsl.expected.glsl
index a13f035..9ace954 100644
--- a/test/tint/builtins/gen/literal/textureStore/d55e65.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/d55e65.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 layout(r32f) uniform highp writeonly image2DArray arg_0;
 void textureStore_d55e65() {
-  imageStore(arg_0, ivec3(uvec3(0u, 0u, uint(1))), vec4(0.0f));
+  imageStore(arg_0, ivec3(uvec3(uvec2(1u), uint(1))), vec4(1.0f));
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 
 layout(r32f) uniform highp writeonly image2DArray arg_0;
 void textureStore_d55e65() {
-  imageStore(arg_0, ivec3(uvec3(0u, 0u, uint(1))), vec4(0.0f));
+  imageStore(arg_0, ivec3(uvec3(uvec2(1u), uint(1))), vec4(1.0f));
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 layout(r32f) uniform highp writeonly image2DArray arg_0;
 void textureStore_d55e65() {
-  imageStore(arg_0, ivec3(uvec3(0u, 0u, uint(1))), vec4(0.0f));
+  imageStore(arg_0, ivec3(uvec3(uvec2(1u), uint(1))), vec4(1.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureStore/d55e65.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/d55e65.wgsl.expected.msl
index 2ba46c3..6b43ae2 100644
--- a/test/tint/builtins/gen/literal/textureStore/d55e65.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/d55e65.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureStore_d55e65(texture2d_array<float, access::write> tint_symbol_1) {
-  tint_symbol_1.write(float4(0.0f), uint2(uint2(0u)), 1);
+  tint_symbol_1.write(float4(1.0f), uint2(uint2(1u)), 1);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/d55e65.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/d55e65.wgsl.expected.spvasm
index 6a858f4..5a162fb 100644
--- a/test/tint/builtins/gen/literal/textureStore/d55e65.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/d55e65.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 39
+; Bound: 44
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -38,38 +38,43 @@
          %12 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
-     %uint_0 = OpConstant %uint 0
+     %v2uint = OpTypeVector %uint 2
+     %uint_1 = OpConstant %uint 1
+         %22 = OpConstantComposite %v2uint %uint_1 %uint_1
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
-         %25 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
+         %30 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %31 = OpTypeFunction %v4float
 %textureStore_d55e65 = OpFunction %void None %12
          %15 = OpLabel
          %17 = OpLoad %11 %arg_0
-         %21 = OpBitcast %uint %int_1
-         %24 = OpCompositeConstruct %v3uint %uint_0 %uint_0 %21
-               OpImageWrite %17 %24 %5
+         %23 = OpCompositeExtract %uint %22 0
+         %24 = OpCompositeExtract %uint %22 1
+         %25 = OpBitcast %uint %int_1
+         %28 = OpCompositeConstruct %v3uint %23 %24 %25
+               OpImageWrite %17 %28 %30
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %25
-         %27 = OpLabel
-         %28 = OpFunctionCall %void %textureStore_d55e65
+%vertex_main_inner = OpFunction %v4float None %31
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureStore_d55e65
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %30 = OpLabel
-         %31 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %31
+         %36 = OpLabel
+         %37 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %37
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureStore_d55e65
+         %39 = OpLabel
+         %40 = OpFunctionCall %void %textureStore_d55e65
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureStore_d55e65
+         %42 = OpLabel
+         %43 = OpFunctionCall %void %textureStore_d55e65
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/d55e65.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/d55e65.wgsl.expected.wgsl
index 75e91b5..4785793 100644
--- a/test/tint/builtins/gen/literal/textureStore/d55e65.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/d55e65.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<r32float, write>;
 
 fn textureStore_d55e65() {
-  textureStore(arg_0, vec2<u32>(), 1i, vec4<f32>());
+  textureStore(arg_0, vec2<u32>(1u), 1i, vec4<f32>(1.0f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/d73b5c.wgsl b/test/tint/builtins/gen/literal/textureStore/d73b5c.wgsl
index 94fa33e..ab49aa8 100644
--- a/test/tint/builtins/gen/literal/textureStore/d73b5c.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/d73b5c.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureStore(texture: texture_storage_1d<rg32sint, write>, coords: i32, value: vec4<i32>)
 fn textureStore_d73b5c() {
-  textureStore(arg_0, 1i, vec4<i32>());
+  textureStore(arg_0, 1i, vec4<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/d73b5c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/d73b5c.wgsl.expected.dxc.hlsl
index 85e4777..1fcecc8 100644
--- a/test/tint/builtins/gen/literal/textureStore/d73b5c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/d73b5c.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture1D<int4> arg_0 : register(u0, space1);
 
 void textureStore_d73b5c() {
-  arg_0[1] = (0).xxxx;
+  arg_0[1] = (1).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/d73b5c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/d73b5c.wgsl.expected.fxc.hlsl
index 85e4777..1fcecc8 100644
--- a/test/tint/builtins/gen/literal/textureStore/d73b5c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/d73b5c.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture1D<int4> arg_0 : register(u0, space1);
 
 void textureStore_d73b5c() {
-  arg_0[1] = (0).xxxx;
+  arg_0[1] = (1).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/d73b5c.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/d73b5c.wgsl.expected.msl
index c564d6d..5f80189 100644
--- a/test/tint/builtins/gen/literal/textureStore/d73b5c.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/d73b5c.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureStore_d73b5c(texture1d<int, access::write> tint_symbol_1) {
-  tint_symbol_1.write(int4(0), uint(1));
+  tint_symbol_1.write(int4(1), uint(1));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/d73b5c.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/d73b5c.wgsl.expected.spvasm
index b2c5b3a..344da4c 100644
--- a/test/tint/builtins/gen/literal/textureStore/d73b5c.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/d73b5c.wgsl.expected.spvasm
@@ -41,7 +41,7 @@
          %13 = OpTypeFunction %void
       %int_1 = OpConstant %int 1
       %v4int = OpTypeVector %int 4
-         %21 = OpConstantNull %v4int
+         %21 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
          %22 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_d73b5c = OpFunction %void None %13
diff --git a/test/tint/builtins/gen/literal/textureStore/d73b5c.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/d73b5c.wgsl.expected.wgsl
index 24581f7..929882d 100644
--- a/test/tint/builtins/gen/literal/textureStore/d73b5c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/d73b5c.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rg32sint, write>;
 
 fn textureStore_d73b5c() {
-  textureStore(arg_0, 1i, vec4<i32>());
+  textureStore(arg_0, 1i, vec4<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/d82b0a.wgsl b/test/tint/builtins/gen/literal/textureStore/d82b0a.wgsl
index 0430ac6..7988b6a 100644
--- a/test/tint/builtins/gen/literal/textureStore/d82b0a.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/d82b0a.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureStore(texture: texture_storage_3d<rg32sint, write>, coords: vec3<u32>, value: vec4<i32>)
 fn textureStore_d82b0a() {
-  textureStore(arg_0, vec3<u32>(), vec4<i32>());
+  textureStore(arg_0, vec3<u32>(1u), vec4<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/d82b0a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/d82b0a.wgsl.expected.dxc.hlsl
index 9eb672e..f31d34a 100644
--- a/test/tint/builtins/gen/literal/textureStore/d82b0a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/d82b0a.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture3D<int4> arg_0 : register(u0, space1);
 
 void textureStore_d82b0a() {
-  arg_0[(0u).xxx] = (0).xxxx;
+  arg_0[(1u).xxx] = (1).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/d82b0a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/d82b0a.wgsl.expected.fxc.hlsl
index 9eb672e..f31d34a 100644
--- a/test/tint/builtins/gen/literal/textureStore/d82b0a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/d82b0a.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture3D<int4> arg_0 : register(u0, space1);
 
 void textureStore_d82b0a() {
-  arg_0[(0u).xxx] = (0).xxxx;
+  arg_0[(1u).xxx] = (1).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/d82b0a.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/d82b0a.wgsl.expected.msl
index 283430c..37ecb79 100644
--- a/test/tint/builtins/gen/literal/textureStore/d82b0a.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/d82b0a.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureStore_d82b0a(texture3d<int, access::write> tint_symbol_1) {
-  tint_symbol_1.write(int4(0), uint3(uint3(0u)));
+  tint_symbol_1.write(int4(1), uint3(uint3(1u)));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/d82b0a.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/d82b0a.wgsl.expected.spvasm
index 78fb6b6..ead28bf 100644
--- a/test/tint/builtins/gen/literal/textureStore/d82b0a.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/d82b0a.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 38
+; Bound: 40
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
@@ -40,36 +40,38 @@
          %13 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
-         %21 = OpConstantNull %v3uint
+     %uint_1 = OpConstant %uint 1
+         %22 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
       %v4int = OpTypeVector %int 4
-         %23 = OpConstantNull %v4int
-         %24 = OpTypeFunction %v4float
+      %int_1 = OpConstant %int 1
+         %25 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+         %26 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_d82b0a = OpFunction %void None %13
          %16 = OpLabel
          %18 = OpLoad %11 %arg_0
-               OpImageWrite %18 %21 %23
+               OpImageWrite %18 %22 %25
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %24
-         %26 = OpLabel
-         %27 = OpFunctionCall %void %textureStore_d82b0a
+%vertex_main_inner = OpFunction %v4float None %26
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %textureStore_d82b0a
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %29 = OpLabel
-         %30 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %30
+         %31 = OpLabel
+         %32 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %32
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_d82b0a
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureStore_d82b0a
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_d82b0a
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %textureStore_d82b0a
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/d82b0a.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/d82b0a.wgsl.expected.wgsl
index 840ebef..0c4c779 100644
--- a/test/tint/builtins/gen/literal/textureStore/d82b0a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/d82b0a.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rg32sint, write>;
 
 fn textureStore_d82b0a() {
-  textureStore(arg_0, vec3<u32>(), vec4<i32>());
+  textureStore(arg_0, vec3<u32>(1u), vec4<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/db92a2.wgsl b/test/tint/builtins/gen/literal/textureStore/db92a2.wgsl
index a285481..2d38fb3 100644
--- a/test/tint/builtins/gen/literal/textureStore/db92a2.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/db92a2.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureStore(texture: texture_storage_2d<rgba16uint, write>, coords: vec2<u32>, value: vec4<u32>)
 fn textureStore_db92a2() {
-  textureStore(arg_0, vec2<u32>(), vec4<u32>());
+  textureStore(arg_0, vec2<u32>(1u), vec4<u32>(1u));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/db92a2.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/db92a2.wgsl.expected.dxc.hlsl
index 0cc9f6f..0ecc939 100644
--- a/test/tint/builtins/gen/literal/textureStore/db92a2.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/db92a2.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2D<uint4> arg_0 : register(u0, space1);
 
 void textureStore_db92a2() {
-  arg_0[(0u).xx] = (0u).xxxx;
+  arg_0[(1u).xx] = (1u).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/db92a2.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/db92a2.wgsl.expected.fxc.hlsl
index 0cc9f6f..0ecc939 100644
--- a/test/tint/builtins/gen/literal/textureStore/db92a2.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/db92a2.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2D<uint4> arg_0 : register(u0, space1);
 
 void textureStore_db92a2() {
-  arg_0[(0u).xx] = (0u).xxxx;
+  arg_0[(1u).xx] = (1u).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/db92a2.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/db92a2.wgsl.expected.glsl
index 67c6b85..ce1044e 100644
--- a/test/tint/builtins/gen/literal/textureStore/db92a2.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/db92a2.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 layout(rgba16ui) uniform highp writeonly uimage2D arg_0;
 void textureStore_db92a2() {
-  imageStore(arg_0, ivec2(uvec2(0u)), uvec4(0u));
+  imageStore(arg_0, ivec2(uvec2(1u)), uvec4(1u));
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 
 layout(rgba16ui) uniform highp writeonly uimage2D arg_0;
 void textureStore_db92a2() {
-  imageStore(arg_0, ivec2(uvec2(0u)), uvec4(0u));
+  imageStore(arg_0, ivec2(uvec2(1u)), uvec4(1u));
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 layout(rgba16ui) uniform highp writeonly uimage2D arg_0;
 void textureStore_db92a2() {
-  imageStore(arg_0, ivec2(uvec2(0u)), uvec4(0u));
+  imageStore(arg_0, ivec2(uvec2(1u)), uvec4(1u));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureStore/db92a2.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/db92a2.wgsl.expected.msl
index 1e319a7..a099a41 100644
--- a/test/tint/builtins/gen/literal/textureStore/db92a2.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/db92a2.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureStore_db92a2(texture2d<uint, access::write> tint_symbol_1) {
-  tint_symbol_1.write(uint4(0u), uint2(uint2(0u)));
+  tint_symbol_1.write(uint4(1u), uint2(uint2(1u)));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/db92a2.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/db92a2.wgsl.expected.spvasm
index e708f64..d95aecd 100644
--- a/test/tint/builtins/gen/literal/textureStore/db92a2.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/db92a2.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 37
+; Bound: 38
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -38,36 +38,37 @@
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
      %v2uint = OpTypeVector %uint 2
-         %20 = OpConstantNull %v2uint
+     %uint_1 = OpConstant %uint 1
+         %21 = OpConstantComposite %v2uint %uint_1 %uint_1
      %v4uint = OpTypeVector %uint 4
-         %22 = OpConstantNull %v4uint
-         %23 = OpTypeFunction %v4float
+         %23 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+         %24 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_db92a2 = OpFunction %void None %13
          %16 = OpLabel
          %18 = OpLoad %11 %arg_0
-               OpImageWrite %18 %20 %22
+               OpImageWrite %18 %21 %23
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %23
-         %25 = OpLabel
-         %26 = OpFunctionCall %void %textureStore_db92a2
+%vertex_main_inner = OpFunction %v4float None %24
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %textureStore_db92a2
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %28 = OpLabel
-         %29 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %29
+         %29 = OpLabel
+         %30 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %30
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_db92a2
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureStore_db92a2
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureStore_db92a2
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureStore_db92a2
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/db92a2.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/db92a2.wgsl.expected.wgsl
index 3d6717e..c9152d1 100644
--- a/test/tint/builtins/gen/literal/textureStore/db92a2.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/db92a2.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba16uint, write>;
 
 fn textureStore_db92a2() {
-  textureStore(arg_0, vec2<u32>(), vec4<u32>());
+  textureStore(arg_0, vec2<u32>(1u), vec4<u32>(1u));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/dd7d81.wgsl b/test/tint/builtins/gen/literal/textureStore/dd7d81.wgsl
index b974b11..522cf94 100644
--- a/test/tint/builtins/gen/literal/textureStore/dd7d81.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/dd7d81.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureStore(texture: texture_storage_3d<rgba8snorm, write>, coords: vec3<i32>, value: vec4<f32>)
 fn textureStore_dd7d81() {
-  textureStore(arg_0, vec3<i32>(), vec4<f32>());
+  textureStore(arg_0, vec3<i32>(1i), vec4<f32>(1.f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/dd7d81.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/dd7d81.wgsl.expected.dxc.hlsl
index 598b811..7db1220 100644
--- a/test/tint/builtins/gen/literal/textureStore/dd7d81.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/dd7d81.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture3D<float4> arg_0 : register(u0, space1);
 
 void textureStore_dd7d81() {
-  arg_0[(0).xxx] = (0.0f).xxxx;
+  arg_0[(1).xxx] = (1.0f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/dd7d81.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/dd7d81.wgsl.expected.fxc.hlsl
index 598b811..7db1220 100644
--- a/test/tint/builtins/gen/literal/textureStore/dd7d81.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/dd7d81.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture3D<float4> arg_0 : register(u0, space1);
 
 void textureStore_dd7d81() {
-  arg_0[(0).xxx] = (0.0f).xxxx;
+  arg_0[(1).xxx] = (1.0f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/dd7d81.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/dd7d81.wgsl.expected.glsl
index 8106b77..82932b7 100644
--- a/test/tint/builtins/gen/literal/textureStore/dd7d81.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/dd7d81.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 layout(rgba8_snorm) uniform highp writeonly image3D arg_0;
 void textureStore_dd7d81() {
-  imageStore(arg_0, ivec3(0), vec4(0.0f));
+  imageStore(arg_0, ivec3(1), vec4(1.0f));
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 
 layout(rgba8_snorm) uniform highp writeonly image3D arg_0;
 void textureStore_dd7d81() {
-  imageStore(arg_0, ivec3(0), vec4(0.0f));
+  imageStore(arg_0, ivec3(1), vec4(1.0f));
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 layout(rgba8_snorm) uniform highp writeonly image3D arg_0;
 void textureStore_dd7d81() {
-  imageStore(arg_0, ivec3(0), vec4(0.0f));
+  imageStore(arg_0, ivec3(1), vec4(1.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureStore/dd7d81.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/dd7d81.wgsl.expected.msl
index 15ec0e7..8b7e58d 100644
--- a/test/tint/builtins/gen/literal/textureStore/dd7d81.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/dd7d81.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureStore_dd7d81(texture3d<float, access::write> tint_symbol_1) {
-  tint_symbol_1.write(float4(0.0f), uint3(int3(0)));
+  tint_symbol_1.write(float4(1.0f), uint3(int3(1)));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/dd7d81.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/dd7d81.wgsl.expected.spvasm
index 205afdd..0ca8cbe 100644
--- a/test/tint/builtins/gen/literal/textureStore/dd7d81.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/dd7d81.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 35
+; Bound: 37
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -38,34 +38,36 @@
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
-         %20 = OpConstantNull %v3int
-         %21 = OpTypeFunction %v4float
+      %int_1 = OpConstant %int 1
+         %21 = OpConstantComposite %v3int %int_1 %int_1 %int_1
     %float_1 = OpConstant %float 1
+         %23 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %24 = OpTypeFunction %v4float
 %textureStore_dd7d81 = OpFunction %void None %12
          %15 = OpLabel
          %17 = OpLoad %11 %arg_0
-               OpImageWrite %17 %20 %5
+               OpImageWrite %17 %21 %23
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %21
-         %23 = OpLabel
-         %24 = OpFunctionCall %void %textureStore_dd7d81
+%vertex_main_inner = OpFunction %v4float None %24
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %textureStore_dd7d81
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %26 = OpLabel
-         %27 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %27
+         %29 = OpLabel
+         %30 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %30
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %textureStore_dd7d81
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %textureStore_dd7d81
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_dd7d81
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureStore_dd7d81
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/dd7d81.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/dd7d81.wgsl.expected.wgsl
index 4c1f529..652c180 100644
--- a/test/tint/builtins/gen/literal/textureStore/dd7d81.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/dd7d81.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rgba8snorm, write>;
 
 fn textureStore_dd7d81() {
-  textureStore(arg_0, vec3<i32>(), vec4<f32>());
+  textureStore(arg_0, vec3<i32>(1i), vec4<f32>(1.0f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/dde364.wgsl b/test/tint/builtins/gen/literal/textureStore/dde364.wgsl
index 65fa8b5..fcae4f7 100644
--- a/test/tint/builtins/gen/literal/textureStore/dde364.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/dde364.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureStore(texture: texture_storage_2d_array<rg32uint, write>, coords: vec2<i32>, array_index: i32, value: vec4<u32>)
 fn textureStore_dde364() {
-  textureStore(arg_0, vec2<i32>(), 1i, vec4<u32>());
+  textureStore(arg_0, vec2<i32>(1i), 1i, vec4<u32>(1u));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/dde364.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/dde364.wgsl.expected.dxc.hlsl
index c35dda3..377f6a7 100644
--- a/test/tint/builtins/gen/literal/textureStore/dde364.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/dde364.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 void textureStore_dde364() {
-  arg_0[int3(0, 0, 1)] = (0u).xxxx;
+  arg_0[int3((1).xx, 1)] = (1u).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/dde364.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/dde364.wgsl.expected.fxc.hlsl
index c35dda3..377f6a7 100644
--- a/test/tint/builtins/gen/literal/textureStore/dde364.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/dde364.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 void textureStore_dde364() {
-  arg_0[int3(0, 0, 1)] = (0u).xxxx;
+  arg_0[int3((1).xx, 1)] = (1u).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/dde364.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/dde364.wgsl.expected.msl
index 45be760..fbffd16 100644
--- a/test/tint/builtins/gen/literal/textureStore/dde364.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/dde364.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureStore_dde364(texture2d_array<uint, access::write> tint_symbol_1) {
-  tint_symbol_1.write(uint4(0u), uint2(int2(0)), 1);
+  tint_symbol_1.write(uint4(1u), uint2(int2(1)), 1);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/dde364.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/dde364.wgsl.expected.spvasm
index 02a9709..6f48965 100644
--- a/test/tint/builtins/gen/literal/textureStore/dde364.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/dde364.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 40
+; Bound: 44
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
@@ -40,38 +40,42 @@
          %13 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
-      %int_0 = OpConstant %int 0
+      %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %23 = OpConstantComposite %v3int %int_0 %int_0 %int_1
+         %23 = OpConstantComposite %v2int %int_1 %int_1
      %v4uint = OpTypeVector %uint 4
-         %25 = OpConstantNull %v4uint
-         %26 = OpTypeFunction %v4float
+     %uint_1 = OpConstant %uint 1
+         %29 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+         %30 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_dde364 = OpFunction %void None %13
          %16 = OpLabel
          %18 = OpLoad %11 %arg_0
-               OpImageWrite %18 %23 %25
+         %24 = OpCompositeExtract %int %23 0
+         %25 = OpCompositeExtract %int %23 1
+         %26 = OpCompositeConstruct %v3int %24 %25 %int_1
+               OpImageWrite %18 %26 %29
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %26
-         %28 = OpLabel
-         %29 = OpFunctionCall %void %textureStore_dde364
+%vertex_main_inner = OpFunction %v4float None %30
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %textureStore_dde364
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %31 = OpLabel
-         %32 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %32
+         %35 = OpLabel
+         %36 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %36
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureStore_dde364
+         %39 = OpLabel
+         %40 = OpFunctionCall %void %textureStore_dde364
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureStore_dde364
+         %42 = OpLabel
+         %43 = OpFunctionCall %void %textureStore_dde364
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/dde364.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/dde364.wgsl.expected.wgsl
index 22cf9bb..0ba15ea 100644
--- a/test/tint/builtins/gen/literal/textureStore/dde364.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/dde364.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rg32uint, write>;
 
 fn textureStore_dde364() {
-  textureStore(arg_0, vec2<i32>(), 1i, vec4<u32>());
+  textureStore(arg_0, vec2<i32>(1i), 1i, vec4<u32>(1u));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/de4b94.wgsl b/test/tint/builtins/gen/literal/textureStore/de4b94.wgsl
index 77739a0..40f235e 100644
--- a/test/tint/builtins/gen/literal/textureStore/de4b94.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/de4b94.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureStore(texture: texture_storage_1d<r32sint, write>, coords: u32, value: vec4<i32>)
 fn textureStore_de4b94() {
-  textureStore(arg_0, 1u, vec4<i32>());
+  textureStore(arg_0, 1u, vec4<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/de4b94.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/de4b94.wgsl.expected.dxc.hlsl
index e830000..4242e4a 100644
--- a/test/tint/builtins/gen/literal/textureStore/de4b94.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/de4b94.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture1D<int4> arg_0 : register(u0, space1);
 
 void textureStore_de4b94() {
-  arg_0[1u] = (0).xxxx;
+  arg_0[1u] = (1).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/de4b94.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/de4b94.wgsl.expected.fxc.hlsl
index e830000..4242e4a 100644
--- a/test/tint/builtins/gen/literal/textureStore/de4b94.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/de4b94.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture1D<int4> arg_0 : register(u0, space1);
 
 void textureStore_de4b94() {
-  arg_0[1u] = (0).xxxx;
+  arg_0[1u] = (1).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/de4b94.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/de4b94.wgsl.expected.msl
index 8402154..3d16bb9 100644
--- a/test/tint/builtins/gen/literal/textureStore/de4b94.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/de4b94.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureStore_de4b94(texture1d<int, access::write> tint_symbol_1) {
-  tint_symbol_1.write(int4(0), uint(1u));
+  tint_symbol_1.write(int4(1), uint(1u));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/de4b94.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/de4b94.wgsl.expected.spvasm
index b5ffea9..d9fd4d1 100644
--- a/test/tint/builtins/gen/literal/textureStore/de4b94.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/de4b94.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 37
+; Bound: 38
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
@@ -41,34 +41,35 @@
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
       %v4int = OpTypeVector %int 4
-         %22 = OpConstantNull %v4int
-         %23 = OpTypeFunction %v4float
+      %int_1 = OpConstant %int 1
+         %23 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+         %24 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_de4b94 = OpFunction %void None %13
          %16 = OpLabel
          %18 = OpLoad %11 %arg_0
-               OpImageWrite %18 %uint_1 %22
+               OpImageWrite %18 %uint_1 %23
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %23
-         %25 = OpLabel
-         %26 = OpFunctionCall %void %textureStore_de4b94
+%vertex_main_inner = OpFunction %v4float None %24
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %textureStore_de4b94
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %28 = OpLabel
-         %29 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %29
+         %29 = OpLabel
+         %30 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %30
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_de4b94
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureStore_de4b94
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureStore_de4b94
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureStore_de4b94
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/de4b94.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/de4b94.wgsl.expected.wgsl
index bdd4cad..154031e 100644
--- a/test/tint/builtins/gen/literal/textureStore/de4b94.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/de4b94.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_storage_1d<r32sint, write>;
 
 fn textureStore_de4b94() {
-  textureStore(arg_0, 1u, vec4<i32>());
+  textureStore(arg_0, 1u, vec4<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/df2ca4.wgsl b/test/tint/builtins/gen/literal/textureStore/df2ca4.wgsl
index 437f7f2..aa0c6bd 100644
--- a/test/tint/builtins/gen/literal/textureStore/df2ca4.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/df2ca4.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureStore(texture: texture_storage_2d_array<r32float, write>, coords: vec2<i32>, array_index: u32, value: vec4<f32>)
 fn textureStore_df2ca4() {
-  textureStore(arg_0, vec2<i32>(), 1u, vec4<f32>());
+  textureStore(arg_0, vec2<i32>(1i), 1u, vec4<f32>(1.f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/df2ca4.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/df2ca4.wgsl.expected.dxc.hlsl
index baf4f2f..f7b8f08 100644
--- a/test/tint/builtins/gen/literal/textureStore/df2ca4.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/df2ca4.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 void textureStore_df2ca4() {
-  arg_0[int3(0, 0, int(1u))] = (0.0f).xxxx;
+  arg_0[int3((1).xx, int(1u))] = (1.0f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/df2ca4.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/df2ca4.wgsl.expected.fxc.hlsl
index baf4f2f..f7b8f08 100644
--- a/test/tint/builtins/gen/literal/textureStore/df2ca4.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/df2ca4.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 void textureStore_df2ca4() {
-  arg_0[int3(0, 0, int(1u))] = (0.0f).xxxx;
+  arg_0[int3((1).xx, int(1u))] = (1.0f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/df2ca4.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/df2ca4.wgsl.expected.glsl
index eea8131..c0a6eb1 100644
--- a/test/tint/builtins/gen/literal/textureStore/df2ca4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/df2ca4.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 layout(r32f) uniform highp writeonly image2DArray arg_0;
 void textureStore_df2ca4() {
-  imageStore(arg_0, ivec3(0, 0, int(1u)), vec4(0.0f));
+  imageStore(arg_0, ivec3(ivec2(1), int(1u)), vec4(1.0f));
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 
 layout(r32f) uniform highp writeonly image2DArray arg_0;
 void textureStore_df2ca4() {
-  imageStore(arg_0, ivec3(0, 0, int(1u)), vec4(0.0f));
+  imageStore(arg_0, ivec3(ivec2(1), int(1u)), vec4(1.0f));
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 layout(r32f) uniform highp writeonly image2DArray arg_0;
 void textureStore_df2ca4() {
-  imageStore(arg_0, ivec3(0, 0, int(1u)), vec4(0.0f));
+  imageStore(arg_0, ivec3(ivec2(1), int(1u)), vec4(1.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureStore/df2ca4.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/df2ca4.wgsl.expected.msl
index 00b2bb9..d837be8 100644
--- a/test/tint/builtins/gen/literal/textureStore/df2ca4.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/df2ca4.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureStore_df2ca4(texture2d_array<float, access::write> tint_symbol_1) {
-  tint_symbol_1.write(float4(0.0f), uint2(int2(0)), 1u);
+  tint_symbol_1.write(float4(1.0f), uint2(int2(1)), 1u);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/df2ca4.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/df2ca4.wgsl.expected.spvasm
index 401fcfb..2bb379f 100644
--- a/test/tint/builtins/gen/literal/textureStore/df2ca4.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/df2ca4.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 39
+; Bound: 44
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -38,38 +38,43 @@
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
-      %int_0 = OpConstant %int 0
+      %v2int = OpTypeVector %int 2
+      %int_1 = OpConstant %int 1
+         %22 = OpConstantComposite %v2int %int_1 %int_1
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
-         %25 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
+         %30 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %31 = OpTypeFunction %v4float
 %textureStore_df2ca4 = OpFunction %void None %12
          %15 = OpLabel
          %17 = OpLoad %11 %arg_0
-         %21 = OpBitcast %int %uint_1
-         %24 = OpCompositeConstruct %v3int %int_0 %int_0 %21
-               OpImageWrite %17 %24 %5
+         %23 = OpCompositeExtract %int %22 0
+         %24 = OpCompositeExtract %int %22 1
+         %25 = OpBitcast %int %uint_1
+         %28 = OpCompositeConstruct %v3int %23 %24 %25
+               OpImageWrite %17 %28 %30
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %25
-         %27 = OpLabel
-         %28 = OpFunctionCall %void %textureStore_df2ca4
+%vertex_main_inner = OpFunction %v4float None %31
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureStore_df2ca4
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %30 = OpLabel
-         %31 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %31
+         %36 = OpLabel
+         %37 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %37
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureStore_df2ca4
+         %39 = OpLabel
+         %40 = OpFunctionCall %void %textureStore_df2ca4
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureStore_df2ca4
+         %42 = OpLabel
+         %43 = OpFunctionCall %void %textureStore_df2ca4
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/df2ca4.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/df2ca4.wgsl.expected.wgsl
index a70a6fa..5b7143b 100644
--- a/test/tint/builtins/gen/literal/textureStore/df2ca4.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/df2ca4.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<r32float, write>;
 
 fn textureStore_df2ca4() {
-  textureStore(arg_0, vec2<i32>(), 1u, vec4<f32>());
+  textureStore(arg_0, vec2<i32>(1i), 1u, vec4<f32>(1.0f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/dfa9a1.wgsl b/test/tint/builtins/gen/literal/textureStore/dfa9a1.wgsl
index 5f998f9..d84183f 100644
--- a/test/tint/builtins/gen/literal/textureStore/dfa9a1.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/dfa9a1.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureStore(texture: texture_storage_2d_array<rg32float, write>, coords: vec2<u32>, array_index: i32, value: vec4<f32>)
 fn textureStore_dfa9a1() {
-  textureStore(arg_0, vec2<u32>(), 1i, vec4<f32>());
+  textureStore(arg_0, vec2<u32>(1u), 1i, vec4<f32>(1.f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/dfa9a1.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/dfa9a1.wgsl.expected.dxc.hlsl
index 2e48f79..28cbdd2 100644
--- a/test/tint/builtins/gen/literal/textureStore/dfa9a1.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/dfa9a1.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 void textureStore_dfa9a1() {
-  arg_0[uint3(0u, 0u, uint(1))] = (0.0f).xxxx;
+  arg_0[uint3((1u).xx, uint(1))] = (1.0f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/dfa9a1.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/dfa9a1.wgsl.expected.fxc.hlsl
index 2e48f79..28cbdd2 100644
--- a/test/tint/builtins/gen/literal/textureStore/dfa9a1.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/dfa9a1.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 void textureStore_dfa9a1() {
-  arg_0[uint3(0u, 0u, uint(1))] = (0.0f).xxxx;
+  arg_0[uint3((1u).xx, uint(1))] = (1.0f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/dfa9a1.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/dfa9a1.wgsl.expected.msl
index 22747d5..27d7aad 100644
--- a/test/tint/builtins/gen/literal/textureStore/dfa9a1.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/dfa9a1.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureStore_dfa9a1(texture2d_array<float, access::write> tint_symbol_1) {
-  tint_symbol_1.write(float4(0.0f), uint2(uint2(0u)), 1);
+  tint_symbol_1.write(float4(1.0f), uint2(uint2(1u)), 1);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/dfa9a1.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/dfa9a1.wgsl.expected.spvasm
index 1ab8b71..8917383 100644
--- a/test/tint/builtins/gen/literal/textureStore/dfa9a1.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/dfa9a1.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 39
+; Bound: 44
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
@@ -39,38 +39,43 @@
          %12 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
-     %uint_0 = OpConstant %uint 0
+     %v2uint = OpTypeVector %uint 2
+     %uint_1 = OpConstant %uint 1
+         %22 = OpConstantComposite %v2uint %uint_1 %uint_1
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
-         %25 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
+         %30 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %31 = OpTypeFunction %v4float
 %textureStore_dfa9a1 = OpFunction %void None %12
          %15 = OpLabel
          %17 = OpLoad %11 %arg_0
-         %21 = OpBitcast %uint %int_1
-         %24 = OpCompositeConstruct %v3uint %uint_0 %uint_0 %21
-               OpImageWrite %17 %24 %5
+         %23 = OpCompositeExtract %uint %22 0
+         %24 = OpCompositeExtract %uint %22 1
+         %25 = OpBitcast %uint %int_1
+         %28 = OpCompositeConstruct %v3uint %23 %24 %25
+               OpImageWrite %17 %28 %30
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %25
-         %27 = OpLabel
-         %28 = OpFunctionCall %void %textureStore_dfa9a1
+%vertex_main_inner = OpFunction %v4float None %31
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureStore_dfa9a1
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %30 = OpLabel
-         %31 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %31
+         %36 = OpLabel
+         %37 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %37
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureStore_dfa9a1
+         %39 = OpLabel
+         %40 = OpFunctionCall %void %textureStore_dfa9a1
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureStore_dfa9a1
+         %42 = OpLabel
+         %43 = OpFunctionCall %void %textureStore_dfa9a1
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/dfa9a1.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/dfa9a1.wgsl.expected.wgsl
index a930131..0c3ebaa 100644
--- a/test/tint/builtins/gen/literal/textureStore/dfa9a1.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/dfa9a1.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rg32float, write>;
 
 fn textureStore_dfa9a1() {
-  textureStore(arg_0, vec2<u32>(), 1i, vec4<f32>());
+  textureStore(arg_0, vec2<u32>(1u), 1i, vec4<f32>(1.0f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/dffb13.wgsl b/test/tint/builtins/gen/literal/textureStore/dffb13.wgsl
index 9621682..abc13b1 100644
--- a/test/tint/builtins/gen/literal/textureStore/dffb13.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/dffb13.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureStore(texture: texture_storage_2d_array<rg32uint, write>, coords: vec2<i32>, array_index: u32, value: vec4<u32>)
 fn textureStore_dffb13() {
-  textureStore(arg_0, vec2<i32>(), 1u, vec4<u32>());
+  textureStore(arg_0, vec2<i32>(1i), 1u, vec4<u32>(1u));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/dffb13.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/dffb13.wgsl.expected.dxc.hlsl
index 84db8e5..6bf3dd3 100644
--- a/test/tint/builtins/gen/literal/textureStore/dffb13.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/dffb13.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 void textureStore_dffb13() {
-  arg_0[int3(0, 0, int(1u))] = (0u).xxxx;
+  arg_0[int3((1).xx, int(1u))] = (1u).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/dffb13.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/dffb13.wgsl.expected.fxc.hlsl
index 84db8e5..6bf3dd3 100644
--- a/test/tint/builtins/gen/literal/textureStore/dffb13.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/dffb13.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 void textureStore_dffb13() {
-  arg_0[int3(0, 0, int(1u))] = (0u).xxxx;
+  arg_0[int3((1).xx, int(1u))] = (1u).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/dffb13.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/dffb13.wgsl.expected.msl
index 65218a9..212a8bc 100644
--- a/test/tint/builtins/gen/literal/textureStore/dffb13.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/dffb13.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureStore_dffb13(texture2d_array<uint, access::write> tint_symbol_1) {
-  tint_symbol_1.write(uint4(0u), uint2(int2(0)), 1u);
+  tint_symbol_1.write(uint4(1u), uint2(int2(1)), 1u);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/dffb13.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/dffb13.wgsl.expected.spvasm
index 8df8e48..a8676ca 100644
--- a/test/tint/builtins/gen/literal/textureStore/dffb13.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/dffb13.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 41
+; Bound: 45
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
@@ -40,39 +40,43 @@
          %13 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
-      %int_0 = OpConstant %int 0
+      %v2int = OpTypeVector %int 2
+      %int_1 = OpConstant %int 1
+         %23 = OpConstantComposite %v2int %int_1 %int_1
      %uint_1 = OpConstant %uint 1
      %v4uint = OpTypeVector %uint 4
-         %26 = OpConstantNull %v4uint
-         %27 = OpTypeFunction %v4float
+         %30 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+         %31 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_dffb13 = OpFunction %void None %13
          %16 = OpLabel
          %18 = OpLoad %11 %arg_0
-         %22 = OpBitcast %int %uint_1
-         %24 = OpCompositeConstruct %v3int %int_0 %int_0 %22
-               OpImageWrite %18 %24 %26
+         %24 = OpCompositeExtract %int %23 0
+         %25 = OpCompositeExtract %int %23 1
+         %26 = OpBitcast %int %uint_1
+         %28 = OpCompositeConstruct %v3int %24 %25 %26
+               OpImageWrite %18 %28 %30
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %27
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %textureStore_dffb13
+%vertex_main_inner = OpFunction %v4float None %31
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureStore_dffb13
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %32 = OpLabel
-         %33 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %33
+         %36 = OpLabel
+         %37 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %37
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_dffb13
+         %40 = OpLabel
+         %41 = OpFunctionCall %void %textureStore_dffb13
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_dffb13
+         %43 = OpLabel
+         %44 = OpFunctionCall %void %textureStore_dffb13
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/dffb13.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/dffb13.wgsl.expected.wgsl
index b7fb947..e1cdbc5 100644
--- a/test/tint/builtins/gen/literal/textureStore/dffb13.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/dffb13.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rg32uint, write>;
 
 fn textureStore_dffb13() {
-  textureStore(arg_0, vec2<i32>(), 1u, vec4<u32>());
+  textureStore(arg_0, vec2<i32>(1i), 1u, vec4<u32>(1u));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/e7c6d8.wgsl b/test/tint/builtins/gen/literal/textureStore/e7c6d8.wgsl
index b7e07e0..9c47a30 100644
--- a/test/tint/builtins/gen/literal/textureStore/e7c6d8.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/e7c6d8.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureStore(texture: texture_storage_1d<rgba8unorm, write>, coords: u32, value: vec4<f32>)
 fn textureStore_e7c6d8() {
-  textureStore(arg_0, 1u, vec4<f32>());
+  textureStore(arg_0, 1u, vec4<f32>(1.f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/e7c6d8.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/e7c6d8.wgsl.expected.dxc.hlsl
index 87e9182..42109cc 100644
--- a/test/tint/builtins/gen/literal/textureStore/e7c6d8.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/e7c6d8.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture1D<float4> arg_0 : register(u0, space1);
 
 void textureStore_e7c6d8() {
-  arg_0[1u] = (0.0f).xxxx;
+  arg_0[1u] = (1.0f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/e7c6d8.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/e7c6d8.wgsl.expected.fxc.hlsl
index 87e9182..42109cc 100644
--- a/test/tint/builtins/gen/literal/textureStore/e7c6d8.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/e7c6d8.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture1D<float4> arg_0 : register(u0, space1);
 
 void textureStore_e7c6d8() {
-  arg_0[1u] = (0.0f).xxxx;
+  arg_0[1u] = (1.0f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/e7c6d8.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/e7c6d8.wgsl.expected.msl
index 85510ef..d38883f 100644
--- a/test/tint/builtins/gen/literal/textureStore/e7c6d8.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/e7c6d8.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureStore_e7c6d8(texture1d<float, access::write> tint_symbol_1) {
-  tint_symbol_1.write(float4(0.0f), uint(1u));
+  tint_symbol_1.write(float4(1.0f), uint(1u));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/e7c6d8.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/e7c6d8.wgsl.expected.spvasm
index e9be8b7..fae0eed 100644
--- a/test/tint/builtins/gen/literal/textureStore/e7c6d8.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/e7c6d8.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 34
+; Bound: 35
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
@@ -39,33 +39,34 @@
          %12 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
-         %20 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
+         %21 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %22 = OpTypeFunction %v4float
 %textureStore_e7c6d8 = OpFunction %void None %12
          %15 = OpLabel
          %17 = OpLoad %11 %arg_0
-               OpImageWrite %17 %uint_1 %5
+               OpImageWrite %17 %uint_1 %21
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %20
-         %22 = OpLabel
-         %23 = OpFunctionCall %void %textureStore_e7c6d8
+%vertex_main_inner = OpFunction %v4float None %22
+         %24 = OpLabel
+         %25 = OpFunctionCall %void %textureStore_e7c6d8
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %25 = OpLabel
-         %26 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %26
+         %27 = OpLabel
+         %28 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %28
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %textureStore_e7c6d8
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %textureStore_e7c6d8
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_e7c6d8
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureStore_e7c6d8
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/e7c6d8.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/e7c6d8.wgsl.expected.wgsl
index 3e17151..0ba10b3 100644
--- a/test/tint/builtins/gen/literal/textureStore/e7c6d8.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/e7c6d8.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rgba8unorm, write>;
 
 fn textureStore_e7c6d8() {
-  textureStore(arg_0, 1u, vec4<f32>());
+  textureStore(arg_0, 1u, vec4<f32>(1.0f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/e885e8.wgsl b/test/tint/builtins/gen/literal/textureStore/e885e8.wgsl
index 68ab40b..293ba3c 100644
--- a/test/tint/builtins/gen/literal/textureStore/e885e8.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/e885e8.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureStore(texture: texture_storage_1d<rgba16float, write>, coords: i32, value: vec4<f32>)
 fn textureStore_e885e8() {
-  textureStore(arg_0, 1i, vec4<f32>());
+  textureStore(arg_0, 1i, vec4<f32>(1.f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/e885e8.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/e885e8.wgsl.expected.dxc.hlsl
index 0faa237..59304c4 100644
--- a/test/tint/builtins/gen/literal/textureStore/e885e8.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/e885e8.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture1D<float4> arg_0 : register(u0, space1);
 
 void textureStore_e885e8() {
-  arg_0[1] = (0.0f).xxxx;
+  arg_0[1] = (1.0f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/e885e8.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/e885e8.wgsl.expected.fxc.hlsl
index 0faa237..59304c4 100644
--- a/test/tint/builtins/gen/literal/textureStore/e885e8.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/e885e8.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture1D<float4> arg_0 : register(u0, space1);
 
 void textureStore_e885e8() {
-  arg_0[1] = (0.0f).xxxx;
+  arg_0[1] = (1.0f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/e885e8.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/e885e8.wgsl.expected.msl
index 3bea09b..0c4ce64 100644
--- a/test/tint/builtins/gen/literal/textureStore/e885e8.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/e885e8.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureStore_e885e8(texture1d<float, access::write> tint_symbol_1) {
-  tint_symbol_1.write(float4(0.0f), uint(1));
+  tint_symbol_1.write(float4(1.0f), uint(1));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/e885e8.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/e885e8.wgsl.expected.spvasm
index 4e0f0a3..d4c6bf7 100644
--- a/test/tint/builtins/gen/literal/textureStore/e885e8.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/e885e8.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 34
+; Bound: 35
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
@@ -39,33 +39,34 @@
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
-         %20 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
+         %21 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %22 = OpTypeFunction %v4float
 %textureStore_e885e8 = OpFunction %void None %12
          %15 = OpLabel
          %17 = OpLoad %11 %arg_0
-               OpImageWrite %17 %int_1 %5
+               OpImageWrite %17 %int_1 %21
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %20
-         %22 = OpLabel
-         %23 = OpFunctionCall %void %textureStore_e885e8
+%vertex_main_inner = OpFunction %v4float None %22
+         %24 = OpLabel
+         %25 = OpFunctionCall %void %textureStore_e885e8
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %25 = OpLabel
-         %26 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %26
+         %27 = OpLabel
+         %28 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %28
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %textureStore_e885e8
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %textureStore_e885e8
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_e885e8
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureStore_e885e8
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/e885e8.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/e885e8.wgsl.expected.wgsl
index 4cc3fb9..bcfb579 100644
--- a/test/tint/builtins/gen/literal/textureStore/e885e8.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/e885e8.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rgba16float, write>;
 
 fn textureStore_e885e8() {
-  textureStore(arg_0, 1i, vec4<f32>());
+  textureStore(arg_0, 1i, vec4<f32>(1.0f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/e8cbf7.wgsl b/test/tint/builtins/gen/literal/textureStore/e8cbf7.wgsl
index 8d6a6aa..c6af8b8 100644
--- a/test/tint/builtins/gen/literal/textureStore/e8cbf7.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/e8cbf7.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureStore(texture: texture_storage_2d<r32uint, write>, coords: vec2<u32>, value: vec4<u32>)
 fn textureStore_e8cbf7() {
-  textureStore(arg_0, vec2<u32>(), vec4<u32>());
+  textureStore(arg_0, vec2<u32>(1u), vec4<u32>(1u));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/e8cbf7.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/e8cbf7.wgsl.expected.dxc.hlsl
index c5cfb67..1ee115e 100644
--- a/test/tint/builtins/gen/literal/textureStore/e8cbf7.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/e8cbf7.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2D<uint4> arg_0 : register(u0, space1);
 
 void textureStore_e8cbf7() {
-  arg_0[(0u).xx] = (0u).xxxx;
+  arg_0[(1u).xx] = (1u).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/e8cbf7.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/e8cbf7.wgsl.expected.fxc.hlsl
index c5cfb67..1ee115e 100644
--- a/test/tint/builtins/gen/literal/textureStore/e8cbf7.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/e8cbf7.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2D<uint4> arg_0 : register(u0, space1);
 
 void textureStore_e8cbf7() {
-  arg_0[(0u).xx] = (0u).xxxx;
+  arg_0[(1u).xx] = (1u).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/e8cbf7.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/e8cbf7.wgsl.expected.glsl
index 2b6995d..076296d 100644
--- a/test/tint/builtins/gen/literal/textureStore/e8cbf7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/e8cbf7.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 layout(r32ui) uniform highp writeonly uimage2D arg_0;
 void textureStore_e8cbf7() {
-  imageStore(arg_0, ivec2(uvec2(0u)), uvec4(0u));
+  imageStore(arg_0, ivec2(uvec2(1u)), uvec4(1u));
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 
 layout(r32ui) uniform highp writeonly uimage2D arg_0;
 void textureStore_e8cbf7() {
-  imageStore(arg_0, ivec2(uvec2(0u)), uvec4(0u));
+  imageStore(arg_0, ivec2(uvec2(1u)), uvec4(1u));
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 layout(r32ui) uniform highp writeonly uimage2D arg_0;
 void textureStore_e8cbf7() {
-  imageStore(arg_0, ivec2(uvec2(0u)), uvec4(0u));
+  imageStore(arg_0, ivec2(uvec2(1u)), uvec4(1u));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureStore/e8cbf7.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/e8cbf7.wgsl.expected.msl
index e263440..dcc460b 100644
--- a/test/tint/builtins/gen/literal/textureStore/e8cbf7.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/e8cbf7.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureStore_e8cbf7(texture2d<uint, access::write> tint_symbol_1) {
-  tint_symbol_1.write(uint4(0u), uint2(uint2(0u)));
+  tint_symbol_1.write(uint4(1u), uint2(uint2(1u)));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/e8cbf7.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/e8cbf7.wgsl.expected.spvasm
index 38ad68a..1ae9ed8 100644
--- a/test/tint/builtins/gen/literal/textureStore/e8cbf7.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/e8cbf7.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 37
+; Bound: 38
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -38,36 +38,37 @@
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
      %v2uint = OpTypeVector %uint 2
-         %20 = OpConstantNull %v2uint
+     %uint_1 = OpConstant %uint 1
+         %21 = OpConstantComposite %v2uint %uint_1 %uint_1
      %v4uint = OpTypeVector %uint 4
-         %22 = OpConstantNull %v4uint
-         %23 = OpTypeFunction %v4float
+         %23 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+         %24 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_e8cbf7 = OpFunction %void None %13
          %16 = OpLabel
          %18 = OpLoad %11 %arg_0
-               OpImageWrite %18 %20 %22
+               OpImageWrite %18 %21 %23
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %23
-         %25 = OpLabel
-         %26 = OpFunctionCall %void %textureStore_e8cbf7
+%vertex_main_inner = OpFunction %v4float None %24
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %textureStore_e8cbf7
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %28 = OpLabel
-         %29 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %29
+         %29 = OpLabel
+         %30 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %30
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_e8cbf7
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureStore_e8cbf7
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureStore_e8cbf7
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureStore_e8cbf7
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/e8cbf7.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/e8cbf7.wgsl.expected.wgsl
index 33cb1d3..48c3fd0 100644
--- a/test/tint/builtins/gen/literal/textureStore/e8cbf7.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/e8cbf7.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d<r32uint, write>;
 
 fn textureStore_e8cbf7() {
-  textureStore(arg_0, vec2<u32>(), vec4<u32>());
+  textureStore(arg_0, vec2<u32>(1u), vec4<u32>(1u));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/eb702f.wgsl b/test/tint/builtins/gen/literal/textureStore/eb702f.wgsl
index 35292f6..93b133c 100644
--- a/test/tint/builtins/gen/literal/textureStore/eb702f.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/eb702f.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureStore(texture: texture_storage_3d<r32float, write>, coords: vec3<i32>, value: vec4<f32>)
 fn textureStore_eb702f() {
-  textureStore(arg_0, vec3<i32>(), vec4<f32>());
+  textureStore(arg_0, vec3<i32>(1i), vec4<f32>(1.f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/eb702f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/eb702f.wgsl.expected.dxc.hlsl
index 5bc0b80..fc003fc 100644
--- a/test/tint/builtins/gen/literal/textureStore/eb702f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/eb702f.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture3D<float4> arg_0 : register(u0, space1);
 
 void textureStore_eb702f() {
-  arg_0[(0).xxx] = (0.0f).xxxx;
+  arg_0[(1).xxx] = (1.0f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/eb702f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/eb702f.wgsl.expected.fxc.hlsl
index 5bc0b80..fc003fc 100644
--- a/test/tint/builtins/gen/literal/textureStore/eb702f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/eb702f.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture3D<float4> arg_0 : register(u0, space1);
 
 void textureStore_eb702f() {
-  arg_0[(0).xxx] = (0.0f).xxxx;
+  arg_0[(1).xxx] = (1.0f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/eb702f.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/eb702f.wgsl.expected.glsl
index dbf8045..939999e 100644
--- a/test/tint/builtins/gen/literal/textureStore/eb702f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/eb702f.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 layout(r32f) uniform highp writeonly image3D arg_0;
 void textureStore_eb702f() {
-  imageStore(arg_0, ivec3(0), vec4(0.0f));
+  imageStore(arg_0, ivec3(1), vec4(1.0f));
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 
 layout(r32f) uniform highp writeonly image3D arg_0;
 void textureStore_eb702f() {
-  imageStore(arg_0, ivec3(0), vec4(0.0f));
+  imageStore(arg_0, ivec3(1), vec4(1.0f));
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 layout(r32f) uniform highp writeonly image3D arg_0;
 void textureStore_eb702f() {
-  imageStore(arg_0, ivec3(0), vec4(0.0f));
+  imageStore(arg_0, ivec3(1), vec4(1.0f));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureStore/eb702f.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/eb702f.wgsl.expected.msl
index bac111e..56021c4 100644
--- a/test/tint/builtins/gen/literal/textureStore/eb702f.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/eb702f.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureStore_eb702f(texture3d<float, access::write> tint_symbol_1) {
-  tint_symbol_1.write(float4(0.0f), uint3(int3(0)));
+  tint_symbol_1.write(float4(1.0f), uint3(int3(1)));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/eb702f.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/eb702f.wgsl.expected.spvasm
index 8e0f51a..fbb6f18 100644
--- a/test/tint/builtins/gen/literal/textureStore/eb702f.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/eb702f.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 35
+; Bound: 37
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -38,34 +38,36 @@
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
-         %20 = OpConstantNull %v3int
-         %21 = OpTypeFunction %v4float
+      %int_1 = OpConstant %int 1
+         %21 = OpConstantComposite %v3int %int_1 %int_1 %int_1
     %float_1 = OpConstant %float 1
+         %23 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %24 = OpTypeFunction %v4float
 %textureStore_eb702f = OpFunction %void None %12
          %15 = OpLabel
          %17 = OpLoad %11 %arg_0
-               OpImageWrite %17 %20 %5
+               OpImageWrite %17 %21 %23
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %21
-         %23 = OpLabel
-         %24 = OpFunctionCall %void %textureStore_eb702f
+%vertex_main_inner = OpFunction %v4float None %24
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %textureStore_eb702f
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %26 = OpLabel
-         %27 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %27
+         %29 = OpLabel
+         %30 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %30
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %textureStore_eb702f
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %textureStore_eb702f
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_eb702f
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureStore_eb702f
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/eb702f.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/eb702f.wgsl.expected.wgsl
index 0e86ad2..449e726 100644
--- a/test/tint/builtins/gen/literal/textureStore/eb702f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/eb702f.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_storage_3d<r32float, write>;
 
 fn textureStore_eb702f() {
-  textureStore(arg_0, vec3<i32>(), vec4<f32>());
+  textureStore(arg_0, vec3<i32>(1i), vec4<f32>(1.0f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/eb78b9.wgsl b/test/tint/builtins/gen/literal/textureStore/eb78b9.wgsl
index 4393ba0..8f44b9f 100644
--- a/test/tint/builtins/gen/literal/textureStore/eb78b9.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/eb78b9.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureStore(texture: texture_storage_3d<r32sint, write>, coords: vec3<i32>, value: vec4<i32>)
 fn textureStore_eb78b9() {
-  textureStore(arg_0, vec3<i32>(), vec4<i32>());
+  textureStore(arg_0, vec3<i32>(1i), vec4<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/eb78b9.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/eb78b9.wgsl.expected.dxc.hlsl
index 67a03a2..04cd8ac 100644
--- a/test/tint/builtins/gen/literal/textureStore/eb78b9.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/eb78b9.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture3D<int4> arg_0 : register(u0, space1);
 
 void textureStore_eb78b9() {
-  arg_0[(0).xxx] = (0).xxxx;
+  arg_0[(1).xxx] = (1).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/eb78b9.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/eb78b9.wgsl.expected.fxc.hlsl
index 67a03a2..04cd8ac 100644
--- a/test/tint/builtins/gen/literal/textureStore/eb78b9.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/eb78b9.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture3D<int4> arg_0 : register(u0, space1);
 
 void textureStore_eb78b9() {
-  arg_0[(0).xxx] = (0).xxxx;
+  arg_0[(1).xxx] = (1).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/eb78b9.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/eb78b9.wgsl.expected.glsl
index ff3eaea..fae6231 100644
--- a/test/tint/builtins/gen/literal/textureStore/eb78b9.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/eb78b9.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 layout(r32i) uniform highp writeonly iimage3D arg_0;
 void textureStore_eb78b9() {
-  imageStore(arg_0, ivec3(0), ivec4(0));
+  imageStore(arg_0, ivec3(1), ivec4(1));
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 
 layout(r32i) uniform highp writeonly iimage3D arg_0;
 void textureStore_eb78b9() {
-  imageStore(arg_0, ivec3(0), ivec4(0));
+  imageStore(arg_0, ivec3(1), ivec4(1));
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 layout(r32i) uniform highp writeonly iimage3D arg_0;
 void textureStore_eb78b9() {
-  imageStore(arg_0, ivec3(0), ivec4(0));
+  imageStore(arg_0, ivec3(1), ivec4(1));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureStore/eb78b9.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/eb78b9.wgsl.expected.msl
index 038f1f4..3d0f17b 100644
--- a/test/tint/builtins/gen/literal/textureStore/eb78b9.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/eb78b9.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureStore_eb78b9(texture3d<int, access::write> tint_symbol_1) {
-  tint_symbol_1.write(int4(0), uint3(int3(0)));
+  tint_symbol_1.write(int4(1), uint3(int3(1)));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/eb78b9.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/eb78b9.wgsl.expected.spvasm
index fd0eaa0..a257eea 100644
--- a/test/tint/builtins/gen/literal/textureStore/eb78b9.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/eb78b9.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 37
+; Bound: 38
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -38,36 +38,37 @@
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
       %v3int = OpTypeVector %int 3
-         %20 = OpConstantNull %v3int
+      %int_1 = OpConstant %int 1
+         %21 = OpConstantComposite %v3int %int_1 %int_1 %int_1
       %v4int = OpTypeVector %int 4
-         %22 = OpConstantNull %v4int
-         %23 = OpTypeFunction %v4float
+         %23 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+         %24 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_eb78b9 = OpFunction %void None %13
          %16 = OpLabel
          %18 = OpLoad %11 %arg_0
-               OpImageWrite %18 %20 %22
+               OpImageWrite %18 %21 %23
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %23
-         %25 = OpLabel
-         %26 = OpFunctionCall %void %textureStore_eb78b9
+%vertex_main_inner = OpFunction %v4float None %24
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %textureStore_eb78b9
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %28 = OpLabel
-         %29 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %29
+         %29 = OpLabel
+         %30 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %30
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_eb78b9
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureStore_eb78b9
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureStore_eb78b9
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureStore_eb78b9
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/eb78b9.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/eb78b9.wgsl.expected.wgsl
index c200bb2..0b3dd17 100644
--- a/test/tint/builtins/gen/literal/textureStore/eb78b9.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/eb78b9.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_storage_3d<r32sint, write>;
 
 fn textureStore_eb78b9() {
-  textureStore(arg_0, vec3<i32>(), vec4<i32>());
+  textureStore(arg_0, vec3<i32>(1i), vec4<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/ee6acc.wgsl b/test/tint/builtins/gen/literal/textureStore/ee6acc.wgsl
index 9e299d1..a238c3a 100644
--- a/test/tint/builtins/gen/literal/textureStore/ee6acc.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/ee6acc.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureStore(texture: texture_storage_3d<rg32float, write>, coords: vec3<i32>, value: vec4<f32>)
 fn textureStore_ee6acc() {
-  textureStore(arg_0, vec3<i32>(), vec4<f32>());
+  textureStore(arg_0, vec3<i32>(1i), vec4<f32>(1.f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/ee6acc.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/ee6acc.wgsl.expected.dxc.hlsl
index 8193759..8d61677 100644
--- a/test/tint/builtins/gen/literal/textureStore/ee6acc.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/ee6acc.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture3D<float4> arg_0 : register(u0, space1);
 
 void textureStore_ee6acc() {
-  arg_0[(0).xxx] = (0.0f).xxxx;
+  arg_0[(1).xxx] = (1.0f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/ee6acc.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/ee6acc.wgsl.expected.fxc.hlsl
index 8193759..8d61677 100644
--- a/test/tint/builtins/gen/literal/textureStore/ee6acc.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/ee6acc.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture3D<float4> arg_0 : register(u0, space1);
 
 void textureStore_ee6acc() {
-  arg_0[(0).xxx] = (0.0f).xxxx;
+  arg_0[(1).xxx] = (1.0f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/ee6acc.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/ee6acc.wgsl.expected.msl
index 46568a9..2349a9e 100644
--- a/test/tint/builtins/gen/literal/textureStore/ee6acc.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/ee6acc.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureStore_ee6acc(texture3d<float, access::write> tint_symbol_1) {
-  tint_symbol_1.write(float4(0.0f), uint3(int3(0)));
+  tint_symbol_1.write(float4(1.0f), uint3(int3(1)));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/ee6acc.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/ee6acc.wgsl.expected.spvasm
index 3a82903..98e9265 100644
--- a/test/tint/builtins/gen/literal/textureStore/ee6acc.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/ee6acc.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 35
+; Bound: 37
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
@@ -39,34 +39,36 @@
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
-         %20 = OpConstantNull %v3int
-         %21 = OpTypeFunction %v4float
+      %int_1 = OpConstant %int 1
+         %21 = OpConstantComposite %v3int %int_1 %int_1 %int_1
     %float_1 = OpConstant %float 1
+         %23 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %24 = OpTypeFunction %v4float
 %textureStore_ee6acc = OpFunction %void None %12
          %15 = OpLabel
          %17 = OpLoad %11 %arg_0
-               OpImageWrite %17 %20 %5
+               OpImageWrite %17 %21 %23
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %21
-         %23 = OpLabel
-         %24 = OpFunctionCall %void %textureStore_ee6acc
+%vertex_main_inner = OpFunction %v4float None %24
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %textureStore_ee6acc
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %26 = OpLabel
-         %27 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %27
+         %29 = OpLabel
+         %30 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %30
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %textureStore_ee6acc
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %textureStore_ee6acc
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_ee6acc
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureStore_ee6acc
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/ee6acc.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/ee6acc.wgsl.expected.wgsl
index 377310e..0bfb99b 100644
--- a/test/tint/builtins/gen/literal/textureStore/ee6acc.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/ee6acc.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rg32float, write>;
 
 fn textureStore_ee6acc() {
-  textureStore(arg_0, vec3<i32>(), vec4<f32>());
+  textureStore(arg_0, vec3<i32>(1i), vec4<f32>(1.0f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/ef9f2f.wgsl b/test/tint/builtins/gen/literal/textureStore/ef9f2f.wgsl
index 83185c7..c5f3264 100644
--- a/test/tint/builtins/gen/literal/textureStore/ef9f2f.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/ef9f2f.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureStore(texture: texture_storage_3d<r32uint, write>, coords: vec3<i32>, value: vec4<u32>)
 fn textureStore_ef9f2f() {
-  textureStore(arg_0, vec3<i32>(), vec4<u32>());
+  textureStore(arg_0, vec3<i32>(1i), vec4<u32>(1u));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/ef9f2f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/ef9f2f.wgsl.expected.dxc.hlsl
index fb51122..0dd0e1c 100644
--- a/test/tint/builtins/gen/literal/textureStore/ef9f2f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/ef9f2f.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture3D<uint4> arg_0 : register(u0, space1);
 
 void textureStore_ef9f2f() {
-  arg_0[(0).xxx] = (0u).xxxx;
+  arg_0[(1).xxx] = (1u).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/ef9f2f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/ef9f2f.wgsl.expected.fxc.hlsl
index fb51122..0dd0e1c 100644
--- a/test/tint/builtins/gen/literal/textureStore/ef9f2f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/ef9f2f.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture3D<uint4> arg_0 : register(u0, space1);
 
 void textureStore_ef9f2f() {
-  arg_0[(0).xxx] = (0u).xxxx;
+  arg_0[(1).xxx] = (1u).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/ef9f2f.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/ef9f2f.wgsl.expected.glsl
index 5a8142a..fddab83 100644
--- a/test/tint/builtins/gen/literal/textureStore/ef9f2f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/ef9f2f.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 layout(r32ui) uniform highp writeonly uimage3D arg_0;
 void textureStore_ef9f2f() {
-  imageStore(arg_0, ivec3(0), uvec4(0u));
+  imageStore(arg_0, ivec3(1), uvec4(1u));
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 
 layout(r32ui) uniform highp writeonly uimage3D arg_0;
 void textureStore_ef9f2f() {
-  imageStore(arg_0, ivec3(0), uvec4(0u));
+  imageStore(arg_0, ivec3(1), uvec4(1u));
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 layout(r32ui) uniform highp writeonly uimage3D arg_0;
 void textureStore_ef9f2f() {
-  imageStore(arg_0, ivec3(0), uvec4(0u));
+  imageStore(arg_0, ivec3(1), uvec4(1u));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureStore/ef9f2f.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/ef9f2f.wgsl.expected.msl
index a9ba91d..1b3e79c 100644
--- a/test/tint/builtins/gen/literal/textureStore/ef9f2f.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/ef9f2f.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureStore_ef9f2f(texture3d<uint, access::write> tint_symbol_1) {
-  tint_symbol_1.write(uint4(0u), uint3(int3(0)));
+  tint_symbol_1.write(uint4(1u), uint3(int3(1)));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/ef9f2f.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/ef9f2f.wgsl.expected.spvasm
index 1398642..df69de9 100644
--- a/test/tint/builtins/gen/literal/textureStore/ef9f2f.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/ef9f2f.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 38
+; Bound: 40
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -39,36 +39,38 @@
          %13 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
-         %21 = OpConstantNull %v3int
+      %int_1 = OpConstant %int 1
+         %22 = OpConstantComposite %v3int %int_1 %int_1 %int_1
      %v4uint = OpTypeVector %uint 4
-         %23 = OpConstantNull %v4uint
-         %24 = OpTypeFunction %v4float
+     %uint_1 = OpConstant %uint 1
+         %25 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+         %26 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_ef9f2f = OpFunction %void None %13
          %16 = OpLabel
          %18 = OpLoad %11 %arg_0
-               OpImageWrite %18 %21 %23
+               OpImageWrite %18 %22 %25
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %24
-         %26 = OpLabel
-         %27 = OpFunctionCall %void %textureStore_ef9f2f
+%vertex_main_inner = OpFunction %v4float None %26
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %textureStore_ef9f2f
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %29 = OpLabel
-         %30 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %30
+         %31 = OpLabel
+         %32 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %32
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_ef9f2f
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureStore_ef9f2f
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_ef9f2f
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %textureStore_ef9f2f
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/ef9f2f.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/ef9f2f.wgsl.expected.wgsl
index 9a0b5cb..913ab9e 100644
--- a/test/tint/builtins/gen/literal/textureStore/ef9f2f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/ef9f2f.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_storage_3d<r32uint, write>;
 
 fn textureStore_ef9f2f() {
-  textureStore(arg_0, vec3<i32>(), vec4<u32>());
+  textureStore(arg_0, vec3<i32>(1i), vec4<u32>(1u));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/f1e6d3.wgsl b/test/tint/builtins/gen/literal/textureStore/f1e6d3.wgsl
index e73dc3e..d342458 100644
--- a/test/tint/builtins/gen/literal/textureStore/f1e6d3.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/f1e6d3.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureStore(texture: texture_storage_3d<r32sint, write>, coords: vec3<u32>, value: vec4<i32>)
 fn textureStore_f1e6d3() {
-  textureStore(arg_0, vec3<u32>(), vec4<i32>());
+  textureStore(arg_0, vec3<u32>(1u), vec4<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/f1e6d3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/f1e6d3.wgsl.expected.dxc.hlsl
index b02d310..e660717 100644
--- a/test/tint/builtins/gen/literal/textureStore/f1e6d3.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/f1e6d3.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture3D<int4> arg_0 : register(u0, space1);
 
 void textureStore_f1e6d3() {
-  arg_0[(0u).xxx] = (0).xxxx;
+  arg_0[(1u).xxx] = (1).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/f1e6d3.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/f1e6d3.wgsl.expected.fxc.hlsl
index b02d310..e660717 100644
--- a/test/tint/builtins/gen/literal/textureStore/f1e6d3.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/f1e6d3.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture3D<int4> arg_0 : register(u0, space1);
 
 void textureStore_f1e6d3() {
-  arg_0[(0u).xxx] = (0).xxxx;
+  arg_0[(1u).xxx] = (1).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/f1e6d3.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/f1e6d3.wgsl.expected.glsl
index ba30681..7c4ec44 100644
--- a/test/tint/builtins/gen/literal/textureStore/f1e6d3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/f1e6d3.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 layout(r32i) uniform highp writeonly iimage3D arg_0;
 void textureStore_f1e6d3() {
-  imageStore(arg_0, ivec3(uvec3(0u)), ivec4(0));
+  imageStore(arg_0, ivec3(uvec3(1u)), ivec4(1));
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 
 layout(r32i) uniform highp writeonly iimage3D arg_0;
 void textureStore_f1e6d3() {
-  imageStore(arg_0, ivec3(uvec3(0u)), ivec4(0));
+  imageStore(arg_0, ivec3(uvec3(1u)), ivec4(1));
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 layout(r32i) uniform highp writeonly iimage3D arg_0;
 void textureStore_f1e6d3() {
-  imageStore(arg_0, ivec3(uvec3(0u)), ivec4(0));
+  imageStore(arg_0, ivec3(uvec3(1u)), ivec4(1));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureStore/f1e6d3.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/f1e6d3.wgsl.expected.msl
index 06ddbc1..7bdf79d 100644
--- a/test/tint/builtins/gen/literal/textureStore/f1e6d3.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/f1e6d3.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureStore_f1e6d3(texture3d<int, access::write> tint_symbol_1) {
-  tint_symbol_1.write(int4(0), uint3(uint3(0u)));
+  tint_symbol_1.write(int4(1), uint3(uint3(1u)));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/f1e6d3.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/f1e6d3.wgsl.expected.spvasm
index 3b45b31..d7b74d1 100644
--- a/test/tint/builtins/gen/literal/textureStore/f1e6d3.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/f1e6d3.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 38
+; Bound: 40
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -39,36 +39,38 @@
          %13 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
-         %21 = OpConstantNull %v3uint
+     %uint_1 = OpConstant %uint 1
+         %22 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
       %v4int = OpTypeVector %int 4
-         %23 = OpConstantNull %v4int
-         %24 = OpTypeFunction %v4float
+      %int_1 = OpConstant %int 1
+         %25 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+         %26 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_f1e6d3 = OpFunction %void None %13
          %16 = OpLabel
          %18 = OpLoad %11 %arg_0
-               OpImageWrite %18 %21 %23
+               OpImageWrite %18 %22 %25
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %24
-         %26 = OpLabel
-         %27 = OpFunctionCall %void %textureStore_f1e6d3
+%vertex_main_inner = OpFunction %v4float None %26
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %textureStore_f1e6d3
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %29 = OpLabel
-         %30 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %30
+         %31 = OpLabel
+         %32 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %32
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_f1e6d3
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureStore_f1e6d3
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_f1e6d3
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %textureStore_f1e6d3
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/f1e6d3.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/f1e6d3.wgsl.expected.wgsl
index a68c2ec..2906295 100644
--- a/test/tint/builtins/gen/literal/textureStore/f1e6d3.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/f1e6d3.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_storage_3d<r32sint, write>;
 
 fn textureStore_f1e6d3() {
-  textureStore(arg_0, vec3<u32>(), vec4<i32>());
+  textureStore(arg_0, vec3<u32>(1u), vec4<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/f8dead.wgsl b/test/tint/builtins/gen/literal/textureStore/f8dead.wgsl
index 431978d..5ed24d4 100644
--- a/test/tint/builtins/gen/literal/textureStore/f8dead.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/f8dead.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureStore(texture: texture_storage_3d<rgba8uint, write>, coords: vec3<i32>, value: vec4<u32>)
 fn textureStore_f8dead() {
-  textureStore(arg_0, vec3<i32>(), vec4<u32>());
+  textureStore(arg_0, vec3<i32>(1i), vec4<u32>(1u));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/f8dead.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/f8dead.wgsl.expected.dxc.hlsl
index 660c7b4..3e79f4c 100644
--- a/test/tint/builtins/gen/literal/textureStore/f8dead.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/f8dead.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture3D<uint4> arg_0 : register(u0, space1);
 
 void textureStore_f8dead() {
-  arg_0[(0).xxx] = (0u).xxxx;
+  arg_0[(1).xxx] = (1u).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/f8dead.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/f8dead.wgsl.expected.fxc.hlsl
index 660c7b4..3e79f4c 100644
--- a/test/tint/builtins/gen/literal/textureStore/f8dead.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/f8dead.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture3D<uint4> arg_0 : register(u0, space1);
 
 void textureStore_f8dead() {
-  arg_0[(0).xxx] = (0u).xxxx;
+  arg_0[(1).xxx] = (1u).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/f8dead.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/f8dead.wgsl.expected.glsl
index a71f304..ef22abd 100644
--- a/test/tint/builtins/gen/literal/textureStore/f8dead.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/f8dead.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 layout(rgba8ui) uniform highp writeonly uimage3D arg_0;
 void textureStore_f8dead() {
-  imageStore(arg_0, ivec3(0), uvec4(0u));
+  imageStore(arg_0, ivec3(1), uvec4(1u));
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 
 layout(rgba8ui) uniform highp writeonly uimage3D arg_0;
 void textureStore_f8dead() {
-  imageStore(arg_0, ivec3(0), uvec4(0u));
+  imageStore(arg_0, ivec3(1), uvec4(1u));
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 layout(rgba8ui) uniform highp writeonly uimage3D arg_0;
 void textureStore_f8dead() {
-  imageStore(arg_0, ivec3(0), uvec4(0u));
+  imageStore(arg_0, ivec3(1), uvec4(1u));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureStore/f8dead.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/f8dead.wgsl.expected.msl
index 7e0be79..014cb5d 100644
--- a/test/tint/builtins/gen/literal/textureStore/f8dead.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/f8dead.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureStore_f8dead(texture3d<uint, access::write> tint_symbol_1) {
-  tint_symbol_1.write(uint4(0u), uint3(int3(0)));
+  tint_symbol_1.write(uint4(1u), uint3(int3(1)));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/f8dead.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/f8dead.wgsl.expected.spvasm
index 9ac9d9f..a38ca1c 100644
--- a/test/tint/builtins/gen/literal/textureStore/f8dead.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/f8dead.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 38
+; Bound: 40
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -39,36 +39,38 @@
          %13 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
-         %21 = OpConstantNull %v3int
+      %int_1 = OpConstant %int 1
+         %22 = OpConstantComposite %v3int %int_1 %int_1 %int_1
      %v4uint = OpTypeVector %uint 4
-         %23 = OpConstantNull %v4uint
-         %24 = OpTypeFunction %v4float
+     %uint_1 = OpConstant %uint 1
+         %25 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+         %26 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_f8dead = OpFunction %void None %13
          %16 = OpLabel
          %18 = OpLoad %11 %arg_0
-               OpImageWrite %18 %21 %23
+               OpImageWrite %18 %22 %25
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %24
-         %26 = OpLabel
-         %27 = OpFunctionCall %void %textureStore_f8dead
+%vertex_main_inner = OpFunction %v4float None %26
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %textureStore_f8dead
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %29 = OpLabel
-         %30 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %30
+         %31 = OpLabel
+         %32 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %32
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_f8dead
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureStore_f8dead
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_f8dead
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %textureStore_f8dead
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/f8dead.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/f8dead.wgsl.expected.wgsl
index 450fd25..e2d9e60 100644
--- a/test/tint/builtins/gen/literal/textureStore/f8dead.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/f8dead.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rgba8uint, write>;
 
 fn textureStore_f8dead() {
-  textureStore(arg_0, vec3<i32>(), vec4<u32>());
+  textureStore(arg_0, vec3<i32>(1i), vec4<u32>(1u));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/f9be83.wgsl b/test/tint/builtins/gen/literal/textureStore/f9be83.wgsl
index d8343c1..47a44c9 100644
--- a/test/tint/builtins/gen/literal/textureStore/f9be83.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/f9be83.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureStore(texture: texture_storage_2d_array<rg32sint, write>, coords: vec2<i32>, array_index: i32, value: vec4<i32>)
 fn textureStore_f9be83() {
-  textureStore(arg_0, vec2<i32>(), 1i, vec4<i32>());
+  textureStore(arg_0, vec2<i32>(1i), 1i, vec4<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/f9be83.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/f9be83.wgsl.expected.dxc.hlsl
index a323f52..d4d5fce 100644
--- a/test/tint/builtins/gen/literal/textureStore/f9be83.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/f9be83.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 void textureStore_f9be83() {
-  arg_0[int3(0, 0, 1)] = (0).xxxx;
+  arg_0[int3((1).xx, 1)] = (1).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/f9be83.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/f9be83.wgsl.expected.fxc.hlsl
index a323f52..d4d5fce 100644
--- a/test/tint/builtins/gen/literal/textureStore/f9be83.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/f9be83.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 void textureStore_f9be83() {
-  arg_0[int3(0, 0, 1)] = (0).xxxx;
+  arg_0[int3((1).xx, 1)] = (1).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/f9be83.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/f9be83.wgsl.expected.msl
index 8eb8d23..445e9a9 100644
--- a/test/tint/builtins/gen/literal/textureStore/f9be83.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/f9be83.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureStore_f9be83(texture2d_array<int, access::write> tint_symbol_1) {
-  tint_symbol_1.write(int4(0), uint2(int2(0)), 1);
+  tint_symbol_1.write(int4(1), uint2(int2(1)), 1);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/f9be83.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/f9be83.wgsl.expected.spvasm
index 525247c..c43c393 100644
--- a/test/tint/builtins/gen/literal/textureStore/f9be83.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/f9be83.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 39
+; Bound: 42
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
@@ -39,38 +39,41 @@
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
       %v3int = OpTypeVector %int 3
-      %int_0 = OpConstant %int 0
+      %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %22 = OpConstantComposite %v3int %int_0 %int_0 %int_1
+         %22 = OpConstantComposite %v2int %int_1 %int_1
       %v4int = OpTypeVector %int 4
-         %24 = OpConstantNull %v4int
-         %25 = OpTypeFunction %v4float
+         %27 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+         %28 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_f9be83 = OpFunction %void None %13
          %16 = OpLabel
          %18 = OpLoad %11 %arg_0
-               OpImageWrite %18 %22 %24
+         %23 = OpCompositeExtract %int %22 0
+         %24 = OpCompositeExtract %int %22 1
+         %25 = OpCompositeConstruct %v3int %23 %24 %int_1
+               OpImageWrite %18 %25 %27
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %25
-         %27 = OpLabel
-         %28 = OpFunctionCall %void %textureStore_f9be83
+%vertex_main_inner = OpFunction %v4float None %28
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %textureStore_f9be83
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %30 = OpLabel
-         %31 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %31
+         %33 = OpLabel
+         %34 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %34
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureStore_f9be83
+         %37 = OpLabel
+         %38 = OpFunctionCall %void %textureStore_f9be83
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureStore_f9be83
+         %40 = OpLabel
+         %41 = OpFunctionCall %void %textureStore_f9be83
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/f9be83.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/f9be83.wgsl.expected.wgsl
index 56835dd..8752333 100644
--- a/test/tint/builtins/gen/literal/textureStore/f9be83.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/f9be83.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rg32sint, write>;
 
 fn textureStore_f9be83() {
-  textureStore(arg_0, vec2<i32>(), 1i, vec4<i32>());
+  textureStore(arg_0, vec2<i32>(1i), 1i, vec4<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/fb9a8f.wgsl b/test/tint/builtins/gen/literal/textureStore/fb9a8f.wgsl
index 37421d8..b26baa2 100644
--- a/test/tint/builtins/gen/literal/textureStore/fb9a8f.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/fb9a8f.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureStore(texture: texture_storage_1d<rgba32uint, write>, coords: i32, value: vec4<u32>)
 fn textureStore_fb9a8f() {
-  textureStore(arg_0, 1i, vec4<u32>());
+  textureStore(arg_0, 1i, vec4<u32>(1u));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/fb9a8f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/fb9a8f.wgsl.expected.dxc.hlsl
index 6af6c91..97e7a83 100644
--- a/test/tint/builtins/gen/literal/textureStore/fb9a8f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/fb9a8f.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture1D<uint4> arg_0 : register(u0, space1);
 
 void textureStore_fb9a8f() {
-  arg_0[1] = (0u).xxxx;
+  arg_0[1] = (1u).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/fb9a8f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/fb9a8f.wgsl.expected.fxc.hlsl
index 6af6c91..97e7a83 100644
--- a/test/tint/builtins/gen/literal/textureStore/fb9a8f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/fb9a8f.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture1D<uint4> arg_0 : register(u0, space1);
 
 void textureStore_fb9a8f() {
-  arg_0[1] = (0u).xxxx;
+  arg_0[1] = (1u).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/fb9a8f.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/fb9a8f.wgsl.expected.msl
index f2e593c..6f57faf 100644
--- a/test/tint/builtins/gen/literal/textureStore/fb9a8f.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/fb9a8f.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureStore_fb9a8f(texture1d<uint, access::write> tint_symbol_1) {
-  tint_symbol_1.write(uint4(0u), uint(1));
+  tint_symbol_1.write(uint4(1u), uint(1));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/fb9a8f.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/fb9a8f.wgsl.expected.spvasm
index 9a0f947..15c1562 100644
--- a/test/tint/builtins/gen/literal/textureStore/fb9a8f.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/fb9a8f.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 37
+; Bound: 38
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
@@ -41,34 +41,35 @@
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
      %v4uint = OpTypeVector %uint 4
-         %22 = OpConstantNull %v4uint
-         %23 = OpTypeFunction %v4float
+     %uint_1 = OpConstant %uint 1
+         %23 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+         %24 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_fb9a8f = OpFunction %void None %13
          %16 = OpLabel
          %18 = OpLoad %11 %arg_0
-               OpImageWrite %18 %int_1 %22
+               OpImageWrite %18 %int_1 %23
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %23
-         %25 = OpLabel
-         %26 = OpFunctionCall %void %textureStore_fb9a8f
+%vertex_main_inner = OpFunction %v4float None %24
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %textureStore_fb9a8f
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %28 = OpLabel
-         %29 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %29
+         %29 = OpLabel
+         %30 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %30
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_fb9a8f
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureStore_fb9a8f
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureStore_fb9a8f
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureStore_fb9a8f
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/fb9a8f.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/fb9a8f.wgsl.expected.wgsl
index 2e22223..43d1b31 100644
--- a/test/tint/builtins/gen/literal/textureStore/fb9a8f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/fb9a8f.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rgba32uint, write>;
 
 fn textureStore_fb9a8f() {
-  textureStore(arg_0, 1i, vec4<u32>());
+  textureStore(arg_0, 1i, vec4<u32>(1u));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/fbf53f.wgsl b/test/tint/builtins/gen/literal/textureStore/fbf53f.wgsl
index 5b66de8..dbb8a6b 100644
--- a/test/tint/builtins/gen/literal/textureStore/fbf53f.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/fbf53f.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureStore(texture: texture_storage_2d_array<rgba8sint, write>, coords: vec2<i32>, array_index: i32, value: vec4<i32>)
 fn textureStore_fbf53f() {
-  textureStore(arg_0, vec2<i32>(), 1i, vec4<i32>());
+  textureStore(arg_0, vec2<i32>(1i), 1i, vec4<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/fbf53f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/fbf53f.wgsl.expected.dxc.hlsl
index e274d9e..aa3530d 100644
--- a/test/tint/builtins/gen/literal/textureStore/fbf53f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/fbf53f.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 void textureStore_fbf53f() {
-  arg_0[int3(0, 0, 1)] = (0).xxxx;
+  arg_0[int3((1).xx, 1)] = (1).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/fbf53f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/fbf53f.wgsl.expected.fxc.hlsl
index e274d9e..aa3530d 100644
--- a/test/tint/builtins/gen/literal/textureStore/fbf53f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/fbf53f.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 void textureStore_fbf53f() {
-  arg_0[int3(0, 0, 1)] = (0).xxxx;
+  arg_0[int3((1).xx, 1)] = (1).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/fbf53f.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/fbf53f.wgsl.expected.glsl
index de6cafa..c78030e 100644
--- a/test/tint/builtins/gen/literal/textureStore/fbf53f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/fbf53f.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 layout(rgba8i) uniform highp writeonly iimage2DArray arg_0;
 void textureStore_fbf53f() {
-  imageStore(arg_0, ivec3(0, 0, 1), ivec4(0));
+  imageStore(arg_0, ivec3(ivec2(1), 1), ivec4(1));
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 
 layout(rgba8i) uniform highp writeonly iimage2DArray arg_0;
 void textureStore_fbf53f() {
-  imageStore(arg_0, ivec3(0, 0, 1), ivec4(0));
+  imageStore(arg_0, ivec3(ivec2(1), 1), ivec4(1));
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 layout(rgba8i) uniform highp writeonly iimage2DArray arg_0;
 void textureStore_fbf53f() {
-  imageStore(arg_0, ivec3(0, 0, 1), ivec4(0));
+  imageStore(arg_0, ivec3(ivec2(1), 1), ivec4(1));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureStore/fbf53f.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/fbf53f.wgsl.expected.msl
index 4d94d4f..287601b 100644
--- a/test/tint/builtins/gen/literal/textureStore/fbf53f.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/fbf53f.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureStore_fbf53f(texture2d_array<int, access::write> tint_symbol_1) {
-  tint_symbol_1.write(int4(0), uint2(int2(0)), 1);
+  tint_symbol_1.write(int4(1), uint2(int2(1)), 1);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/fbf53f.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/fbf53f.wgsl.expected.spvasm
index a037be9..d556e7c 100644
--- a/test/tint/builtins/gen/literal/textureStore/fbf53f.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/fbf53f.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 39
+; Bound: 42
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -38,38 +38,41 @@
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
       %v3int = OpTypeVector %int 3
-      %int_0 = OpConstant %int 0
+      %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
-         %22 = OpConstantComposite %v3int %int_0 %int_0 %int_1
+         %22 = OpConstantComposite %v2int %int_1 %int_1
       %v4int = OpTypeVector %int 4
-         %24 = OpConstantNull %v4int
-         %25 = OpTypeFunction %v4float
+         %27 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+         %28 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_fbf53f = OpFunction %void None %13
          %16 = OpLabel
          %18 = OpLoad %11 %arg_0
-               OpImageWrite %18 %22 %24
+         %23 = OpCompositeExtract %int %22 0
+         %24 = OpCompositeExtract %int %22 1
+         %25 = OpCompositeConstruct %v3int %23 %24 %int_1
+               OpImageWrite %18 %25 %27
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %25
-         %27 = OpLabel
-         %28 = OpFunctionCall %void %textureStore_fbf53f
+%vertex_main_inner = OpFunction %v4float None %28
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %textureStore_fbf53f
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %30 = OpLabel
-         %31 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %31
+         %33 = OpLabel
+         %34 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %34
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureStore_fbf53f
+         %37 = OpLabel
+         %38 = OpFunctionCall %void %textureStore_fbf53f
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureStore_fbf53f
+         %40 = OpLabel
+         %41 = OpFunctionCall %void %textureStore_fbf53f
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/fbf53f.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/fbf53f.wgsl.expected.wgsl
index 888978b..397e733 100644
--- a/test/tint/builtins/gen/literal/textureStore/fbf53f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/fbf53f.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba8sint, write>;
 
 fn textureStore_fbf53f() {
-  textureStore(arg_0, vec2<i32>(), 1i, vec4<i32>());
+  textureStore(arg_0, vec2<i32>(1i), 1i, vec4<i32>(1i));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/fcbe66.wgsl b/test/tint/builtins/gen/literal/textureStore/fcbe66.wgsl
index 323cd36..f6107e8 100644
--- a/test/tint/builtins/gen/literal/textureStore/fcbe66.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/fcbe66.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureStore(texture: texture_storage_3d<rg32float, write>, coords: vec3<u32>, value: vec4<f32>)
 fn textureStore_fcbe66() {
-  textureStore(arg_0, vec3<u32>(), vec4<f32>());
+  textureStore(arg_0, vec3<u32>(1u), vec4<f32>(1.f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/fcbe66.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/fcbe66.wgsl.expected.dxc.hlsl
index b1b554d..ed74902 100644
--- a/test/tint/builtins/gen/literal/textureStore/fcbe66.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/fcbe66.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture3D<float4> arg_0 : register(u0, space1);
 
 void textureStore_fcbe66() {
-  arg_0[(0u).xxx] = (0.0f).xxxx;
+  arg_0[(1u).xxx] = (1.0f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/fcbe66.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/fcbe66.wgsl.expected.fxc.hlsl
index b1b554d..ed74902 100644
--- a/test/tint/builtins/gen/literal/textureStore/fcbe66.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/fcbe66.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture3D<float4> arg_0 : register(u0, space1);
 
 void textureStore_fcbe66() {
-  arg_0[(0u).xxx] = (0.0f).xxxx;
+  arg_0[(1u).xxx] = (1.0f).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/fcbe66.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/fcbe66.wgsl.expected.msl
index c2349be..1a089ef 100644
--- a/test/tint/builtins/gen/literal/textureStore/fcbe66.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/fcbe66.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureStore_fcbe66(texture3d<float, access::write> tint_symbol_1) {
-  tint_symbol_1.write(float4(0.0f), uint3(uint3(0u)));
+  tint_symbol_1.write(float4(1.0f), uint3(uint3(1u)));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/fcbe66.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/fcbe66.wgsl.expected.spvasm
index 6617ea5..8b882f6 100644
--- a/test/tint/builtins/gen/literal/textureStore/fcbe66.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/fcbe66.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 35
+; Bound: 37
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
@@ -39,34 +39,36 @@
          %12 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
-         %20 = OpConstantNull %v3uint
-         %21 = OpTypeFunction %v4float
+     %uint_1 = OpConstant %uint 1
+         %21 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
     %float_1 = OpConstant %float 1
+         %23 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %24 = OpTypeFunction %v4float
 %textureStore_fcbe66 = OpFunction %void None %12
          %15 = OpLabel
          %17 = OpLoad %11 %arg_0
-               OpImageWrite %17 %20 %5
+               OpImageWrite %17 %21 %23
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %21
-         %23 = OpLabel
-         %24 = OpFunctionCall %void %textureStore_fcbe66
+%vertex_main_inner = OpFunction %v4float None %24
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %textureStore_fcbe66
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %26 = OpLabel
-         %27 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %27
+         %29 = OpLabel
+         %30 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %30
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %textureStore_fcbe66
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %textureStore_fcbe66
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureStore_fcbe66
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureStore_fcbe66
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/fcbe66.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/fcbe66.wgsl.expected.wgsl
index 2b58eeb..2908104 100644
--- a/test/tint/builtins/gen/literal/textureStore/fcbe66.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/fcbe66.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rg32float, write>;
 
 fn textureStore_fcbe66() {
-  textureStore(arg_0, vec3<u32>(), vec4<f32>());
+  textureStore(arg_0, vec3<u32>(1u), vec4<f32>(1.0f));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/fd350c.wgsl b/test/tint/builtins/gen/literal/textureStore/fd350c.wgsl
index abcaea1..382f7f3 100644
--- a/test/tint/builtins/gen/literal/textureStore/fd350c.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/fd350c.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureStore(texture: texture_storage_2d_array<rgba16uint, write>, coords: vec2<i32>, array_index: u32, value: vec4<u32>)
 fn textureStore_fd350c() {
-  textureStore(arg_0, vec2<i32>(), 1u, vec4<u32>());
+  textureStore(arg_0, vec2<i32>(1i), 1u, vec4<u32>(1u));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/literal/textureStore/fd350c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/fd350c.wgsl.expected.dxc.hlsl
index 30f1481..29317df 100644
--- a/test/tint/builtins/gen/literal/textureStore/fd350c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/fd350c.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 void textureStore_fd350c() {
-  arg_0[int3(0, 0, int(1u))] = (0u).xxxx;
+  arg_0[int3((1).xx, int(1u))] = (1u).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/fd350c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/fd350c.wgsl.expected.fxc.hlsl
index 30f1481..29317df 100644
--- a/test/tint/builtins/gen/literal/textureStore/fd350c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/fd350c.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 void textureStore_fd350c() {
-  arg_0[int3(0, 0, int(1u))] = (0u).xxxx;
+  arg_0[int3((1).xx, int(1u))] = (1u).xxxx;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/fd350c.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureStore/fd350c.wgsl.expected.glsl
index 1996d04..0ef5171 100644
--- a/test/tint/builtins/gen/literal/textureStore/fd350c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureStore/fd350c.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 layout(rgba16ui) uniform highp writeonly uimage2DArray arg_0;
 void textureStore_fd350c() {
-  imageStore(arg_0, ivec3(0, 0, int(1u)), uvec4(0u));
+  imageStore(arg_0, ivec3(ivec2(1), int(1u)), uvec4(1u));
 }
 
 vec4 vertex_main() {
@@ -23,7 +23,7 @@
 
 layout(rgba16ui) uniform highp writeonly uimage2DArray arg_0;
 void textureStore_fd350c() {
-  imageStore(arg_0, ivec3(0, 0, int(1u)), uvec4(0u));
+  imageStore(arg_0, ivec3(ivec2(1), int(1u)), uvec4(1u));
 }
 
 void fragment_main() {
@@ -38,7 +38,7 @@
 
 layout(rgba16ui) uniform highp writeonly uimage2DArray arg_0;
 void textureStore_fd350c() {
-  imageStore(arg_0, ivec3(0, 0, int(1u)), uvec4(0u));
+  imageStore(arg_0, ivec3(ivec2(1), int(1u)), uvec4(1u));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/literal/textureStore/fd350c.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureStore/fd350c.wgsl.expected.msl
index f77d524..9cb484c 100644
--- a/test/tint/builtins/gen/literal/textureStore/fd350c.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureStore/fd350c.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureStore_fd350c(texture2d_array<uint, access::write> tint_symbol_1) {
-  tint_symbol_1.write(uint4(0u), uint2(int2(0)), 1u);
+  tint_symbol_1.write(uint4(1u), uint2(int2(1)), 1u);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/textureStore/fd350c.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureStore/fd350c.wgsl.expected.spvasm
index 9c156ab..8c0dc58 100644
--- a/test/tint/builtins/gen/literal/textureStore/fd350c.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureStore/fd350c.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 41
+; Bound: 45
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -39,39 +39,43 @@
          %13 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
-      %int_0 = OpConstant %int 0
+      %v2int = OpTypeVector %int 2
+      %int_1 = OpConstant %int 1
+         %23 = OpConstantComposite %v2int %int_1 %int_1
      %uint_1 = OpConstant %uint 1
      %v4uint = OpTypeVector %uint 4
-         %26 = OpConstantNull %v4uint
-         %27 = OpTypeFunction %v4float
+         %30 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+         %31 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_fd350c = OpFunction %void None %13
          %16 = OpLabel
          %18 = OpLoad %11 %arg_0
-         %22 = OpBitcast %int %uint_1
-         %24 = OpCompositeConstruct %v3int %int_0 %int_0 %22
-               OpImageWrite %18 %24 %26
+         %24 = OpCompositeExtract %int %23 0
+         %25 = OpCompositeExtract %int %23 1
+         %26 = OpBitcast %int %uint_1
+         %28 = OpCompositeConstruct %v3int %24 %25 %26
+               OpImageWrite %18 %28 %30
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %27
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %textureStore_fd350c
+%vertex_main_inner = OpFunction %v4float None %31
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureStore_fd350c
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %32 = OpLabel
-         %33 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %33
+         %36 = OpLabel
+         %37 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %37
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_fd350c
+         %40 = OpLabel
+         %41 = OpFunctionCall %void %textureStore_fd350c
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_fd350c
+         %43 = OpLabel
+         %44 = OpFunctionCall %void %textureStore_fd350c
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureStore/fd350c.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureStore/fd350c.wgsl.expected.wgsl
index a880810..cade5ee 100644
--- a/test/tint/builtins/gen/literal/textureStore/fd350c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureStore/fd350c.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba16uint, write>;
 
 fn textureStore_fd350c() {
-  textureStore(arg_0, vec2<i32>(), 1u, vec4<u32>());
+  textureStore(arg_0, vec2<i32>(1i), 1u, vec4<u32>(1u));
 }
 
 @vertex
diff --git a/test/tint/builtins/gen/var/cross/041cb0.wgsl b/test/tint/builtins/gen/var/cross/041cb0.wgsl
index ef35ef8..d9899e3 100644
--- a/test/tint/builtins/gen/var/cross/041cb0.wgsl
+++ b/test/tint/builtins/gen/var/cross/041cb0.wgsl
@@ -23,8 +23,8 @@
 
 // fn cross(vec3<f32>, vec3<f32>) -> vec3<f32>
 fn cross_041cb0() {
-  var arg_0 = vec3<f32>();
-  var arg_1 = vec3<f32>();
+  var arg_0 = vec3<f32>(1.f);
+  var arg_1 = vec3<f32>(1.f);
   var res: vec3<f32> = cross(arg_0, arg_1);
 }
 
diff --git a/test/tint/builtins/gen/var/cross/041cb0.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/cross/041cb0.wgsl.expected.dxc.hlsl
index 272645f..01264e7 100644
--- a/test/tint/builtins/gen/var/cross/041cb0.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/cross/041cb0.wgsl.expected.dxc.hlsl
@@ -1,6 +1,6 @@
 void cross_041cb0() {
-  float3 arg_0 = (0.0f).xxx;
-  float3 arg_1 = (0.0f).xxx;
+  float3 arg_0 = (1.0f).xxx;
+  float3 arg_1 = (1.0f).xxx;
   float3 res = cross(arg_0, arg_1);
 }
 
diff --git a/test/tint/builtins/gen/var/cross/041cb0.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/cross/041cb0.wgsl.expected.fxc.hlsl
index 272645f..01264e7 100644
--- a/test/tint/builtins/gen/var/cross/041cb0.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/cross/041cb0.wgsl.expected.fxc.hlsl
@@ -1,6 +1,6 @@
 void cross_041cb0() {
-  float3 arg_0 = (0.0f).xxx;
-  float3 arg_1 = (0.0f).xxx;
+  float3 arg_0 = (1.0f).xxx;
+  float3 arg_1 = (1.0f).xxx;
   float3 res = cross(arg_0, arg_1);
 }
 
diff --git a/test/tint/builtins/gen/var/cross/041cb0.wgsl.expected.glsl b/test/tint/builtins/gen/var/cross/041cb0.wgsl.expected.glsl
index 87cb9a3..f31f8e1 100644
--- a/test/tint/builtins/gen/var/cross/041cb0.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/cross/041cb0.wgsl.expected.glsl
@@ -1,8 +1,8 @@
 #version 310 es
 
 void cross_041cb0() {
-  vec3 arg_0 = vec3(0.0f);
-  vec3 arg_1 = vec3(0.0f);
+  vec3 arg_0 = vec3(1.0f);
+  vec3 arg_1 = vec3(1.0f);
   vec3 res = cross(arg_0, arg_1);
 }
 
@@ -23,8 +23,8 @@
 precision mediump float;
 
 void cross_041cb0() {
-  vec3 arg_0 = vec3(0.0f);
-  vec3 arg_1 = vec3(0.0f);
+  vec3 arg_0 = vec3(1.0f);
+  vec3 arg_1 = vec3(1.0f);
   vec3 res = cross(arg_0, arg_1);
 }
 
@@ -39,8 +39,8 @@
 #version 310 es
 
 void cross_041cb0() {
-  vec3 arg_0 = vec3(0.0f);
-  vec3 arg_1 = vec3(0.0f);
+  vec3 arg_0 = vec3(1.0f);
+  vec3 arg_1 = vec3(1.0f);
   vec3 res = cross(arg_0, arg_1);
 }
 
diff --git a/test/tint/builtins/gen/var/cross/041cb0.wgsl.expected.msl b/test/tint/builtins/gen/var/cross/041cb0.wgsl.expected.msl
index 4966939..657d9cb 100644
--- a/test/tint/builtins/gen/var/cross/041cb0.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/cross/041cb0.wgsl.expected.msl
@@ -2,8 +2,8 @@
 
 using namespace metal;
 void cross_041cb0() {
-  float3 arg_0 = float3(0.0f);
-  float3 arg_1 = float3(0.0f);
+  float3 arg_0 = float3(1.0f);
+  float3 arg_1 = float3(1.0f);
   float3 res = cross(arg_0, arg_1);
 }
 
diff --git a/test/tint/builtins/gen/var/cross/041cb0.wgsl.expected.spvasm b/test/tint/builtins/gen/var/cross/041cb0.wgsl.expected.spvasm
index f7a1245..3fe3bc6 100644
--- a/test/tint/builtins/gen/var/cross/041cb0.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/cross/041cb0.wgsl.expected.spvasm
@@ -1,10 +1,10 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 37
+; Bound: 38
 ; Schema: 0
                OpCapability Shader
-         %19 = OpExtInstImport "GLSL.std.450"
+         %21 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
                OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
@@ -34,42 +34,43 @@
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
     %v3float = OpTypeVector %float 3
-         %14 = OpConstantNull %v3float
-%_ptr_Function_v3float = OpTypePointer Function %v3float
-         %23 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
+         %15 = OpConstantComposite %v3float %float_1 %float_1 %float_1
+%_ptr_Function_v3float = OpTypePointer Function %v3float
+         %18 = OpConstantNull %v3float
+         %25 = OpTypeFunction %v4float
 %cross_041cb0 = OpFunction %void None %9
          %12 = OpLabel
-      %arg_0 = OpVariable %_ptr_Function_v3float Function %14
-      %arg_1 = OpVariable %_ptr_Function_v3float Function %14
-        %res = OpVariable %_ptr_Function_v3float Function %14
-               OpStore %arg_0 %14
-               OpStore %arg_1 %14
-         %20 = OpLoad %v3float %arg_0
-         %21 = OpLoad %v3float %arg_1
-         %18 = OpExtInst %v3float %19 Cross %20 %21
-               OpStore %res %18
+      %arg_0 = OpVariable %_ptr_Function_v3float Function %18
+      %arg_1 = OpVariable %_ptr_Function_v3float Function %18
+        %res = OpVariable %_ptr_Function_v3float Function %18
+               OpStore %arg_0 %15
+               OpStore %arg_1 %15
+         %22 = OpLoad %v3float %arg_0
+         %23 = OpLoad %v3float %arg_1
+         %20 = OpExtInst %v3float %21 Cross %22 %23
+               OpStore %res %20
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %23
-         %25 = OpLabel
-         %26 = OpFunctionCall %void %cross_041cb0
+%vertex_main_inner = OpFunction %v4float None %25
+         %27 = OpLabel
+         %28 = OpFunctionCall %void %cross_041cb0
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
-         %28 = OpLabel
-         %29 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %29
+         %30 = OpLabel
+         %31 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %31
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %cross_041cb0
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %cross_041cb0
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %cross_041cb0
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %cross_041cb0
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/cross/041cb0.wgsl.expected.wgsl b/test/tint/builtins/gen/var/cross/041cb0.wgsl.expected.wgsl
index 019e81b..fa2f691 100644
--- a/test/tint/builtins/gen/var/cross/041cb0.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/cross/041cb0.wgsl.expected.wgsl
@@ -1,6 +1,6 @@
 fn cross_041cb0() {
-  var arg_0 = vec3<f32>();
-  var arg_1 = vec3<f32>();
+  var arg_0 = vec3<f32>(1.0f);
+  var arg_1 = vec3<f32>(1.0f);
   var res : vec3<f32> = cross(arg_0, arg_1);
 }
 
diff --git a/test/tint/builtins/gen/var/cross/9857cb.wgsl b/test/tint/builtins/gen/var/cross/9857cb.wgsl
index 39258c8..cc7409f 100644
--- a/test/tint/builtins/gen/var/cross/9857cb.wgsl
+++ b/test/tint/builtins/gen/var/cross/9857cb.wgsl
@@ -25,8 +25,8 @@
 
 // fn cross(vec3<f16>, vec3<f16>) -> vec3<f16>
 fn cross_9857cb() {
-  var arg_0 = vec3<f16>();
-  var arg_1 = vec3<f16>();
+  var arg_0 = vec3<f16>(f16());
+  var arg_1 = vec3<f16>(f16());
   var res: vec3<f16> = cross(arg_0, arg_1);
 }
 
diff --git a/test/tint/builtins/gen/var/cross/9857cb.wgsl.expected.wgsl b/test/tint/builtins/gen/var/cross/9857cb.wgsl.expected.wgsl
index c249f4f..f1706c4 100644
--- a/test/tint/builtins/gen/var/cross/9857cb.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/cross/9857cb.wgsl.expected.wgsl
@@ -1,8 +1,8 @@
 enable f16;
 
 fn cross_9857cb() {
-  var arg_0 = vec3<f16>();
-  var arg_1 = vec3<f16>();
+  var arg_0 = vec3<f16>(f16());
+  var arg_1 = vec3<f16>(f16());
   var res : vec3<f16> = cross(arg_0, arg_1);
 }
 
diff --git a/test/tint/builtins/gen/var/pack2x16float/0e97b3.wgsl b/test/tint/builtins/gen/var/pack2x16float/0e97b3.wgsl
index 752a7bd..dbea6a0 100644
--- a/test/tint/builtins/gen/var/pack2x16float/0e97b3.wgsl
+++ b/test/tint/builtins/gen/var/pack2x16float/0e97b3.wgsl
@@ -23,7 +23,7 @@
 
 // fn pack2x16float(vec2<f32>) -> u32
 fn pack2x16float_0e97b3() {
-  var arg_0 = vec2<f32>();
+  var arg_0 = vec2<f32>(1.f);
   var res: u32 = pack2x16float(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/pack2x16float/0e97b3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/pack2x16float/0e97b3.wgsl.expected.dxc.hlsl
index 649e6f1..101f1f2 100644
--- a/test/tint/builtins/gen/var/pack2x16float/0e97b3.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/pack2x16float/0e97b3.wgsl.expected.dxc.hlsl
@@ -4,7 +4,7 @@
 }
 
 void pack2x16float_0e97b3() {
-  float2 arg_0 = (0.0f).xx;
+  float2 arg_0 = (1.0f).xx;
   uint res = tint_pack2x16float(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/pack2x16float/0e97b3.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/pack2x16float/0e97b3.wgsl.expected.fxc.hlsl
index 649e6f1..101f1f2 100644
--- a/test/tint/builtins/gen/var/pack2x16float/0e97b3.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/pack2x16float/0e97b3.wgsl.expected.fxc.hlsl
@@ -4,7 +4,7 @@
 }
 
 void pack2x16float_0e97b3() {
-  float2 arg_0 = (0.0f).xx;
+  float2 arg_0 = (1.0f).xx;
   uint res = tint_pack2x16float(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/pack2x16float/0e97b3.wgsl.expected.glsl b/test/tint/builtins/gen/var/pack2x16float/0e97b3.wgsl.expected.glsl
index ccefb26..e41a07f 100644
--- a/test/tint/builtins/gen/var/pack2x16float/0e97b3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/pack2x16float/0e97b3.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void pack2x16float_0e97b3() {
-  vec2 arg_0 = vec2(0.0f);
+  vec2 arg_0 = vec2(1.0f);
   uint res = packHalf2x16(arg_0);
 }
 
@@ -22,7 +22,7 @@
 precision mediump float;
 
 void pack2x16float_0e97b3() {
-  vec2 arg_0 = vec2(0.0f);
+  vec2 arg_0 = vec2(1.0f);
   uint res = packHalf2x16(arg_0);
 }
 
@@ -37,7 +37,7 @@
 #version 310 es
 
 void pack2x16float_0e97b3() {
-  vec2 arg_0 = vec2(0.0f);
+  vec2 arg_0 = vec2(1.0f);
   uint res = packHalf2x16(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/pack2x16float/0e97b3.wgsl.expected.msl b/test/tint/builtins/gen/var/pack2x16float/0e97b3.wgsl.expected.msl
index d72649a..9d3f17d 100644
--- a/test/tint/builtins/gen/var/pack2x16float/0e97b3.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/pack2x16float/0e97b3.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void pack2x16float_0e97b3() {
-  float2 arg_0 = float2(0.0f);
+  float2 arg_0 = float2(1.0f);
   uint res = as_type<uint>(half2(arg_0));
 }
 
diff --git a/test/tint/builtins/gen/var/pack2x16float/0e97b3.wgsl.expected.spvasm b/test/tint/builtins/gen/var/pack2x16float/0e97b3.wgsl.expected.spvasm
index 7855476..d384bb2 100644
--- a/test/tint/builtins/gen/var/pack2x16float/0e97b3.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/pack2x16float/0e97b3.wgsl.expected.spvasm
@@ -1,10 +1,10 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 38
+; Bound: 39
 ; Schema: 0
                OpCapability Shader
-         %19 = OpExtInstImport "GLSL.std.450"
+         %21 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
                OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
@@ -33,42 +33,43 @@
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
-         %14 = OpConstantNull %v2float
+    %float_1 = OpConstant %float 1
+         %15 = OpConstantComposite %v2float %float_1 %float_1
 %_ptr_Function_v2float = OpTypePointer Function %v2float
+         %18 = OpConstantNull %v2float
        %uint = OpTypeInt 32 0
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %23 = OpConstantNull %uint
-         %24 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %25 = OpConstantNull %uint
+         %26 = OpTypeFunction %v4float
 %pack2x16float_0e97b3 = OpFunction %void None %9
          %12 = OpLabel
-      %arg_0 = OpVariable %_ptr_Function_v2float Function %14
-        %res = OpVariable %_ptr_Function_uint Function %23
-               OpStore %arg_0 %14
-         %20 = OpLoad %v2float %arg_0
-         %17 = OpExtInst %uint %19 PackHalf2x16 %20
-               OpStore %res %17
+      %arg_0 = OpVariable %_ptr_Function_v2float Function %18
+        %res = OpVariable %_ptr_Function_uint Function %25
+               OpStore %arg_0 %15
+         %22 = OpLoad %v2float %arg_0
+         %19 = OpExtInst %uint %21 PackHalf2x16 %22
+               OpStore %res %19
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %24
-         %26 = OpLabel
-         %27 = OpFunctionCall %void %pack2x16float_0e97b3
+%vertex_main_inner = OpFunction %v4float None %26
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %pack2x16float_0e97b3
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
-         %29 = OpLabel
-         %30 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %30
+         %31 = OpLabel
+         %32 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %32
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %pack2x16float_0e97b3
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %pack2x16float_0e97b3
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %pack2x16float_0e97b3
+         %37 = OpLabel
+         %38 = OpFunctionCall %void %pack2x16float_0e97b3
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/pack2x16float/0e97b3.wgsl.expected.wgsl b/test/tint/builtins/gen/var/pack2x16float/0e97b3.wgsl.expected.wgsl
index 27bed46..a0049c0 100644
--- a/test/tint/builtins/gen/var/pack2x16float/0e97b3.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/pack2x16float/0e97b3.wgsl.expected.wgsl
@@ -1,5 +1,5 @@
 fn pack2x16float_0e97b3() {
-  var arg_0 = vec2<f32>();
+  var arg_0 = vec2<f32>(1.0f);
   var res : u32 = pack2x16float(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/pack2x16snorm/6c169b.wgsl b/test/tint/builtins/gen/var/pack2x16snorm/6c169b.wgsl
index d5f475e..e0ca978 100644
--- a/test/tint/builtins/gen/var/pack2x16snorm/6c169b.wgsl
+++ b/test/tint/builtins/gen/var/pack2x16snorm/6c169b.wgsl
@@ -23,7 +23,7 @@
 
 // fn pack2x16snorm(vec2<f32>) -> u32
 fn pack2x16snorm_6c169b() {
-  var arg_0 = vec2<f32>();
+  var arg_0 = vec2<f32>(1.f);
   var res: u32 = pack2x16snorm(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/pack2x16snorm/6c169b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/pack2x16snorm/6c169b.wgsl.expected.dxc.hlsl
index c9a6e51..ef98643 100644
--- a/test/tint/builtins/gen/var/pack2x16snorm/6c169b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/pack2x16snorm/6c169b.wgsl.expected.dxc.hlsl
@@ -4,7 +4,7 @@
 }
 
 void pack2x16snorm_6c169b() {
-  float2 arg_0 = (0.0f).xx;
+  float2 arg_0 = (1.0f).xx;
   uint res = tint_pack2x16snorm(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/pack2x16snorm/6c169b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/pack2x16snorm/6c169b.wgsl.expected.fxc.hlsl
index c9a6e51..ef98643 100644
--- a/test/tint/builtins/gen/var/pack2x16snorm/6c169b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/pack2x16snorm/6c169b.wgsl.expected.fxc.hlsl
@@ -4,7 +4,7 @@
 }
 
 void pack2x16snorm_6c169b() {
-  float2 arg_0 = (0.0f).xx;
+  float2 arg_0 = (1.0f).xx;
   uint res = tint_pack2x16snorm(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/pack2x16snorm/6c169b.wgsl.expected.glsl b/test/tint/builtins/gen/var/pack2x16snorm/6c169b.wgsl.expected.glsl
index 06e70da..671e3e9 100644
--- a/test/tint/builtins/gen/var/pack2x16snorm/6c169b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/pack2x16snorm/6c169b.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void pack2x16snorm_6c169b() {
-  vec2 arg_0 = vec2(0.0f);
+  vec2 arg_0 = vec2(1.0f);
   uint res = packSnorm2x16(arg_0);
 }
 
@@ -22,7 +22,7 @@
 precision mediump float;
 
 void pack2x16snorm_6c169b() {
-  vec2 arg_0 = vec2(0.0f);
+  vec2 arg_0 = vec2(1.0f);
   uint res = packSnorm2x16(arg_0);
 }
 
@@ -37,7 +37,7 @@
 #version 310 es
 
 void pack2x16snorm_6c169b() {
-  vec2 arg_0 = vec2(0.0f);
+  vec2 arg_0 = vec2(1.0f);
   uint res = packSnorm2x16(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/pack2x16snorm/6c169b.wgsl.expected.msl b/test/tint/builtins/gen/var/pack2x16snorm/6c169b.wgsl.expected.msl
index 64c72cf..cca6392 100644
--- a/test/tint/builtins/gen/var/pack2x16snorm/6c169b.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/pack2x16snorm/6c169b.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void pack2x16snorm_6c169b() {
-  float2 arg_0 = float2(0.0f);
+  float2 arg_0 = float2(1.0f);
   uint res = pack_float_to_snorm2x16(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/pack2x16snorm/6c169b.wgsl.expected.spvasm b/test/tint/builtins/gen/var/pack2x16snorm/6c169b.wgsl.expected.spvasm
index daad82d..bf9981b 100644
--- a/test/tint/builtins/gen/var/pack2x16snorm/6c169b.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/pack2x16snorm/6c169b.wgsl.expected.spvasm
@@ -1,10 +1,10 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 38
+; Bound: 39
 ; Schema: 0
                OpCapability Shader
-         %19 = OpExtInstImport "GLSL.std.450"
+         %21 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
                OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
@@ -33,42 +33,43 @@
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
-         %14 = OpConstantNull %v2float
+    %float_1 = OpConstant %float 1
+         %15 = OpConstantComposite %v2float %float_1 %float_1
 %_ptr_Function_v2float = OpTypePointer Function %v2float
+         %18 = OpConstantNull %v2float
        %uint = OpTypeInt 32 0
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %23 = OpConstantNull %uint
-         %24 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %25 = OpConstantNull %uint
+         %26 = OpTypeFunction %v4float
 %pack2x16snorm_6c169b = OpFunction %void None %9
          %12 = OpLabel
-      %arg_0 = OpVariable %_ptr_Function_v2float Function %14
-        %res = OpVariable %_ptr_Function_uint Function %23
-               OpStore %arg_0 %14
-         %20 = OpLoad %v2float %arg_0
-         %17 = OpExtInst %uint %19 PackSnorm2x16 %20
-               OpStore %res %17
+      %arg_0 = OpVariable %_ptr_Function_v2float Function %18
+        %res = OpVariable %_ptr_Function_uint Function %25
+               OpStore %arg_0 %15
+         %22 = OpLoad %v2float %arg_0
+         %19 = OpExtInst %uint %21 PackSnorm2x16 %22
+               OpStore %res %19
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %24
-         %26 = OpLabel
-         %27 = OpFunctionCall %void %pack2x16snorm_6c169b
+%vertex_main_inner = OpFunction %v4float None %26
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %pack2x16snorm_6c169b
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
-         %29 = OpLabel
-         %30 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %30
+         %31 = OpLabel
+         %32 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %32
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %pack2x16snorm_6c169b
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %pack2x16snorm_6c169b
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %pack2x16snorm_6c169b
+         %37 = OpLabel
+         %38 = OpFunctionCall %void %pack2x16snorm_6c169b
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/pack2x16snorm/6c169b.wgsl.expected.wgsl b/test/tint/builtins/gen/var/pack2x16snorm/6c169b.wgsl.expected.wgsl
index 406794b..ad7697a 100644
--- a/test/tint/builtins/gen/var/pack2x16snorm/6c169b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/pack2x16snorm/6c169b.wgsl.expected.wgsl
@@ -1,5 +1,5 @@
 fn pack2x16snorm_6c169b() {
-  var arg_0 = vec2<f32>();
+  var arg_0 = vec2<f32>(1.0f);
   var res : u32 = pack2x16snorm(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/pack2x16unorm/0f08e4.wgsl b/test/tint/builtins/gen/var/pack2x16unorm/0f08e4.wgsl
index 521e446..6be7de7 100644
--- a/test/tint/builtins/gen/var/pack2x16unorm/0f08e4.wgsl
+++ b/test/tint/builtins/gen/var/pack2x16unorm/0f08e4.wgsl
@@ -23,7 +23,7 @@
 
 // fn pack2x16unorm(vec2<f32>) -> u32
 fn pack2x16unorm_0f08e4() {
-  var arg_0 = vec2<f32>();
+  var arg_0 = vec2<f32>(1.f);
   var res: u32 = pack2x16unorm(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/pack2x16unorm/0f08e4.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/pack2x16unorm/0f08e4.wgsl.expected.dxc.hlsl
index 3f37f6a..fcb4bea 100644
--- a/test/tint/builtins/gen/var/pack2x16unorm/0f08e4.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/pack2x16unorm/0f08e4.wgsl.expected.dxc.hlsl
@@ -4,7 +4,7 @@
 }
 
 void pack2x16unorm_0f08e4() {
-  float2 arg_0 = (0.0f).xx;
+  float2 arg_0 = (1.0f).xx;
   uint res = tint_pack2x16unorm(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/pack2x16unorm/0f08e4.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/pack2x16unorm/0f08e4.wgsl.expected.fxc.hlsl
index 3f37f6a..fcb4bea 100644
--- a/test/tint/builtins/gen/var/pack2x16unorm/0f08e4.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/pack2x16unorm/0f08e4.wgsl.expected.fxc.hlsl
@@ -4,7 +4,7 @@
 }
 
 void pack2x16unorm_0f08e4() {
-  float2 arg_0 = (0.0f).xx;
+  float2 arg_0 = (1.0f).xx;
   uint res = tint_pack2x16unorm(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/pack2x16unorm/0f08e4.wgsl.expected.glsl b/test/tint/builtins/gen/var/pack2x16unorm/0f08e4.wgsl.expected.glsl
index 374bacf..b888043 100644
--- a/test/tint/builtins/gen/var/pack2x16unorm/0f08e4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/pack2x16unorm/0f08e4.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void pack2x16unorm_0f08e4() {
-  vec2 arg_0 = vec2(0.0f);
+  vec2 arg_0 = vec2(1.0f);
   uint res = packUnorm2x16(arg_0);
 }
 
@@ -22,7 +22,7 @@
 precision mediump float;
 
 void pack2x16unorm_0f08e4() {
-  vec2 arg_0 = vec2(0.0f);
+  vec2 arg_0 = vec2(1.0f);
   uint res = packUnorm2x16(arg_0);
 }
 
@@ -37,7 +37,7 @@
 #version 310 es
 
 void pack2x16unorm_0f08e4() {
-  vec2 arg_0 = vec2(0.0f);
+  vec2 arg_0 = vec2(1.0f);
   uint res = packUnorm2x16(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/pack2x16unorm/0f08e4.wgsl.expected.msl b/test/tint/builtins/gen/var/pack2x16unorm/0f08e4.wgsl.expected.msl
index 5433a6d..9e4aec4 100644
--- a/test/tint/builtins/gen/var/pack2x16unorm/0f08e4.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/pack2x16unorm/0f08e4.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void pack2x16unorm_0f08e4() {
-  float2 arg_0 = float2(0.0f);
+  float2 arg_0 = float2(1.0f);
   uint res = pack_float_to_unorm2x16(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/pack2x16unorm/0f08e4.wgsl.expected.spvasm b/test/tint/builtins/gen/var/pack2x16unorm/0f08e4.wgsl.expected.spvasm
index 6fd23d6..49aaa65 100644
--- a/test/tint/builtins/gen/var/pack2x16unorm/0f08e4.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/pack2x16unorm/0f08e4.wgsl.expected.spvasm
@@ -1,10 +1,10 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 38
+; Bound: 39
 ; Schema: 0
                OpCapability Shader
-         %19 = OpExtInstImport "GLSL.std.450"
+         %21 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
                OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
@@ -33,42 +33,43 @@
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
-         %14 = OpConstantNull %v2float
+    %float_1 = OpConstant %float 1
+         %15 = OpConstantComposite %v2float %float_1 %float_1
 %_ptr_Function_v2float = OpTypePointer Function %v2float
+         %18 = OpConstantNull %v2float
        %uint = OpTypeInt 32 0
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %23 = OpConstantNull %uint
-         %24 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %25 = OpConstantNull %uint
+         %26 = OpTypeFunction %v4float
 %pack2x16unorm_0f08e4 = OpFunction %void None %9
          %12 = OpLabel
-      %arg_0 = OpVariable %_ptr_Function_v2float Function %14
-        %res = OpVariable %_ptr_Function_uint Function %23
-               OpStore %arg_0 %14
-         %20 = OpLoad %v2float %arg_0
-         %17 = OpExtInst %uint %19 PackUnorm2x16 %20
-               OpStore %res %17
+      %arg_0 = OpVariable %_ptr_Function_v2float Function %18
+        %res = OpVariable %_ptr_Function_uint Function %25
+               OpStore %arg_0 %15
+         %22 = OpLoad %v2float %arg_0
+         %19 = OpExtInst %uint %21 PackUnorm2x16 %22
+               OpStore %res %19
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %24
-         %26 = OpLabel
-         %27 = OpFunctionCall %void %pack2x16unorm_0f08e4
+%vertex_main_inner = OpFunction %v4float None %26
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %pack2x16unorm_0f08e4
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
-         %29 = OpLabel
-         %30 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %30
+         %31 = OpLabel
+         %32 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %32
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %pack2x16unorm_0f08e4
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %pack2x16unorm_0f08e4
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %pack2x16unorm_0f08e4
+         %37 = OpLabel
+         %38 = OpFunctionCall %void %pack2x16unorm_0f08e4
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/pack2x16unorm/0f08e4.wgsl.expected.wgsl b/test/tint/builtins/gen/var/pack2x16unorm/0f08e4.wgsl.expected.wgsl
index db3a331..2b7ffb2 100644
--- a/test/tint/builtins/gen/var/pack2x16unorm/0f08e4.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/pack2x16unorm/0f08e4.wgsl.expected.wgsl
@@ -1,5 +1,5 @@
 fn pack2x16unorm_0f08e4() {
-  var arg_0 = vec2<f32>();
+  var arg_0 = vec2<f32>(1.0f);
   var res : u32 = pack2x16unorm(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/pack4x8snorm/4d22e7.wgsl b/test/tint/builtins/gen/var/pack4x8snorm/4d22e7.wgsl
index 378a21f..846ce98 100644
--- a/test/tint/builtins/gen/var/pack4x8snorm/4d22e7.wgsl
+++ b/test/tint/builtins/gen/var/pack4x8snorm/4d22e7.wgsl
@@ -23,7 +23,7 @@
 
 // fn pack4x8snorm(vec4<f32>) -> u32
 fn pack4x8snorm_4d22e7() {
-  var arg_0 = vec4<f32>();
+  var arg_0 = vec4<f32>(1.f);
   var res: u32 = pack4x8snorm(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/pack4x8snorm/4d22e7.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/pack4x8snorm/4d22e7.wgsl.expected.dxc.hlsl
index bdf414b..c972c3c 100644
--- a/test/tint/builtins/gen/var/pack4x8snorm/4d22e7.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/pack4x8snorm/4d22e7.wgsl.expected.dxc.hlsl
@@ -4,7 +4,7 @@
 }
 
 void pack4x8snorm_4d22e7() {
-  float4 arg_0 = (0.0f).xxxx;
+  float4 arg_0 = (1.0f).xxxx;
   uint res = tint_pack4x8snorm(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/pack4x8snorm/4d22e7.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/pack4x8snorm/4d22e7.wgsl.expected.fxc.hlsl
index bdf414b..c972c3c 100644
--- a/test/tint/builtins/gen/var/pack4x8snorm/4d22e7.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/pack4x8snorm/4d22e7.wgsl.expected.fxc.hlsl
@@ -4,7 +4,7 @@
 }
 
 void pack4x8snorm_4d22e7() {
-  float4 arg_0 = (0.0f).xxxx;
+  float4 arg_0 = (1.0f).xxxx;
   uint res = tint_pack4x8snorm(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/pack4x8snorm/4d22e7.wgsl.expected.glsl b/test/tint/builtins/gen/var/pack4x8snorm/4d22e7.wgsl.expected.glsl
index d7f6483..769ce4f 100644
--- a/test/tint/builtins/gen/var/pack4x8snorm/4d22e7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/pack4x8snorm/4d22e7.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void pack4x8snorm_4d22e7() {
-  vec4 arg_0 = vec4(0.0f);
+  vec4 arg_0 = vec4(1.0f);
   uint res = packSnorm4x8(arg_0);
 }
 
@@ -22,7 +22,7 @@
 precision mediump float;
 
 void pack4x8snorm_4d22e7() {
-  vec4 arg_0 = vec4(0.0f);
+  vec4 arg_0 = vec4(1.0f);
   uint res = packSnorm4x8(arg_0);
 }
 
@@ -37,7 +37,7 @@
 #version 310 es
 
 void pack4x8snorm_4d22e7() {
-  vec4 arg_0 = vec4(0.0f);
+  vec4 arg_0 = vec4(1.0f);
   uint res = packSnorm4x8(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/pack4x8snorm/4d22e7.wgsl.expected.msl b/test/tint/builtins/gen/var/pack4x8snorm/4d22e7.wgsl.expected.msl
index 5463f99..49f2d32 100644
--- a/test/tint/builtins/gen/var/pack4x8snorm/4d22e7.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/pack4x8snorm/4d22e7.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void pack4x8snorm_4d22e7() {
-  float4 arg_0 = float4(0.0f);
+  float4 arg_0 = float4(1.0f);
   uint res = pack_float_to_snorm4x8(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/pack4x8snorm/4d22e7.wgsl.expected.spvasm b/test/tint/builtins/gen/var/pack4x8snorm/4d22e7.wgsl.expected.spvasm
index 74247cd..64f0b03 100644
--- a/test/tint/builtins/gen/var/pack4x8snorm/4d22e7.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/pack4x8snorm/4d22e7.wgsl.expected.spvasm
@@ -1,10 +1,10 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 36
+; Bound: 37
 ; Schema: 0
                OpCapability Shader
-         %17 = OpExtInstImport "GLSL.std.450"
+         %19 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
                OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
@@ -32,41 +32,42 @@
 %vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
+    %float_1 = OpConstant %float 1
+         %14 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
        %uint = OpTypeInt 32 0
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %21 = OpConstantNull %uint
-         %22 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %23 = OpConstantNull %uint
+         %24 = OpTypeFunction %v4float
 %pack4x8snorm_4d22e7 = OpFunction %void None %9
          %12 = OpLabel
       %arg_0 = OpVariable %_ptr_Function_v4float Function %5
-        %res = OpVariable %_ptr_Function_uint Function %21
-               OpStore %arg_0 %5
-         %18 = OpLoad %v4float %arg_0
-         %15 = OpExtInst %uint %17 PackSnorm4x8 %18
-               OpStore %res %15
+        %res = OpVariable %_ptr_Function_uint Function %23
+               OpStore %arg_0 %14
+         %20 = OpLoad %v4float %arg_0
+         %17 = OpExtInst %uint %19 PackSnorm4x8 %20
+               OpStore %res %17
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %22
-         %24 = OpLabel
-         %25 = OpFunctionCall %void %pack4x8snorm_4d22e7
+%vertex_main_inner = OpFunction %v4float None %24
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %pack4x8snorm_4d22e7
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
-         %27 = OpLabel
-         %28 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %28
+         %29 = OpLabel
+         %30 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %30
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %pack4x8snorm_4d22e7
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %pack4x8snorm_4d22e7
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %pack4x8snorm_4d22e7
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %pack4x8snorm_4d22e7
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/pack4x8snorm/4d22e7.wgsl.expected.wgsl b/test/tint/builtins/gen/var/pack4x8snorm/4d22e7.wgsl.expected.wgsl
index b83a2e3..965c4ba 100644
--- a/test/tint/builtins/gen/var/pack4x8snorm/4d22e7.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/pack4x8snorm/4d22e7.wgsl.expected.wgsl
@@ -1,5 +1,5 @@
 fn pack4x8snorm_4d22e7() {
-  var arg_0 = vec4<f32>();
+  var arg_0 = vec4<f32>(1.0f);
   var res : u32 = pack4x8snorm(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/pack4x8unorm/95c456.wgsl b/test/tint/builtins/gen/var/pack4x8unorm/95c456.wgsl
index e4f84c6..bef2623 100644
--- a/test/tint/builtins/gen/var/pack4x8unorm/95c456.wgsl
+++ b/test/tint/builtins/gen/var/pack4x8unorm/95c456.wgsl
@@ -23,7 +23,7 @@
 
 // fn pack4x8unorm(vec4<f32>) -> u32
 fn pack4x8unorm_95c456() {
-  var arg_0 = vec4<f32>();
+  var arg_0 = vec4<f32>(1.f);
   var res: u32 = pack4x8unorm(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/pack4x8unorm/95c456.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/pack4x8unorm/95c456.wgsl.expected.dxc.hlsl
index 80d63c9..4577820 100644
--- a/test/tint/builtins/gen/var/pack4x8unorm/95c456.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/pack4x8unorm/95c456.wgsl.expected.dxc.hlsl
@@ -4,7 +4,7 @@
 }
 
 void pack4x8unorm_95c456() {
-  float4 arg_0 = (0.0f).xxxx;
+  float4 arg_0 = (1.0f).xxxx;
   uint res = tint_pack4x8unorm(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/pack4x8unorm/95c456.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/pack4x8unorm/95c456.wgsl.expected.fxc.hlsl
index 80d63c9..4577820 100644
--- a/test/tint/builtins/gen/var/pack4x8unorm/95c456.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/pack4x8unorm/95c456.wgsl.expected.fxc.hlsl
@@ -4,7 +4,7 @@
 }
 
 void pack4x8unorm_95c456() {
-  float4 arg_0 = (0.0f).xxxx;
+  float4 arg_0 = (1.0f).xxxx;
   uint res = tint_pack4x8unorm(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/pack4x8unorm/95c456.wgsl.expected.glsl b/test/tint/builtins/gen/var/pack4x8unorm/95c456.wgsl.expected.glsl
index 8e9eb90..80a0b9b 100644
--- a/test/tint/builtins/gen/var/pack4x8unorm/95c456.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/pack4x8unorm/95c456.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 void pack4x8unorm_95c456() {
-  vec4 arg_0 = vec4(0.0f);
+  vec4 arg_0 = vec4(1.0f);
   uint res = packUnorm4x8(arg_0);
 }
 
@@ -22,7 +22,7 @@
 precision mediump float;
 
 void pack4x8unorm_95c456() {
-  vec4 arg_0 = vec4(0.0f);
+  vec4 arg_0 = vec4(1.0f);
   uint res = packUnorm4x8(arg_0);
 }
 
@@ -37,7 +37,7 @@
 #version 310 es
 
 void pack4x8unorm_95c456() {
-  vec4 arg_0 = vec4(0.0f);
+  vec4 arg_0 = vec4(1.0f);
   uint res = packUnorm4x8(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/pack4x8unorm/95c456.wgsl.expected.msl b/test/tint/builtins/gen/var/pack4x8unorm/95c456.wgsl.expected.msl
index faab6f2..acba42a 100644
--- a/test/tint/builtins/gen/var/pack4x8unorm/95c456.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/pack4x8unorm/95c456.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void pack4x8unorm_95c456() {
-  float4 arg_0 = float4(0.0f);
+  float4 arg_0 = float4(1.0f);
   uint res = pack_float_to_unorm4x8(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/pack4x8unorm/95c456.wgsl.expected.spvasm b/test/tint/builtins/gen/var/pack4x8unorm/95c456.wgsl.expected.spvasm
index cc7d9ea..f064de4 100644
--- a/test/tint/builtins/gen/var/pack4x8unorm/95c456.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/pack4x8unorm/95c456.wgsl.expected.spvasm
@@ -1,10 +1,10 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 36
+; Bound: 37
 ; Schema: 0
                OpCapability Shader
-         %17 = OpExtInstImport "GLSL.std.450"
+         %19 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
                OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
@@ -32,41 +32,42 @@
 %vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
+    %float_1 = OpConstant %float 1
+         %14 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
        %uint = OpTypeInt 32 0
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %21 = OpConstantNull %uint
-         %22 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %23 = OpConstantNull %uint
+         %24 = OpTypeFunction %v4float
 %pack4x8unorm_95c456 = OpFunction %void None %9
          %12 = OpLabel
       %arg_0 = OpVariable %_ptr_Function_v4float Function %5
-        %res = OpVariable %_ptr_Function_uint Function %21
-               OpStore %arg_0 %5
-         %18 = OpLoad %v4float %arg_0
-         %15 = OpExtInst %uint %17 PackUnorm4x8 %18
-               OpStore %res %15
+        %res = OpVariable %_ptr_Function_uint Function %23
+               OpStore %arg_0 %14
+         %20 = OpLoad %v4float %arg_0
+         %17 = OpExtInst %uint %19 PackUnorm4x8 %20
+               OpStore %res %17
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %22
-         %24 = OpLabel
-         %25 = OpFunctionCall %void %pack4x8unorm_95c456
+%vertex_main_inner = OpFunction %v4float None %24
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %pack4x8unorm_95c456
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
-         %27 = OpLabel
-         %28 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %28
+         %29 = OpLabel
+         %30 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %30
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %pack4x8unorm_95c456
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %pack4x8unorm_95c456
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %pack4x8unorm_95c456
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %pack4x8unorm_95c456
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/pack4x8unorm/95c456.wgsl.expected.wgsl b/test/tint/builtins/gen/var/pack4x8unorm/95c456.wgsl.expected.wgsl
index 195c952..653c338 100644
--- a/test/tint/builtins/gen/var/pack4x8unorm/95c456.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/pack4x8unorm/95c456.wgsl.expected.wgsl
@@ -1,5 +1,5 @@
 fn pack4x8unorm_95c456() {
-  var arg_0 = vec4<f32>();
+  var arg_0 = vec4<f32>(1.0f);
   var res : u32 = pack4x8unorm(arg_0);
 }
 
diff --git a/test/tint/builtins/gen/var/textureGather/0166ec.wgsl b/test/tint/builtins/gen/var/textureGather/0166ec.wgsl
index 472ed0e..cf83de4 100644
--- a/test/tint/builtins/gen/var/textureGather/0166ec.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/0166ec.wgsl
@@ -26,7 +26,7 @@
 // fn textureGather(@const component: u32, texture: texture_cube<i32>, sampler: sampler, coords: vec3<f32>) -> vec4<i32>
 fn textureGather_0166ec() {
   const arg_0 = 1u;
-  var arg_3 = vec3<f32>();
+  var arg_3 = vec3<f32>(1.f);
   var res: vec4<i32> = textureGather(arg_0, arg_1, arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureGather/0166ec.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/0166ec.wgsl.expected.dxc.hlsl
index d0981dd..d60956f 100644
--- a/test/tint/builtins/gen/var/textureGather/0166ec.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/0166ec.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_0166ec() {
-  float3 arg_3 = (0.0f).xxx;
+  float3 arg_3 = (1.0f).xxx;
   int4 res = arg_1.GatherGreen(arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureGather/0166ec.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/0166ec.wgsl.expected.fxc.hlsl
index d0981dd..d60956f 100644
--- a/test/tint/builtins/gen/var/textureGather/0166ec.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/0166ec.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_0166ec() {
-  float3 arg_3 = (0.0f).xxx;
+  float3 arg_3 = (1.0f).xxx;
   int4 res = arg_1.GatherGreen(arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureGather/0166ec.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureGather/0166ec.wgsl.expected.glsl
index 0968a8e..ec7e934 100644
--- a/test/tint/builtins/gen/var/textureGather/0166ec.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureGather/0166ec.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 uniform highp isamplerCube arg_1_arg_2;
 
 void textureGather_0166ec() {
-  vec3 arg_3 = vec3(0.0f);
+  vec3 arg_3 = vec3(1.0f);
   ivec4 res = textureGather(arg_1_arg_2, arg_3, int(1u));
 }
 
@@ -26,7 +26,7 @@
 uniform highp isamplerCube arg_1_arg_2;
 
 void textureGather_0166ec() {
-  vec3 arg_3 = vec3(0.0f);
+  vec3 arg_3 = vec3(1.0f);
   ivec4 res = textureGather(arg_1_arg_2, arg_3, int(1u));
 }
 
@@ -43,7 +43,7 @@
 uniform highp isamplerCube arg_1_arg_2;
 
 void textureGather_0166ec() {
-  vec3 arg_3 = vec3(0.0f);
+  vec3 arg_3 = vec3(1.0f);
   ivec4 res = textureGather(arg_1_arg_2, arg_3, int(1u));
 }
 
diff --git a/test/tint/builtins/gen/var/textureGather/0166ec.wgsl.expected.msl b/test/tint/builtins/gen/var/textureGather/0166ec.wgsl.expected.msl
index c58d5a4..fee24ff 100644
--- a/test/tint/builtins/gen/var/textureGather/0166ec.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureGather/0166ec.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureGather_0166ec(texturecube<int, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float3 arg_3 = float3(0.0f);
+  float3 arg_3 = float3(1.0f);
   int4 res = tint_symbol_1.gather(tint_symbol_2, arg_3, component::y);
 }
 
diff --git a/test/tint/builtins/gen/var/textureGather/0166ec.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureGather/0166ec.wgsl.expected.spvasm
index d5f7045..23ec392 100644
--- a/test/tint/builtins/gen/var/textureGather/0166ec.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureGather/0166ec.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 50
+; Bound: 51
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -45,48 +45,49 @@
        %void = OpTypeVoid
          %16 = OpTypeFunction %void
     %v3float = OpTypeVector %float 3
-         %21 = OpConstantNull %v3float
+    %float_1 = OpConstant %float 1
+         %22 = OpConstantComposite %v3float %float_1 %float_1 %float_1
 %_ptr_Function_v3float = OpTypePointer Function %v3float
+         %25 = OpConstantNull %v3float
       %v4int = OpTypeVector %int 4
-         %28 = OpTypeSampledImage %11
+         %30 = OpTypeSampledImage %11
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %35 = OpConstantNull %v4int
-         %36 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %37 = OpConstantNull %v4int
+         %38 = OpTypeFunction %v4float
 %textureGather_0166ec = OpFunction %void None %16
          %19 = OpLabel
-      %arg_3 = OpVariable %_ptr_Function_v3float Function %21
-        %res = OpVariable %_ptr_Function_v4int Function %35
-               OpStore %arg_3 %21
-         %26 = OpLoad %15 %arg_2
-         %27 = OpLoad %11 %arg_1
-         %29 = OpSampledImage %28 %27 %26
-         %30 = OpLoad %v3float %arg_3
-         %24 = OpImageGather %v4int %29 %30 %uint_1
-               OpStore %res %24
+      %arg_3 = OpVariable %_ptr_Function_v3float Function %25
+        %res = OpVariable %_ptr_Function_v4int Function %37
+               OpStore %arg_3 %22
+         %28 = OpLoad %15 %arg_2
+         %29 = OpLoad %11 %arg_1
+         %31 = OpSampledImage %30 %29 %28
+         %32 = OpLoad %v3float %arg_3
+         %26 = OpImageGather %v4int %31 %32 %uint_1
+               OpStore %res %26
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %36
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureGather_0166ec
+%vertex_main_inner = OpFunction %v4float None %38
+         %40 = OpLabel
+         %41 = OpFunctionCall %void %textureGather_0166ec
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %16
-         %41 = OpLabel
-         %42 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %42
+         %43 = OpLabel
+         %44 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %44
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %16
-         %45 = OpLabel
-         %46 = OpFunctionCall %void %textureGather_0166ec
+         %46 = OpLabel
+         %47 = OpFunctionCall %void %textureGather_0166ec
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %16
-         %48 = OpLabel
-         %49 = OpFunctionCall %void %textureGather_0166ec
+         %49 = OpLabel
+         %50 = OpFunctionCall %void %textureGather_0166ec
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureGather/0166ec.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureGather/0166ec.wgsl.expected.wgsl
index fca6c70..d268bb8 100644
--- a/test/tint/builtins/gen/var/textureGather/0166ec.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/0166ec.wgsl.expected.wgsl
@@ -4,7 +4,7 @@
 
 fn textureGather_0166ec() {
   const arg_0 = 1u;
-  var arg_3 = vec3<f32>();
+  var arg_3 = vec3<f32>(1.0f);
   var res : vec4<i32> = textureGather(arg_0, arg_1, arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureGather/04fa78.wgsl b/test/tint/builtins/gen/var/textureGather/04fa78.wgsl
index e7aeacf..fa77c24 100644
--- a/test/tint/builtins/gen/var/textureGather/04fa78.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/04fa78.wgsl
@@ -26,7 +26,7 @@
 // fn textureGather(@const component: u32, texture: texture_cube_array<i32>, sampler: sampler, coords: vec3<f32>, array_index: u32) -> vec4<i32>
 fn textureGather_04fa78() {
   const arg_0 = 1u;
-  var arg_3 = vec3<f32>();
+  var arg_3 = vec3<f32>(1.f);
   var arg_4 = 1u;
   var res: vec4<i32> = textureGather(arg_0, arg_1, arg_2, arg_3, arg_4);
 }
diff --git a/test/tint/builtins/gen/var/textureGather/04fa78.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/04fa78.wgsl.expected.dxc.hlsl
index 9297a9c..4afd573 100644
--- a/test/tint/builtins/gen/var/textureGather/04fa78.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/04fa78.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_04fa78() {
-  float3 arg_3 = (0.0f).xxx;
+  float3 arg_3 = (1.0f).xxx;
   uint arg_4 = 1u;
   int4 res = arg_1.GatherGreen(arg_2, float4(arg_3, float(arg_4)));
 }
diff --git a/test/tint/builtins/gen/var/textureGather/04fa78.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/04fa78.wgsl.expected.fxc.hlsl
index 9297a9c..4afd573 100644
--- a/test/tint/builtins/gen/var/textureGather/04fa78.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/04fa78.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_04fa78() {
-  float3 arg_3 = (0.0f).xxx;
+  float3 arg_3 = (1.0f).xxx;
   uint arg_4 = 1u;
   int4 res = arg_1.GatherGreen(arg_2, float4(arg_3, float(arg_4)));
 }
diff --git a/test/tint/builtins/gen/var/textureGather/04fa78.wgsl.expected.msl b/test/tint/builtins/gen/var/textureGather/04fa78.wgsl.expected.msl
index 4a1a248..3deccdb 100644
--- a/test/tint/builtins/gen/var/textureGather/04fa78.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureGather/04fa78.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureGather_04fa78(texturecube_array<int, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float3 arg_3 = float3(0.0f);
+  float3 arg_3 = float3(1.0f);
   uint arg_4 = 1u;
   int4 res = tint_symbol_1.gather(tint_symbol_2, arg_3, arg_4, component::y);
 }
diff --git a/test/tint/builtins/gen/var/textureGather/04fa78.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureGather/04fa78.wgsl.expected.spvasm
index e3140b5..746c891 100644
--- a/test/tint/builtins/gen/var/textureGather/04fa78.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureGather/04fa78.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 59
+; Bound: 60
 ; Schema: 0
                OpCapability Shader
                OpCapability SampledCubeArray
@@ -47,58 +47,59 @@
        %void = OpTypeVoid
          %16 = OpTypeFunction %void
     %v3float = OpTypeVector %float 3
-         %21 = OpConstantNull %v3float
+    %float_1 = OpConstant %float 1
+         %22 = OpConstantComposite %v3float %float_1 %float_1 %float_1
 %_ptr_Function_v3float = OpTypePointer Function %v3float
+         %25 = OpConstantNull %v3float
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %28 = OpConstantNull %uint
+         %30 = OpConstantNull %uint
       %v4int = OpTypeVector %int 4
-         %33 = OpTypeSampledImage %11
+         %35 = OpTypeSampledImage %11
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %44 = OpConstantNull %v4int
-         %45 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %46 = OpConstantNull %v4int
+         %47 = OpTypeFunction %v4float
 %textureGather_04fa78 = OpFunction %void None %16
          %19 = OpLabel
-      %arg_3 = OpVariable %_ptr_Function_v3float Function %21
-      %arg_4 = OpVariable %_ptr_Function_uint Function %28
-        %res = OpVariable %_ptr_Function_v4int Function %44
-               OpStore %arg_3 %21
+      %arg_3 = OpVariable %_ptr_Function_v3float Function %25
+      %arg_4 = OpVariable %_ptr_Function_uint Function %30
+        %res = OpVariable %_ptr_Function_v4int Function %46
+               OpStore %arg_3 %22
                OpStore %arg_4 %uint_1
-         %31 = OpLoad %15 %arg_2
-         %32 = OpLoad %11 %arg_1
-         %34 = OpSampledImage %33 %32 %31
-         %35 = OpLoad %v3float %arg_3
-         %36 = OpCompositeExtract %float %35 0
-         %37 = OpCompositeExtract %float %35 1
-         %38 = OpCompositeExtract %float %35 2
-         %40 = OpLoad %uint %arg_4
-         %39 = OpConvertUToF %float %40
-         %41 = OpCompositeConstruct %v4float %36 %37 %38 %39
-         %29 = OpImageGather %v4int %34 %41 %uint_1
-               OpStore %res %29
+         %33 = OpLoad %15 %arg_2
+         %34 = OpLoad %11 %arg_1
+         %36 = OpSampledImage %35 %34 %33
+         %37 = OpLoad %v3float %arg_3
+         %38 = OpCompositeExtract %float %37 0
+         %39 = OpCompositeExtract %float %37 1
+         %40 = OpCompositeExtract %float %37 2
+         %42 = OpLoad %uint %arg_4
+         %41 = OpConvertUToF %float %42
+         %43 = OpCompositeConstruct %v4float %38 %39 %40 %41
+         %31 = OpImageGather %v4int %36 %43 %uint_1
+               OpStore %res %31
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %45
-         %47 = OpLabel
-         %48 = OpFunctionCall %void %textureGather_04fa78
+%vertex_main_inner = OpFunction %v4float None %47
+         %49 = OpLabel
+         %50 = OpFunctionCall %void %textureGather_04fa78
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %16
-         %50 = OpLabel
-         %51 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %51
+         %52 = OpLabel
+         %53 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %53
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %16
-         %54 = OpLabel
-         %55 = OpFunctionCall %void %textureGather_04fa78
+         %55 = OpLabel
+         %56 = OpFunctionCall %void %textureGather_04fa78
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %16
-         %57 = OpLabel
-         %58 = OpFunctionCall %void %textureGather_04fa78
+         %58 = OpLabel
+         %59 = OpFunctionCall %void %textureGather_04fa78
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureGather/04fa78.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureGather/04fa78.wgsl.expected.wgsl
index de2c50b..39758e3 100644
--- a/test/tint/builtins/gen/var/textureGather/04fa78.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/04fa78.wgsl.expected.wgsl
@@ -4,7 +4,7 @@
 
 fn textureGather_04fa78() {
   const arg_0 = 1u;
-  var arg_3 = vec3<f32>();
+  var arg_3 = vec3<f32>(1.0f);
   var arg_4 = 1u;
   var res : vec4<i32> = textureGather(arg_0, arg_1, arg_2, arg_3, arg_4);
 }
diff --git a/test/tint/builtins/gen/var/textureGather/10c554.wgsl b/test/tint/builtins/gen/var/textureGather/10c554.wgsl
index 49612c6..05dff14 100644
--- a/test/tint/builtins/gen/var/textureGather/10c554.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/10c554.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureGather(texture: texture_depth_cube, sampler: sampler, coords: vec3<f32>) -> vec4<f32>
 fn textureGather_10c554() {
-  var arg_2 = vec3<f32>();
+  var arg_2 = vec3<f32>(1.f);
   var res: vec4<f32> = textureGather(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureGather/10c554.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/10c554.wgsl.expected.dxc.hlsl
index eab2277..1e4265c 100644
--- a/test/tint/builtins/gen/var/textureGather/10c554.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/10c554.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureGather_10c554() {
-  float3 arg_2 = (0.0f).xxx;
+  float3 arg_2 = (1.0f).xxx;
   float4 res = arg_0.Gather(arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureGather/10c554.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/10c554.wgsl.expected.fxc.hlsl
index eab2277..1e4265c 100644
--- a/test/tint/builtins/gen/var/textureGather/10c554.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/10c554.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureGather_10c554() {
-  float3 arg_2 = (0.0f).xxx;
+  float3 arg_2 = (1.0f).xxx;
   float4 res = arg_0.Gather(arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureGather/10c554.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureGather/10c554.wgsl.expected.glsl
index e6f2add..2a84b78 100644
--- a/test/tint/builtins/gen/var/textureGather/10c554.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureGather/10c554.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 uniform highp samplerCubeShadow arg_0_arg_1;
 
 void textureGather_10c554() {
-  vec3 arg_2 = vec3(0.0f);
+  vec3 arg_2 = vec3(1.0f);
   vec4 res = textureGather(arg_0_arg_1, arg_2, 0.0);
 }
 
@@ -26,7 +26,7 @@
 uniform highp samplerCubeShadow arg_0_arg_1;
 
 void textureGather_10c554() {
-  vec3 arg_2 = vec3(0.0f);
+  vec3 arg_2 = vec3(1.0f);
   vec4 res = textureGather(arg_0_arg_1, arg_2, 0.0);
 }
 
@@ -43,7 +43,7 @@
 uniform highp samplerCubeShadow arg_0_arg_1;
 
 void textureGather_10c554() {
-  vec3 arg_2 = vec3(0.0f);
+  vec3 arg_2 = vec3(1.0f);
   vec4 res = textureGather(arg_0_arg_1, arg_2, 0.0);
 }
 
diff --git a/test/tint/builtins/gen/var/textureGather/10c554.wgsl.expected.msl b/test/tint/builtins/gen/var/textureGather/10c554.wgsl.expected.msl
index 16595bd..5c6e114 100644
--- a/test/tint/builtins/gen/var/textureGather/10c554.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureGather/10c554.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureGather_10c554(depthcube<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float3 arg_2 = float3(0.0f);
+  float3 arg_2 = float3(1.0f);
   float4 res = tint_symbol_1.gather(tint_symbol_2, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureGather/10c554.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureGather/10c554.wgsl.expected.spvasm
index 76b2553..ccd308b 100644
--- a/test/tint/builtins/gen/var/textureGather/10c554.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureGather/10c554.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 47
+; Bound: 48
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -44,46 +44,47 @@
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
     %v3float = OpTypeVector %float 3
-         %20 = OpConstantNull %v3float
+    %float_1 = OpConstant %float 1
+         %21 = OpConstantComposite %v3float %float_1 %float_1 %float_1
 %_ptr_Function_v3float = OpTypePointer Function %v3float
-         %26 = OpTypeSampledImage %11
+         %24 = OpConstantNull %v3float
+         %28 = OpTypeSampledImage %11
         %int = OpTypeInt 32 1
       %int_0 = OpConstant %int 0
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %33 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %35 = OpTypeFunction %v4float
 %textureGather_10c554 = OpFunction %void None %15
          %18 = OpLabel
-      %arg_2 = OpVariable %_ptr_Function_v3float Function %20
+      %arg_2 = OpVariable %_ptr_Function_v3float Function %24
         %res = OpVariable %_ptr_Function_v4float Function %5
-               OpStore %arg_2 %20
-         %24 = OpLoad %14 %arg_1
-         %25 = OpLoad %11 %arg_0
-         %27 = OpSampledImage %26 %25 %24
-         %28 = OpLoad %v3float %arg_2
-         %23 = OpImageGather %v4float %27 %28 %int_0
-               OpStore %res %23
+               OpStore %arg_2 %21
+         %26 = OpLoad %14 %arg_1
+         %27 = OpLoad %11 %arg_0
+         %29 = OpSampledImage %28 %27 %26
+         %30 = OpLoad %v3float %arg_2
+         %25 = OpImageGather %v4float %29 %30 %int_0
+               OpStore %res %25
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %33
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureGather_10c554
+%vertex_main_inner = OpFunction %v4float None %35
+         %37 = OpLabel
+         %38 = OpFunctionCall %void %textureGather_10c554
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
-         %38 = OpLabel
-         %39 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %39
+         %40 = OpLabel
+         %41 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %41
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %15
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureGather_10c554
+         %43 = OpLabel
+         %44 = OpFunctionCall %void %textureGather_10c554
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %15
-         %45 = OpLabel
-         %46 = OpFunctionCall %void %textureGather_10c554
+         %46 = OpLabel
+         %47 = OpFunctionCall %void %textureGather_10c554
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureGather/10c554.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureGather/10c554.wgsl.expected.wgsl
index 4df84e8..ae368d7 100644
--- a/test/tint/builtins/gen/var/textureGather/10c554.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/10c554.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(1) var arg_1 : sampler;
 
 fn textureGather_10c554() {
-  var arg_2 = vec3<f32>();
+  var arg_2 = vec3<f32>(1.0f);
   var res : vec4<f32> = textureGather(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureGather/11b2db.wgsl b/test/tint/builtins/gen/var/textureGather/11b2db.wgsl
index 65736b0..fb0c520 100644
--- a/test/tint/builtins/gen/var/textureGather/11b2db.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/11b2db.wgsl
@@ -26,7 +26,7 @@
 // fn textureGather(@const component: u32, texture: texture_cube<f32>, sampler: sampler, coords: vec3<f32>) -> vec4<f32>
 fn textureGather_11b2db() {
   const arg_0 = 1u;
-  var arg_3 = vec3<f32>();
+  var arg_3 = vec3<f32>(1.f);
   var res: vec4<f32> = textureGather(arg_0, arg_1, arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureGather/11b2db.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/11b2db.wgsl.expected.dxc.hlsl
index 5638aaa..1c983e7 100644
--- a/test/tint/builtins/gen/var/textureGather/11b2db.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/11b2db.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_11b2db() {
-  float3 arg_3 = (0.0f).xxx;
+  float3 arg_3 = (1.0f).xxx;
   float4 res = arg_1.GatherGreen(arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureGather/11b2db.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/11b2db.wgsl.expected.fxc.hlsl
index 5638aaa..1c983e7 100644
--- a/test/tint/builtins/gen/var/textureGather/11b2db.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/11b2db.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_11b2db() {
-  float3 arg_3 = (0.0f).xxx;
+  float3 arg_3 = (1.0f).xxx;
   float4 res = arg_1.GatherGreen(arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureGather/11b2db.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureGather/11b2db.wgsl.expected.glsl
index dc0f613..317ebf1 100644
--- a/test/tint/builtins/gen/var/textureGather/11b2db.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureGather/11b2db.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 uniform highp samplerCube arg_1_arg_2;
 
 void textureGather_11b2db() {
-  vec3 arg_3 = vec3(0.0f);
+  vec3 arg_3 = vec3(1.0f);
   vec4 res = textureGather(arg_1_arg_2, arg_3, int(1u));
 }
 
@@ -26,7 +26,7 @@
 uniform highp samplerCube arg_1_arg_2;
 
 void textureGather_11b2db() {
-  vec3 arg_3 = vec3(0.0f);
+  vec3 arg_3 = vec3(1.0f);
   vec4 res = textureGather(arg_1_arg_2, arg_3, int(1u));
 }
 
@@ -43,7 +43,7 @@
 uniform highp samplerCube arg_1_arg_2;
 
 void textureGather_11b2db() {
-  vec3 arg_3 = vec3(0.0f);
+  vec3 arg_3 = vec3(1.0f);
   vec4 res = textureGather(arg_1_arg_2, arg_3, int(1u));
 }
 
diff --git a/test/tint/builtins/gen/var/textureGather/11b2db.wgsl.expected.msl b/test/tint/builtins/gen/var/textureGather/11b2db.wgsl.expected.msl
index d99c749..7f10956 100644
--- a/test/tint/builtins/gen/var/textureGather/11b2db.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureGather/11b2db.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureGather_11b2db(texturecube<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float3 arg_3 = float3(0.0f);
+  float3 arg_3 = float3(1.0f);
   float4 res = tint_symbol_1.gather(tint_symbol_2, arg_3, component::y);
 }
 
diff --git a/test/tint/builtins/gen/var/textureGather/11b2db.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureGather/11b2db.wgsl.expected.spvasm
index 0e70b08..a59ac56 100644
--- a/test/tint/builtins/gen/var/textureGather/11b2db.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureGather/11b2db.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 47
+; Bound: 48
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -44,46 +44,47 @@
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
     %v3float = OpTypeVector %float 3
-         %20 = OpConstantNull %v3float
+    %float_1 = OpConstant %float 1
+         %21 = OpConstantComposite %v3float %float_1 %float_1 %float_1
 %_ptr_Function_v3float = OpTypePointer Function %v3float
-         %26 = OpTypeSampledImage %11
+         %24 = OpConstantNull %v3float
+         %28 = OpTypeSampledImage %11
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %33 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %35 = OpTypeFunction %v4float
 %textureGather_11b2db = OpFunction %void None %15
          %18 = OpLabel
-      %arg_3 = OpVariable %_ptr_Function_v3float Function %20
+      %arg_3 = OpVariable %_ptr_Function_v3float Function %24
         %res = OpVariable %_ptr_Function_v4float Function %5
-               OpStore %arg_3 %20
-         %24 = OpLoad %14 %arg_2
-         %25 = OpLoad %11 %arg_1
-         %27 = OpSampledImage %26 %25 %24
-         %28 = OpLoad %v3float %arg_3
-         %23 = OpImageGather %v4float %27 %28 %uint_1
-               OpStore %res %23
+               OpStore %arg_3 %21
+         %26 = OpLoad %14 %arg_2
+         %27 = OpLoad %11 %arg_1
+         %29 = OpSampledImage %28 %27 %26
+         %30 = OpLoad %v3float %arg_3
+         %25 = OpImageGather %v4float %29 %30 %uint_1
+               OpStore %res %25
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %33
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureGather_11b2db
+%vertex_main_inner = OpFunction %v4float None %35
+         %37 = OpLabel
+         %38 = OpFunctionCall %void %textureGather_11b2db
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
-         %38 = OpLabel
-         %39 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %39
+         %40 = OpLabel
+         %41 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %41
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %15
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureGather_11b2db
+         %43 = OpLabel
+         %44 = OpFunctionCall %void %textureGather_11b2db
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %15
-         %45 = OpLabel
-         %46 = OpFunctionCall %void %textureGather_11b2db
+         %46 = OpLabel
+         %47 = OpFunctionCall %void %textureGather_11b2db
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureGather/11b2db.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureGather/11b2db.wgsl.expected.wgsl
index 90c1647..08e6fb4 100644
--- a/test/tint/builtins/gen/var/textureGather/11b2db.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/11b2db.wgsl.expected.wgsl
@@ -4,7 +4,7 @@
 
 fn textureGather_11b2db() {
   const arg_0 = 1u;
-  var arg_3 = vec3<f32>();
+  var arg_3 = vec3<f32>(1.0f);
   var res : vec4<f32> = textureGather(arg_0, arg_1, arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureGather/17baac.wgsl b/test/tint/builtins/gen/var/textureGather/17baac.wgsl
index d717bcc..14e25b3 100644
--- a/test/tint/builtins/gen/var/textureGather/17baac.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/17baac.wgsl
@@ -26,7 +26,7 @@
 // fn textureGather(@const component: i32, texture: texture_2d_array<f32>, sampler: sampler, coords: vec2<f32>, array_index: u32) -> vec4<f32>
 fn textureGather_17baac() {
   const arg_0 = 1i;
-  var arg_3 = vec2<f32>();
+  var arg_3 = vec2<f32>(1.f);
   var arg_4 = 1u;
   var res: vec4<f32> = textureGather(arg_0, arg_1, arg_2, arg_3, arg_4);
 }
diff --git a/test/tint/builtins/gen/var/textureGather/17baac.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/17baac.wgsl.expected.dxc.hlsl
index 9002334..72fd55e 100644
--- a/test/tint/builtins/gen/var/textureGather/17baac.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/17baac.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_17baac() {
-  float2 arg_3 = (0.0f).xx;
+  float2 arg_3 = (1.0f).xx;
   uint arg_4 = 1u;
   float4 res = arg_1.GatherGreen(arg_2, float3(arg_3, float(arg_4)));
 }
diff --git a/test/tint/builtins/gen/var/textureGather/17baac.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/17baac.wgsl.expected.fxc.hlsl
index 9002334..72fd55e 100644
--- a/test/tint/builtins/gen/var/textureGather/17baac.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/17baac.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_17baac() {
-  float2 arg_3 = (0.0f).xx;
+  float2 arg_3 = (1.0f).xx;
   uint arg_4 = 1u;
   float4 res = arg_1.GatherGreen(arg_2, float3(arg_3, float(arg_4)));
 }
diff --git a/test/tint/builtins/gen/var/textureGather/17baac.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureGather/17baac.wgsl.expected.glsl
index 3b1b280..4887711 100644
--- a/test/tint/builtins/gen/var/textureGather/17baac.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureGather/17baac.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 uniform highp sampler2DArray arg_1_arg_2;
 
 void textureGather_17baac() {
-  vec2 arg_3 = vec2(0.0f);
+  vec2 arg_3 = vec2(1.0f);
   uint arg_4 = 1u;
   vec4 res = textureGather(arg_1_arg_2, vec3(arg_3, float(arg_4)), 1);
 }
@@ -27,7 +27,7 @@
 uniform highp sampler2DArray arg_1_arg_2;
 
 void textureGather_17baac() {
-  vec2 arg_3 = vec2(0.0f);
+  vec2 arg_3 = vec2(1.0f);
   uint arg_4 = 1u;
   vec4 res = textureGather(arg_1_arg_2, vec3(arg_3, float(arg_4)), 1);
 }
@@ -45,7 +45,7 @@
 uniform highp sampler2DArray arg_1_arg_2;
 
 void textureGather_17baac() {
-  vec2 arg_3 = vec2(0.0f);
+  vec2 arg_3 = vec2(1.0f);
   uint arg_4 = 1u;
   vec4 res = textureGather(arg_1_arg_2, vec3(arg_3, float(arg_4)), 1);
 }
diff --git a/test/tint/builtins/gen/var/textureGather/17baac.wgsl.expected.msl b/test/tint/builtins/gen/var/textureGather/17baac.wgsl.expected.msl
index 8843160..615bad2 100644
--- a/test/tint/builtins/gen/var/textureGather/17baac.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureGather/17baac.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureGather_17baac(texture2d_array<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float2 arg_3 = float2(0.0f);
+  float2 arg_3 = float2(1.0f);
   uint arg_4 = 1u;
   float4 res = tint_symbol_1.gather(tint_symbol_2, arg_3, arg_4, int2(0), component::y);
 }
diff --git a/test/tint/builtins/gen/var/textureGather/17baac.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureGather/17baac.wgsl.expected.spvasm
index fe20145..0fbb131 100644
--- a/test/tint/builtins/gen/var/textureGather/17baac.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureGather/17baac.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 58
+; Bound: 59
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -45,58 +45,59 @@
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
-         %20 = OpConstantNull %v2float
+    %float_1 = OpConstant %float 1
+         %21 = OpConstantComposite %v2float %float_1 %float_1
 %_ptr_Function_v2float = OpTypePointer Function %v2float
+         %24 = OpConstantNull %v2float
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %27 = OpConstantNull %uint
-         %31 = OpTypeSampledImage %11
+         %29 = OpConstantNull %uint
+         %33 = OpTypeSampledImage %11
     %v3float = OpTypeVector %float 3
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %44 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %46 = OpTypeFunction %v4float
 %textureGather_17baac = OpFunction %void None %15
          %18 = OpLabel
-      %arg_3 = OpVariable %_ptr_Function_v2float Function %20
-      %arg_4 = OpVariable %_ptr_Function_uint Function %27
+      %arg_3 = OpVariable %_ptr_Function_v2float Function %24
+      %arg_4 = OpVariable %_ptr_Function_uint Function %29
         %res = OpVariable %_ptr_Function_v4float Function %5
-               OpStore %arg_3 %20
+               OpStore %arg_3 %21
                OpStore %arg_4 %uint_1
-         %29 = OpLoad %14 %arg_2
-         %30 = OpLoad %11 %arg_1
-         %32 = OpSampledImage %31 %30 %29
-         %34 = OpLoad %v2float %arg_3
-         %35 = OpCompositeExtract %float %34 0
-         %36 = OpCompositeExtract %float %34 1
-         %38 = OpLoad %uint %arg_4
-         %37 = OpConvertUToF %float %38
-         %39 = OpCompositeConstruct %v3float %35 %36 %37
-         %28 = OpImageGather %v4float %32 %39 %int_1
-               OpStore %res %28
+         %31 = OpLoad %14 %arg_2
+         %32 = OpLoad %11 %arg_1
+         %34 = OpSampledImage %33 %32 %31
+         %36 = OpLoad %v2float %arg_3
+         %37 = OpCompositeExtract %float %36 0
+         %38 = OpCompositeExtract %float %36 1
+         %40 = OpLoad %uint %arg_4
+         %39 = OpConvertUToF %float %40
+         %41 = OpCompositeConstruct %v3float %37 %38 %39
+         %30 = OpImageGather %v4float %34 %41 %int_1
+               OpStore %res %30
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %44
-         %46 = OpLabel
-         %47 = OpFunctionCall %void %textureGather_17baac
+%vertex_main_inner = OpFunction %v4float None %46
+         %48 = OpLabel
+         %49 = OpFunctionCall %void %textureGather_17baac
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
-         %49 = OpLabel
-         %50 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %50
+         %51 = OpLabel
+         %52 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %52
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %15
-         %53 = OpLabel
-         %54 = OpFunctionCall %void %textureGather_17baac
+         %54 = OpLabel
+         %55 = OpFunctionCall %void %textureGather_17baac
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %15
-         %56 = OpLabel
-         %57 = OpFunctionCall %void %textureGather_17baac
+         %57 = OpLabel
+         %58 = OpFunctionCall %void %textureGather_17baac
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureGather/17baac.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureGather/17baac.wgsl.expected.wgsl
index 349edb2..9f0f4d8 100644
--- a/test/tint/builtins/gen/var/textureGather/17baac.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/17baac.wgsl.expected.wgsl
@@ -4,7 +4,7 @@
 
 fn textureGather_17baac() {
   const arg_0 = 1i;
-  var arg_3 = vec2<f32>();
+  var arg_3 = vec2<f32>(1.0f);
   var arg_4 = 1u;
   var res : vec4<f32> = textureGather(arg_0, arg_1, arg_2, arg_3, arg_4);
 }
diff --git a/test/tint/builtins/gen/var/textureGather/1bf0ab.wgsl b/test/tint/builtins/gen/var/textureGather/1bf0ab.wgsl
index a58858c..a705c58 100644
--- a/test/tint/builtins/gen/var/textureGather/1bf0ab.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/1bf0ab.wgsl
@@ -26,7 +26,7 @@
 // fn textureGather(@const component: u32, texture: texture_2d_array<u32>, sampler: sampler, coords: vec2<f32>, array_index: u32) -> vec4<u32>
 fn textureGather_1bf0ab() {
   const arg_0 = 1u;
-  var arg_3 = vec2<f32>();
+  var arg_3 = vec2<f32>(1.f);
   var arg_4 = 1u;
   var res: vec4<u32> = textureGather(arg_0, arg_1, arg_2, arg_3, arg_4);
 }
diff --git a/test/tint/builtins/gen/var/textureGather/1bf0ab.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/1bf0ab.wgsl.expected.dxc.hlsl
index 4f5b1e3..0fb129e 100644
--- a/test/tint/builtins/gen/var/textureGather/1bf0ab.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/1bf0ab.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_1bf0ab() {
-  float2 arg_3 = (0.0f).xx;
+  float2 arg_3 = (1.0f).xx;
   uint arg_4 = 1u;
   uint4 res = arg_1.GatherGreen(arg_2, float3(arg_3, float(arg_4)));
 }
diff --git a/test/tint/builtins/gen/var/textureGather/1bf0ab.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/1bf0ab.wgsl.expected.fxc.hlsl
index 4f5b1e3..0fb129e 100644
--- a/test/tint/builtins/gen/var/textureGather/1bf0ab.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/1bf0ab.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_1bf0ab() {
-  float2 arg_3 = (0.0f).xx;
+  float2 arg_3 = (1.0f).xx;
   uint arg_4 = 1u;
   uint4 res = arg_1.GatherGreen(arg_2, float3(arg_3, float(arg_4)));
 }
diff --git a/test/tint/builtins/gen/var/textureGather/1bf0ab.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureGather/1bf0ab.wgsl.expected.glsl
index e7f08f3..4e5727e 100644
--- a/test/tint/builtins/gen/var/textureGather/1bf0ab.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureGather/1bf0ab.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 uniform highp usampler2DArray arg_1_arg_2;
 
 void textureGather_1bf0ab() {
-  vec2 arg_3 = vec2(0.0f);
+  vec2 arg_3 = vec2(1.0f);
   uint arg_4 = 1u;
   uvec4 res = textureGather(arg_1_arg_2, vec3(arg_3, float(arg_4)), int(1u));
 }
@@ -27,7 +27,7 @@
 uniform highp usampler2DArray arg_1_arg_2;
 
 void textureGather_1bf0ab() {
-  vec2 arg_3 = vec2(0.0f);
+  vec2 arg_3 = vec2(1.0f);
   uint arg_4 = 1u;
   uvec4 res = textureGather(arg_1_arg_2, vec3(arg_3, float(arg_4)), int(1u));
 }
@@ -45,7 +45,7 @@
 uniform highp usampler2DArray arg_1_arg_2;
 
 void textureGather_1bf0ab() {
-  vec2 arg_3 = vec2(0.0f);
+  vec2 arg_3 = vec2(1.0f);
   uint arg_4 = 1u;
   uvec4 res = textureGather(arg_1_arg_2, vec3(arg_3, float(arg_4)), int(1u));
 }
diff --git a/test/tint/builtins/gen/var/textureGather/1bf0ab.wgsl.expected.msl b/test/tint/builtins/gen/var/textureGather/1bf0ab.wgsl.expected.msl
index 5040fe0..7d8e52e 100644
--- a/test/tint/builtins/gen/var/textureGather/1bf0ab.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureGather/1bf0ab.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureGather_1bf0ab(texture2d_array<uint, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float2 arg_3 = float2(0.0f);
+  float2 arg_3 = float2(1.0f);
   uint arg_4 = 1u;
   uint4 res = tint_symbol_1.gather(tint_symbol_2, arg_3, arg_4, int2(0), component::y);
 }
diff --git a/test/tint/builtins/gen/var/textureGather/1bf0ab.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureGather/1bf0ab.wgsl.expected.spvasm
index 44eaae6..58681a8 100644
--- a/test/tint/builtins/gen/var/textureGather/1bf0ab.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureGather/1bf0ab.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 58
+; Bound: 59
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -46,57 +46,58 @@
        %void = OpTypeVoid
          %16 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
-         %21 = OpConstantNull %v2float
+    %float_1 = OpConstant %float 1
+         %22 = OpConstantComposite %v2float %float_1 %float_1
 %_ptr_Function_v2float = OpTypePointer Function %v2float
+         %25 = OpConstantNull %v2float
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %27 = OpConstantNull %uint
+         %29 = OpConstantNull %uint
      %v4uint = OpTypeVector %uint 4
-         %32 = OpTypeSampledImage %11
+         %34 = OpTypeSampledImage %11
     %v3float = OpTypeVector %float 3
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %43 = OpConstantNull %v4uint
-         %44 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %45 = OpConstantNull %v4uint
+         %46 = OpTypeFunction %v4float
 %textureGather_1bf0ab = OpFunction %void None %16
          %19 = OpLabel
-      %arg_3 = OpVariable %_ptr_Function_v2float Function %21
-      %arg_4 = OpVariable %_ptr_Function_uint Function %27
-        %res = OpVariable %_ptr_Function_v4uint Function %43
-               OpStore %arg_3 %21
+      %arg_3 = OpVariable %_ptr_Function_v2float Function %25
+      %arg_4 = OpVariable %_ptr_Function_uint Function %29
+        %res = OpVariable %_ptr_Function_v4uint Function %45
+               OpStore %arg_3 %22
                OpStore %arg_4 %uint_1
-         %30 = OpLoad %15 %arg_2
-         %31 = OpLoad %11 %arg_1
-         %33 = OpSampledImage %32 %31 %30
-         %35 = OpLoad %v2float %arg_3
-         %36 = OpCompositeExtract %float %35 0
-         %37 = OpCompositeExtract %float %35 1
-         %39 = OpLoad %uint %arg_4
-         %38 = OpConvertUToF %float %39
-         %40 = OpCompositeConstruct %v3float %36 %37 %38
-         %28 = OpImageGather %v4uint %33 %40 %uint_1
-               OpStore %res %28
+         %32 = OpLoad %15 %arg_2
+         %33 = OpLoad %11 %arg_1
+         %35 = OpSampledImage %34 %33 %32
+         %37 = OpLoad %v2float %arg_3
+         %38 = OpCompositeExtract %float %37 0
+         %39 = OpCompositeExtract %float %37 1
+         %41 = OpLoad %uint %arg_4
+         %40 = OpConvertUToF %float %41
+         %42 = OpCompositeConstruct %v3float %38 %39 %40
+         %30 = OpImageGather %v4uint %35 %42 %uint_1
+               OpStore %res %30
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %44
-         %46 = OpLabel
-         %47 = OpFunctionCall %void %textureGather_1bf0ab
+%vertex_main_inner = OpFunction %v4float None %46
+         %48 = OpLabel
+         %49 = OpFunctionCall %void %textureGather_1bf0ab
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %16
-         %49 = OpLabel
-         %50 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %50
+         %51 = OpLabel
+         %52 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %52
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %16
-         %53 = OpLabel
-         %54 = OpFunctionCall %void %textureGather_1bf0ab
+         %54 = OpLabel
+         %55 = OpFunctionCall %void %textureGather_1bf0ab
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %16
-         %56 = OpLabel
-         %57 = OpFunctionCall %void %textureGather_1bf0ab
+         %57 = OpLabel
+         %58 = OpFunctionCall %void %textureGather_1bf0ab
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureGather/1bf0ab.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureGather/1bf0ab.wgsl.expected.wgsl
index 75e5f39..d9a878d 100644
--- a/test/tint/builtins/gen/var/textureGather/1bf0ab.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/1bf0ab.wgsl.expected.wgsl
@@ -4,7 +4,7 @@
 
 fn textureGather_1bf0ab() {
   const arg_0 = 1u;
-  var arg_3 = vec2<f32>();
+  var arg_3 = vec2<f32>(1.0f);
   var arg_4 = 1u;
   var res : vec4<u32> = textureGather(arg_0, arg_1, arg_2, arg_3, arg_4);
 }
diff --git a/test/tint/builtins/gen/var/textureGather/1f7f6b.wgsl b/test/tint/builtins/gen/var/textureGather/1f7f6b.wgsl
index b88af9a..1b44370 100644
--- a/test/tint/builtins/gen/var/textureGather/1f7f6b.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/1f7f6b.wgsl
@@ -25,8 +25,8 @@
 
 // fn textureGather(texture: texture_depth_2d, sampler: sampler, coords: vec2<f32>, @const offset: vec2<i32>) -> vec4<f32>
 fn textureGather_1f7f6b() {
-  var arg_2 = vec2<f32>();
-  const arg_3 = vec2<i32>();
+  var arg_2 = vec2<f32>(1.f);
+  const arg_3 = vec2<i32>(1i);
   var res: vec4<f32> = textureGather(arg_0, arg_1, arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureGather/1f7f6b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/1f7f6b.wgsl.expected.dxc.hlsl
index 36412fa..e305a42 100644
--- a/test/tint/builtins/gen/var/textureGather/1f7f6b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/1f7f6b.wgsl.expected.dxc.hlsl
@@ -2,8 +2,8 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureGather_1f7f6b() {
-  float2 arg_2 = (0.0f).xx;
-  float4 res = arg_0.Gather(arg_1, arg_2, (0).xx);
+  float2 arg_2 = (1.0f).xx;
+  float4 res = arg_0.Gather(arg_1, arg_2, (1).xx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/textureGather/1f7f6b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/1f7f6b.wgsl.expected.fxc.hlsl
index 36412fa..e305a42 100644
--- a/test/tint/builtins/gen/var/textureGather/1f7f6b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/1f7f6b.wgsl.expected.fxc.hlsl
@@ -2,8 +2,8 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureGather_1f7f6b() {
-  float2 arg_2 = (0.0f).xx;
-  float4 res = arg_0.Gather(arg_1, arg_2, (0).xx);
+  float2 arg_2 = (1.0f).xx;
+  float4 res = arg_0.Gather(arg_1, arg_2, (1).xx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/textureGather/1f7f6b.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureGather/1f7f6b.wgsl.expected.glsl
index 1516248..ecf2cdb 100644
--- a/test/tint/builtins/gen/var/textureGather/1f7f6b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureGather/1f7f6b.wgsl.expected.glsl
@@ -3,8 +3,8 @@
 uniform highp sampler2DShadow arg_0_arg_1;
 
 void textureGather_1f7f6b() {
-  vec2 arg_2 = vec2(0.0f);
-  vec4 res = textureGatherOffset(arg_0_arg_1, arg_2, 0.0, ivec2(0));
+  vec2 arg_2 = vec2(1.0f);
+  vec4 res = textureGatherOffset(arg_0_arg_1, arg_2, 0.0, ivec2(1));
 }
 
 vec4 vertex_main() {
@@ -26,8 +26,8 @@
 uniform highp sampler2DShadow arg_0_arg_1;
 
 void textureGather_1f7f6b() {
-  vec2 arg_2 = vec2(0.0f);
-  vec4 res = textureGatherOffset(arg_0_arg_1, arg_2, 0.0, ivec2(0));
+  vec2 arg_2 = vec2(1.0f);
+  vec4 res = textureGatherOffset(arg_0_arg_1, arg_2, 0.0, ivec2(1));
 }
 
 void fragment_main() {
@@ -43,8 +43,8 @@
 uniform highp sampler2DShadow arg_0_arg_1;
 
 void textureGather_1f7f6b() {
-  vec2 arg_2 = vec2(0.0f);
-  vec4 res = textureGatherOffset(arg_0_arg_1, arg_2, 0.0, ivec2(0));
+  vec2 arg_2 = vec2(1.0f);
+  vec4 res = textureGatherOffset(arg_0_arg_1, arg_2, 0.0, ivec2(1));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/var/textureGather/1f7f6b.wgsl.expected.msl b/test/tint/builtins/gen/var/textureGather/1f7f6b.wgsl.expected.msl
index 5219d4f..ebfd105 100644
--- a/test/tint/builtins/gen/var/textureGather/1f7f6b.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureGather/1f7f6b.wgsl.expected.msl
@@ -2,8 +2,8 @@
 
 using namespace metal;
 void textureGather_1f7f6b(depth2d<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float2 arg_2 = float2(0.0f);
-  float4 res = tint_symbol_1.gather(tint_symbol_2, arg_2, int2(0));
+  float2 arg_2 = float2(1.0f);
+  float4 res = tint_symbol_1.gather(tint_symbol_2, arg_2, int2(1));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/textureGather/1f7f6b.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureGather/1f7f6b.wgsl.expected.spvasm
index d32d052..a591867 100644
--- a/test/tint/builtins/gen/var/textureGather/1f7f6b.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureGather/1f7f6b.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 49
+; Bound: 51
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -44,48 +44,50 @@
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
-         %20 = OpConstantNull %v2float
+    %float_1 = OpConstant %float 1
+         %21 = OpConstantComposite %v2float %float_1 %float_1
 %_ptr_Function_v2float = OpTypePointer Function %v2float
-         %26 = OpTypeSampledImage %11
+         %24 = OpConstantNull %v2float
+         %28 = OpTypeSampledImage %11
         %int = OpTypeInt 32 1
       %int_0 = OpConstant %int 0
       %v2int = OpTypeVector %int 2
-         %32 = OpConstantNull %v2int
+      %int_1 = OpConstant %int 1
+         %35 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %35 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %38 = OpTypeFunction %v4float
 %textureGather_1f7f6b = OpFunction %void None %15
          %18 = OpLabel
-      %arg_2 = OpVariable %_ptr_Function_v2float Function %20
+      %arg_2 = OpVariable %_ptr_Function_v2float Function %24
         %res = OpVariable %_ptr_Function_v4float Function %5
-               OpStore %arg_2 %20
-         %24 = OpLoad %14 %arg_1
-         %25 = OpLoad %11 %arg_0
-         %27 = OpSampledImage %26 %25 %24
-         %28 = OpLoad %v2float %arg_2
-         %23 = OpImageGather %v4float %27 %28 %int_0 ConstOffset %32
-               OpStore %res %23
+               OpStore %arg_2 %21
+         %26 = OpLoad %14 %arg_1
+         %27 = OpLoad %11 %arg_0
+         %29 = OpSampledImage %28 %27 %26
+         %30 = OpLoad %v2float %arg_2
+         %25 = OpImageGather %v4float %29 %30 %int_0 ConstOffset %35
+               OpStore %res %25
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %35
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureGather_1f7f6b
+%vertex_main_inner = OpFunction %v4float None %38
+         %40 = OpLabel
+         %41 = OpFunctionCall %void %textureGather_1f7f6b
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
-         %40 = OpLabel
-         %41 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %41
+         %43 = OpLabel
+         %44 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %44
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %15
-         %44 = OpLabel
-         %45 = OpFunctionCall %void %textureGather_1f7f6b
+         %46 = OpLabel
+         %47 = OpFunctionCall %void %textureGather_1f7f6b
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %15
-         %47 = OpLabel
-         %48 = OpFunctionCall %void %textureGather_1f7f6b
+         %49 = OpLabel
+         %50 = OpFunctionCall %void %textureGather_1f7f6b
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureGather/1f7f6b.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureGather/1f7f6b.wgsl.expected.wgsl
index 806fc3e..a44f565 100644
--- a/test/tint/builtins/gen/var/textureGather/1f7f6b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/1f7f6b.wgsl.expected.wgsl
@@ -3,8 +3,8 @@
 @group(1) @binding(1) var arg_1 : sampler;
 
 fn textureGather_1f7f6b() {
-  var arg_2 = vec2<f32>();
-  const arg_3 = vec2<i32>();
+  var arg_2 = vec2<f32>(1.0f);
+  const arg_3 = vec2<i32>(1i);
   var res : vec4<f32> = textureGather(arg_0, arg_1, arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureGather/22e930.wgsl b/test/tint/builtins/gen/var/textureGather/22e930.wgsl
index 0128b0e..507c665 100644
--- a/test/tint/builtins/gen/var/textureGather/22e930.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/22e930.wgsl
@@ -26,7 +26,7 @@
 // fn textureGather(@const component: i32, texture: texture_2d_array<f32>, sampler: sampler, coords: vec2<f32>, array_index: i32) -> vec4<f32>
 fn textureGather_22e930() {
   const arg_0 = 1i;
-  var arg_3 = vec2<f32>();
+  var arg_3 = vec2<f32>(1.f);
   var arg_4 = 1i;
   var res: vec4<f32> = textureGather(arg_0, arg_1, arg_2, arg_3, arg_4);
 }
diff --git a/test/tint/builtins/gen/var/textureGather/22e930.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/22e930.wgsl.expected.dxc.hlsl
index 7aa31c9..945645e 100644
--- a/test/tint/builtins/gen/var/textureGather/22e930.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/22e930.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_22e930() {
-  float2 arg_3 = (0.0f).xx;
+  float2 arg_3 = (1.0f).xx;
   int arg_4 = 1;
   float4 res = arg_1.GatherGreen(arg_2, float3(arg_3, float(arg_4)));
 }
diff --git a/test/tint/builtins/gen/var/textureGather/22e930.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/22e930.wgsl.expected.fxc.hlsl
index 7aa31c9..945645e 100644
--- a/test/tint/builtins/gen/var/textureGather/22e930.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/22e930.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_22e930() {
-  float2 arg_3 = (0.0f).xx;
+  float2 arg_3 = (1.0f).xx;
   int arg_4 = 1;
   float4 res = arg_1.GatherGreen(arg_2, float3(arg_3, float(arg_4)));
 }
diff --git a/test/tint/builtins/gen/var/textureGather/22e930.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureGather/22e930.wgsl.expected.glsl
index af84133..618b4d8 100644
--- a/test/tint/builtins/gen/var/textureGather/22e930.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureGather/22e930.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 uniform highp sampler2DArray arg_1_arg_2;
 
 void textureGather_22e930() {
-  vec2 arg_3 = vec2(0.0f);
+  vec2 arg_3 = vec2(1.0f);
   int arg_4 = 1;
   vec4 res = textureGather(arg_1_arg_2, vec3(arg_3, float(arg_4)), 1);
 }
@@ -27,7 +27,7 @@
 uniform highp sampler2DArray arg_1_arg_2;
 
 void textureGather_22e930() {
-  vec2 arg_3 = vec2(0.0f);
+  vec2 arg_3 = vec2(1.0f);
   int arg_4 = 1;
   vec4 res = textureGather(arg_1_arg_2, vec3(arg_3, float(arg_4)), 1);
 }
@@ -45,7 +45,7 @@
 uniform highp sampler2DArray arg_1_arg_2;
 
 void textureGather_22e930() {
-  vec2 arg_3 = vec2(0.0f);
+  vec2 arg_3 = vec2(1.0f);
   int arg_4 = 1;
   vec4 res = textureGather(arg_1_arg_2, vec3(arg_3, float(arg_4)), 1);
 }
diff --git a/test/tint/builtins/gen/var/textureGather/22e930.wgsl.expected.msl b/test/tint/builtins/gen/var/textureGather/22e930.wgsl.expected.msl
index d6b3f74..f24c163 100644
--- a/test/tint/builtins/gen/var/textureGather/22e930.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureGather/22e930.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureGather_22e930(texture2d_array<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float2 arg_3 = float2(0.0f);
+  float2 arg_3 = float2(1.0f);
   int arg_4 = 1;
   float4 res = tint_symbol_1.gather(tint_symbol_2, arg_3, arg_4, int2(0), component::y);
 }
diff --git a/test/tint/builtins/gen/var/textureGather/22e930.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureGather/22e930.wgsl.expected.spvasm
index dce3fe0..80bd120 100644
--- a/test/tint/builtins/gen/var/textureGather/22e930.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureGather/22e930.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 56
+; Bound: 57
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -45,56 +45,57 @@
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
-         %20 = OpConstantNull %v2float
+    %float_1 = OpConstant %float 1
+         %21 = OpConstantComposite %v2float %float_1 %float_1
 %_ptr_Function_v2float = OpTypePointer Function %v2float
+         %24 = OpConstantNull %v2float
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
-         %27 = OpConstantNull %int
-         %31 = OpTypeSampledImage %11
+         %29 = OpConstantNull %int
+         %33 = OpTypeSampledImage %11
     %v3float = OpTypeVector %float 3
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %42 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %44 = OpTypeFunction %v4float
 %textureGather_22e930 = OpFunction %void None %15
          %18 = OpLabel
-      %arg_3 = OpVariable %_ptr_Function_v2float Function %20
-      %arg_4 = OpVariable %_ptr_Function_int Function %27
+      %arg_3 = OpVariable %_ptr_Function_v2float Function %24
+      %arg_4 = OpVariable %_ptr_Function_int Function %29
         %res = OpVariable %_ptr_Function_v4float Function %5
-               OpStore %arg_3 %20
+               OpStore %arg_3 %21
                OpStore %arg_4 %int_1
-         %29 = OpLoad %14 %arg_2
-         %30 = OpLoad %11 %arg_1
-         %32 = OpSampledImage %31 %30 %29
-         %34 = OpLoad %v2float %arg_3
-         %35 = OpCompositeExtract %float %34 0
-         %36 = OpCompositeExtract %float %34 1
-         %38 = OpLoad %int %arg_4
-         %37 = OpConvertSToF %float %38
-         %39 = OpCompositeConstruct %v3float %35 %36 %37
-         %28 = OpImageGather %v4float %32 %39 %int_1
-               OpStore %res %28
+         %31 = OpLoad %14 %arg_2
+         %32 = OpLoad %11 %arg_1
+         %34 = OpSampledImage %33 %32 %31
+         %36 = OpLoad %v2float %arg_3
+         %37 = OpCompositeExtract %float %36 0
+         %38 = OpCompositeExtract %float %36 1
+         %40 = OpLoad %int %arg_4
+         %39 = OpConvertSToF %float %40
+         %41 = OpCompositeConstruct %v3float %37 %38 %39
+         %30 = OpImageGather %v4float %34 %41 %int_1
+               OpStore %res %30
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %42
-         %44 = OpLabel
-         %45 = OpFunctionCall %void %textureGather_22e930
+%vertex_main_inner = OpFunction %v4float None %44
+         %46 = OpLabel
+         %47 = OpFunctionCall %void %textureGather_22e930
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
-         %47 = OpLabel
-         %48 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %48
+         %49 = OpLabel
+         %50 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %50
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %15
-         %51 = OpLabel
-         %52 = OpFunctionCall %void %textureGather_22e930
+         %52 = OpLabel
+         %53 = OpFunctionCall %void %textureGather_22e930
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %15
-         %54 = OpLabel
-         %55 = OpFunctionCall %void %textureGather_22e930
+         %55 = OpLabel
+         %56 = OpFunctionCall %void %textureGather_22e930
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureGather/22e930.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureGather/22e930.wgsl.expected.wgsl
index f26e58c..e35eec4 100644
--- a/test/tint/builtins/gen/var/textureGather/22e930.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/22e930.wgsl.expected.wgsl
@@ -4,7 +4,7 @@
 
 fn textureGather_22e930() {
   const arg_0 = 1i;
-  var arg_3 = vec2<f32>();
+  var arg_3 = vec2<f32>(1.0f);
   var arg_4 = 1i;
   var res : vec4<f32> = textureGather(arg_0, arg_1, arg_2, arg_3, arg_4);
 }
diff --git a/test/tint/builtins/gen/var/textureGather/238ec4.wgsl b/test/tint/builtins/gen/var/textureGather/238ec4.wgsl
index 44f52d8..2e4fcc6 100644
--- a/test/tint/builtins/gen/var/textureGather/238ec4.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/238ec4.wgsl
@@ -26,9 +26,9 @@
 // fn textureGather(@const component: u32, texture: texture_2d_array<f32>, sampler: sampler, coords: vec2<f32>, array_index: u32, @const offset: vec2<i32>) -> vec4<f32>
 fn textureGather_238ec4() {
   const arg_0 = 1u;
-  var arg_3 = vec2<f32>();
+  var arg_3 = vec2<f32>(1.f);
   var arg_4 = 1u;
-  const arg_5 = vec2<i32>();
+  const arg_5 = vec2<i32>(1i);
   var res: vec4<f32> = textureGather(arg_0, arg_1, arg_2, arg_3, arg_4, arg_5);
 }
 
diff --git a/test/tint/builtins/gen/var/textureGather/238ec4.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/238ec4.wgsl.expected.dxc.hlsl
index e49c257..51aa04d 100644
--- a/test/tint/builtins/gen/var/textureGather/238ec4.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/238ec4.wgsl.expected.dxc.hlsl
@@ -2,9 +2,9 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_238ec4() {
-  float2 arg_3 = (0.0f).xx;
+  float2 arg_3 = (1.0f).xx;
   uint arg_4 = 1u;
-  float4 res = arg_1.GatherGreen(arg_2, float3(arg_3, float(arg_4)), (0).xx);
+  float4 res = arg_1.GatherGreen(arg_2, float3(arg_3, float(arg_4)), (1).xx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/textureGather/238ec4.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/238ec4.wgsl.expected.fxc.hlsl
index e49c257..51aa04d 100644
--- a/test/tint/builtins/gen/var/textureGather/238ec4.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/238ec4.wgsl.expected.fxc.hlsl
@@ -2,9 +2,9 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_238ec4() {
-  float2 arg_3 = (0.0f).xx;
+  float2 arg_3 = (1.0f).xx;
   uint arg_4 = 1u;
-  float4 res = arg_1.GatherGreen(arg_2, float3(arg_3, float(arg_4)), (0).xx);
+  float4 res = arg_1.GatherGreen(arg_2, float3(arg_3, float(arg_4)), (1).xx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/textureGather/238ec4.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureGather/238ec4.wgsl.expected.glsl
index 680cf42..e7fb956 100644
--- a/test/tint/builtins/gen/var/textureGather/238ec4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureGather/238ec4.wgsl.expected.glsl
@@ -3,9 +3,9 @@
 uniform highp sampler2DArray arg_1_arg_2;
 
 void textureGather_238ec4() {
-  vec2 arg_3 = vec2(0.0f);
+  vec2 arg_3 = vec2(1.0f);
   uint arg_4 = 1u;
-  vec4 res = textureGatherOffset(arg_1_arg_2, vec3(arg_3, float(arg_4)), ivec2(0), int(1u));
+  vec4 res = textureGatherOffset(arg_1_arg_2, vec3(arg_3, float(arg_4)), ivec2(1), int(1u));
 }
 
 vec4 vertex_main() {
@@ -27,9 +27,9 @@
 uniform highp sampler2DArray arg_1_arg_2;
 
 void textureGather_238ec4() {
-  vec2 arg_3 = vec2(0.0f);
+  vec2 arg_3 = vec2(1.0f);
   uint arg_4 = 1u;
-  vec4 res = textureGatherOffset(arg_1_arg_2, vec3(arg_3, float(arg_4)), ivec2(0), int(1u));
+  vec4 res = textureGatherOffset(arg_1_arg_2, vec3(arg_3, float(arg_4)), ivec2(1), int(1u));
 }
 
 void fragment_main() {
@@ -45,9 +45,9 @@
 uniform highp sampler2DArray arg_1_arg_2;
 
 void textureGather_238ec4() {
-  vec2 arg_3 = vec2(0.0f);
+  vec2 arg_3 = vec2(1.0f);
   uint arg_4 = 1u;
-  vec4 res = textureGatherOffset(arg_1_arg_2, vec3(arg_3, float(arg_4)), ivec2(0), int(1u));
+  vec4 res = textureGatherOffset(arg_1_arg_2, vec3(arg_3, float(arg_4)), ivec2(1), int(1u));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/var/textureGather/238ec4.wgsl.expected.msl b/test/tint/builtins/gen/var/textureGather/238ec4.wgsl.expected.msl
index eeeca6f..51590a7 100644
--- a/test/tint/builtins/gen/var/textureGather/238ec4.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureGather/238ec4.wgsl.expected.msl
@@ -2,9 +2,9 @@
 
 using namespace metal;
 void textureGather_238ec4(texture2d_array<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float2 arg_3 = float2(0.0f);
+  float2 arg_3 = float2(1.0f);
   uint arg_4 = 1u;
-  float4 res = tint_symbol_1.gather(tint_symbol_2, arg_3, arg_4, int2(0), component::y);
+  float4 res = tint_symbol_1.gather(tint_symbol_2, arg_3, arg_4, int2(1), component::y);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/textureGather/238ec4.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureGather/238ec4.wgsl.expected.spvasm
index 16698c1..6eca3ae 100644
--- a/test/tint/builtins/gen/var/textureGather/238ec4.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureGather/238ec4.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 59
+; Bound: 61
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -45,59 +45,61 @@
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
-         %20 = OpConstantNull %v2float
+    %float_1 = OpConstant %float 1
+         %21 = OpConstantComposite %v2float %float_1 %float_1
 %_ptr_Function_v2float = OpTypePointer Function %v2float
+         %24 = OpConstantNull %v2float
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %27 = OpConstantNull %uint
-         %31 = OpTypeSampledImage %11
+         %29 = OpConstantNull %uint
+         %33 = OpTypeSampledImage %11
     %v3float = OpTypeVector %float 3
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
-         %42 = OpConstantNull %v2int
+      %int_1 = OpConstant %int 1
+         %45 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %45 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %48 = OpTypeFunction %v4float
 %textureGather_238ec4 = OpFunction %void None %15
          %18 = OpLabel
-      %arg_3 = OpVariable %_ptr_Function_v2float Function %20
-      %arg_4 = OpVariable %_ptr_Function_uint Function %27
+      %arg_3 = OpVariable %_ptr_Function_v2float Function %24
+      %arg_4 = OpVariable %_ptr_Function_uint Function %29
         %res = OpVariable %_ptr_Function_v4float Function %5
-               OpStore %arg_3 %20
+               OpStore %arg_3 %21
                OpStore %arg_4 %uint_1
-         %29 = OpLoad %14 %arg_2
-         %30 = OpLoad %11 %arg_1
-         %32 = OpSampledImage %31 %30 %29
-         %34 = OpLoad %v2float %arg_3
-         %35 = OpCompositeExtract %float %34 0
-         %36 = OpCompositeExtract %float %34 1
-         %38 = OpLoad %uint %arg_4
-         %37 = OpConvertUToF %float %38
-         %39 = OpCompositeConstruct %v3float %35 %36 %37
-         %28 = OpImageGather %v4float %32 %39 %uint_1 ConstOffset %42
-               OpStore %res %28
+         %31 = OpLoad %14 %arg_2
+         %32 = OpLoad %11 %arg_1
+         %34 = OpSampledImage %33 %32 %31
+         %36 = OpLoad %v2float %arg_3
+         %37 = OpCompositeExtract %float %36 0
+         %38 = OpCompositeExtract %float %36 1
+         %40 = OpLoad %uint %arg_4
+         %39 = OpConvertUToF %float %40
+         %41 = OpCompositeConstruct %v3float %37 %38 %39
+         %30 = OpImageGather %v4float %34 %41 %uint_1 ConstOffset %45
+               OpStore %res %30
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %45
-         %47 = OpLabel
-         %48 = OpFunctionCall %void %textureGather_238ec4
+%vertex_main_inner = OpFunction %v4float None %48
+         %50 = OpLabel
+         %51 = OpFunctionCall %void %textureGather_238ec4
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
-         %50 = OpLabel
-         %51 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %51
+         %53 = OpLabel
+         %54 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %54
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %15
-         %54 = OpLabel
-         %55 = OpFunctionCall %void %textureGather_238ec4
+         %56 = OpLabel
+         %57 = OpFunctionCall %void %textureGather_238ec4
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %15
-         %57 = OpLabel
-         %58 = OpFunctionCall %void %textureGather_238ec4
+         %59 = OpLabel
+         %60 = OpFunctionCall %void %textureGather_238ec4
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureGather/238ec4.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureGather/238ec4.wgsl.expected.wgsl
index 1e41345..bc1135b 100644
--- a/test/tint/builtins/gen/var/textureGather/238ec4.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/238ec4.wgsl.expected.wgsl
@@ -4,9 +4,9 @@
 
 fn textureGather_238ec4() {
   const arg_0 = 1u;
-  var arg_3 = vec2<f32>();
+  var arg_3 = vec2<f32>(1.0f);
   var arg_4 = 1u;
-  const arg_5 = vec2<i32>();
+  const arg_5 = vec2<i32>(1i);
   var res : vec4<f32> = textureGather(arg_0, arg_1, arg_2, arg_3, arg_4, arg_5);
 }
 
diff --git a/test/tint/builtins/gen/var/textureGather/24b0bd.wgsl b/test/tint/builtins/gen/var/textureGather/24b0bd.wgsl
index ec58dac..d6a5989 100644
--- a/test/tint/builtins/gen/var/textureGather/24b0bd.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/24b0bd.wgsl
@@ -26,7 +26,7 @@
 // fn textureGather(@const component: u32, texture: texture_2d_array<f32>, sampler: sampler, coords: vec2<f32>, array_index: i32) -> vec4<f32>
 fn textureGather_24b0bd() {
   const arg_0 = 1u;
-  var arg_3 = vec2<f32>();
+  var arg_3 = vec2<f32>(1.f);
   var arg_4 = 1i;
   var res: vec4<f32> = textureGather(arg_0, arg_1, arg_2, arg_3, arg_4);
 }
diff --git a/test/tint/builtins/gen/var/textureGather/24b0bd.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/24b0bd.wgsl.expected.dxc.hlsl
index cd9fc73..832e6ef 100644
--- a/test/tint/builtins/gen/var/textureGather/24b0bd.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/24b0bd.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_24b0bd() {
-  float2 arg_3 = (0.0f).xx;
+  float2 arg_3 = (1.0f).xx;
   int arg_4 = 1;
   float4 res = arg_1.GatherGreen(arg_2, float3(arg_3, float(arg_4)));
 }
diff --git a/test/tint/builtins/gen/var/textureGather/24b0bd.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/24b0bd.wgsl.expected.fxc.hlsl
index cd9fc73..832e6ef 100644
--- a/test/tint/builtins/gen/var/textureGather/24b0bd.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/24b0bd.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_24b0bd() {
-  float2 arg_3 = (0.0f).xx;
+  float2 arg_3 = (1.0f).xx;
   int arg_4 = 1;
   float4 res = arg_1.GatherGreen(arg_2, float3(arg_3, float(arg_4)));
 }
diff --git a/test/tint/builtins/gen/var/textureGather/24b0bd.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureGather/24b0bd.wgsl.expected.glsl
index 9bb3522..a1159f2 100644
--- a/test/tint/builtins/gen/var/textureGather/24b0bd.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureGather/24b0bd.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 uniform highp sampler2DArray arg_1_arg_2;
 
 void textureGather_24b0bd() {
-  vec2 arg_3 = vec2(0.0f);
+  vec2 arg_3 = vec2(1.0f);
   int arg_4 = 1;
   vec4 res = textureGather(arg_1_arg_2, vec3(arg_3, float(arg_4)), int(1u));
 }
@@ -27,7 +27,7 @@
 uniform highp sampler2DArray arg_1_arg_2;
 
 void textureGather_24b0bd() {
-  vec2 arg_3 = vec2(0.0f);
+  vec2 arg_3 = vec2(1.0f);
   int arg_4 = 1;
   vec4 res = textureGather(arg_1_arg_2, vec3(arg_3, float(arg_4)), int(1u));
 }
@@ -45,7 +45,7 @@
 uniform highp sampler2DArray arg_1_arg_2;
 
 void textureGather_24b0bd() {
-  vec2 arg_3 = vec2(0.0f);
+  vec2 arg_3 = vec2(1.0f);
   int arg_4 = 1;
   vec4 res = textureGather(arg_1_arg_2, vec3(arg_3, float(arg_4)), int(1u));
 }
diff --git a/test/tint/builtins/gen/var/textureGather/24b0bd.wgsl.expected.msl b/test/tint/builtins/gen/var/textureGather/24b0bd.wgsl.expected.msl
index 399253a..831c736 100644
--- a/test/tint/builtins/gen/var/textureGather/24b0bd.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureGather/24b0bd.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureGather_24b0bd(texture2d_array<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float2 arg_3 = float2(0.0f);
+  float2 arg_3 = float2(1.0f);
   int arg_4 = 1;
   float4 res = tint_symbol_1.gather(tint_symbol_2, arg_3, arg_4, int2(0), component::y);
 }
diff --git a/test/tint/builtins/gen/var/textureGather/24b0bd.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureGather/24b0bd.wgsl.expected.spvasm
index afb0711..98ce9c6 100644
--- a/test/tint/builtins/gen/var/textureGather/24b0bd.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureGather/24b0bd.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 58
+; Bound: 59
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -45,58 +45,59 @@
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
-         %20 = OpConstantNull %v2float
+    %float_1 = OpConstant %float 1
+         %21 = OpConstantComposite %v2float %float_1 %float_1
 %_ptr_Function_v2float = OpTypePointer Function %v2float
+         %24 = OpConstantNull %v2float
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
-         %27 = OpConstantNull %int
-         %31 = OpTypeSampledImage %11
+         %29 = OpConstantNull %int
+         %33 = OpTypeSampledImage %11
     %v3float = OpTypeVector %float 3
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %44 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %46 = OpTypeFunction %v4float
 %textureGather_24b0bd = OpFunction %void None %15
          %18 = OpLabel
-      %arg_3 = OpVariable %_ptr_Function_v2float Function %20
-      %arg_4 = OpVariable %_ptr_Function_int Function %27
+      %arg_3 = OpVariable %_ptr_Function_v2float Function %24
+      %arg_4 = OpVariable %_ptr_Function_int Function %29
         %res = OpVariable %_ptr_Function_v4float Function %5
-               OpStore %arg_3 %20
+               OpStore %arg_3 %21
                OpStore %arg_4 %int_1
-         %29 = OpLoad %14 %arg_2
-         %30 = OpLoad %11 %arg_1
-         %32 = OpSampledImage %31 %30 %29
-         %34 = OpLoad %v2float %arg_3
-         %35 = OpCompositeExtract %float %34 0
-         %36 = OpCompositeExtract %float %34 1
-         %38 = OpLoad %int %arg_4
-         %37 = OpConvertSToF %float %38
-         %39 = OpCompositeConstruct %v3float %35 %36 %37
-         %28 = OpImageGather %v4float %32 %39 %uint_1
-               OpStore %res %28
+         %31 = OpLoad %14 %arg_2
+         %32 = OpLoad %11 %arg_1
+         %34 = OpSampledImage %33 %32 %31
+         %36 = OpLoad %v2float %arg_3
+         %37 = OpCompositeExtract %float %36 0
+         %38 = OpCompositeExtract %float %36 1
+         %40 = OpLoad %int %arg_4
+         %39 = OpConvertSToF %float %40
+         %41 = OpCompositeConstruct %v3float %37 %38 %39
+         %30 = OpImageGather %v4float %34 %41 %uint_1
+               OpStore %res %30
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %44
-         %46 = OpLabel
-         %47 = OpFunctionCall %void %textureGather_24b0bd
+%vertex_main_inner = OpFunction %v4float None %46
+         %48 = OpLabel
+         %49 = OpFunctionCall %void %textureGather_24b0bd
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
-         %49 = OpLabel
-         %50 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %50
+         %51 = OpLabel
+         %52 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %52
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %15
-         %53 = OpLabel
-         %54 = OpFunctionCall %void %textureGather_24b0bd
+         %54 = OpLabel
+         %55 = OpFunctionCall %void %textureGather_24b0bd
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %15
-         %56 = OpLabel
-         %57 = OpFunctionCall %void %textureGather_24b0bd
+         %57 = OpLabel
+         %58 = OpFunctionCall %void %textureGather_24b0bd
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureGather/24b0bd.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureGather/24b0bd.wgsl.expected.wgsl
index 55a88fe..84b2988 100644
--- a/test/tint/builtins/gen/var/textureGather/24b0bd.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/24b0bd.wgsl.expected.wgsl
@@ -4,7 +4,7 @@
 
 fn textureGather_24b0bd() {
   const arg_0 = 1u;
-  var arg_3 = vec2<f32>();
+  var arg_3 = vec2<f32>(1.0f);
   var arg_4 = 1i;
   var res : vec4<f32> = textureGather(arg_0, arg_1, arg_2, arg_3, arg_4);
 }
diff --git a/test/tint/builtins/gen/var/textureGather/269250.wgsl b/test/tint/builtins/gen/var/textureGather/269250.wgsl
index 8297c39..ffaca0e 100644
--- a/test/tint/builtins/gen/var/textureGather/269250.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/269250.wgsl
@@ -26,7 +26,7 @@
 // fn textureGather(@const component: u32, texture: texture_2d_array<i32>, sampler: sampler, coords: vec2<f32>, array_index: u32) -> vec4<i32>
 fn textureGather_269250() {
   const arg_0 = 1u;
-  var arg_3 = vec2<f32>();
+  var arg_3 = vec2<f32>(1.f);
   var arg_4 = 1u;
   var res: vec4<i32> = textureGather(arg_0, arg_1, arg_2, arg_3, arg_4);
 }
diff --git a/test/tint/builtins/gen/var/textureGather/269250.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/269250.wgsl.expected.dxc.hlsl
index 6559297..fc18377 100644
--- a/test/tint/builtins/gen/var/textureGather/269250.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/269250.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_269250() {
-  float2 arg_3 = (0.0f).xx;
+  float2 arg_3 = (1.0f).xx;
   uint arg_4 = 1u;
   int4 res = arg_1.GatherGreen(arg_2, float3(arg_3, float(arg_4)));
 }
diff --git a/test/tint/builtins/gen/var/textureGather/269250.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/269250.wgsl.expected.fxc.hlsl
index 6559297..fc18377 100644
--- a/test/tint/builtins/gen/var/textureGather/269250.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/269250.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_269250() {
-  float2 arg_3 = (0.0f).xx;
+  float2 arg_3 = (1.0f).xx;
   uint arg_4 = 1u;
   int4 res = arg_1.GatherGreen(arg_2, float3(arg_3, float(arg_4)));
 }
diff --git a/test/tint/builtins/gen/var/textureGather/269250.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureGather/269250.wgsl.expected.glsl
index f3f577a..bf6833a 100644
--- a/test/tint/builtins/gen/var/textureGather/269250.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureGather/269250.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 uniform highp isampler2DArray arg_1_arg_2;
 
 void textureGather_269250() {
-  vec2 arg_3 = vec2(0.0f);
+  vec2 arg_3 = vec2(1.0f);
   uint arg_4 = 1u;
   ivec4 res = textureGather(arg_1_arg_2, vec3(arg_3, float(arg_4)), int(1u));
 }
@@ -27,7 +27,7 @@
 uniform highp isampler2DArray arg_1_arg_2;
 
 void textureGather_269250() {
-  vec2 arg_3 = vec2(0.0f);
+  vec2 arg_3 = vec2(1.0f);
   uint arg_4 = 1u;
   ivec4 res = textureGather(arg_1_arg_2, vec3(arg_3, float(arg_4)), int(1u));
 }
@@ -45,7 +45,7 @@
 uniform highp isampler2DArray arg_1_arg_2;
 
 void textureGather_269250() {
-  vec2 arg_3 = vec2(0.0f);
+  vec2 arg_3 = vec2(1.0f);
   uint arg_4 = 1u;
   ivec4 res = textureGather(arg_1_arg_2, vec3(arg_3, float(arg_4)), int(1u));
 }
diff --git a/test/tint/builtins/gen/var/textureGather/269250.wgsl.expected.msl b/test/tint/builtins/gen/var/textureGather/269250.wgsl.expected.msl
index 1e8f39c..6c96964 100644
--- a/test/tint/builtins/gen/var/textureGather/269250.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureGather/269250.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureGather_269250(texture2d_array<int, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float2 arg_3 = float2(0.0f);
+  float2 arg_3 = float2(1.0f);
   uint arg_4 = 1u;
   int4 res = tint_symbol_1.gather(tint_symbol_2, arg_3, arg_4, int2(0), component::y);
 }
diff --git a/test/tint/builtins/gen/var/textureGather/269250.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureGather/269250.wgsl.expected.spvasm
index 36bdfab..030eb45 100644
--- a/test/tint/builtins/gen/var/textureGather/269250.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureGather/269250.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 59
+; Bound: 60
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -46,58 +46,59 @@
        %void = OpTypeVoid
          %16 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
-         %21 = OpConstantNull %v2float
+    %float_1 = OpConstant %float 1
+         %22 = OpConstantComposite %v2float %float_1 %float_1
 %_ptr_Function_v2float = OpTypePointer Function %v2float
+         %25 = OpConstantNull %v2float
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %28 = OpConstantNull %uint
+         %30 = OpConstantNull %uint
       %v4int = OpTypeVector %int 4
-         %33 = OpTypeSampledImage %11
+         %35 = OpTypeSampledImage %11
     %v3float = OpTypeVector %float 3
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %44 = OpConstantNull %v4int
-         %45 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %46 = OpConstantNull %v4int
+         %47 = OpTypeFunction %v4float
 %textureGather_269250 = OpFunction %void None %16
          %19 = OpLabel
-      %arg_3 = OpVariable %_ptr_Function_v2float Function %21
-      %arg_4 = OpVariable %_ptr_Function_uint Function %28
-        %res = OpVariable %_ptr_Function_v4int Function %44
-               OpStore %arg_3 %21
+      %arg_3 = OpVariable %_ptr_Function_v2float Function %25
+      %arg_4 = OpVariable %_ptr_Function_uint Function %30
+        %res = OpVariable %_ptr_Function_v4int Function %46
+               OpStore %arg_3 %22
                OpStore %arg_4 %uint_1
-         %31 = OpLoad %15 %arg_2
-         %32 = OpLoad %11 %arg_1
-         %34 = OpSampledImage %33 %32 %31
-         %36 = OpLoad %v2float %arg_3
-         %37 = OpCompositeExtract %float %36 0
-         %38 = OpCompositeExtract %float %36 1
-         %40 = OpLoad %uint %arg_4
-         %39 = OpConvertUToF %float %40
-         %41 = OpCompositeConstruct %v3float %37 %38 %39
-         %29 = OpImageGather %v4int %34 %41 %uint_1
-               OpStore %res %29
+         %33 = OpLoad %15 %arg_2
+         %34 = OpLoad %11 %arg_1
+         %36 = OpSampledImage %35 %34 %33
+         %38 = OpLoad %v2float %arg_3
+         %39 = OpCompositeExtract %float %38 0
+         %40 = OpCompositeExtract %float %38 1
+         %42 = OpLoad %uint %arg_4
+         %41 = OpConvertUToF %float %42
+         %43 = OpCompositeConstruct %v3float %39 %40 %41
+         %31 = OpImageGather %v4int %36 %43 %uint_1
+               OpStore %res %31
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %45
-         %47 = OpLabel
-         %48 = OpFunctionCall %void %textureGather_269250
+%vertex_main_inner = OpFunction %v4float None %47
+         %49 = OpLabel
+         %50 = OpFunctionCall %void %textureGather_269250
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %16
-         %50 = OpLabel
-         %51 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %51
+         %52 = OpLabel
+         %53 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %53
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %16
-         %54 = OpLabel
-         %55 = OpFunctionCall %void %textureGather_269250
+         %55 = OpLabel
+         %56 = OpFunctionCall %void %textureGather_269250
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %16
-         %57 = OpLabel
-         %58 = OpFunctionCall %void %textureGather_269250
+         %58 = OpLabel
+         %59 = OpFunctionCall %void %textureGather_269250
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureGather/269250.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureGather/269250.wgsl.expected.wgsl
index e2c82c1..c6d0fba 100644
--- a/test/tint/builtins/gen/var/textureGather/269250.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/269250.wgsl.expected.wgsl
@@ -4,7 +4,7 @@
 
 fn textureGather_269250() {
   const arg_0 = 1u;
-  var arg_3 = vec2<f32>();
+  var arg_3 = vec2<f32>(1.0f);
   var arg_4 = 1u;
   var res : vec4<i32> = textureGather(arg_0, arg_1, arg_2, arg_3, arg_4);
 }
diff --git a/test/tint/builtins/gen/var/textureGather/2a4f40.wgsl b/test/tint/builtins/gen/var/textureGather/2a4f40.wgsl
index c2be9ee..13c07d5 100644
--- a/test/tint/builtins/gen/var/textureGather/2a4f40.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/2a4f40.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureGather(texture: texture_depth_2d_array, sampler: sampler, coords: vec2<f32>, array_index: u32) -> vec4<f32>
 fn textureGather_2a4f40() {
-  var arg_2 = vec2<f32>();
+  var arg_2 = vec2<f32>(1.f);
   var arg_3 = 1u;
   var res: vec4<f32> = textureGather(arg_0, arg_1, arg_2, arg_3);
 }
diff --git a/test/tint/builtins/gen/var/textureGather/2a4f40.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/2a4f40.wgsl.expected.dxc.hlsl
index 1b3539d..14b7917 100644
--- a/test/tint/builtins/gen/var/textureGather/2a4f40.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/2a4f40.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureGather_2a4f40() {
-  float2 arg_2 = (0.0f).xx;
+  float2 arg_2 = (1.0f).xx;
   uint arg_3 = 1u;
   float4 res = arg_0.Gather(arg_1, float3(arg_2, float(arg_3)));
 }
diff --git a/test/tint/builtins/gen/var/textureGather/2a4f40.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/2a4f40.wgsl.expected.fxc.hlsl
index 1b3539d..14b7917 100644
--- a/test/tint/builtins/gen/var/textureGather/2a4f40.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/2a4f40.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureGather_2a4f40() {
-  float2 arg_2 = (0.0f).xx;
+  float2 arg_2 = (1.0f).xx;
   uint arg_3 = 1u;
   float4 res = arg_0.Gather(arg_1, float3(arg_2, float(arg_3)));
 }
diff --git a/test/tint/builtins/gen/var/textureGather/2a4f40.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureGather/2a4f40.wgsl.expected.glsl
index bdf959d..347d5d8 100644
--- a/test/tint/builtins/gen/var/textureGather/2a4f40.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureGather/2a4f40.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 uniform highp sampler2DArrayShadow arg_0_arg_1;
 
 void textureGather_2a4f40() {
-  vec2 arg_2 = vec2(0.0f);
+  vec2 arg_2 = vec2(1.0f);
   uint arg_3 = 1u;
   vec4 res = textureGather(arg_0_arg_1, vec3(arg_2, float(arg_3)), 0.0);
 }
@@ -27,7 +27,7 @@
 uniform highp sampler2DArrayShadow arg_0_arg_1;
 
 void textureGather_2a4f40() {
-  vec2 arg_2 = vec2(0.0f);
+  vec2 arg_2 = vec2(1.0f);
   uint arg_3 = 1u;
   vec4 res = textureGather(arg_0_arg_1, vec3(arg_2, float(arg_3)), 0.0);
 }
@@ -45,7 +45,7 @@
 uniform highp sampler2DArrayShadow arg_0_arg_1;
 
 void textureGather_2a4f40() {
-  vec2 arg_2 = vec2(0.0f);
+  vec2 arg_2 = vec2(1.0f);
   uint arg_3 = 1u;
   vec4 res = textureGather(arg_0_arg_1, vec3(arg_2, float(arg_3)), 0.0);
 }
diff --git a/test/tint/builtins/gen/var/textureGather/2a4f40.wgsl.expected.msl b/test/tint/builtins/gen/var/textureGather/2a4f40.wgsl.expected.msl
index e29dd88..2dab350 100644
--- a/test/tint/builtins/gen/var/textureGather/2a4f40.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureGather/2a4f40.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureGather_2a4f40(depth2d_array<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float2 arg_2 = float2(0.0f);
+  float2 arg_2 = float2(1.0f);
   uint arg_3 = 1u;
   float4 res = tint_symbol_1.gather(tint_symbol_2, arg_2, arg_3);
 }
diff --git a/test/tint/builtins/gen/var/textureGather/2a4f40.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureGather/2a4f40.wgsl.expected.spvasm
index f21c774..fcbc8b3 100644
--- a/test/tint/builtins/gen/var/textureGather/2a4f40.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureGather/2a4f40.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 58
+; Bound: 59
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -45,58 +45,59 @@
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
-         %20 = OpConstantNull %v2float
+    %float_1 = OpConstant %float 1
+         %21 = OpConstantComposite %v2float %float_1 %float_1
 %_ptr_Function_v2float = OpTypePointer Function %v2float
+         %24 = OpConstantNull %v2float
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %27 = OpConstantNull %uint
-         %31 = OpTypeSampledImage %11
+         %29 = OpConstantNull %uint
+         %33 = OpTypeSampledImage %11
     %v3float = OpTypeVector %float 3
         %int = OpTypeInt 32 1
       %int_0 = OpConstant %int 0
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %44 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %46 = OpTypeFunction %v4float
 %textureGather_2a4f40 = OpFunction %void None %15
          %18 = OpLabel
-      %arg_2 = OpVariable %_ptr_Function_v2float Function %20
-      %arg_3 = OpVariable %_ptr_Function_uint Function %27
+      %arg_2 = OpVariable %_ptr_Function_v2float Function %24
+      %arg_3 = OpVariable %_ptr_Function_uint Function %29
         %res = OpVariable %_ptr_Function_v4float Function %5
-               OpStore %arg_2 %20
+               OpStore %arg_2 %21
                OpStore %arg_3 %uint_1
-         %29 = OpLoad %14 %arg_1
-         %30 = OpLoad %11 %arg_0
-         %32 = OpSampledImage %31 %30 %29
-         %34 = OpLoad %v2float %arg_2
-         %35 = OpCompositeExtract %float %34 0
-         %36 = OpCompositeExtract %float %34 1
-         %38 = OpLoad %uint %arg_3
-         %37 = OpConvertUToF %float %38
-         %39 = OpCompositeConstruct %v3float %35 %36 %37
-         %28 = OpImageGather %v4float %32 %39 %int_0
-               OpStore %res %28
+         %31 = OpLoad %14 %arg_1
+         %32 = OpLoad %11 %arg_0
+         %34 = OpSampledImage %33 %32 %31
+         %36 = OpLoad %v2float %arg_2
+         %37 = OpCompositeExtract %float %36 0
+         %38 = OpCompositeExtract %float %36 1
+         %40 = OpLoad %uint %arg_3
+         %39 = OpConvertUToF %float %40
+         %41 = OpCompositeConstruct %v3float %37 %38 %39
+         %30 = OpImageGather %v4float %34 %41 %int_0
+               OpStore %res %30
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %44
-         %46 = OpLabel
-         %47 = OpFunctionCall %void %textureGather_2a4f40
+%vertex_main_inner = OpFunction %v4float None %46
+         %48 = OpLabel
+         %49 = OpFunctionCall %void %textureGather_2a4f40
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
-         %49 = OpLabel
-         %50 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %50
+         %51 = OpLabel
+         %52 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %52
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %15
-         %53 = OpLabel
-         %54 = OpFunctionCall %void %textureGather_2a4f40
+         %54 = OpLabel
+         %55 = OpFunctionCall %void %textureGather_2a4f40
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %15
-         %56 = OpLabel
-         %57 = OpFunctionCall %void %textureGather_2a4f40
+         %57 = OpLabel
+         %58 = OpFunctionCall %void %textureGather_2a4f40
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureGather/2a4f40.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureGather/2a4f40.wgsl.expected.wgsl
index 2b827fd..e86a396 100644
--- a/test/tint/builtins/gen/var/textureGather/2a4f40.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/2a4f40.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(1) var arg_1 : sampler;
 
 fn textureGather_2a4f40() {
-  var arg_2 = vec2<f32>();
+  var arg_2 = vec2<f32>(1.0f);
   var arg_3 = 1u;
   var res : vec4<f32> = textureGather(arg_0, arg_1, arg_2, arg_3);
 }
diff --git a/test/tint/builtins/gen/var/textureGather/2cc066.wgsl b/test/tint/builtins/gen/var/textureGather/2cc066.wgsl
index 997c0ad..c423d01 100644
--- a/test/tint/builtins/gen/var/textureGather/2cc066.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/2cc066.wgsl
@@ -26,7 +26,7 @@
 // fn textureGather(@const component: i32, texture: texture_2d_array<u32>, sampler: sampler, coords: vec2<f32>, array_index: i32) -> vec4<u32>
 fn textureGather_2cc066() {
   const arg_0 = 1i;
-  var arg_3 = vec2<f32>();
+  var arg_3 = vec2<f32>(1.f);
   var arg_4 = 1i;
   var res: vec4<u32> = textureGather(arg_0, arg_1, arg_2, arg_3, arg_4);
 }
diff --git a/test/tint/builtins/gen/var/textureGather/2cc066.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/2cc066.wgsl.expected.dxc.hlsl
index 3d64cb3..9f48ff9 100644
--- a/test/tint/builtins/gen/var/textureGather/2cc066.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/2cc066.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_2cc066() {
-  float2 arg_3 = (0.0f).xx;
+  float2 arg_3 = (1.0f).xx;
   int arg_4 = 1;
   uint4 res = arg_1.GatherGreen(arg_2, float3(arg_3, float(arg_4)));
 }
diff --git a/test/tint/builtins/gen/var/textureGather/2cc066.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/2cc066.wgsl.expected.fxc.hlsl
index 3d64cb3..9f48ff9 100644
--- a/test/tint/builtins/gen/var/textureGather/2cc066.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/2cc066.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_2cc066() {
-  float2 arg_3 = (0.0f).xx;
+  float2 arg_3 = (1.0f).xx;
   int arg_4 = 1;
   uint4 res = arg_1.GatherGreen(arg_2, float3(arg_3, float(arg_4)));
 }
diff --git a/test/tint/builtins/gen/var/textureGather/2cc066.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureGather/2cc066.wgsl.expected.glsl
index 42cedd1..416f378 100644
--- a/test/tint/builtins/gen/var/textureGather/2cc066.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureGather/2cc066.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 uniform highp usampler2DArray arg_1_arg_2;
 
 void textureGather_2cc066() {
-  vec2 arg_3 = vec2(0.0f);
+  vec2 arg_3 = vec2(1.0f);
   int arg_4 = 1;
   uvec4 res = textureGather(arg_1_arg_2, vec3(arg_3, float(arg_4)), 1);
 }
@@ -27,7 +27,7 @@
 uniform highp usampler2DArray arg_1_arg_2;
 
 void textureGather_2cc066() {
-  vec2 arg_3 = vec2(0.0f);
+  vec2 arg_3 = vec2(1.0f);
   int arg_4 = 1;
   uvec4 res = textureGather(arg_1_arg_2, vec3(arg_3, float(arg_4)), 1);
 }
@@ -45,7 +45,7 @@
 uniform highp usampler2DArray arg_1_arg_2;
 
 void textureGather_2cc066() {
-  vec2 arg_3 = vec2(0.0f);
+  vec2 arg_3 = vec2(1.0f);
   int arg_4 = 1;
   uvec4 res = textureGather(arg_1_arg_2, vec3(arg_3, float(arg_4)), 1);
 }
diff --git a/test/tint/builtins/gen/var/textureGather/2cc066.wgsl.expected.msl b/test/tint/builtins/gen/var/textureGather/2cc066.wgsl.expected.msl
index 1788324..0d34a69 100644
--- a/test/tint/builtins/gen/var/textureGather/2cc066.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureGather/2cc066.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureGather_2cc066(texture2d_array<uint, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float2 arg_3 = float2(0.0f);
+  float2 arg_3 = float2(1.0f);
   int arg_4 = 1;
   uint4 res = tint_symbol_1.gather(tint_symbol_2, arg_3, arg_4, int2(0), component::y);
 }
diff --git a/test/tint/builtins/gen/var/textureGather/2cc066.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureGather/2cc066.wgsl.expected.spvasm
index ba22c06..cbc4abe 100644
--- a/test/tint/builtins/gen/var/textureGather/2cc066.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureGather/2cc066.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 59
+; Bound: 60
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -46,58 +46,59 @@
        %void = OpTypeVoid
          %16 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
-         %21 = OpConstantNull %v2float
+    %float_1 = OpConstant %float 1
+         %22 = OpConstantComposite %v2float %float_1 %float_1
 %_ptr_Function_v2float = OpTypePointer Function %v2float
+         %25 = OpConstantNull %v2float
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
-         %28 = OpConstantNull %int
+         %30 = OpConstantNull %int
      %v4uint = OpTypeVector %uint 4
-         %33 = OpTypeSampledImage %11
+         %35 = OpTypeSampledImage %11
     %v3float = OpTypeVector %float 3
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %44 = OpConstantNull %v4uint
-         %45 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %46 = OpConstantNull %v4uint
+         %47 = OpTypeFunction %v4float
 %textureGather_2cc066 = OpFunction %void None %16
          %19 = OpLabel
-      %arg_3 = OpVariable %_ptr_Function_v2float Function %21
-      %arg_4 = OpVariable %_ptr_Function_int Function %28
-        %res = OpVariable %_ptr_Function_v4uint Function %44
-               OpStore %arg_3 %21
+      %arg_3 = OpVariable %_ptr_Function_v2float Function %25
+      %arg_4 = OpVariable %_ptr_Function_int Function %30
+        %res = OpVariable %_ptr_Function_v4uint Function %46
+               OpStore %arg_3 %22
                OpStore %arg_4 %int_1
-         %31 = OpLoad %15 %arg_2
-         %32 = OpLoad %11 %arg_1
-         %34 = OpSampledImage %33 %32 %31
-         %36 = OpLoad %v2float %arg_3
-         %37 = OpCompositeExtract %float %36 0
-         %38 = OpCompositeExtract %float %36 1
-         %40 = OpLoad %int %arg_4
-         %39 = OpConvertSToF %float %40
-         %41 = OpCompositeConstruct %v3float %37 %38 %39
-         %29 = OpImageGather %v4uint %34 %41 %int_1
-               OpStore %res %29
+         %33 = OpLoad %15 %arg_2
+         %34 = OpLoad %11 %arg_1
+         %36 = OpSampledImage %35 %34 %33
+         %38 = OpLoad %v2float %arg_3
+         %39 = OpCompositeExtract %float %38 0
+         %40 = OpCompositeExtract %float %38 1
+         %42 = OpLoad %int %arg_4
+         %41 = OpConvertSToF %float %42
+         %43 = OpCompositeConstruct %v3float %39 %40 %41
+         %31 = OpImageGather %v4uint %36 %43 %int_1
+               OpStore %res %31
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %45
-         %47 = OpLabel
-         %48 = OpFunctionCall %void %textureGather_2cc066
+%vertex_main_inner = OpFunction %v4float None %47
+         %49 = OpLabel
+         %50 = OpFunctionCall %void %textureGather_2cc066
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %16
-         %50 = OpLabel
-         %51 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %51
+         %52 = OpLabel
+         %53 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %53
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %16
-         %54 = OpLabel
-         %55 = OpFunctionCall %void %textureGather_2cc066
+         %55 = OpLabel
+         %56 = OpFunctionCall %void %textureGather_2cc066
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %16
-         %57 = OpLabel
-         %58 = OpFunctionCall %void %textureGather_2cc066
+         %58 = OpLabel
+         %59 = OpFunctionCall %void %textureGather_2cc066
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureGather/2cc066.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureGather/2cc066.wgsl.expected.wgsl
index 14d6c50..456b2e8 100644
--- a/test/tint/builtins/gen/var/textureGather/2cc066.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/2cc066.wgsl.expected.wgsl
@@ -4,7 +4,7 @@
 
 fn textureGather_2cc066() {
   const arg_0 = 1i;
-  var arg_3 = vec2<f32>();
+  var arg_3 = vec2<f32>(1.0f);
   var arg_4 = 1i;
   var res : vec4<u32> = textureGather(arg_0, arg_1, arg_2, arg_3, arg_4);
 }
diff --git a/test/tint/builtins/gen/var/textureGather/2e0ed5.wgsl b/test/tint/builtins/gen/var/textureGather/2e0ed5.wgsl
index 0d14aa3..eef9c5a 100644
--- a/test/tint/builtins/gen/var/textureGather/2e0ed5.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/2e0ed5.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureGather(texture: texture_depth_2d, sampler: sampler, coords: vec2<f32>) -> vec4<f32>
 fn textureGather_2e0ed5() {
-  var arg_2 = vec2<f32>();
+  var arg_2 = vec2<f32>(1.f);
   var res: vec4<f32> = textureGather(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureGather/2e0ed5.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/2e0ed5.wgsl.expected.dxc.hlsl
index 995319a..2697be0 100644
--- a/test/tint/builtins/gen/var/textureGather/2e0ed5.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/2e0ed5.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureGather_2e0ed5() {
-  float2 arg_2 = (0.0f).xx;
+  float2 arg_2 = (1.0f).xx;
   float4 res = arg_0.Gather(arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureGather/2e0ed5.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/2e0ed5.wgsl.expected.fxc.hlsl
index 995319a..2697be0 100644
--- a/test/tint/builtins/gen/var/textureGather/2e0ed5.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/2e0ed5.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureGather_2e0ed5() {
-  float2 arg_2 = (0.0f).xx;
+  float2 arg_2 = (1.0f).xx;
   float4 res = arg_0.Gather(arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureGather/2e0ed5.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureGather/2e0ed5.wgsl.expected.glsl
index 56056ae..87da032 100644
--- a/test/tint/builtins/gen/var/textureGather/2e0ed5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureGather/2e0ed5.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 uniform highp sampler2DShadow arg_0_arg_1;
 
 void textureGather_2e0ed5() {
-  vec2 arg_2 = vec2(0.0f);
+  vec2 arg_2 = vec2(1.0f);
   vec4 res = textureGather(arg_0_arg_1, arg_2, 0.0);
 }
 
@@ -26,7 +26,7 @@
 uniform highp sampler2DShadow arg_0_arg_1;
 
 void textureGather_2e0ed5() {
-  vec2 arg_2 = vec2(0.0f);
+  vec2 arg_2 = vec2(1.0f);
   vec4 res = textureGather(arg_0_arg_1, arg_2, 0.0);
 }
 
@@ -43,7 +43,7 @@
 uniform highp sampler2DShadow arg_0_arg_1;
 
 void textureGather_2e0ed5() {
-  vec2 arg_2 = vec2(0.0f);
+  vec2 arg_2 = vec2(1.0f);
   vec4 res = textureGather(arg_0_arg_1, arg_2, 0.0);
 }
 
diff --git a/test/tint/builtins/gen/var/textureGather/2e0ed5.wgsl.expected.msl b/test/tint/builtins/gen/var/textureGather/2e0ed5.wgsl.expected.msl
index 0fafcf7..dc3340b 100644
--- a/test/tint/builtins/gen/var/textureGather/2e0ed5.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureGather/2e0ed5.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureGather_2e0ed5(depth2d<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float2 arg_2 = float2(0.0f);
+  float2 arg_2 = float2(1.0f);
   float4 res = tint_symbol_1.gather(tint_symbol_2, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureGather/2e0ed5.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureGather/2e0ed5.wgsl.expected.spvasm
index c33a890..77916f4 100644
--- a/test/tint/builtins/gen/var/textureGather/2e0ed5.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureGather/2e0ed5.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 47
+; Bound: 48
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -44,46 +44,47 @@
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
-         %20 = OpConstantNull %v2float
+    %float_1 = OpConstant %float 1
+         %21 = OpConstantComposite %v2float %float_1 %float_1
 %_ptr_Function_v2float = OpTypePointer Function %v2float
-         %26 = OpTypeSampledImage %11
+         %24 = OpConstantNull %v2float
+         %28 = OpTypeSampledImage %11
         %int = OpTypeInt 32 1
       %int_0 = OpConstant %int 0
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %33 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %35 = OpTypeFunction %v4float
 %textureGather_2e0ed5 = OpFunction %void None %15
          %18 = OpLabel
-      %arg_2 = OpVariable %_ptr_Function_v2float Function %20
+      %arg_2 = OpVariable %_ptr_Function_v2float Function %24
         %res = OpVariable %_ptr_Function_v4float Function %5
-               OpStore %arg_2 %20
-         %24 = OpLoad %14 %arg_1
-         %25 = OpLoad %11 %arg_0
-         %27 = OpSampledImage %26 %25 %24
-         %28 = OpLoad %v2float %arg_2
-         %23 = OpImageGather %v4float %27 %28 %int_0
-               OpStore %res %23
+               OpStore %arg_2 %21
+         %26 = OpLoad %14 %arg_1
+         %27 = OpLoad %11 %arg_0
+         %29 = OpSampledImage %28 %27 %26
+         %30 = OpLoad %v2float %arg_2
+         %25 = OpImageGather %v4float %29 %30 %int_0
+               OpStore %res %25
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %33
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureGather_2e0ed5
+%vertex_main_inner = OpFunction %v4float None %35
+         %37 = OpLabel
+         %38 = OpFunctionCall %void %textureGather_2e0ed5
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
-         %38 = OpLabel
-         %39 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %39
+         %40 = OpLabel
+         %41 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %41
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %15
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureGather_2e0ed5
+         %43 = OpLabel
+         %44 = OpFunctionCall %void %textureGather_2e0ed5
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %15
-         %45 = OpLabel
-         %46 = OpFunctionCall %void %textureGather_2e0ed5
+         %46 = OpLabel
+         %47 = OpFunctionCall %void %textureGather_2e0ed5
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureGather/2e0ed5.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureGather/2e0ed5.wgsl.expected.wgsl
index b5d2415..989f3b1 100644
--- a/test/tint/builtins/gen/var/textureGather/2e0ed5.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/2e0ed5.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(1) var arg_1 : sampler;
 
 fn textureGather_2e0ed5() {
-  var arg_2 = vec2<f32>();
+  var arg_2 = vec2<f32>(1.0f);
   var res : vec4<f32> = textureGather(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureGather/32c4e8.wgsl b/test/tint/builtins/gen/var/textureGather/32c4e8.wgsl
index 8819419..467daed 100644
--- a/test/tint/builtins/gen/var/textureGather/32c4e8.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/32c4e8.wgsl
@@ -26,7 +26,7 @@
 // fn textureGather(@const component: i32, texture: texture_cube<f32>, sampler: sampler, coords: vec3<f32>) -> vec4<f32>
 fn textureGather_32c4e8() {
   const arg_0 = 1i;
-  var arg_3 = vec3<f32>();
+  var arg_3 = vec3<f32>(1.f);
   var res: vec4<f32> = textureGather(arg_0, arg_1, arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureGather/32c4e8.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/32c4e8.wgsl.expected.dxc.hlsl
index 6843bb1..d7e7106 100644
--- a/test/tint/builtins/gen/var/textureGather/32c4e8.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/32c4e8.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_32c4e8() {
-  float3 arg_3 = (0.0f).xxx;
+  float3 arg_3 = (1.0f).xxx;
   float4 res = arg_1.GatherGreen(arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureGather/32c4e8.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/32c4e8.wgsl.expected.fxc.hlsl
index 6843bb1..d7e7106 100644
--- a/test/tint/builtins/gen/var/textureGather/32c4e8.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/32c4e8.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_32c4e8() {
-  float3 arg_3 = (0.0f).xxx;
+  float3 arg_3 = (1.0f).xxx;
   float4 res = arg_1.GatherGreen(arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureGather/32c4e8.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureGather/32c4e8.wgsl.expected.glsl
index aa2ae80..65a395e 100644
--- a/test/tint/builtins/gen/var/textureGather/32c4e8.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureGather/32c4e8.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 uniform highp samplerCube arg_1_arg_2;
 
 void textureGather_32c4e8() {
-  vec3 arg_3 = vec3(0.0f);
+  vec3 arg_3 = vec3(1.0f);
   vec4 res = textureGather(arg_1_arg_2, arg_3, 1);
 }
 
@@ -26,7 +26,7 @@
 uniform highp samplerCube arg_1_arg_2;
 
 void textureGather_32c4e8() {
-  vec3 arg_3 = vec3(0.0f);
+  vec3 arg_3 = vec3(1.0f);
   vec4 res = textureGather(arg_1_arg_2, arg_3, 1);
 }
 
@@ -43,7 +43,7 @@
 uniform highp samplerCube arg_1_arg_2;
 
 void textureGather_32c4e8() {
-  vec3 arg_3 = vec3(0.0f);
+  vec3 arg_3 = vec3(1.0f);
   vec4 res = textureGather(arg_1_arg_2, arg_3, 1);
 }
 
diff --git a/test/tint/builtins/gen/var/textureGather/32c4e8.wgsl.expected.msl b/test/tint/builtins/gen/var/textureGather/32c4e8.wgsl.expected.msl
index 6bcc6d7..384b43d 100644
--- a/test/tint/builtins/gen/var/textureGather/32c4e8.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureGather/32c4e8.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureGather_32c4e8(texturecube<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float3 arg_3 = float3(0.0f);
+  float3 arg_3 = float3(1.0f);
   float4 res = tint_symbol_1.gather(tint_symbol_2, arg_3, component::y);
 }
 
diff --git a/test/tint/builtins/gen/var/textureGather/32c4e8.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureGather/32c4e8.wgsl.expected.spvasm
index af17d81..0679310 100644
--- a/test/tint/builtins/gen/var/textureGather/32c4e8.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureGather/32c4e8.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 47
+; Bound: 48
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -44,46 +44,47 @@
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
     %v3float = OpTypeVector %float 3
-         %20 = OpConstantNull %v3float
+    %float_1 = OpConstant %float 1
+         %21 = OpConstantComposite %v3float %float_1 %float_1 %float_1
 %_ptr_Function_v3float = OpTypePointer Function %v3float
-         %26 = OpTypeSampledImage %11
+         %24 = OpConstantNull %v3float
+         %28 = OpTypeSampledImage %11
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %33 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %35 = OpTypeFunction %v4float
 %textureGather_32c4e8 = OpFunction %void None %15
          %18 = OpLabel
-      %arg_3 = OpVariable %_ptr_Function_v3float Function %20
+      %arg_3 = OpVariable %_ptr_Function_v3float Function %24
         %res = OpVariable %_ptr_Function_v4float Function %5
-               OpStore %arg_3 %20
-         %24 = OpLoad %14 %arg_2
-         %25 = OpLoad %11 %arg_1
-         %27 = OpSampledImage %26 %25 %24
-         %28 = OpLoad %v3float %arg_3
-         %23 = OpImageGather %v4float %27 %28 %int_1
-               OpStore %res %23
+               OpStore %arg_3 %21
+         %26 = OpLoad %14 %arg_2
+         %27 = OpLoad %11 %arg_1
+         %29 = OpSampledImage %28 %27 %26
+         %30 = OpLoad %v3float %arg_3
+         %25 = OpImageGather %v4float %29 %30 %int_1
+               OpStore %res %25
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %33
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureGather_32c4e8
+%vertex_main_inner = OpFunction %v4float None %35
+         %37 = OpLabel
+         %38 = OpFunctionCall %void %textureGather_32c4e8
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
-         %38 = OpLabel
-         %39 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %39
+         %40 = OpLabel
+         %41 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %41
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %15
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureGather_32c4e8
+         %43 = OpLabel
+         %44 = OpFunctionCall %void %textureGather_32c4e8
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %15
-         %45 = OpLabel
-         %46 = OpFunctionCall %void %textureGather_32c4e8
+         %46 = OpLabel
+         %47 = OpFunctionCall %void %textureGather_32c4e8
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureGather/32c4e8.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureGather/32c4e8.wgsl.expected.wgsl
index e93f80c..94a628c 100644
--- a/test/tint/builtins/gen/var/textureGather/32c4e8.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/32c4e8.wgsl.expected.wgsl
@@ -4,7 +4,7 @@
 
 fn textureGather_32c4e8() {
   const arg_0 = 1i;
-  var arg_3 = vec3<f32>();
+  var arg_3 = vec3<f32>(1.0f);
   var res : vec4<f32> = textureGather(arg_0, arg_1, arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureGather/3b32cc.wgsl b/test/tint/builtins/gen/var/textureGather/3b32cc.wgsl
index 52a131e..9ca8ec5 100644
--- a/test/tint/builtins/gen/var/textureGather/3b32cc.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/3b32cc.wgsl
@@ -26,7 +26,7 @@
 // fn textureGather(@const component: i32, texture: texture_cube<u32>, sampler: sampler, coords: vec3<f32>) -> vec4<u32>
 fn textureGather_3b32cc() {
   const arg_0 = 1i;
-  var arg_3 = vec3<f32>();
+  var arg_3 = vec3<f32>(1.f);
   var res: vec4<u32> = textureGather(arg_0, arg_1, arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureGather/3b32cc.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/3b32cc.wgsl.expected.dxc.hlsl
index 2845979..eaf9419 100644
--- a/test/tint/builtins/gen/var/textureGather/3b32cc.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/3b32cc.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_3b32cc() {
-  float3 arg_3 = (0.0f).xxx;
+  float3 arg_3 = (1.0f).xxx;
   uint4 res = arg_1.GatherGreen(arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureGather/3b32cc.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/3b32cc.wgsl.expected.fxc.hlsl
index 2845979..eaf9419 100644
--- a/test/tint/builtins/gen/var/textureGather/3b32cc.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/3b32cc.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_3b32cc() {
-  float3 arg_3 = (0.0f).xxx;
+  float3 arg_3 = (1.0f).xxx;
   uint4 res = arg_1.GatherGreen(arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureGather/3b32cc.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureGather/3b32cc.wgsl.expected.glsl
index 12cba16..29a4970 100644
--- a/test/tint/builtins/gen/var/textureGather/3b32cc.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureGather/3b32cc.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 uniform highp usamplerCube arg_1_arg_2;
 
 void textureGather_3b32cc() {
-  vec3 arg_3 = vec3(0.0f);
+  vec3 arg_3 = vec3(1.0f);
   uvec4 res = textureGather(arg_1_arg_2, arg_3, 1);
 }
 
@@ -26,7 +26,7 @@
 uniform highp usamplerCube arg_1_arg_2;
 
 void textureGather_3b32cc() {
-  vec3 arg_3 = vec3(0.0f);
+  vec3 arg_3 = vec3(1.0f);
   uvec4 res = textureGather(arg_1_arg_2, arg_3, 1);
 }
 
@@ -43,7 +43,7 @@
 uniform highp usamplerCube arg_1_arg_2;
 
 void textureGather_3b32cc() {
-  vec3 arg_3 = vec3(0.0f);
+  vec3 arg_3 = vec3(1.0f);
   uvec4 res = textureGather(arg_1_arg_2, arg_3, 1);
 }
 
diff --git a/test/tint/builtins/gen/var/textureGather/3b32cc.wgsl.expected.msl b/test/tint/builtins/gen/var/textureGather/3b32cc.wgsl.expected.msl
index f1dfbe5..e50181c 100644
--- a/test/tint/builtins/gen/var/textureGather/3b32cc.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureGather/3b32cc.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureGather_3b32cc(texturecube<uint, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float3 arg_3 = float3(0.0f);
+  float3 arg_3 = float3(1.0f);
   uint4 res = tint_symbol_1.gather(tint_symbol_2, arg_3, component::y);
 }
 
diff --git a/test/tint/builtins/gen/var/textureGather/3b32cc.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureGather/3b32cc.wgsl.expected.spvasm
index 2a29791..98c22b4 100644
--- a/test/tint/builtins/gen/var/textureGather/3b32cc.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureGather/3b32cc.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 50
+; Bound: 51
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -45,48 +45,49 @@
        %void = OpTypeVoid
          %16 = OpTypeFunction %void
     %v3float = OpTypeVector %float 3
-         %21 = OpConstantNull %v3float
+    %float_1 = OpConstant %float 1
+         %22 = OpConstantComposite %v3float %float_1 %float_1 %float_1
 %_ptr_Function_v3float = OpTypePointer Function %v3float
+         %25 = OpConstantNull %v3float
      %v4uint = OpTypeVector %uint 4
-         %28 = OpTypeSampledImage %11
+         %30 = OpTypeSampledImage %11
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %35 = OpConstantNull %v4uint
-         %36 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %37 = OpConstantNull %v4uint
+         %38 = OpTypeFunction %v4float
 %textureGather_3b32cc = OpFunction %void None %16
          %19 = OpLabel
-      %arg_3 = OpVariable %_ptr_Function_v3float Function %21
-        %res = OpVariable %_ptr_Function_v4uint Function %35
-               OpStore %arg_3 %21
-         %26 = OpLoad %15 %arg_2
-         %27 = OpLoad %11 %arg_1
-         %29 = OpSampledImage %28 %27 %26
-         %30 = OpLoad %v3float %arg_3
-         %24 = OpImageGather %v4uint %29 %30 %int_1
-               OpStore %res %24
+      %arg_3 = OpVariable %_ptr_Function_v3float Function %25
+        %res = OpVariable %_ptr_Function_v4uint Function %37
+               OpStore %arg_3 %22
+         %28 = OpLoad %15 %arg_2
+         %29 = OpLoad %11 %arg_1
+         %31 = OpSampledImage %30 %29 %28
+         %32 = OpLoad %v3float %arg_3
+         %26 = OpImageGather %v4uint %31 %32 %int_1
+               OpStore %res %26
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %36
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureGather_3b32cc
+%vertex_main_inner = OpFunction %v4float None %38
+         %40 = OpLabel
+         %41 = OpFunctionCall %void %textureGather_3b32cc
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %16
-         %41 = OpLabel
-         %42 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %42
+         %43 = OpLabel
+         %44 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %44
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %16
-         %45 = OpLabel
-         %46 = OpFunctionCall %void %textureGather_3b32cc
+         %46 = OpLabel
+         %47 = OpFunctionCall %void %textureGather_3b32cc
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %16
-         %48 = OpLabel
-         %49 = OpFunctionCall %void %textureGather_3b32cc
+         %49 = OpLabel
+         %50 = OpFunctionCall %void %textureGather_3b32cc
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureGather/3b32cc.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureGather/3b32cc.wgsl.expected.wgsl
index a7963b2..8a0e075 100644
--- a/test/tint/builtins/gen/var/textureGather/3b32cc.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/3b32cc.wgsl.expected.wgsl
@@ -4,7 +4,7 @@
 
 fn textureGather_3b32cc() {
   const arg_0 = 1i;
-  var arg_3 = vec3<f32>();
+  var arg_3 = vec3<f32>(1.0f);
   var res : vec4<u32> = textureGather(arg_0, arg_1, arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureGather/43025d.wgsl b/test/tint/builtins/gen/var/textureGather/43025d.wgsl
index ccd65bd..1eac371 100644
--- a/test/tint/builtins/gen/var/textureGather/43025d.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/43025d.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureGather(texture: texture_depth_cube_array, sampler: sampler, coords: vec3<f32>, array_index: i32) -> vec4<f32>
 fn textureGather_43025d() {
-  var arg_2 = vec3<f32>();
+  var arg_2 = vec3<f32>(1.f);
   var arg_3 = 1i;
   var res: vec4<f32> = textureGather(arg_0, arg_1, arg_2, arg_3);
 }
diff --git a/test/tint/builtins/gen/var/textureGather/43025d.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/43025d.wgsl.expected.dxc.hlsl
index 95e4023..1284613 100644
--- a/test/tint/builtins/gen/var/textureGather/43025d.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/43025d.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureGather_43025d() {
-  float3 arg_2 = (0.0f).xxx;
+  float3 arg_2 = (1.0f).xxx;
   int arg_3 = 1;
   float4 res = arg_0.Gather(arg_1, float4(arg_2, float(arg_3)));
 }
diff --git a/test/tint/builtins/gen/var/textureGather/43025d.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/43025d.wgsl.expected.fxc.hlsl
index 95e4023..1284613 100644
--- a/test/tint/builtins/gen/var/textureGather/43025d.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/43025d.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureGather_43025d() {
-  float3 arg_2 = (0.0f).xxx;
+  float3 arg_2 = (1.0f).xxx;
   int arg_3 = 1;
   float4 res = arg_0.Gather(arg_1, float4(arg_2, float(arg_3)));
 }
diff --git a/test/tint/builtins/gen/var/textureGather/43025d.wgsl.expected.msl b/test/tint/builtins/gen/var/textureGather/43025d.wgsl.expected.msl
index ed0f44a..a5c8616 100644
--- a/test/tint/builtins/gen/var/textureGather/43025d.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureGather/43025d.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureGather_43025d(depthcube_array<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float3 arg_2 = float3(0.0f);
+  float3 arg_2 = float3(1.0f);
   int arg_3 = 1;
   float4 res = tint_symbol_1.gather(tint_symbol_2, arg_2, arg_3);
 }
diff --git a/test/tint/builtins/gen/var/textureGather/43025d.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureGather/43025d.wgsl.expected.spvasm
index 50439ce..3e8b0a4 100644
--- a/test/tint/builtins/gen/var/textureGather/43025d.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureGather/43025d.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 57
+; Bound: 58
 ; Schema: 0
                OpCapability Shader
                OpCapability SampledCubeArray
@@ -46,57 +46,58 @@
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
     %v3float = OpTypeVector %float 3
-         %20 = OpConstantNull %v3float
+    %float_1 = OpConstant %float 1
+         %21 = OpConstantComposite %v3float %float_1 %float_1 %float_1
 %_ptr_Function_v3float = OpTypePointer Function %v3float
+         %24 = OpConstantNull %v3float
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
-         %27 = OpConstantNull %int
-         %31 = OpTypeSampledImage %11
+         %29 = OpConstantNull %int
+         %33 = OpTypeSampledImage %11
       %int_0 = OpConstant %int 0
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %43 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %45 = OpTypeFunction %v4float
 %textureGather_43025d = OpFunction %void None %15
          %18 = OpLabel
-      %arg_2 = OpVariable %_ptr_Function_v3float Function %20
-      %arg_3 = OpVariable %_ptr_Function_int Function %27
+      %arg_2 = OpVariable %_ptr_Function_v3float Function %24
+      %arg_3 = OpVariable %_ptr_Function_int Function %29
         %res = OpVariable %_ptr_Function_v4float Function %5
-               OpStore %arg_2 %20
+               OpStore %arg_2 %21
                OpStore %arg_3 %int_1
-         %29 = OpLoad %14 %arg_1
-         %30 = OpLoad %11 %arg_0
-         %32 = OpSampledImage %31 %30 %29
-         %33 = OpLoad %v3float %arg_2
-         %34 = OpCompositeExtract %float %33 0
-         %35 = OpCompositeExtract %float %33 1
-         %36 = OpCompositeExtract %float %33 2
-         %38 = OpLoad %int %arg_3
-         %37 = OpConvertSToF %float %38
-         %39 = OpCompositeConstruct %v4float %34 %35 %36 %37
-         %28 = OpImageGather %v4float %32 %39 %int_0
-               OpStore %res %28
+         %31 = OpLoad %14 %arg_1
+         %32 = OpLoad %11 %arg_0
+         %34 = OpSampledImage %33 %32 %31
+         %35 = OpLoad %v3float %arg_2
+         %36 = OpCompositeExtract %float %35 0
+         %37 = OpCompositeExtract %float %35 1
+         %38 = OpCompositeExtract %float %35 2
+         %40 = OpLoad %int %arg_3
+         %39 = OpConvertSToF %float %40
+         %41 = OpCompositeConstruct %v4float %36 %37 %38 %39
+         %30 = OpImageGather %v4float %34 %41 %int_0
+               OpStore %res %30
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %43
-         %45 = OpLabel
-         %46 = OpFunctionCall %void %textureGather_43025d
+%vertex_main_inner = OpFunction %v4float None %45
+         %47 = OpLabel
+         %48 = OpFunctionCall %void %textureGather_43025d
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
-         %48 = OpLabel
-         %49 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %49
+         %50 = OpLabel
+         %51 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %51
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %15
-         %52 = OpLabel
-         %53 = OpFunctionCall %void %textureGather_43025d
+         %53 = OpLabel
+         %54 = OpFunctionCall %void %textureGather_43025d
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %15
-         %55 = OpLabel
-         %56 = OpFunctionCall %void %textureGather_43025d
+         %56 = OpLabel
+         %57 = OpFunctionCall %void %textureGather_43025d
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureGather/43025d.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureGather/43025d.wgsl.expected.wgsl
index 12337c7..b693dd2 100644
--- a/test/tint/builtins/gen/var/textureGather/43025d.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/43025d.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(1) var arg_1 : sampler;
 
 fn textureGather_43025d() {
-  var arg_2 = vec3<f32>();
+  var arg_2 = vec3<f32>(1.0f);
   var arg_3 = 1i;
   var res : vec4<f32> = textureGather(arg_0, arg_1, arg_2, arg_3);
 }
diff --git a/test/tint/builtins/gen/var/textureGather/445793.wgsl b/test/tint/builtins/gen/var/textureGather/445793.wgsl
index e67711f..92c5d40 100644
--- a/test/tint/builtins/gen/var/textureGather/445793.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/445793.wgsl
@@ -26,7 +26,7 @@
 // fn textureGather(@const component: u32, texture: texture_2d_array<i32>, sampler: sampler, coords: vec2<f32>, array_index: i32) -> vec4<i32>
 fn textureGather_445793() {
   const arg_0 = 1u;
-  var arg_3 = vec2<f32>();
+  var arg_3 = vec2<f32>(1.f);
   var arg_4 = 1i;
   var res: vec4<i32> = textureGather(arg_0, arg_1, arg_2, arg_3, arg_4);
 }
diff --git a/test/tint/builtins/gen/var/textureGather/445793.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/445793.wgsl.expected.dxc.hlsl
index 0d4c5a3..38175e3 100644
--- a/test/tint/builtins/gen/var/textureGather/445793.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/445793.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_445793() {
-  float2 arg_3 = (0.0f).xx;
+  float2 arg_3 = (1.0f).xx;
   int arg_4 = 1;
   int4 res = arg_1.GatherGreen(arg_2, float3(arg_3, float(arg_4)));
 }
diff --git a/test/tint/builtins/gen/var/textureGather/445793.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/445793.wgsl.expected.fxc.hlsl
index 0d4c5a3..38175e3 100644
--- a/test/tint/builtins/gen/var/textureGather/445793.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/445793.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_445793() {
-  float2 arg_3 = (0.0f).xx;
+  float2 arg_3 = (1.0f).xx;
   int arg_4 = 1;
   int4 res = arg_1.GatherGreen(arg_2, float3(arg_3, float(arg_4)));
 }
diff --git a/test/tint/builtins/gen/var/textureGather/445793.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureGather/445793.wgsl.expected.glsl
index 0528a0a..6b372ac 100644
--- a/test/tint/builtins/gen/var/textureGather/445793.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureGather/445793.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 uniform highp isampler2DArray arg_1_arg_2;
 
 void textureGather_445793() {
-  vec2 arg_3 = vec2(0.0f);
+  vec2 arg_3 = vec2(1.0f);
   int arg_4 = 1;
   ivec4 res = textureGather(arg_1_arg_2, vec3(arg_3, float(arg_4)), int(1u));
 }
@@ -27,7 +27,7 @@
 uniform highp isampler2DArray arg_1_arg_2;
 
 void textureGather_445793() {
-  vec2 arg_3 = vec2(0.0f);
+  vec2 arg_3 = vec2(1.0f);
   int arg_4 = 1;
   ivec4 res = textureGather(arg_1_arg_2, vec3(arg_3, float(arg_4)), int(1u));
 }
@@ -45,7 +45,7 @@
 uniform highp isampler2DArray arg_1_arg_2;
 
 void textureGather_445793() {
-  vec2 arg_3 = vec2(0.0f);
+  vec2 arg_3 = vec2(1.0f);
   int arg_4 = 1;
   ivec4 res = textureGather(arg_1_arg_2, vec3(arg_3, float(arg_4)), int(1u));
 }
diff --git a/test/tint/builtins/gen/var/textureGather/445793.wgsl.expected.msl b/test/tint/builtins/gen/var/textureGather/445793.wgsl.expected.msl
index c77189e..a3d869a 100644
--- a/test/tint/builtins/gen/var/textureGather/445793.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureGather/445793.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureGather_445793(texture2d_array<int, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float2 arg_3 = float2(0.0f);
+  float2 arg_3 = float2(1.0f);
   int arg_4 = 1;
   int4 res = tint_symbol_1.gather(tint_symbol_2, arg_3, arg_4, int2(0), component::y);
 }
diff --git a/test/tint/builtins/gen/var/textureGather/445793.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureGather/445793.wgsl.expected.spvasm
index 62dbbf4..6b025b8 100644
--- a/test/tint/builtins/gen/var/textureGather/445793.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureGather/445793.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 60
+; Bound: 61
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -46,59 +46,60 @@
        %void = OpTypeVoid
          %16 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
-         %21 = OpConstantNull %v2float
+    %float_1 = OpConstant %float 1
+         %22 = OpConstantComposite %v2float %float_1 %float_1
 %_ptr_Function_v2float = OpTypePointer Function %v2float
+         %25 = OpConstantNull %v2float
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
-         %27 = OpConstantNull %int
+         %29 = OpConstantNull %int
       %v4int = OpTypeVector %int 4
-         %32 = OpTypeSampledImage %11
+         %34 = OpTypeSampledImage %11
     %v3float = OpTypeVector %float 3
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %45 = OpConstantNull %v4int
-         %46 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %47 = OpConstantNull %v4int
+         %48 = OpTypeFunction %v4float
 %textureGather_445793 = OpFunction %void None %16
          %19 = OpLabel
-      %arg_3 = OpVariable %_ptr_Function_v2float Function %21
-      %arg_4 = OpVariable %_ptr_Function_int Function %27
-        %res = OpVariable %_ptr_Function_v4int Function %45
-               OpStore %arg_3 %21
+      %arg_3 = OpVariable %_ptr_Function_v2float Function %25
+      %arg_4 = OpVariable %_ptr_Function_int Function %29
+        %res = OpVariable %_ptr_Function_v4int Function %47
+               OpStore %arg_3 %22
                OpStore %arg_4 %int_1
-         %30 = OpLoad %15 %arg_2
-         %31 = OpLoad %11 %arg_1
-         %33 = OpSampledImage %32 %31 %30
-         %35 = OpLoad %v2float %arg_3
-         %36 = OpCompositeExtract %float %35 0
-         %37 = OpCompositeExtract %float %35 1
-         %39 = OpLoad %int %arg_4
-         %38 = OpConvertSToF %float %39
-         %40 = OpCompositeConstruct %v3float %36 %37 %38
-         %28 = OpImageGather %v4int %33 %40 %uint_1
-               OpStore %res %28
+         %32 = OpLoad %15 %arg_2
+         %33 = OpLoad %11 %arg_1
+         %35 = OpSampledImage %34 %33 %32
+         %37 = OpLoad %v2float %arg_3
+         %38 = OpCompositeExtract %float %37 0
+         %39 = OpCompositeExtract %float %37 1
+         %41 = OpLoad %int %arg_4
+         %40 = OpConvertSToF %float %41
+         %42 = OpCompositeConstruct %v3float %38 %39 %40
+         %30 = OpImageGather %v4int %35 %42 %uint_1
+               OpStore %res %30
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %46
-         %48 = OpLabel
-         %49 = OpFunctionCall %void %textureGather_445793
+%vertex_main_inner = OpFunction %v4float None %48
+         %50 = OpLabel
+         %51 = OpFunctionCall %void %textureGather_445793
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %16
-         %51 = OpLabel
-         %52 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %52
+         %53 = OpLabel
+         %54 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %54
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %16
-         %55 = OpLabel
-         %56 = OpFunctionCall %void %textureGather_445793
+         %56 = OpLabel
+         %57 = OpFunctionCall %void %textureGather_445793
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %16
-         %58 = OpLabel
-         %59 = OpFunctionCall %void %textureGather_445793
+         %59 = OpLabel
+         %60 = OpFunctionCall %void %textureGather_445793
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureGather/445793.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureGather/445793.wgsl.expected.wgsl
index 60c03e6..7ddaed0 100644
--- a/test/tint/builtins/gen/var/textureGather/445793.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/445793.wgsl.expected.wgsl
@@ -4,7 +4,7 @@
 
 fn textureGather_445793() {
   const arg_0 = 1u;
-  var arg_3 = vec2<f32>();
+  var arg_3 = vec2<f32>(1.0f);
   var arg_4 = 1i;
   var res : vec4<i32> = textureGather(arg_0, arg_1, arg_2, arg_3, arg_4);
 }
diff --git a/test/tint/builtins/gen/var/textureGather/49b07f.wgsl b/test/tint/builtins/gen/var/textureGather/49b07f.wgsl
index 09fe4aa..b5a1bd2 100644
--- a/test/tint/builtins/gen/var/textureGather/49b07f.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/49b07f.wgsl
@@ -26,8 +26,8 @@
 // fn textureGather(@const component: i32, texture: texture_2d<u32>, sampler: sampler, coords: vec2<f32>, @const offset: vec2<i32>) -> vec4<u32>
 fn textureGather_49b07f() {
   const arg_0 = 1i;
-  var arg_3 = vec2<f32>();
-  const arg_4 = vec2<i32>();
+  var arg_3 = vec2<f32>(1.f);
+  const arg_4 = vec2<i32>(1i);
   var res: vec4<u32> = textureGather(arg_0, arg_1, arg_2, arg_3, arg_4);
 }
 
diff --git a/test/tint/builtins/gen/var/textureGather/49b07f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/49b07f.wgsl.expected.dxc.hlsl
index 42046f3..97cef51 100644
--- a/test/tint/builtins/gen/var/textureGather/49b07f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/49b07f.wgsl.expected.dxc.hlsl
@@ -2,8 +2,8 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_49b07f() {
-  float2 arg_3 = (0.0f).xx;
-  uint4 res = arg_1.GatherGreen(arg_2, arg_3, (0).xx);
+  float2 arg_3 = (1.0f).xx;
+  uint4 res = arg_1.GatherGreen(arg_2, arg_3, (1).xx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/textureGather/49b07f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/49b07f.wgsl.expected.fxc.hlsl
index 42046f3..97cef51 100644
--- a/test/tint/builtins/gen/var/textureGather/49b07f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/49b07f.wgsl.expected.fxc.hlsl
@@ -2,8 +2,8 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_49b07f() {
-  float2 arg_3 = (0.0f).xx;
-  uint4 res = arg_1.GatherGreen(arg_2, arg_3, (0).xx);
+  float2 arg_3 = (1.0f).xx;
+  uint4 res = arg_1.GatherGreen(arg_2, arg_3, (1).xx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/textureGather/49b07f.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureGather/49b07f.wgsl.expected.glsl
index e576f45..f16d38b 100644
--- a/test/tint/builtins/gen/var/textureGather/49b07f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureGather/49b07f.wgsl.expected.glsl
@@ -3,8 +3,8 @@
 uniform highp usampler2D arg_1_arg_2;
 
 void textureGather_49b07f() {
-  vec2 arg_3 = vec2(0.0f);
-  uvec4 res = textureGatherOffset(arg_1_arg_2, arg_3, ivec2(0), 1);
+  vec2 arg_3 = vec2(1.0f);
+  uvec4 res = textureGatherOffset(arg_1_arg_2, arg_3, ivec2(1), 1);
 }
 
 vec4 vertex_main() {
@@ -26,8 +26,8 @@
 uniform highp usampler2D arg_1_arg_2;
 
 void textureGather_49b07f() {
-  vec2 arg_3 = vec2(0.0f);
-  uvec4 res = textureGatherOffset(arg_1_arg_2, arg_3, ivec2(0), 1);
+  vec2 arg_3 = vec2(1.0f);
+  uvec4 res = textureGatherOffset(arg_1_arg_2, arg_3, ivec2(1), 1);
 }
 
 void fragment_main() {
@@ -43,8 +43,8 @@
 uniform highp usampler2D arg_1_arg_2;
 
 void textureGather_49b07f() {
-  vec2 arg_3 = vec2(0.0f);
-  uvec4 res = textureGatherOffset(arg_1_arg_2, arg_3, ivec2(0), 1);
+  vec2 arg_3 = vec2(1.0f);
+  uvec4 res = textureGatherOffset(arg_1_arg_2, arg_3, ivec2(1), 1);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/var/textureGather/49b07f.wgsl.expected.msl b/test/tint/builtins/gen/var/textureGather/49b07f.wgsl.expected.msl
index b83245e..554eaa6 100644
--- a/test/tint/builtins/gen/var/textureGather/49b07f.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureGather/49b07f.wgsl.expected.msl
@@ -2,8 +2,8 @@
 
 using namespace metal;
 void textureGather_49b07f(texture2d<uint, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float2 arg_3 = float2(0.0f);
-  uint4 res = tint_symbol_1.gather(tint_symbol_2, arg_3, int2(0), component::y);
+  float2 arg_3 = float2(1.0f);
+  uint4 res = tint_symbol_1.gather(tint_symbol_2, arg_3, int2(1), component::y);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/textureGather/49b07f.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureGather/49b07f.wgsl.expected.spvasm
index bc3d0f9..7558727 100644
--- a/test/tint/builtins/gen/var/textureGather/49b07f.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureGather/49b07f.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 52
+; Bound: 53
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -45,50 +45,51 @@
        %void = OpTypeVoid
          %16 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
-         %21 = OpConstantNull %v2float
+    %float_1 = OpConstant %float 1
+         %22 = OpConstantComposite %v2float %float_1 %float_1
 %_ptr_Function_v2float = OpTypePointer Function %v2float
+         %25 = OpConstantNull %v2float
      %v4uint = OpTypeVector %uint 4
-         %28 = OpTypeSampledImage %11
+         %30 = OpTypeSampledImage %11
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
       %v2int = OpTypeVector %int 2
-         %34 = OpConstantNull %v2int
+         %36 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %37 = OpConstantNull %v4uint
-         %38 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %39 = OpConstantNull %v4uint
+         %40 = OpTypeFunction %v4float
 %textureGather_49b07f = OpFunction %void None %16
          %19 = OpLabel
-      %arg_3 = OpVariable %_ptr_Function_v2float Function %21
-        %res = OpVariable %_ptr_Function_v4uint Function %37
-               OpStore %arg_3 %21
-         %26 = OpLoad %15 %arg_2
-         %27 = OpLoad %11 %arg_1
-         %29 = OpSampledImage %28 %27 %26
-         %30 = OpLoad %v2float %arg_3
-         %24 = OpImageGather %v4uint %29 %30 %int_1 ConstOffset %34
-               OpStore %res %24
+      %arg_3 = OpVariable %_ptr_Function_v2float Function %25
+        %res = OpVariable %_ptr_Function_v4uint Function %39
+               OpStore %arg_3 %22
+         %28 = OpLoad %15 %arg_2
+         %29 = OpLoad %11 %arg_1
+         %31 = OpSampledImage %30 %29 %28
+         %32 = OpLoad %v2float %arg_3
+         %26 = OpImageGather %v4uint %31 %32 %int_1 ConstOffset %36
+               OpStore %res %26
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %38
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureGather_49b07f
+%vertex_main_inner = OpFunction %v4float None %40
+         %42 = OpLabel
+         %43 = OpFunctionCall %void %textureGather_49b07f
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %16
-         %43 = OpLabel
-         %44 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %44
+         %45 = OpLabel
+         %46 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %46
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %16
-         %47 = OpLabel
-         %48 = OpFunctionCall %void %textureGather_49b07f
+         %48 = OpLabel
+         %49 = OpFunctionCall %void %textureGather_49b07f
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %16
-         %50 = OpLabel
-         %51 = OpFunctionCall %void %textureGather_49b07f
+         %51 = OpLabel
+         %52 = OpFunctionCall %void %textureGather_49b07f
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureGather/49b07f.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureGather/49b07f.wgsl.expected.wgsl
index bba9c02..8704bc1 100644
--- a/test/tint/builtins/gen/var/textureGather/49b07f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/49b07f.wgsl.expected.wgsl
@@ -4,8 +4,8 @@
 
 fn textureGather_49b07f() {
   const arg_0 = 1i;
-  var arg_3 = vec2<f32>();
-  const arg_4 = vec2<i32>();
+  var arg_3 = vec2<f32>(1.0f);
+  const arg_4 = vec2<i32>(1i);
   var res : vec4<u32> = textureGather(arg_0, arg_1, arg_2, arg_3, arg_4);
 }
 
diff --git a/test/tint/builtins/gen/var/textureGather/4b8103.wgsl b/test/tint/builtins/gen/var/textureGather/4b8103.wgsl
index f49a5eb..9f76bb5 100644
--- a/test/tint/builtins/gen/var/textureGather/4b8103.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/4b8103.wgsl
@@ -26,9 +26,9 @@
 // fn textureGather(@const component: i32, texture: texture_2d_array<f32>, sampler: sampler, coords: vec2<f32>, array_index: i32, @const offset: vec2<i32>) -> vec4<f32>
 fn textureGather_4b8103() {
   const arg_0 = 1i;
-  var arg_3 = vec2<f32>();
+  var arg_3 = vec2<f32>(1.f);
   var arg_4 = 1i;
-  const arg_5 = vec2<i32>();
+  const arg_5 = vec2<i32>(1i);
   var res: vec4<f32> = textureGather(arg_0, arg_1, arg_2, arg_3, arg_4, arg_5);
 }
 
diff --git a/test/tint/builtins/gen/var/textureGather/4b8103.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/4b8103.wgsl.expected.dxc.hlsl
index 5016110..5011165 100644
--- a/test/tint/builtins/gen/var/textureGather/4b8103.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/4b8103.wgsl.expected.dxc.hlsl
@@ -2,9 +2,9 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_4b8103() {
-  float2 arg_3 = (0.0f).xx;
+  float2 arg_3 = (1.0f).xx;
   int arg_4 = 1;
-  float4 res = arg_1.GatherGreen(arg_2, float3(arg_3, float(arg_4)), (0).xx);
+  float4 res = arg_1.GatherGreen(arg_2, float3(arg_3, float(arg_4)), (1).xx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/textureGather/4b8103.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/4b8103.wgsl.expected.fxc.hlsl
index 5016110..5011165 100644
--- a/test/tint/builtins/gen/var/textureGather/4b8103.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/4b8103.wgsl.expected.fxc.hlsl
@@ -2,9 +2,9 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_4b8103() {
-  float2 arg_3 = (0.0f).xx;
+  float2 arg_3 = (1.0f).xx;
   int arg_4 = 1;
-  float4 res = arg_1.GatherGreen(arg_2, float3(arg_3, float(arg_4)), (0).xx);
+  float4 res = arg_1.GatherGreen(arg_2, float3(arg_3, float(arg_4)), (1).xx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/textureGather/4b8103.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureGather/4b8103.wgsl.expected.glsl
index 186aab2..1edafe5 100644
--- a/test/tint/builtins/gen/var/textureGather/4b8103.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureGather/4b8103.wgsl.expected.glsl
@@ -3,9 +3,9 @@
 uniform highp sampler2DArray arg_1_arg_2;
 
 void textureGather_4b8103() {
-  vec2 arg_3 = vec2(0.0f);
+  vec2 arg_3 = vec2(1.0f);
   int arg_4 = 1;
-  vec4 res = textureGatherOffset(arg_1_arg_2, vec3(arg_3, float(arg_4)), ivec2(0), 1);
+  vec4 res = textureGatherOffset(arg_1_arg_2, vec3(arg_3, float(arg_4)), ivec2(1), 1);
 }
 
 vec4 vertex_main() {
@@ -27,9 +27,9 @@
 uniform highp sampler2DArray arg_1_arg_2;
 
 void textureGather_4b8103() {
-  vec2 arg_3 = vec2(0.0f);
+  vec2 arg_3 = vec2(1.0f);
   int arg_4 = 1;
-  vec4 res = textureGatherOffset(arg_1_arg_2, vec3(arg_3, float(arg_4)), ivec2(0), 1);
+  vec4 res = textureGatherOffset(arg_1_arg_2, vec3(arg_3, float(arg_4)), ivec2(1), 1);
 }
 
 void fragment_main() {
@@ -45,9 +45,9 @@
 uniform highp sampler2DArray arg_1_arg_2;
 
 void textureGather_4b8103() {
-  vec2 arg_3 = vec2(0.0f);
+  vec2 arg_3 = vec2(1.0f);
   int arg_4 = 1;
-  vec4 res = textureGatherOffset(arg_1_arg_2, vec3(arg_3, float(arg_4)), ivec2(0), 1);
+  vec4 res = textureGatherOffset(arg_1_arg_2, vec3(arg_3, float(arg_4)), ivec2(1), 1);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/var/textureGather/4b8103.wgsl.expected.msl b/test/tint/builtins/gen/var/textureGather/4b8103.wgsl.expected.msl
index 2c3b8cd..ebc75ff 100644
--- a/test/tint/builtins/gen/var/textureGather/4b8103.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureGather/4b8103.wgsl.expected.msl
@@ -2,9 +2,9 @@
 
 using namespace metal;
 void textureGather_4b8103(texture2d_array<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float2 arg_3 = float2(0.0f);
+  float2 arg_3 = float2(1.0f);
   int arg_4 = 1;
-  float4 res = tint_symbol_1.gather(tint_symbol_2, arg_3, arg_4, int2(0), component::y);
+  float4 res = tint_symbol_1.gather(tint_symbol_2, arg_3, arg_4, int2(1), component::y);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/textureGather/4b8103.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureGather/4b8103.wgsl.expected.spvasm
index 6b14a08..31b230e 100644
--- a/test/tint/builtins/gen/var/textureGather/4b8103.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureGather/4b8103.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 58
+; Bound: 59
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -45,58 +45,59 @@
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
-         %20 = OpConstantNull %v2float
+    %float_1 = OpConstant %float 1
+         %21 = OpConstantComposite %v2float %float_1 %float_1
 %_ptr_Function_v2float = OpTypePointer Function %v2float
+         %24 = OpConstantNull %v2float
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
-         %27 = OpConstantNull %int
-         %31 = OpTypeSampledImage %11
+         %29 = OpConstantNull %int
+         %33 = OpTypeSampledImage %11
     %v3float = OpTypeVector %float 3
       %v2int = OpTypeVector %int 2
-         %41 = OpConstantNull %v2int
+         %43 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %44 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %46 = OpTypeFunction %v4float
 %textureGather_4b8103 = OpFunction %void None %15
          %18 = OpLabel
-      %arg_3 = OpVariable %_ptr_Function_v2float Function %20
-      %arg_4 = OpVariable %_ptr_Function_int Function %27
+      %arg_3 = OpVariable %_ptr_Function_v2float Function %24
+      %arg_4 = OpVariable %_ptr_Function_int Function %29
         %res = OpVariable %_ptr_Function_v4float Function %5
-               OpStore %arg_3 %20
+               OpStore %arg_3 %21
                OpStore %arg_4 %int_1
-         %29 = OpLoad %14 %arg_2
-         %30 = OpLoad %11 %arg_1
-         %32 = OpSampledImage %31 %30 %29
-         %34 = OpLoad %v2float %arg_3
-         %35 = OpCompositeExtract %float %34 0
-         %36 = OpCompositeExtract %float %34 1
-         %38 = OpLoad %int %arg_4
-         %37 = OpConvertSToF %float %38
-         %39 = OpCompositeConstruct %v3float %35 %36 %37
-         %28 = OpImageGather %v4float %32 %39 %int_1 ConstOffset %41
-               OpStore %res %28
+         %31 = OpLoad %14 %arg_2
+         %32 = OpLoad %11 %arg_1
+         %34 = OpSampledImage %33 %32 %31
+         %36 = OpLoad %v2float %arg_3
+         %37 = OpCompositeExtract %float %36 0
+         %38 = OpCompositeExtract %float %36 1
+         %40 = OpLoad %int %arg_4
+         %39 = OpConvertSToF %float %40
+         %41 = OpCompositeConstruct %v3float %37 %38 %39
+         %30 = OpImageGather %v4float %34 %41 %int_1 ConstOffset %43
+               OpStore %res %30
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %44
-         %46 = OpLabel
-         %47 = OpFunctionCall %void %textureGather_4b8103
+%vertex_main_inner = OpFunction %v4float None %46
+         %48 = OpLabel
+         %49 = OpFunctionCall %void %textureGather_4b8103
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
-         %49 = OpLabel
-         %50 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %50
+         %51 = OpLabel
+         %52 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %52
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %15
-         %53 = OpLabel
-         %54 = OpFunctionCall %void %textureGather_4b8103
+         %54 = OpLabel
+         %55 = OpFunctionCall %void %textureGather_4b8103
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %15
-         %56 = OpLabel
-         %57 = OpFunctionCall %void %textureGather_4b8103
+         %57 = OpLabel
+         %58 = OpFunctionCall %void %textureGather_4b8103
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureGather/4b8103.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureGather/4b8103.wgsl.expected.wgsl
index d7bba31..2e80b1a 100644
--- a/test/tint/builtins/gen/var/textureGather/4b8103.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/4b8103.wgsl.expected.wgsl
@@ -4,9 +4,9 @@
 
 fn textureGather_4b8103() {
   const arg_0 = 1i;
-  var arg_3 = vec2<f32>();
+  var arg_3 = vec2<f32>(1.0f);
   var arg_4 = 1i;
-  const arg_5 = vec2<i32>();
+  const arg_5 = vec2<i32>(1i);
   var res : vec4<f32> = textureGather(arg_0, arg_1, arg_2, arg_3, arg_4, arg_5);
 }
 
diff --git a/test/tint/builtins/gen/var/textureGather/4e8ac5.wgsl b/test/tint/builtins/gen/var/textureGather/4e8ac5.wgsl
index 76f0a70..b9ca9f7 100644
--- a/test/tint/builtins/gen/var/textureGather/4e8ac5.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/4e8ac5.wgsl
@@ -26,7 +26,7 @@
 // fn textureGather(@const component: i32, texture: texture_2d_array<i32>, sampler: sampler, coords: vec2<f32>, array_index: u32) -> vec4<i32>
 fn textureGather_4e8ac5() {
   const arg_0 = 1i;
-  var arg_3 = vec2<f32>();
+  var arg_3 = vec2<f32>(1.f);
   var arg_4 = 1u;
   var res: vec4<i32> = textureGather(arg_0, arg_1, arg_2, arg_3, arg_4);
 }
diff --git a/test/tint/builtins/gen/var/textureGather/4e8ac5.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/4e8ac5.wgsl.expected.dxc.hlsl
index b7cd247..4a2c242 100644
--- a/test/tint/builtins/gen/var/textureGather/4e8ac5.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/4e8ac5.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_4e8ac5() {
-  float2 arg_3 = (0.0f).xx;
+  float2 arg_3 = (1.0f).xx;
   uint arg_4 = 1u;
   int4 res = arg_1.GatherGreen(arg_2, float3(arg_3, float(arg_4)));
 }
diff --git a/test/tint/builtins/gen/var/textureGather/4e8ac5.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/4e8ac5.wgsl.expected.fxc.hlsl
index b7cd247..4a2c242 100644
--- a/test/tint/builtins/gen/var/textureGather/4e8ac5.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/4e8ac5.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_4e8ac5() {
-  float2 arg_3 = (0.0f).xx;
+  float2 arg_3 = (1.0f).xx;
   uint arg_4 = 1u;
   int4 res = arg_1.GatherGreen(arg_2, float3(arg_3, float(arg_4)));
 }
diff --git a/test/tint/builtins/gen/var/textureGather/4e8ac5.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureGather/4e8ac5.wgsl.expected.glsl
index 20d7c66..eaecf15 100644
--- a/test/tint/builtins/gen/var/textureGather/4e8ac5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureGather/4e8ac5.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 uniform highp isampler2DArray arg_1_arg_2;
 
 void textureGather_4e8ac5() {
-  vec2 arg_3 = vec2(0.0f);
+  vec2 arg_3 = vec2(1.0f);
   uint arg_4 = 1u;
   ivec4 res = textureGather(arg_1_arg_2, vec3(arg_3, float(arg_4)), 1);
 }
@@ -27,7 +27,7 @@
 uniform highp isampler2DArray arg_1_arg_2;
 
 void textureGather_4e8ac5() {
-  vec2 arg_3 = vec2(0.0f);
+  vec2 arg_3 = vec2(1.0f);
   uint arg_4 = 1u;
   ivec4 res = textureGather(arg_1_arg_2, vec3(arg_3, float(arg_4)), 1);
 }
@@ -45,7 +45,7 @@
 uniform highp isampler2DArray arg_1_arg_2;
 
 void textureGather_4e8ac5() {
-  vec2 arg_3 = vec2(0.0f);
+  vec2 arg_3 = vec2(1.0f);
   uint arg_4 = 1u;
   ivec4 res = textureGather(arg_1_arg_2, vec3(arg_3, float(arg_4)), 1);
 }
diff --git a/test/tint/builtins/gen/var/textureGather/4e8ac5.wgsl.expected.msl b/test/tint/builtins/gen/var/textureGather/4e8ac5.wgsl.expected.msl
index da3939b..bf7d3ab 100644
--- a/test/tint/builtins/gen/var/textureGather/4e8ac5.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureGather/4e8ac5.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureGather_4e8ac5(texture2d_array<int, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float2 arg_3 = float2(0.0f);
+  float2 arg_3 = float2(1.0f);
   uint arg_4 = 1u;
   int4 res = tint_symbol_1.gather(tint_symbol_2, arg_3, arg_4, int2(0), component::y);
 }
diff --git a/test/tint/builtins/gen/var/textureGather/4e8ac5.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureGather/4e8ac5.wgsl.expected.spvasm
index fe9d0d4..4748563 100644
--- a/test/tint/builtins/gen/var/textureGather/4e8ac5.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureGather/4e8ac5.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 60
+; Bound: 61
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -46,59 +46,60 @@
        %void = OpTypeVoid
          %16 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
-         %21 = OpConstantNull %v2float
+    %float_1 = OpConstant %float 1
+         %22 = OpConstantComposite %v2float %float_1 %float_1
 %_ptr_Function_v2float = OpTypePointer Function %v2float
+         %25 = OpConstantNull %v2float
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %28 = OpConstantNull %uint
+         %30 = OpConstantNull %uint
       %v4int = OpTypeVector %int 4
-         %33 = OpTypeSampledImage %11
+         %35 = OpTypeSampledImage %11
     %v3float = OpTypeVector %float 3
       %int_1 = OpConstant %int 1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %45 = OpConstantNull %v4int
-         %46 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %47 = OpConstantNull %v4int
+         %48 = OpTypeFunction %v4float
 %textureGather_4e8ac5 = OpFunction %void None %16
          %19 = OpLabel
-      %arg_3 = OpVariable %_ptr_Function_v2float Function %21
-      %arg_4 = OpVariable %_ptr_Function_uint Function %28
-        %res = OpVariable %_ptr_Function_v4int Function %45
-               OpStore %arg_3 %21
+      %arg_3 = OpVariable %_ptr_Function_v2float Function %25
+      %arg_4 = OpVariable %_ptr_Function_uint Function %30
+        %res = OpVariable %_ptr_Function_v4int Function %47
+               OpStore %arg_3 %22
                OpStore %arg_4 %uint_1
-         %31 = OpLoad %15 %arg_2
-         %32 = OpLoad %11 %arg_1
-         %34 = OpSampledImage %33 %32 %31
-         %36 = OpLoad %v2float %arg_3
-         %37 = OpCompositeExtract %float %36 0
-         %38 = OpCompositeExtract %float %36 1
-         %40 = OpLoad %uint %arg_4
-         %39 = OpConvertUToF %float %40
-         %41 = OpCompositeConstruct %v3float %37 %38 %39
-         %29 = OpImageGather %v4int %34 %41 %int_1
-               OpStore %res %29
+         %33 = OpLoad %15 %arg_2
+         %34 = OpLoad %11 %arg_1
+         %36 = OpSampledImage %35 %34 %33
+         %38 = OpLoad %v2float %arg_3
+         %39 = OpCompositeExtract %float %38 0
+         %40 = OpCompositeExtract %float %38 1
+         %42 = OpLoad %uint %arg_4
+         %41 = OpConvertUToF %float %42
+         %43 = OpCompositeConstruct %v3float %39 %40 %41
+         %31 = OpImageGather %v4int %36 %43 %int_1
+               OpStore %res %31
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %46
-         %48 = OpLabel
-         %49 = OpFunctionCall %void %textureGather_4e8ac5
+%vertex_main_inner = OpFunction %v4float None %48
+         %50 = OpLabel
+         %51 = OpFunctionCall %void %textureGather_4e8ac5
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %16
-         %51 = OpLabel
-         %52 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %52
+         %53 = OpLabel
+         %54 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %54
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %16
-         %55 = OpLabel
-         %56 = OpFunctionCall %void %textureGather_4e8ac5
+         %56 = OpLabel
+         %57 = OpFunctionCall %void %textureGather_4e8ac5
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %16
-         %58 = OpLabel
-         %59 = OpFunctionCall %void %textureGather_4e8ac5
+         %59 = OpLabel
+         %60 = OpFunctionCall %void %textureGather_4e8ac5
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureGather/4e8ac5.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureGather/4e8ac5.wgsl.expected.wgsl
index e1ccdbf8..742d85e 100644
--- a/test/tint/builtins/gen/var/textureGather/4e8ac5.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/4e8ac5.wgsl.expected.wgsl
@@ -4,7 +4,7 @@
 
 fn textureGather_4e8ac5() {
   const arg_0 = 1i;
-  var arg_3 = vec2<f32>();
+  var arg_3 = vec2<f32>(1.0f);
   var arg_4 = 1u;
   var res : vec4<i32> = textureGather(arg_0, arg_1, arg_2, arg_3, arg_4);
 }
diff --git a/test/tint/builtins/gen/var/textureGather/5266da.wgsl b/test/tint/builtins/gen/var/textureGather/5266da.wgsl
index 29584a3..70b0b57 100644
--- a/test/tint/builtins/gen/var/textureGather/5266da.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/5266da.wgsl
@@ -26,7 +26,7 @@
 // fn textureGather(@const component: i32, texture: texture_2d<f32>, sampler: sampler, coords: vec2<f32>) -> vec4<f32>
 fn textureGather_5266da() {
   const arg_0 = 1i;
-  var arg_3 = vec2<f32>();
+  var arg_3 = vec2<f32>(1.f);
   var res: vec4<f32> = textureGather(arg_0, arg_1, arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureGather/5266da.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/5266da.wgsl.expected.dxc.hlsl
index f449a19..a7dba3d 100644
--- a/test/tint/builtins/gen/var/textureGather/5266da.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/5266da.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_5266da() {
-  float2 arg_3 = (0.0f).xx;
+  float2 arg_3 = (1.0f).xx;
   float4 res = arg_1.GatherGreen(arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureGather/5266da.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/5266da.wgsl.expected.fxc.hlsl
index f449a19..a7dba3d 100644
--- a/test/tint/builtins/gen/var/textureGather/5266da.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/5266da.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_5266da() {
-  float2 arg_3 = (0.0f).xx;
+  float2 arg_3 = (1.0f).xx;
   float4 res = arg_1.GatherGreen(arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureGather/5266da.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureGather/5266da.wgsl.expected.glsl
index 33c4c0f..4aa9d51 100644
--- a/test/tint/builtins/gen/var/textureGather/5266da.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureGather/5266da.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 uniform highp sampler2D arg_1_arg_2;
 
 void textureGather_5266da() {
-  vec2 arg_3 = vec2(0.0f);
+  vec2 arg_3 = vec2(1.0f);
   vec4 res = textureGather(arg_1_arg_2, arg_3, 1);
 }
 
@@ -26,7 +26,7 @@
 uniform highp sampler2D arg_1_arg_2;
 
 void textureGather_5266da() {
-  vec2 arg_3 = vec2(0.0f);
+  vec2 arg_3 = vec2(1.0f);
   vec4 res = textureGather(arg_1_arg_2, arg_3, 1);
 }
 
@@ -43,7 +43,7 @@
 uniform highp sampler2D arg_1_arg_2;
 
 void textureGather_5266da() {
-  vec2 arg_3 = vec2(0.0f);
+  vec2 arg_3 = vec2(1.0f);
   vec4 res = textureGather(arg_1_arg_2, arg_3, 1);
 }
 
diff --git a/test/tint/builtins/gen/var/textureGather/5266da.wgsl.expected.msl b/test/tint/builtins/gen/var/textureGather/5266da.wgsl.expected.msl
index 09bd3bb..71f3134 100644
--- a/test/tint/builtins/gen/var/textureGather/5266da.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureGather/5266da.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureGather_5266da(texture2d<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float2 arg_3 = float2(0.0f);
+  float2 arg_3 = float2(1.0f);
   float4 res = tint_symbol_1.gather(tint_symbol_2, arg_3, int2(0), component::y);
 }
 
diff --git a/test/tint/builtins/gen/var/textureGather/5266da.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureGather/5266da.wgsl.expected.spvasm
index b1bb4b9..3281e7b 100644
--- a/test/tint/builtins/gen/var/textureGather/5266da.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureGather/5266da.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 47
+; Bound: 48
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -44,46 +44,47 @@
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
-         %20 = OpConstantNull %v2float
+    %float_1 = OpConstant %float 1
+         %21 = OpConstantComposite %v2float %float_1 %float_1
 %_ptr_Function_v2float = OpTypePointer Function %v2float
-         %26 = OpTypeSampledImage %11
+         %24 = OpConstantNull %v2float
+         %28 = OpTypeSampledImage %11
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %33 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %35 = OpTypeFunction %v4float
 %textureGather_5266da = OpFunction %void None %15
          %18 = OpLabel
-      %arg_3 = OpVariable %_ptr_Function_v2float Function %20
+      %arg_3 = OpVariable %_ptr_Function_v2float Function %24
         %res = OpVariable %_ptr_Function_v4float Function %5
-               OpStore %arg_3 %20
-         %24 = OpLoad %14 %arg_2
-         %25 = OpLoad %11 %arg_1
-         %27 = OpSampledImage %26 %25 %24
-         %28 = OpLoad %v2float %arg_3
-         %23 = OpImageGather %v4float %27 %28 %int_1
-               OpStore %res %23
+               OpStore %arg_3 %21
+         %26 = OpLoad %14 %arg_2
+         %27 = OpLoad %11 %arg_1
+         %29 = OpSampledImage %28 %27 %26
+         %30 = OpLoad %v2float %arg_3
+         %25 = OpImageGather %v4float %29 %30 %int_1
+               OpStore %res %25
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %33
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureGather_5266da
+%vertex_main_inner = OpFunction %v4float None %35
+         %37 = OpLabel
+         %38 = OpFunctionCall %void %textureGather_5266da
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
-         %38 = OpLabel
-         %39 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %39
+         %40 = OpLabel
+         %41 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %41
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %15
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureGather_5266da
+         %43 = OpLabel
+         %44 = OpFunctionCall %void %textureGather_5266da
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %15
-         %45 = OpLabel
-         %46 = OpFunctionCall %void %textureGather_5266da
+         %46 = OpLabel
+         %47 = OpFunctionCall %void %textureGather_5266da
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureGather/5266da.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureGather/5266da.wgsl.expected.wgsl
index b3469f7..5d30699 100644
--- a/test/tint/builtins/gen/var/textureGather/5266da.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/5266da.wgsl.expected.wgsl
@@ -4,7 +4,7 @@
 
 fn textureGather_5266da() {
   const arg_0 = 1i;
-  var arg_3 = vec2<f32>();
+  var arg_3 = vec2<f32>(1.0f);
   var res : vec4<f32> = textureGather(arg_0, arg_1, arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureGather/59372a.wgsl b/test/tint/builtins/gen/var/textureGather/59372a.wgsl
index e490508..ea37944 100644
--- a/test/tint/builtins/gen/var/textureGather/59372a.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/59372a.wgsl
@@ -26,9 +26,9 @@
 // fn textureGather(@const component: i32, texture: texture_2d_array<f32>, sampler: sampler, coords: vec2<f32>, array_index: u32, @const offset: vec2<i32>) -> vec4<f32>
 fn textureGather_59372a() {
   const arg_0 = 1i;
-  var arg_3 = vec2<f32>();
+  var arg_3 = vec2<f32>(1.f);
   var arg_4 = 1u;
-  const arg_5 = vec2<i32>();
+  const arg_5 = vec2<i32>(1i);
   var res: vec4<f32> = textureGather(arg_0, arg_1, arg_2, arg_3, arg_4, arg_5);
 }
 
diff --git a/test/tint/builtins/gen/var/textureGather/59372a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/59372a.wgsl.expected.dxc.hlsl
index 9e2af14..1843c50 100644
--- a/test/tint/builtins/gen/var/textureGather/59372a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/59372a.wgsl.expected.dxc.hlsl
@@ -2,9 +2,9 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_59372a() {
-  float2 arg_3 = (0.0f).xx;
+  float2 arg_3 = (1.0f).xx;
   uint arg_4 = 1u;
-  float4 res = arg_1.GatherGreen(arg_2, float3(arg_3, float(arg_4)), (0).xx);
+  float4 res = arg_1.GatherGreen(arg_2, float3(arg_3, float(arg_4)), (1).xx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/textureGather/59372a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/59372a.wgsl.expected.fxc.hlsl
index 9e2af14..1843c50 100644
--- a/test/tint/builtins/gen/var/textureGather/59372a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/59372a.wgsl.expected.fxc.hlsl
@@ -2,9 +2,9 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_59372a() {
-  float2 arg_3 = (0.0f).xx;
+  float2 arg_3 = (1.0f).xx;
   uint arg_4 = 1u;
-  float4 res = arg_1.GatherGreen(arg_2, float3(arg_3, float(arg_4)), (0).xx);
+  float4 res = arg_1.GatherGreen(arg_2, float3(arg_3, float(arg_4)), (1).xx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/textureGather/59372a.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureGather/59372a.wgsl.expected.glsl
index d0c0e51..a0cd1ad 100644
--- a/test/tint/builtins/gen/var/textureGather/59372a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureGather/59372a.wgsl.expected.glsl
@@ -3,9 +3,9 @@
 uniform highp sampler2DArray arg_1_arg_2;
 
 void textureGather_59372a() {
-  vec2 arg_3 = vec2(0.0f);
+  vec2 arg_3 = vec2(1.0f);
   uint arg_4 = 1u;
-  vec4 res = textureGatherOffset(arg_1_arg_2, vec3(arg_3, float(arg_4)), ivec2(0), 1);
+  vec4 res = textureGatherOffset(arg_1_arg_2, vec3(arg_3, float(arg_4)), ivec2(1), 1);
 }
 
 vec4 vertex_main() {
@@ -27,9 +27,9 @@
 uniform highp sampler2DArray arg_1_arg_2;
 
 void textureGather_59372a() {
-  vec2 arg_3 = vec2(0.0f);
+  vec2 arg_3 = vec2(1.0f);
   uint arg_4 = 1u;
-  vec4 res = textureGatherOffset(arg_1_arg_2, vec3(arg_3, float(arg_4)), ivec2(0), 1);
+  vec4 res = textureGatherOffset(arg_1_arg_2, vec3(arg_3, float(arg_4)), ivec2(1), 1);
 }
 
 void fragment_main() {
@@ -45,9 +45,9 @@
 uniform highp sampler2DArray arg_1_arg_2;
 
 void textureGather_59372a() {
-  vec2 arg_3 = vec2(0.0f);
+  vec2 arg_3 = vec2(1.0f);
   uint arg_4 = 1u;
-  vec4 res = textureGatherOffset(arg_1_arg_2, vec3(arg_3, float(arg_4)), ivec2(0), 1);
+  vec4 res = textureGatherOffset(arg_1_arg_2, vec3(arg_3, float(arg_4)), ivec2(1), 1);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/var/textureGather/59372a.wgsl.expected.msl b/test/tint/builtins/gen/var/textureGather/59372a.wgsl.expected.msl
index 2299af0..ac817ac 100644
--- a/test/tint/builtins/gen/var/textureGather/59372a.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureGather/59372a.wgsl.expected.msl
@@ -2,9 +2,9 @@
 
 using namespace metal;
 void textureGather_59372a(texture2d_array<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float2 arg_3 = float2(0.0f);
+  float2 arg_3 = float2(1.0f);
   uint arg_4 = 1u;
-  float4 res = tint_symbol_1.gather(tint_symbol_2, arg_3, arg_4, int2(0), component::y);
+  float4 res = tint_symbol_1.gather(tint_symbol_2, arg_3, arg_4, int2(1), component::y);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/textureGather/59372a.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureGather/59372a.wgsl.expected.spvasm
index 159651c..502415e 100644
--- a/test/tint/builtins/gen/var/textureGather/59372a.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureGather/59372a.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 60
+; Bound: 61
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -45,60 +45,61 @@
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
-         %20 = OpConstantNull %v2float
+    %float_1 = OpConstant %float 1
+         %21 = OpConstantComposite %v2float %float_1 %float_1
 %_ptr_Function_v2float = OpTypePointer Function %v2float
+         %24 = OpConstantNull %v2float
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %27 = OpConstantNull %uint
-         %31 = OpTypeSampledImage %11
+         %29 = OpConstantNull %uint
+         %33 = OpTypeSampledImage %11
     %v3float = OpTypeVector %float 3
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
       %v2int = OpTypeVector %int 2
-         %43 = OpConstantNull %v2int
+         %45 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %46 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %48 = OpTypeFunction %v4float
 %textureGather_59372a = OpFunction %void None %15
          %18 = OpLabel
-      %arg_3 = OpVariable %_ptr_Function_v2float Function %20
-      %arg_4 = OpVariable %_ptr_Function_uint Function %27
+      %arg_3 = OpVariable %_ptr_Function_v2float Function %24
+      %arg_4 = OpVariable %_ptr_Function_uint Function %29
         %res = OpVariable %_ptr_Function_v4float Function %5
-               OpStore %arg_3 %20
+               OpStore %arg_3 %21
                OpStore %arg_4 %uint_1
-         %29 = OpLoad %14 %arg_2
-         %30 = OpLoad %11 %arg_1
-         %32 = OpSampledImage %31 %30 %29
-         %34 = OpLoad %v2float %arg_3
-         %35 = OpCompositeExtract %float %34 0
-         %36 = OpCompositeExtract %float %34 1
-         %38 = OpLoad %uint %arg_4
-         %37 = OpConvertUToF %float %38
-         %39 = OpCompositeConstruct %v3float %35 %36 %37
-         %28 = OpImageGather %v4float %32 %39 %int_1 ConstOffset %43
-               OpStore %res %28
+         %31 = OpLoad %14 %arg_2
+         %32 = OpLoad %11 %arg_1
+         %34 = OpSampledImage %33 %32 %31
+         %36 = OpLoad %v2float %arg_3
+         %37 = OpCompositeExtract %float %36 0
+         %38 = OpCompositeExtract %float %36 1
+         %40 = OpLoad %uint %arg_4
+         %39 = OpConvertUToF %float %40
+         %41 = OpCompositeConstruct %v3float %37 %38 %39
+         %30 = OpImageGather %v4float %34 %41 %int_1 ConstOffset %45
+               OpStore %res %30
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %46
-         %48 = OpLabel
-         %49 = OpFunctionCall %void %textureGather_59372a
+%vertex_main_inner = OpFunction %v4float None %48
+         %50 = OpLabel
+         %51 = OpFunctionCall %void %textureGather_59372a
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
-         %51 = OpLabel
-         %52 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %52
+         %53 = OpLabel
+         %54 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %54
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %15
-         %55 = OpLabel
-         %56 = OpFunctionCall %void %textureGather_59372a
+         %56 = OpLabel
+         %57 = OpFunctionCall %void %textureGather_59372a
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %15
-         %58 = OpLabel
-         %59 = OpFunctionCall %void %textureGather_59372a
+         %59 = OpLabel
+         %60 = OpFunctionCall %void %textureGather_59372a
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureGather/59372a.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureGather/59372a.wgsl.expected.wgsl
index fec8fe9..ffe7a1b 100644
--- a/test/tint/builtins/gen/var/textureGather/59372a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/59372a.wgsl.expected.wgsl
@@ -4,9 +4,9 @@
 
 fn textureGather_59372a() {
   const arg_0 = 1i;
-  var arg_3 = vec2<f32>();
+  var arg_3 = vec2<f32>(1.0f);
   var arg_4 = 1u;
-  const arg_5 = vec2<i32>();
+  const arg_5 = vec2<i32>(1i);
   var res : vec4<f32> = textureGather(arg_0, arg_1, arg_2, arg_3, arg_4, arg_5);
 }
 
diff --git a/test/tint/builtins/gen/var/textureGather/5ba85f.wgsl b/test/tint/builtins/gen/var/textureGather/5ba85f.wgsl
index 37ad80a..f1b04a0 100644
--- a/test/tint/builtins/gen/var/textureGather/5ba85f.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/5ba85f.wgsl
@@ -26,7 +26,7 @@
 // fn textureGather(@const component: i32, texture: texture_cube<i32>, sampler: sampler, coords: vec3<f32>) -> vec4<i32>
 fn textureGather_5ba85f() {
   const arg_0 = 1i;
-  var arg_3 = vec3<f32>();
+  var arg_3 = vec3<f32>(1.f);
   var res: vec4<i32> = textureGather(arg_0, arg_1, arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureGather/5ba85f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/5ba85f.wgsl.expected.dxc.hlsl
index 39a0d15..f6d0388 100644
--- a/test/tint/builtins/gen/var/textureGather/5ba85f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/5ba85f.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_5ba85f() {
-  float3 arg_3 = (0.0f).xxx;
+  float3 arg_3 = (1.0f).xxx;
   int4 res = arg_1.GatherGreen(arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureGather/5ba85f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/5ba85f.wgsl.expected.fxc.hlsl
index 39a0d15..f6d0388 100644
--- a/test/tint/builtins/gen/var/textureGather/5ba85f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/5ba85f.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_5ba85f() {
-  float3 arg_3 = (0.0f).xxx;
+  float3 arg_3 = (1.0f).xxx;
   int4 res = arg_1.GatherGreen(arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureGather/5ba85f.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureGather/5ba85f.wgsl.expected.glsl
index 096f596..936cbd1 100644
--- a/test/tint/builtins/gen/var/textureGather/5ba85f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureGather/5ba85f.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 uniform highp isamplerCube arg_1_arg_2;
 
 void textureGather_5ba85f() {
-  vec3 arg_3 = vec3(0.0f);
+  vec3 arg_3 = vec3(1.0f);
   ivec4 res = textureGather(arg_1_arg_2, arg_3, 1);
 }
 
@@ -26,7 +26,7 @@
 uniform highp isamplerCube arg_1_arg_2;
 
 void textureGather_5ba85f() {
-  vec3 arg_3 = vec3(0.0f);
+  vec3 arg_3 = vec3(1.0f);
   ivec4 res = textureGather(arg_1_arg_2, arg_3, 1);
 }
 
@@ -43,7 +43,7 @@
 uniform highp isamplerCube arg_1_arg_2;
 
 void textureGather_5ba85f() {
-  vec3 arg_3 = vec3(0.0f);
+  vec3 arg_3 = vec3(1.0f);
   ivec4 res = textureGather(arg_1_arg_2, arg_3, 1);
 }
 
diff --git a/test/tint/builtins/gen/var/textureGather/5ba85f.wgsl.expected.msl b/test/tint/builtins/gen/var/textureGather/5ba85f.wgsl.expected.msl
index 23a45a4..1918822 100644
--- a/test/tint/builtins/gen/var/textureGather/5ba85f.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureGather/5ba85f.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureGather_5ba85f(texturecube<int, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float3 arg_3 = float3(0.0f);
+  float3 arg_3 = float3(1.0f);
   int4 res = tint_symbol_1.gather(tint_symbol_2, arg_3, component::y);
 }
 
diff --git a/test/tint/builtins/gen/var/textureGather/5ba85f.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureGather/5ba85f.wgsl.expected.spvasm
index 30b40eb..6ad4fe9 100644
--- a/test/tint/builtins/gen/var/textureGather/5ba85f.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureGather/5ba85f.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 49
+; Bound: 50
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -45,47 +45,48 @@
        %void = OpTypeVoid
          %16 = OpTypeFunction %void
     %v3float = OpTypeVector %float 3
-         %21 = OpConstantNull %v3float
+    %float_1 = OpConstant %float 1
+         %22 = OpConstantComposite %v3float %float_1 %float_1 %float_1
 %_ptr_Function_v3float = OpTypePointer Function %v3float
+         %25 = OpConstantNull %v3float
       %v4int = OpTypeVector %int 4
-         %28 = OpTypeSampledImage %11
+         %30 = OpTypeSampledImage %11
       %int_1 = OpConstant %int 1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %34 = OpConstantNull %v4int
-         %35 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %36 = OpConstantNull %v4int
+         %37 = OpTypeFunction %v4float
 %textureGather_5ba85f = OpFunction %void None %16
          %19 = OpLabel
-      %arg_3 = OpVariable %_ptr_Function_v3float Function %21
-        %res = OpVariable %_ptr_Function_v4int Function %34
-               OpStore %arg_3 %21
-         %26 = OpLoad %15 %arg_2
-         %27 = OpLoad %11 %arg_1
-         %29 = OpSampledImage %28 %27 %26
-         %30 = OpLoad %v3float %arg_3
-         %24 = OpImageGather %v4int %29 %30 %int_1
-               OpStore %res %24
+      %arg_3 = OpVariable %_ptr_Function_v3float Function %25
+        %res = OpVariable %_ptr_Function_v4int Function %36
+               OpStore %arg_3 %22
+         %28 = OpLoad %15 %arg_2
+         %29 = OpLoad %11 %arg_1
+         %31 = OpSampledImage %30 %29 %28
+         %32 = OpLoad %v3float %arg_3
+         %26 = OpImageGather %v4int %31 %32 %int_1
+               OpStore %res %26
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %35
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureGather_5ba85f
+%vertex_main_inner = OpFunction %v4float None %37
+         %39 = OpLabel
+         %40 = OpFunctionCall %void %textureGather_5ba85f
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %16
-         %40 = OpLabel
-         %41 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %41
+         %42 = OpLabel
+         %43 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %43
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %16
-         %44 = OpLabel
-         %45 = OpFunctionCall %void %textureGather_5ba85f
+         %45 = OpLabel
+         %46 = OpFunctionCall %void %textureGather_5ba85f
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %16
-         %47 = OpLabel
-         %48 = OpFunctionCall %void %textureGather_5ba85f
+         %48 = OpLabel
+         %49 = OpFunctionCall %void %textureGather_5ba85f
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureGather/5ba85f.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureGather/5ba85f.wgsl.expected.wgsl
index d2a3918..bd36329 100644
--- a/test/tint/builtins/gen/var/textureGather/5ba85f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/5ba85f.wgsl.expected.wgsl
@@ -4,7 +4,7 @@
 
 fn textureGather_5ba85f() {
   const arg_0 = 1i;
-  var arg_3 = vec3<f32>();
+  var arg_3 = vec3<f32>(1.0f);
   var res : vec4<i32> = textureGather(arg_0, arg_1, arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureGather/5bd491.wgsl b/test/tint/builtins/gen/var/textureGather/5bd491.wgsl
index 1e5c68f..ab1dd80 100644
--- a/test/tint/builtins/gen/var/textureGather/5bd491.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/5bd491.wgsl
@@ -26,7 +26,7 @@
 // fn textureGather(@const component: i32, texture: texture_2d<u32>, sampler: sampler, coords: vec2<f32>) -> vec4<u32>
 fn textureGather_5bd491() {
   const arg_0 = 1i;
-  var arg_3 = vec2<f32>();
+  var arg_3 = vec2<f32>(1.f);
   var res: vec4<u32> = textureGather(arg_0, arg_1, arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureGather/5bd491.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/5bd491.wgsl.expected.dxc.hlsl
index 50701a2..4027ec0 100644
--- a/test/tint/builtins/gen/var/textureGather/5bd491.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/5bd491.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_5bd491() {
-  float2 arg_3 = (0.0f).xx;
+  float2 arg_3 = (1.0f).xx;
   uint4 res = arg_1.GatherGreen(arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureGather/5bd491.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/5bd491.wgsl.expected.fxc.hlsl
index 50701a2..4027ec0 100644
--- a/test/tint/builtins/gen/var/textureGather/5bd491.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/5bd491.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_5bd491() {
-  float2 arg_3 = (0.0f).xx;
+  float2 arg_3 = (1.0f).xx;
   uint4 res = arg_1.GatherGreen(arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureGather/5bd491.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureGather/5bd491.wgsl.expected.glsl
index 1cb6b09..8b8939d 100644
--- a/test/tint/builtins/gen/var/textureGather/5bd491.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureGather/5bd491.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 uniform highp usampler2D arg_1_arg_2;
 
 void textureGather_5bd491() {
-  vec2 arg_3 = vec2(0.0f);
+  vec2 arg_3 = vec2(1.0f);
   uvec4 res = textureGather(arg_1_arg_2, arg_3, 1);
 }
 
@@ -26,7 +26,7 @@
 uniform highp usampler2D arg_1_arg_2;
 
 void textureGather_5bd491() {
-  vec2 arg_3 = vec2(0.0f);
+  vec2 arg_3 = vec2(1.0f);
   uvec4 res = textureGather(arg_1_arg_2, arg_3, 1);
 }
 
@@ -43,7 +43,7 @@
 uniform highp usampler2D arg_1_arg_2;
 
 void textureGather_5bd491() {
-  vec2 arg_3 = vec2(0.0f);
+  vec2 arg_3 = vec2(1.0f);
   uvec4 res = textureGather(arg_1_arg_2, arg_3, 1);
 }
 
diff --git a/test/tint/builtins/gen/var/textureGather/5bd491.wgsl.expected.msl b/test/tint/builtins/gen/var/textureGather/5bd491.wgsl.expected.msl
index 22227a8..ba70f35 100644
--- a/test/tint/builtins/gen/var/textureGather/5bd491.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureGather/5bd491.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureGather_5bd491(texture2d<uint, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float2 arg_3 = float2(0.0f);
+  float2 arg_3 = float2(1.0f);
   uint4 res = tint_symbol_1.gather(tint_symbol_2, arg_3, int2(0), component::y);
 }
 
diff --git a/test/tint/builtins/gen/var/textureGather/5bd491.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureGather/5bd491.wgsl.expected.spvasm
index 601e988..93c18ed 100644
--- a/test/tint/builtins/gen/var/textureGather/5bd491.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureGather/5bd491.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 50
+; Bound: 51
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -45,48 +45,49 @@
        %void = OpTypeVoid
          %16 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
-         %21 = OpConstantNull %v2float
+    %float_1 = OpConstant %float 1
+         %22 = OpConstantComposite %v2float %float_1 %float_1
 %_ptr_Function_v2float = OpTypePointer Function %v2float
+         %25 = OpConstantNull %v2float
      %v4uint = OpTypeVector %uint 4
-         %28 = OpTypeSampledImage %11
+         %30 = OpTypeSampledImage %11
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %35 = OpConstantNull %v4uint
-         %36 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %37 = OpConstantNull %v4uint
+         %38 = OpTypeFunction %v4float
 %textureGather_5bd491 = OpFunction %void None %16
          %19 = OpLabel
-      %arg_3 = OpVariable %_ptr_Function_v2float Function %21
-        %res = OpVariable %_ptr_Function_v4uint Function %35
-               OpStore %arg_3 %21
-         %26 = OpLoad %15 %arg_2
-         %27 = OpLoad %11 %arg_1
-         %29 = OpSampledImage %28 %27 %26
-         %30 = OpLoad %v2float %arg_3
-         %24 = OpImageGather %v4uint %29 %30 %int_1
-               OpStore %res %24
+      %arg_3 = OpVariable %_ptr_Function_v2float Function %25
+        %res = OpVariable %_ptr_Function_v4uint Function %37
+               OpStore %arg_3 %22
+         %28 = OpLoad %15 %arg_2
+         %29 = OpLoad %11 %arg_1
+         %31 = OpSampledImage %30 %29 %28
+         %32 = OpLoad %v2float %arg_3
+         %26 = OpImageGather %v4uint %31 %32 %int_1
+               OpStore %res %26
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %36
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureGather_5bd491
+%vertex_main_inner = OpFunction %v4float None %38
+         %40 = OpLabel
+         %41 = OpFunctionCall %void %textureGather_5bd491
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %16
-         %41 = OpLabel
-         %42 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %42
+         %43 = OpLabel
+         %44 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %44
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %16
-         %45 = OpLabel
-         %46 = OpFunctionCall %void %textureGather_5bd491
+         %46 = OpLabel
+         %47 = OpFunctionCall %void %textureGather_5bd491
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %16
-         %48 = OpLabel
-         %49 = OpFunctionCall %void %textureGather_5bd491
+         %49 = OpLabel
+         %50 = OpFunctionCall %void %textureGather_5bd491
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureGather/5bd491.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureGather/5bd491.wgsl.expected.wgsl
index 835c7ab..64bee25 100644
--- a/test/tint/builtins/gen/var/textureGather/5bd491.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/5bd491.wgsl.expected.wgsl
@@ -4,7 +4,7 @@
 
 fn textureGather_5bd491() {
   const arg_0 = 1i;
-  var arg_3 = vec2<f32>();
+  var arg_3 = vec2<f32>(1.0f);
   var res : vec4<u32> = textureGather(arg_0, arg_1, arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureGather/6b7b74.wgsl b/test/tint/builtins/gen/var/textureGather/6b7b74.wgsl
index b47e75e..93046b9 100644
--- a/test/tint/builtins/gen/var/textureGather/6b7b74.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/6b7b74.wgsl
@@ -26,9 +26,9 @@
 // fn textureGather(@const component: u32, texture: texture_2d_array<u32>, sampler: sampler, coords: vec2<f32>, array_index: u32, @const offset: vec2<i32>) -> vec4<u32>
 fn textureGather_6b7b74() {
   const arg_0 = 1u;
-  var arg_3 = vec2<f32>();
+  var arg_3 = vec2<f32>(1.f);
   var arg_4 = 1u;
-  const arg_5 = vec2<i32>();
+  const arg_5 = vec2<i32>(1i);
   var res: vec4<u32> = textureGather(arg_0, arg_1, arg_2, arg_3, arg_4, arg_5);
 }
 
diff --git a/test/tint/builtins/gen/var/textureGather/6b7b74.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/6b7b74.wgsl.expected.dxc.hlsl
index 691fd8d..483b16f 100644
--- a/test/tint/builtins/gen/var/textureGather/6b7b74.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/6b7b74.wgsl.expected.dxc.hlsl
@@ -2,9 +2,9 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_6b7b74() {
-  float2 arg_3 = (0.0f).xx;
+  float2 arg_3 = (1.0f).xx;
   uint arg_4 = 1u;
-  uint4 res = arg_1.GatherGreen(arg_2, float3(arg_3, float(arg_4)), (0).xx);
+  uint4 res = arg_1.GatherGreen(arg_2, float3(arg_3, float(arg_4)), (1).xx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/textureGather/6b7b74.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/6b7b74.wgsl.expected.fxc.hlsl
index 691fd8d..483b16f 100644
--- a/test/tint/builtins/gen/var/textureGather/6b7b74.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/6b7b74.wgsl.expected.fxc.hlsl
@@ -2,9 +2,9 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_6b7b74() {
-  float2 arg_3 = (0.0f).xx;
+  float2 arg_3 = (1.0f).xx;
   uint arg_4 = 1u;
-  uint4 res = arg_1.GatherGreen(arg_2, float3(arg_3, float(arg_4)), (0).xx);
+  uint4 res = arg_1.GatherGreen(arg_2, float3(arg_3, float(arg_4)), (1).xx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/textureGather/6b7b74.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureGather/6b7b74.wgsl.expected.glsl
index bb9053c..cc2e9b5 100644
--- a/test/tint/builtins/gen/var/textureGather/6b7b74.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureGather/6b7b74.wgsl.expected.glsl
@@ -3,9 +3,9 @@
 uniform highp usampler2DArray arg_1_arg_2;
 
 void textureGather_6b7b74() {
-  vec2 arg_3 = vec2(0.0f);
+  vec2 arg_3 = vec2(1.0f);
   uint arg_4 = 1u;
-  uvec4 res = textureGatherOffset(arg_1_arg_2, vec3(arg_3, float(arg_4)), ivec2(0), int(1u));
+  uvec4 res = textureGatherOffset(arg_1_arg_2, vec3(arg_3, float(arg_4)), ivec2(1), int(1u));
 }
 
 vec4 vertex_main() {
@@ -27,9 +27,9 @@
 uniform highp usampler2DArray arg_1_arg_2;
 
 void textureGather_6b7b74() {
-  vec2 arg_3 = vec2(0.0f);
+  vec2 arg_3 = vec2(1.0f);
   uint arg_4 = 1u;
-  uvec4 res = textureGatherOffset(arg_1_arg_2, vec3(arg_3, float(arg_4)), ivec2(0), int(1u));
+  uvec4 res = textureGatherOffset(arg_1_arg_2, vec3(arg_3, float(arg_4)), ivec2(1), int(1u));
 }
 
 void fragment_main() {
@@ -45,9 +45,9 @@
 uniform highp usampler2DArray arg_1_arg_2;
 
 void textureGather_6b7b74() {
-  vec2 arg_3 = vec2(0.0f);
+  vec2 arg_3 = vec2(1.0f);
   uint arg_4 = 1u;
-  uvec4 res = textureGatherOffset(arg_1_arg_2, vec3(arg_3, float(arg_4)), ivec2(0), int(1u));
+  uvec4 res = textureGatherOffset(arg_1_arg_2, vec3(arg_3, float(arg_4)), ivec2(1), int(1u));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/var/textureGather/6b7b74.wgsl.expected.msl b/test/tint/builtins/gen/var/textureGather/6b7b74.wgsl.expected.msl
index 188a667..584583c 100644
--- a/test/tint/builtins/gen/var/textureGather/6b7b74.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureGather/6b7b74.wgsl.expected.msl
@@ -2,9 +2,9 @@
 
 using namespace metal;
 void textureGather_6b7b74(texture2d_array<uint, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float2 arg_3 = float2(0.0f);
+  float2 arg_3 = float2(1.0f);
   uint arg_4 = 1u;
-  uint4 res = tint_symbol_1.gather(tint_symbol_2, arg_3, arg_4, int2(0), component::y);
+  uint4 res = tint_symbol_1.gather(tint_symbol_2, arg_3, arg_4, int2(1), component::y);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/textureGather/6b7b74.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureGather/6b7b74.wgsl.expected.spvasm
index dcb03e7..6794f05 100644
--- a/test/tint/builtins/gen/var/textureGather/6b7b74.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureGather/6b7b74.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 61
+; Bound: 63
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -46,60 +46,62 @@
        %void = OpTypeVoid
          %16 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
-         %21 = OpConstantNull %v2float
+    %float_1 = OpConstant %float 1
+         %22 = OpConstantComposite %v2float %float_1 %float_1
 %_ptr_Function_v2float = OpTypePointer Function %v2float
+         %25 = OpConstantNull %v2float
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %27 = OpConstantNull %uint
+         %29 = OpConstantNull %uint
      %v4uint = OpTypeVector %uint 4
-         %32 = OpTypeSampledImage %11
+         %34 = OpTypeSampledImage %11
     %v3float = OpTypeVector %float 3
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
-         %43 = OpConstantNull %v2int
+      %int_1 = OpConstant %int 1
+         %46 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %46 = OpConstantNull %v4uint
-         %47 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %49 = OpConstantNull %v4uint
+         %50 = OpTypeFunction %v4float
 %textureGather_6b7b74 = OpFunction %void None %16
          %19 = OpLabel
-      %arg_3 = OpVariable %_ptr_Function_v2float Function %21
-      %arg_4 = OpVariable %_ptr_Function_uint Function %27
-        %res = OpVariable %_ptr_Function_v4uint Function %46
-               OpStore %arg_3 %21
+      %arg_3 = OpVariable %_ptr_Function_v2float Function %25
+      %arg_4 = OpVariable %_ptr_Function_uint Function %29
+        %res = OpVariable %_ptr_Function_v4uint Function %49
+               OpStore %arg_3 %22
                OpStore %arg_4 %uint_1
-         %30 = OpLoad %15 %arg_2
-         %31 = OpLoad %11 %arg_1
-         %33 = OpSampledImage %32 %31 %30
-         %35 = OpLoad %v2float %arg_3
-         %36 = OpCompositeExtract %float %35 0
-         %37 = OpCompositeExtract %float %35 1
-         %39 = OpLoad %uint %arg_4
-         %38 = OpConvertUToF %float %39
-         %40 = OpCompositeConstruct %v3float %36 %37 %38
-         %28 = OpImageGather %v4uint %33 %40 %uint_1 ConstOffset %43
-               OpStore %res %28
+         %32 = OpLoad %15 %arg_2
+         %33 = OpLoad %11 %arg_1
+         %35 = OpSampledImage %34 %33 %32
+         %37 = OpLoad %v2float %arg_3
+         %38 = OpCompositeExtract %float %37 0
+         %39 = OpCompositeExtract %float %37 1
+         %41 = OpLoad %uint %arg_4
+         %40 = OpConvertUToF %float %41
+         %42 = OpCompositeConstruct %v3float %38 %39 %40
+         %30 = OpImageGather %v4uint %35 %42 %uint_1 ConstOffset %46
+               OpStore %res %30
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %47
-         %49 = OpLabel
-         %50 = OpFunctionCall %void %textureGather_6b7b74
+%vertex_main_inner = OpFunction %v4float None %50
+         %52 = OpLabel
+         %53 = OpFunctionCall %void %textureGather_6b7b74
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %16
-         %52 = OpLabel
-         %53 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %53
+         %55 = OpLabel
+         %56 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %56
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %16
-         %56 = OpLabel
-         %57 = OpFunctionCall %void %textureGather_6b7b74
+         %58 = OpLabel
+         %59 = OpFunctionCall %void %textureGather_6b7b74
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %16
-         %59 = OpLabel
-         %60 = OpFunctionCall %void %textureGather_6b7b74
+         %61 = OpLabel
+         %62 = OpFunctionCall %void %textureGather_6b7b74
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureGather/6b7b74.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureGather/6b7b74.wgsl.expected.wgsl
index 62867d7..ab4d5c8 100644
--- a/test/tint/builtins/gen/var/textureGather/6b7b74.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/6b7b74.wgsl.expected.wgsl
@@ -4,9 +4,9 @@
 
 fn textureGather_6b7b74() {
   const arg_0 = 1u;
-  var arg_3 = vec2<f32>();
+  var arg_3 = vec2<f32>(1.0f);
   var arg_4 = 1u;
-  const arg_5 = vec2<i32>();
+  const arg_5 = vec2<i32>(1i);
   var res : vec4<u32> = textureGather(arg_0, arg_1, arg_2, arg_3, arg_4, arg_5);
 }
 
diff --git a/test/tint/builtins/gen/var/textureGather/751f8a.wgsl b/test/tint/builtins/gen/var/textureGather/751f8a.wgsl
index 304233a..0459084 100644
--- a/test/tint/builtins/gen/var/textureGather/751f8a.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/751f8a.wgsl
@@ -26,7 +26,7 @@
 // fn textureGather(@const component: i32, texture: texture_cube_array<f32>, sampler: sampler, coords: vec3<f32>, array_index: i32) -> vec4<f32>
 fn textureGather_751f8a() {
   const arg_0 = 1i;
-  var arg_3 = vec3<f32>();
+  var arg_3 = vec3<f32>(1.f);
   var arg_4 = 1i;
   var res: vec4<f32> = textureGather(arg_0, arg_1, arg_2, arg_3, arg_4);
 }
diff --git a/test/tint/builtins/gen/var/textureGather/751f8a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/751f8a.wgsl.expected.dxc.hlsl
index 4b0055f..4861cca 100644
--- a/test/tint/builtins/gen/var/textureGather/751f8a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/751f8a.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_751f8a() {
-  float3 arg_3 = (0.0f).xxx;
+  float3 arg_3 = (1.0f).xxx;
   int arg_4 = 1;
   float4 res = arg_1.GatherGreen(arg_2, float4(arg_3, float(arg_4)));
 }
diff --git a/test/tint/builtins/gen/var/textureGather/751f8a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/751f8a.wgsl.expected.fxc.hlsl
index 4b0055f..4861cca 100644
--- a/test/tint/builtins/gen/var/textureGather/751f8a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/751f8a.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_751f8a() {
-  float3 arg_3 = (0.0f).xxx;
+  float3 arg_3 = (1.0f).xxx;
   int arg_4 = 1;
   float4 res = arg_1.GatherGreen(arg_2, float4(arg_3, float(arg_4)));
 }
diff --git a/test/tint/builtins/gen/var/textureGather/751f8a.wgsl.expected.msl b/test/tint/builtins/gen/var/textureGather/751f8a.wgsl.expected.msl
index 4b8c748..8e00dce 100644
--- a/test/tint/builtins/gen/var/textureGather/751f8a.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureGather/751f8a.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureGather_751f8a(texturecube_array<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float3 arg_3 = float3(0.0f);
+  float3 arg_3 = float3(1.0f);
   int arg_4 = 1;
   float4 res = tint_symbol_1.gather(tint_symbol_2, arg_3, arg_4, component::y);
 }
diff --git a/test/tint/builtins/gen/var/textureGather/751f8a.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureGather/751f8a.wgsl.expected.spvasm
index d65968a..9792c25 100644
--- a/test/tint/builtins/gen/var/textureGather/751f8a.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureGather/751f8a.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 56
+; Bound: 57
 ; Schema: 0
                OpCapability Shader
                OpCapability SampledCubeArray
@@ -46,56 +46,57 @@
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
     %v3float = OpTypeVector %float 3
-         %20 = OpConstantNull %v3float
+    %float_1 = OpConstant %float 1
+         %21 = OpConstantComposite %v3float %float_1 %float_1 %float_1
 %_ptr_Function_v3float = OpTypePointer Function %v3float
+         %24 = OpConstantNull %v3float
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
-         %27 = OpConstantNull %int
-         %31 = OpTypeSampledImage %11
+         %29 = OpConstantNull %int
+         %33 = OpTypeSampledImage %11
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %42 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %44 = OpTypeFunction %v4float
 %textureGather_751f8a = OpFunction %void None %15
          %18 = OpLabel
-      %arg_3 = OpVariable %_ptr_Function_v3float Function %20
-      %arg_4 = OpVariable %_ptr_Function_int Function %27
+      %arg_3 = OpVariable %_ptr_Function_v3float Function %24
+      %arg_4 = OpVariable %_ptr_Function_int Function %29
         %res = OpVariable %_ptr_Function_v4float Function %5
-               OpStore %arg_3 %20
+               OpStore %arg_3 %21
                OpStore %arg_4 %int_1
-         %29 = OpLoad %14 %arg_2
-         %30 = OpLoad %11 %arg_1
-         %32 = OpSampledImage %31 %30 %29
-         %33 = OpLoad %v3float %arg_3
-         %34 = OpCompositeExtract %float %33 0
-         %35 = OpCompositeExtract %float %33 1
-         %36 = OpCompositeExtract %float %33 2
-         %38 = OpLoad %int %arg_4
-         %37 = OpConvertSToF %float %38
-         %39 = OpCompositeConstruct %v4float %34 %35 %36 %37
-         %28 = OpImageGather %v4float %32 %39 %int_1
-               OpStore %res %28
+         %31 = OpLoad %14 %arg_2
+         %32 = OpLoad %11 %arg_1
+         %34 = OpSampledImage %33 %32 %31
+         %35 = OpLoad %v3float %arg_3
+         %36 = OpCompositeExtract %float %35 0
+         %37 = OpCompositeExtract %float %35 1
+         %38 = OpCompositeExtract %float %35 2
+         %40 = OpLoad %int %arg_4
+         %39 = OpConvertSToF %float %40
+         %41 = OpCompositeConstruct %v4float %36 %37 %38 %39
+         %30 = OpImageGather %v4float %34 %41 %int_1
+               OpStore %res %30
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %42
-         %44 = OpLabel
-         %45 = OpFunctionCall %void %textureGather_751f8a
+%vertex_main_inner = OpFunction %v4float None %44
+         %46 = OpLabel
+         %47 = OpFunctionCall %void %textureGather_751f8a
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
-         %47 = OpLabel
-         %48 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %48
+         %49 = OpLabel
+         %50 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %50
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %15
-         %51 = OpLabel
-         %52 = OpFunctionCall %void %textureGather_751f8a
+         %52 = OpLabel
+         %53 = OpFunctionCall %void %textureGather_751f8a
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %15
-         %54 = OpLabel
-         %55 = OpFunctionCall %void %textureGather_751f8a
+         %55 = OpLabel
+         %56 = OpFunctionCall %void %textureGather_751f8a
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureGather/751f8a.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureGather/751f8a.wgsl.expected.wgsl
index 6d844cc..827faaf 100644
--- a/test/tint/builtins/gen/var/textureGather/751f8a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/751f8a.wgsl.expected.wgsl
@@ -4,7 +4,7 @@
 
 fn textureGather_751f8a() {
   const arg_0 = 1i;
-  var arg_3 = vec3<f32>();
+  var arg_3 = vec3<f32>(1.0f);
   var arg_4 = 1i;
   var res : vec4<f32> = textureGather(arg_0, arg_1, arg_2, arg_3, arg_4);
 }
diff --git a/test/tint/builtins/gen/var/textureGather/788010.wgsl b/test/tint/builtins/gen/var/textureGather/788010.wgsl
index b78bd39..77f5724 100644
--- a/test/tint/builtins/gen/var/textureGather/788010.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/788010.wgsl
@@ -26,7 +26,7 @@
 // fn textureGather(@const component: i32, texture: texture_cube_array<i32>, sampler: sampler, coords: vec3<f32>, array_index: u32) -> vec4<i32>
 fn textureGather_788010() {
   const arg_0 = 1i;
-  var arg_3 = vec3<f32>();
+  var arg_3 = vec3<f32>(1.f);
   var arg_4 = 1u;
   var res: vec4<i32> = textureGather(arg_0, arg_1, arg_2, arg_3, arg_4);
 }
diff --git a/test/tint/builtins/gen/var/textureGather/788010.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/788010.wgsl.expected.dxc.hlsl
index 130a99e..098bc2a 100644
--- a/test/tint/builtins/gen/var/textureGather/788010.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/788010.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_788010() {
-  float3 arg_3 = (0.0f).xxx;
+  float3 arg_3 = (1.0f).xxx;
   uint arg_4 = 1u;
   int4 res = arg_1.GatherGreen(arg_2, float4(arg_3, float(arg_4)));
 }
diff --git a/test/tint/builtins/gen/var/textureGather/788010.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/788010.wgsl.expected.fxc.hlsl
index 130a99e..098bc2a 100644
--- a/test/tint/builtins/gen/var/textureGather/788010.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/788010.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_788010() {
-  float3 arg_3 = (0.0f).xxx;
+  float3 arg_3 = (1.0f).xxx;
   uint arg_4 = 1u;
   int4 res = arg_1.GatherGreen(arg_2, float4(arg_3, float(arg_4)));
 }
diff --git a/test/tint/builtins/gen/var/textureGather/788010.wgsl.expected.msl b/test/tint/builtins/gen/var/textureGather/788010.wgsl.expected.msl
index 2c80712..5968236 100644
--- a/test/tint/builtins/gen/var/textureGather/788010.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureGather/788010.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureGather_788010(texturecube_array<int, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float3 arg_3 = float3(0.0f);
+  float3 arg_3 = float3(1.0f);
   uint arg_4 = 1u;
   int4 res = tint_symbol_1.gather(tint_symbol_2, arg_3, arg_4, component::y);
 }
diff --git a/test/tint/builtins/gen/var/textureGather/788010.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureGather/788010.wgsl.expected.spvasm
index 7e9ec26..d4b6a12 100644
--- a/test/tint/builtins/gen/var/textureGather/788010.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureGather/788010.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 60
+; Bound: 61
 ; Schema: 0
                OpCapability Shader
                OpCapability SampledCubeArray
@@ -47,59 +47,60 @@
        %void = OpTypeVoid
          %16 = OpTypeFunction %void
     %v3float = OpTypeVector %float 3
-         %21 = OpConstantNull %v3float
+    %float_1 = OpConstant %float 1
+         %22 = OpConstantComposite %v3float %float_1 %float_1 %float_1
 %_ptr_Function_v3float = OpTypePointer Function %v3float
+         %25 = OpConstantNull %v3float
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %28 = OpConstantNull %uint
+         %30 = OpConstantNull %uint
       %v4int = OpTypeVector %int 4
-         %33 = OpTypeSampledImage %11
+         %35 = OpTypeSampledImage %11
       %int_1 = OpConstant %int 1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %45 = OpConstantNull %v4int
-         %46 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %47 = OpConstantNull %v4int
+         %48 = OpTypeFunction %v4float
 %textureGather_788010 = OpFunction %void None %16
          %19 = OpLabel
-      %arg_3 = OpVariable %_ptr_Function_v3float Function %21
-      %arg_4 = OpVariable %_ptr_Function_uint Function %28
-        %res = OpVariable %_ptr_Function_v4int Function %45
-               OpStore %arg_3 %21
+      %arg_3 = OpVariable %_ptr_Function_v3float Function %25
+      %arg_4 = OpVariable %_ptr_Function_uint Function %30
+        %res = OpVariable %_ptr_Function_v4int Function %47
+               OpStore %arg_3 %22
                OpStore %arg_4 %uint_1
-         %31 = OpLoad %15 %arg_2
-         %32 = OpLoad %11 %arg_1
-         %34 = OpSampledImage %33 %32 %31
-         %35 = OpLoad %v3float %arg_3
-         %36 = OpCompositeExtract %float %35 0
-         %37 = OpCompositeExtract %float %35 1
-         %38 = OpCompositeExtract %float %35 2
-         %40 = OpLoad %uint %arg_4
-         %39 = OpConvertUToF %float %40
-         %41 = OpCompositeConstruct %v4float %36 %37 %38 %39
-         %29 = OpImageGather %v4int %34 %41 %int_1
-               OpStore %res %29
+         %33 = OpLoad %15 %arg_2
+         %34 = OpLoad %11 %arg_1
+         %36 = OpSampledImage %35 %34 %33
+         %37 = OpLoad %v3float %arg_3
+         %38 = OpCompositeExtract %float %37 0
+         %39 = OpCompositeExtract %float %37 1
+         %40 = OpCompositeExtract %float %37 2
+         %42 = OpLoad %uint %arg_4
+         %41 = OpConvertUToF %float %42
+         %43 = OpCompositeConstruct %v4float %38 %39 %40 %41
+         %31 = OpImageGather %v4int %36 %43 %int_1
+               OpStore %res %31
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %46
-         %48 = OpLabel
-         %49 = OpFunctionCall %void %textureGather_788010
+%vertex_main_inner = OpFunction %v4float None %48
+         %50 = OpLabel
+         %51 = OpFunctionCall %void %textureGather_788010
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %16
-         %51 = OpLabel
-         %52 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %52
+         %53 = OpLabel
+         %54 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %54
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %16
-         %55 = OpLabel
-         %56 = OpFunctionCall %void %textureGather_788010
+         %56 = OpLabel
+         %57 = OpFunctionCall %void %textureGather_788010
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %16
-         %58 = OpLabel
-         %59 = OpFunctionCall %void %textureGather_788010
+         %59 = OpLabel
+         %60 = OpFunctionCall %void %textureGather_788010
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureGather/788010.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureGather/788010.wgsl.expected.wgsl
index 3f426c4..52ad4c6 100644
--- a/test/tint/builtins/gen/var/textureGather/788010.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/788010.wgsl.expected.wgsl
@@ -4,7 +4,7 @@
 
 fn textureGather_788010() {
   const arg_0 = 1i;
-  var arg_3 = vec3<f32>();
+  var arg_3 = vec3<f32>(1.0f);
   var arg_4 = 1u;
   var res : vec4<i32> = textureGather(arg_0, arg_1, arg_2, arg_3, arg_4);
 }
diff --git a/test/tint/builtins/gen/var/textureGather/7c3828.wgsl b/test/tint/builtins/gen/var/textureGather/7c3828.wgsl
index 1399be9..4e18be0 100644
--- a/test/tint/builtins/gen/var/textureGather/7c3828.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/7c3828.wgsl
@@ -26,8 +26,8 @@
 // fn textureGather(@const component: i32, texture: texture_2d<i32>, sampler: sampler, coords: vec2<f32>, @const offset: vec2<i32>) -> vec4<i32>
 fn textureGather_7c3828() {
   const arg_0 = 1i;
-  var arg_3 = vec2<f32>();
-  const arg_4 = vec2<i32>();
+  var arg_3 = vec2<f32>(1.f);
+  const arg_4 = vec2<i32>(1i);
   var res: vec4<i32> = textureGather(arg_0, arg_1, arg_2, arg_3, arg_4);
 }
 
diff --git a/test/tint/builtins/gen/var/textureGather/7c3828.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/7c3828.wgsl.expected.dxc.hlsl
index af880b4..ffe464d 100644
--- a/test/tint/builtins/gen/var/textureGather/7c3828.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/7c3828.wgsl.expected.dxc.hlsl
@@ -2,8 +2,8 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_7c3828() {
-  float2 arg_3 = (0.0f).xx;
-  int4 res = arg_1.GatherGreen(arg_2, arg_3, (0).xx);
+  float2 arg_3 = (1.0f).xx;
+  int4 res = arg_1.GatherGreen(arg_2, arg_3, (1).xx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/textureGather/7c3828.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/7c3828.wgsl.expected.fxc.hlsl
index af880b4..ffe464d 100644
--- a/test/tint/builtins/gen/var/textureGather/7c3828.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/7c3828.wgsl.expected.fxc.hlsl
@@ -2,8 +2,8 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_7c3828() {
-  float2 arg_3 = (0.0f).xx;
-  int4 res = arg_1.GatherGreen(arg_2, arg_3, (0).xx);
+  float2 arg_3 = (1.0f).xx;
+  int4 res = arg_1.GatherGreen(arg_2, arg_3, (1).xx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/textureGather/7c3828.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureGather/7c3828.wgsl.expected.glsl
index 862ebb4..c1d56be 100644
--- a/test/tint/builtins/gen/var/textureGather/7c3828.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureGather/7c3828.wgsl.expected.glsl
@@ -3,8 +3,8 @@
 uniform highp isampler2D arg_1_arg_2;
 
 void textureGather_7c3828() {
-  vec2 arg_3 = vec2(0.0f);
-  ivec4 res = textureGatherOffset(arg_1_arg_2, arg_3, ivec2(0), 1);
+  vec2 arg_3 = vec2(1.0f);
+  ivec4 res = textureGatherOffset(arg_1_arg_2, arg_3, ivec2(1), 1);
 }
 
 vec4 vertex_main() {
@@ -26,8 +26,8 @@
 uniform highp isampler2D arg_1_arg_2;
 
 void textureGather_7c3828() {
-  vec2 arg_3 = vec2(0.0f);
-  ivec4 res = textureGatherOffset(arg_1_arg_2, arg_3, ivec2(0), 1);
+  vec2 arg_3 = vec2(1.0f);
+  ivec4 res = textureGatherOffset(arg_1_arg_2, arg_3, ivec2(1), 1);
 }
 
 void fragment_main() {
@@ -43,8 +43,8 @@
 uniform highp isampler2D arg_1_arg_2;
 
 void textureGather_7c3828() {
-  vec2 arg_3 = vec2(0.0f);
-  ivec4 res = textureGatherOffset(arg_1_arg_2, arg_3, ivec2(0), 1);
+  vec2 arg_3 = vec2(1.0f);
+  ivec4 res = textureGatherOffset(arg_1_arg_2, arg_3, ivec2(1), 1);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/var/textureGather/7c3828.wgsl.expected.msl b/test/tint/builtins/gen/var/textureGather/7c3828.wgsl.expected.msl
index 9772d44..9c4e568 100644
--- a/test/tint/builtins/gen/var/textureGather/7c3828.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureGather/7c3828.wgsl.expected.msl
@@ -2,8 +2,8 @@
 
 using namespace metal;
 void textureGather_7c3828(texture2d<int, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float2 arg_3 = float2(0.0f);
-  int4 res = tint_symbol_1.gather(tint_symbol_2, arg_3, int2(0), component::y);
+  float2 arg_3 = float2(1.0f);
+  int4 res = tint_symbol_1.gather(tint_symbol_2, arg_3, int2(1), component::y);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/textureGather/7c3828.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureGather/7c3828.wgsl.expected.spvasm
index 18f210e..b704f03 100644
--- a/test/tint/builtins/gen/var/textureGather/7c3828.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureGather/7c3828.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 51
+; Bound: 52
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -45,49 +45,50 @@
        %void = OpTypeVoid
          %16 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
-         %21 = OpConstantNull %v2float
+    %float_1 = OpConstant %float 1
+         %22 = OpConstantComposite %v2float %float_1 %float_1
 %_ptr_Function_v2float = OpTypePointer Function %v2float
+         %25 = OpConstantNull %v2float
       %v4int = OpTypeVector %int 4
-         %28 = OpTypeSampledImage %11
+         %30 = OpTypeSampledImage %11
       %int_1 = OpConstant %int 1
       %v2int = OpTypeVector %int 2
-         %33 = OpConstantNull %v2int
+         %35 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %36 = OpConstantNull %v4int
-         %37 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %38 = OpConstantNull %v4int
+         %39 = OpTypeFunction %v4float
 %textureGather_7c3828 = OpFunction %void None %16
          %19 = OpLabel
-      %arg_3 = OpVariable %_ptr_Function_v2float Function %21
-        %res = OpVariable %_ptr_Function_v4int Function %36
-               OpStore %arg_3 %21
-         %26 = OpLoad %15 %arg_2
-         %27 = OpLoad %11 %arg_1
-         %29 = OpSampledImage %28 %27 %26
-         %30 = OpLoad %v2float %arg_3
-         %24 = OpImageGather %v4int %29 %30 %int_1 ConstOffset %33
-               OpStore %res %24
+      %arg_3 = OpVariable %_ptr_Function_v2float Function %25
+        %res = OpVariable %_ptr_Function_v4int Function %38
+               OpStore %arg_3 %22
+         %28 = OpLoad %15 %arg_2
+         %29 = OpLoad %11 %arg_1
+         %31 = OpSampledImage %30 %29 %28
+         %32 = OpLoad %v2float %arg_3
+         %26 = OpImageGather %v4int %31 %32 %int_1 ConstOffset %35
+               OpStore %res %26
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %37
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureGather_7c3828
+%vertex_main_inner = OpFunction %v4float None %39
+         %41 = OpLabel
+         %42 = OpFunctionCall %void %textureGather_7c3828
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %16
-         %42 = OpLabel
-         %43 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %43
+         %44 = OpLabel
+         %45 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %45
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %16
-         %46 = OpLabel
-         %47 = OpFunctionCall %void %textureGather_7c3828
+         %47 = OpLabel
+         %48 = OpFunctionCall %void %textureGather_7c3828
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %16
-         %49 = OpLabel
-         %50 = OpFunctionCall %void %textureGather_7c3828
+         %50 = OpLabel
+         %51 = OpFunctionCall %void %textureGather_7c3828
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureGather/7c3828.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureGather/7c3828.wgsl.expected.wgsl
index 70760c9..f5e18b3 100644
--- a/test/tint/builtins/gen/var/textureGather/7c3828.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/7c3828.wgsl.expected.wgsl
@@ -4,8 +4,8 @@
 
 fn textureGather_7c3828() {
   const arg_0 = 1i;
-  var arg_3 = vec2<f32>();
-  const arg_4 = vec2<i32>();
+  var arg_3 = vec2<f32>(1.0f);
+  const arg_4 = vec2<i32>(1i);
   var res : vec4<i32> = textureGather(arg_0, arg_1, arg_2, arg_3, arg_4);
 }
 
diff --git a/test/tint/builtins/gen/var/textureGather/7dd226.wgsl b/test/tint/builtins/gen/var/textureGather/7dd226.wgsl
index b781710..816965a 100644
--- a/test/tint/builtins/gen/var/textureGather/7dd226.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/7dd226.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureGather(texture: texture_depth_cube_array, sampler: sampler, coords: vec3<f32>, array_index: u32) -> vec4<f32>
 fn textureGather_7dd226() {
-  var arg_2 = vec3<f32>();
+  var arg_2 = vec3<f32>(1.f);
   var arg_3 = 1u;
   var res: vec4<f32> = textureGather(arg_0, arg_1, arg_2, arg_3);
 }
diff --git a/test/tint/builtins/gen/var/textureGather/7dd226.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/7dd226.wgsl.expected.dxc.hlsl
index 13f7566..54411be 100644
--- a/test/tint/builtins/gen/var/textureGather/7dd226.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/7dd226.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureGather_7dd226() {
-  float3 arg_2 = (0.0f).xxx;
+  float3 arg_2 = (1.0f).xxx;
   uint arg_3 = 1u;
   float4 res = arg_0.Gather(arg_1, float4(arg_2, float(arg_3)));
 }
diff --git a/test/tint/builtins/gen/var/textureGather/7dd226.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/7dd226.wgsl.expected.fxc.hlsl
index 13f7566..54411be 100644
--- a/test/tint/builtins/gen/var/textureGather/7dd226.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/7dd226.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureGather_7dd226() {
-  float3 arg_2 = (0.0f).xxx;
+  float3 arg_2 = (1.0f).xxx;
   uint arg_3 = 1u;
   float4 res = arg_0.Gather(arg_1, float4(arg_2, float(arg_3)));
 }
diff --git a/test/tint/builtins/gen/var/textureGather/7dd226.wgsl.expected.msl b/test/tint/builtins/gen/var/textureGather/7dd226.wgsl.expected.msl
index 1c7b39b..c0b2d12 100644
--- a/test/tint/builtins/gen/var/textureGather/7dd226.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureGather/7dd226.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureGather_7dd226(depthcube_array<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float3 arg_2 = float3(0.0f);
+  float3 arg_2 = float3(1.0f);
   uint arg_3 = 1u;
   float4 res = tint_symbol_1.gather(tint_symbol_2, arg_2, arg_3);
 }
diff --git a/test/tint/builtins/gen/var/textureGather/7dd226.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureGather/7dd226.wgsl.expected.spvasm
index dc42b14..d10d883 100644
--- a/test/tint/builtins/gen/var/textureGather/7dd226.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureGather/7dd226.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 58
+; Bound: 59
 ; Schema: 0
                OpCapability Shader
                OpCapability SampledCubeArray
@@ -46,58 +46,59 @@
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
     %v3float = OpTypeVector %float 3
-         %20 = OpConstantNull %v3float
+    %float_1 = OpConstant %float 1
+         %21 = OpConstantComposite %v3float %float_1 %float_1 %float_1
 %_ptr_Function_v3float = OpTypePointer Function %v3float
+         %24 = OpConstantNull %v3float
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %27 = OpConstantNull %uint
-         %31 = OpTypeSampledImage %11
+         %29 = OpConstantNull %uint
+         %33 = OpTypeSampledImage %11
         %int = OpTypeInt 32 1
       %int_0 = OpConstant %int 0
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %44 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %46 = OpTypeFunction %v4float
 %textureGather_7dd226 = OpFunction %void None %15
          %18 = OpLabel
-      %arg_2 = OpVariable %_ptr_Function_v3float Function %20
-      %arg_3 = OpVariable %_ptr_Function_uint Function %27
+      %arg_2 = OpVariable %_ptr_Function_v3float Function %24
+      %arg_3 = OpVariable %_ptr_Function_uint Function %29
         %res = OpVariable %_ptr_Function_v4float Function %5
-               OpStore %arg_2 %20
+               OpStore %arg_2 %21
                OpStore %arg_3 %uint_1
-         %29 = OpLoad %14 %arg_1
-         %30 = OpLoad %11 %arg_0
-         %32 = OpSampledImage %31 %30 %29
-         %33 = OpLoad %v3float %arg_2
-         %34 = OpCompositeExtract %float %33 0
-         %35 = OpCompositeExtract %float %33 1
-         %36 = OpCompositeExtract %float %33 2
-         %38 = OpLoad %uint %arg_3
-         %37 = OpConvertUToF %float %38
-         %39 = OpCompositeConstruct %v4float %34 %35 %36 %37
-         %28 = OpImageGather %v4float %32 %39 %int_0
-               OpStore %res %28
+         %31 = OpLoad %14 %arg_1
+         %32 = OpLoad %11 %arg_0
+         %34 = OpSampledImage %33 %32 %31
+         %35 = OpLoad %v3float %arg_2
+         %36 = OpCompositeExtract %float %35 0
+         %37 = OpCompositeExtract %float %35 1
+         %38 = OpCompositeExtract %float %35 2
+         %40 = OpLoad %uint %arg_3
+         %39 = OpConvertUToF %float %40
+         %41 = OpCompositeConstruct %v4float %36 %37 %38 %39
+         %30 = OpImageGather %v4float %34 %41 %int_0
+               OpStore %res %30
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %44
-         %46 = OpLabel
-         %47 = OpFunctionCall %void %textureGather_7dd226
+%vertex_main_inner = OpFunction %v4float None %46
+         %48 = OpLabel
+         %49 = OpFunctionCall %void %textureGather_7dd226
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
-         %49 = OpLabel
-         %50 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %50
+         %51 = OpLabel
+         %52 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %52
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %15
-         %53 = OpLabel
-         %54 = OpFunctionCall %void %textureGather_7dd226
+         %54 = OpLabel
+         %55 = OpFunctionCall %void %textureGather_7dd226
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %15
-         %56 = OpLabel
-         %57 = OpFunctionCall %void %textureGather_7dd226
+         %57 = OpLabel
+         %58 = OpFunctionCall %void %textureGather_7dd226
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureGather/7dd226.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureGather/7dd226.wgsl.expected.wgsl
index 0e0eb90..1b1c20d 100644
--- a/test/tint/builtins/gen/var/textureGather/7dd226.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/7dd226.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(1) var arg_1 : sampler;
 
 fn textureGather_7dd226() {
-  var arg_2 = vec3<f32>();
+  var arg_2 = vec3<f32>(1.0f);
   var arg_3 = 1u;
   var res : vec4<f32> = textureGather(arg_0, arg_1, arg_2, arg_3);
 }
diff --git a/test/tint/builtins/gen/var/textureGather/829357.wgsl b/test/tint/builtins/gen/var/textureGather/829357.wgsl
index 1134019..dabcb5b 100644
--- a/test/tint/builtins/gen/var/textureGather/829357.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/829357.wgsl
@@ -26,7 +26,7 @@
 // fn textureGather(@const component: i32, texture: texture_cube_array<f32>, sampler: sampler, coords: vec3<f32>, array_index: u32) -> vec4<f32>
 fn textureGather_829357() {
   const arg_0 = 1i;
-  var arg_3 = vec3<f32>();
+  var arg_3 = vec3<f32>(1.f);
   var arg_4 = 1u;
   var res: vec4<f32> = textureGather(arg_0, arg_1, arg_2, arg_3, arg_4);
 }
diff --git a/test/tint/builtins/gen/var/textureGather/829357.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/829357.wgsl.expected.dxc.hlsl
index 77abe9b..88ad7f2 100644
--- a/test/tint/builtins/gen/var/textureGather/829357.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/829357.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_829357() {
-  float3 arg_3 = (0.0f).xxx;
+  float3 arg_3 = (1.0f).xxx;
   uint arg_4 = 1u;
   float4 res = arg_1.GatherGreen(arg_2, float4(arg_3, float(arg_4)));
 }
diff --git a/test/tint/builtins/gen/var/textureGather/829357.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/829357.wgsl.expected.fxc.hlsl
index 77abe9b..88ad7f2 100644
--- a/test/tint/builtins/gen/var/textureGather/829357.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/829357.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_829357() {
-  float3 arg_3 = (0.0f).xxx;
+  float3 arg_3 = (1.0f).xxx;
   uint arg_4 = 1u;
   float4 res = arg_1.GatherGreen(arg_2, float4(arg_3, float(arg_4)));
 }
diff --git a/test/tint/builtins/gen/var/textureGather/829357.wgsl.expected.msl b/test/tint/builtins/gen/var/textureGather/829357.wgsl.expected.msl
index 89c6bfb..655411d 100644
--- a/test/tint/builtins/gen/var/textureGather/829357.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureGather/829357.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureGather_829357(texturecube_array<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float3 arg_3 = float3(0.0f);
+  float3 arg_3 = float3(1.0f);
   uint arg_4 = 1u;
   float4 res = tint_symbol_1.gather(tint_symbol_2, arg_3, arg_4, component::y);
 }
diff --git a/test/tint/builtins/gen/var/textureGather/829357.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureGather/829357.wgsl.expected.spvasm
index 1427357..ef7e6f1 100644
--- a/test/tint/builtins/gen/var/textureGather/829357.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureGather/829357.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 58
+; Bound: 59
 ; Schema: 0
                OpCapability Shader
                OpCapability SampledCubeArray
@@ -46,58 +46,59 @@
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
     %v3float = OpTypeVector %float 3
-         %20 = OpConstantNull %v3float
+    %float_1 = OpConstant %float 1
+         %21 = OpConstantComposite %v3float %float_1 %float_1 %float_1
 %_ptr_Function_v3float = OpTypePointer Function %v3float
+         %24 = OpConstantNull %v3float
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %27 = OpConstantNull %uint
-         %31 = OpTypeSampledImage %11
+         %29 = OpConstantNull %uint
+         %33 = OpTypeSampledImage %11
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %44 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %46 = OpTypeFunction %v4float
 %textureGather_829357 = OpFunction %void None %15
          %18 = OpLabel
-      %arg_3 = OpVariable %_ptr_Function_v3float Function %20
-      %arg_4 = OpVariable %_ptr_Function_uint Function %27
+      %arg_3 = OpVariable %_ptr_Function_v3float Function %24
+      %arg_4 = OpVariable %_ptr_Function_uint Function %29
         %res = OpVariable %_ptr_Function_v4float Function %5
-               OpStore %arg_3 %20
+               OpStore %arg_3 %21
                OpStore %arg_4 %uint_1
-         %29 = OpLoad %14 %arg_2
-         %30 = OpLoad %11 %arg_1
-         %32 = OpSampledImage %31 %30 %29
-         %33 = OpLoad %v3float %arg_3
-         %34 = OpCompositeExtract %float %33 0
-         %35 = OpCompositeExtract %float %33 1
-         %36 = OpCompositeExtract %float %33 2
-         %38 = OpLoad %uint %arg_4
-         %37 = OpConvertUToF %float %38
-         %39 = OpCompositeConstruct %v4float %34 %35 %36 %37
-         %28 = OpImageGather %v4float %32 %39 %int_1
-               OpStore %res %28
+         %31 = OpLoad %14 %arg_2
+         %32 = OpLoad %11 %arg_1
+         %34 = OpSampledImage %33 %32 %31
+         %35 = OpLoad %v3float %arg_3
+         %36 = OpCompositeExtract %float %35 0
+         %37 = OpCompositeExtract %float %35 1
+         %38 = OpCompositeExtract %float %35 2
+         %40 = OpLoad %uint %arg_4
+         %39 = OpConvertUToF %float %40
+         %41 = OpCompositeConstruct %v4float %36 %37 %38 %39
+         %30 = OpImageGather %v4float %34 %41 %int_1
+               OpStore %res %30
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %44
-         %46 = OpLabel
-         %47 = OpFunctionCall %void %textureGather_829357
+%vertex_main_inner = OpFunction %v4float None %46
+         %48 = OpLabel
+         %49 = OpFunctionCall %void %textureGather_829357
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
-         %49 = OpLabel
-         %50 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %50
+         %51 = OpLabel
+         %52 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %52
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %15
-         %53 = OpLabel
-         %54 = OpFunctionCall %void %textureGather_829357
+         %54 = OpLabel
+         %55 = OpFunctionCall %void %textureGather_829357
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %15
-         %56 = OpLabel
-         %57 = OpFunctionCall %void %textureGather_829357
+         %57 = OpLabel
+         %58 = OpFunctionCall %void %textureGather_829357
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureGather/829357.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureGather/829357.wgsl.expected.wgsl
index 78f4e36..bd4c6ca 100644
--- a/test/tint/builtins/gen/var/textureGather/829357.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/829357.wgsl.expected.wgsl
@@ -4,7 +4,7 @@
 
 fn textureGather_829357() {
   const arg_0 = 1i;
-  var arg_3 = vec3<f32>();
+  var arg_3 = vec3<f32>(1.0f);
   var arg_4 = 1u;
   var res : vec4<f32> = textureGather(arg_0, arg_1, arg_2, arg_3, arg_4);
 }
diff --git a/test/tint/builtins/gen/var/textureGather/831549.wgsl b/test/tint/builtins/gen/var/textureGather/831549.wgsl
index 1f3118d..28ca6b3 100644
--- a/test/tint/builtins/gen/var/textureGather/831549.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/831549.wgsl
@@ -26,9 +26,9 @@
 // fn textureGather(@const component: u32, texture: texture_2d_array<f32>, sampler: sampler, coords: vec2<f32>, array_index: i32, @const offset: vec2<i32>) -> vec4<f32>
 fn textureGather_831549() {
   const arg_0 = 1u;
-  var arg_3 = vec2<f32>();
+  var arg_3 = vec2<f32>(1.f);
   var arg_4 = 1i;
-  const arg_5 = vec2<i32>();
+  const arg_5 = vec2<i32>(1i);
   var res: vec4<f32> = textureGather(arg_0, arg_1, arg_2, arg_3, arg_4, arg_5);
 }
 
diff --git a/test/tint/builtins/gen/var/textureGather/831549.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/831549.wgsl.expected.dxc.hlsl
index 38bf7e0..2e103a4 100644
--- a/test/tint/builtins/gen/var/textureGather/831549.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/831549.wgsl.expected.dxc.hlsl
@@ -2,9 +2,9 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_831549() {
-  float2 arg_3 = (0.0f).xx;
+  float2 arg_3 = (1.0f).xx;
   int arg_4 = 1;
-  float4 res = arg_1.GatherGreen(arg_2, float3(arg_3, float(arg_4)), (0).xx);
+  float4 res = arg_1.GatherGreen(arg_2, float3(arg_3, float(arg_4)), (1).xx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/textureGather/831549.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/831549.wgsl.expected.fxc.hlsl
index 38bf7e0..2e103a4 100644
--- a/test/tint/builtins/gen/var/textureGather/831549.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/831549.wgsl.expected.fxc.hlsl
@@ -2,9 +2,9 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_831549() {
-  float2 arg_3 = (0.0f).xx;
+  float2 arg_3 = (1.0f).xx;
   int arg_4 = 1;
-  float4 res = arg_1.GatherGreen(arg_2, float3(arg_3, float(arg_4)), (0).xx);
+  float4 res = arg_1.GatherGreen(arg_2, float3(arg_3, float(arg_4)), (1).xx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/textureGather/831549.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureGather/831549.wgsl.expected.glsl
index 88bf13e..b10b9e1 100644
--- a/test/tint/builtins/gen/var/textureGather/831549.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureGather/831549.wgsl.expected.glsl
@@ -3,9 +3,9 @@
 uniform highp sampler2DArray arg_1_arg_2;
 
 void textureGather_831549() {
-  vec2 arg_3 = vec2(0.0f);
+  vec2 arg_3 = vec2(1.0f);
   int arg_4 = 1;
-  vec4 res = textureGatherOffset(arg_1_arg_2, vec3(arg_3, float(arg_4)), ivec2(0), int(1u));
+  vec4 res = textureGatherOffset(arg_1_arg_2, vec3(arg_3, float(arg_4)), ivec2(1), int(1u));
 }
 
 vec4 vertex_main() {
@@ -27,9 +27,9 @@
 uniform highp sampler2DArray arg_1_arg_2;
 
 void textureGather_831549() {
-  vec2 arg_3 = vec2(0.0f);
+  vec2 arg_3 = vec2(1.0f);
   int arg_4 = 1;
-  vec4 res = textureGatherOffset(arg_1_arg_2, vec3(arg_3, float(arg_4)), ivec2(0), int(1u));
+  vec4 res = textureGatherOffset(arg_1_arg_2, vec3(arg_3, float(arg_4)), ivec2(1), int(1u));
 }
 
 void fragment_main() {
@@ -45,9 +45,9 @@
 uniform highp sampler2DArray arg_1_arg_2;
 
 void textureGather_831549() {
-  vec2 arg_3 = vec2(0.0f);
+  vec2 arg_3 = vec2(1.0f);
   int arg_4 = 1;
-  vec4 res = textureGatherOffset(arg_1_arg_2, vec3(arg_3, float(arg_4)), ivec2(0), int(1u));
+  vec4 res = textureGatherOffset(arg_1_arg_2, vec3(arg_3, float(arg_4)), ivec2(1), int(1u));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/var/textureGather/831549.wgsl.expected.msl b/test/tint/builtins/gen/var/textureGather/831549.wgsl.expected.msl
index f6e10eb..d2fade6 100644
--- a/test/tint/builtins/gen/var/textureGather/831549.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureGather/831549.wgsl.expected.msl
@@ -2,9 +2,9 @@
 
 using namespace metal;
 void textureGather_831549(texture2d_array<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float2 arg_3 = float2(0.0f);
+  float2 arg_3 = float2(1.0f);
   int arg_4 = 1;
-  float4 res = tint_symbol_1.gather(tint_symbol_2, arg_3, arg_4, int2(0), component::y);
+  float4 res = tint_symbol_1.gather(tint_symbol_2, arg_3, arg_4, int2(1), component::y);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/textureGather/831549.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureGather/831549.wgsl.expected.spvasm
index 6ac5d59..50095f7 100644
--- a/test/tint/builtins/gen/var/textureGather/831549.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureGather/831549.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 60
+; Bound: 61
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -45,60 +45,61 @@
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
-         %20 = OpConstantNull %v2float
+    %float_1 = OpConstant %float 1
+         %21 = OpConstantComposite %v2float %float_1 %float_1
 %_ptr_Function_v2float = OpTypePointer Function %v2float
+         %24 = OpConstantNull %v2float
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
-         %27 = OpConstantNull %int
-         %31 = OpTypeSampledImage %11
+         %29 = OpConstantNull %int
+         %33 = OpTypeSampledImage %11
     %v3float = OpTypeVector %float 3
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
       %v2int = OpTypeVector %int 2
-         %43 = OpConstantNull %v2int
+         %45 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %46 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %48 = OpTypeFunction %v4float
 %textureGather_831549 = OpFunction %void None %15
          %18 = OpLabel
-      %arg_3 = OpVariable %_ptr_Function_v2float Function %20
-      %arg_4 = OpVariable %_ptr_Function_int Function %27
+      %arg_3 = OpVariable %_ptr_Function_v2float Function %24
+      %arg_4 = OpVariable %_ptr_Function_int Function %29
         %res = OpVariable %_ptr_Function_v4float Function %5
-               OpStore %arg_3 %20
+               OpStore %arg_3 %21
                OpStore %arg_4 %int_1
-         %29 = OpLoad %14 %arg_2
-         %30 = OpLoad %11 %arg_1
-         %32 = OpSampledImage %31 %30 %29
-         %34 = OpLoad %v2float %arg_3
-         %35 = OpCompositeExtract %float %34 0
-         %36 = OpCompositeExtract %float %34 1
-         %38 = OpLoad %int %arg_4
-         %37 = OpConvertSToF %float %38
-         %39 = OpCompositeConstruct %v3float %35 %36 %37
-         %28 = OpImageGather %v4float %32 %39 %uint_1 ConstOffset %43
-               OpStore %res %28
+         %31 = OpLoad %14 %arg_2
+         %32 = OpLoad %11 %arg_1
+         %34 = OpSampledImage %33 %32 %31
+         %36 = OpLoad %v2float %arg_3
+         %37 = OpCompositeExtract %float %36 0
+         %38 = OpCompositeExtract %float %36 1
+         %40 = OpLoad %int %arg_4
+         %39 = OpConvertSToF %float %40
+         %41 = OpCompositeConstruct %v3float %37 %38 %39
+         %30 = OpImageGather %v4float %34 %41 %uint_1 ConstOffset %45
+               OpStore %res %30
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %46
-         %48 = OpLabel
-         %49 = OpFunctionCall %void %textureGather_831549
+%vertex_main_inner = OpFunction %v4float None %48
+         %50 = OpLabel
+         %51 = OpFunctionCall %void %textureGather_831549
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
-         %51 = OpLabel
-         %52 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %52
+         %53 = OpLabel
+         %54 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %54
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %15
-         %55 = OpLabel
-         %56 = OpFunctionCall %void %textureGather_831549
+         %56 = OpLabel
+         %57 = OpFunctionCall %void %textureGather_831549
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %15
-         %58 = OpLabel
-         %59 = OpFunctionCall %void %textureGather_831549
+         %59 = OpLabel
+         %60 = OpFunctionCall %void %textureGather_831549
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureGather/831549.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureGather/831549.wgsl.expected.wgsl
index fb01440..030f293 100644
--- a/test/tint/builtins/gen/var/textureGather/831549.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/831549.wgsl.expected.wgsl
@@ -4,9 +4,9 @@
 
 fn textureGather_831549() {
   const arg_0 = 1u;
-  var arg_3 = vec2<f32>();
+  var arg_3 = vec2<f32>(1.0f);
   var arg_4 = 1i;
-  const arg_5 = vec2<i32>();
+  const arg_5 = vec2<i32>(1i);
   var res : vec4<f32> = textureGather(arg_0, arg_1, arg_2, arg_3, arg_4, arg_5);
 }
 
diff --git a/test/tint/builtins/gen/var/textureGather/8578bc.wgsl b/test/tint/builtins/gen/var/textureGather/8578bc.wgsl
index 44ac499..2008876 100644
--- a/test/tint/builtins/gen/var/textureGather/8578bc.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/8578bc.wgsl
@@ -26,7 +26,7 @@
 // fn textureGather(@const component: u32, texture: texture_cube_array<f32>, sampler: sampler, coords: vec3<f32>, array_index: u32) -> vec4<f32>
 fn textureGather_8578bc() {
   const arg_0 = 1u;
-  var arg_3 = vec3<f32>();
+  var arg_3 = vec3<f32>(1.f);
   var arg_4 = 1u;
   var res: vec4<f32> = textureGather(arg_0, arg_1, arg_2, arg_3, arg_4);
 }
diff --git a/test/tint/builtins/gen/var/textureGather/8578bc.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/8578bc.wgsl.expected.dxc.hlsl
index 58ad0bd..422ee44 100644
--- a/test/tint/builtins/gen/var/textureGather/8578bc.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/8578bc.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_8578bc() {
-  float3 arg_3 = (0.0f).xxx;
+  float3 arg_3 = (1.0f).xxx;
   uint arg_4 = 1u;
   float4 res = arg_1.GatherGreen(arg_2, float4(arg_3, float(arg_4)));
 }
diff --git a/test/tint/builtins/gen/var/textureGather/8578bc.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/8578bc.wgsl.expected.fxc.hlsl
index 58ad0bd..422ee44 100644
--- a/test/tint/builtins/gen/var/textureGather/8578bc.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/8578bc.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_8578bc() {
-  float3 arg_3 = (0.0f).xxx;
+  float3 arg_3 = (1.0f).xxx;
   uint arg_4 = 1u;
   float4 res = arg_1.GatherGreen(arg_2, float4(arg_3, float(arg_4)));
 }
diff --git a/test/tint/builtins/gen/var/textureGather/8578bc.wgsl.expected.msl b/test/tint/builtins/gen/var/textureGather/8578bc.wgsl.expected.msl
index e802a9c..ec01ea8 100644
--- a/test/tint/builtins/gen/var/textureGather/8578bc.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureGather/8578bc.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureGather_8578bc(texturecube_array<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float3 arg_3 = float3(0.0f);
+  float3 arg_3 = float3(1.0f);
   uint arg_4 = 1u;
   float4 res = tint_symbol_1.gather(tint_symbol_2, arg_3, arg_4, component::y);
 }
diff --git a/test/tint/builtins/gen/var/textureGather/8578bc.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureGather/8578bc.wgsl.expected.spvasm
index 2c1c930..b762315 100644
--- a/test/tint/builtins/gen/var/textureGather/8578bc.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureGather/8578bc.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 56
+; Bound: 57
 ; Schema: 0
                OpCapability Shader
                OpCapability SampledCubeArray
@@ -46,56 +46,57 @@
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
     %v3float = OpTypeVector %float 3
-         %20 = OpConstantNull %v3float
+    %float_1 = OpConstant %float 1
+         %21 = OpConstantComposite %v3float %float_1 %float_1 %float_1
 %_ptr_Function_v3float = OpTypePointer Function %v3float
+         %24 = OpConstantNull %v3float
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %27 = OpConstantNull %uint
-         %31 = OpTypeSampledImage %11
+         %29 = OpConstantNull %uint
+         %33 = OpTypeSampledImage %11
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %42 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %44 = OpTypeFunction %v4float
 %textureGather_8578bc = OpFunction %void None %15
          %18 = OpLabel
-      %arg_3 = OpVariable %_ptr_Function_v3float Function %20
-      %arg_4 = OpVariable %_ptr_Function_uint Function %27
+      %arg_3 = OpVariable %_ptr_Function_v3float Function %24
+      %arg_4 = OpVariable %_ptr_Function_uint Function %29
         %res = OpVariable %_ptr_Function_v4float Function %5
-               OpStore %arg_3 %20
+               OpStore %arg_3 %21
                OpStore %arg_4 %uint_1
-         %29 = OpLoad %14 %arg_2
-         %30 = OpLoad %11 %arg_1
-         %32 = OpSampledImage %31 %30 %29
-         %33 = OpLoad %v3float %arg_3
-         %34 = OpCompositeExtract %float %33 0
-         %35 = OpCompositeExtract %float %33 1
-         %36 = OpCompositeExtract %float %33 2
-         %38 = OpLoad %uint %arg_4
-         %37 = OpConvertUToF %float %38
-         %39 = OpCompositeConstruct %v4float %34 %35 %36 %37
-         %28 = OpImageGather %v4float %32 %39 %uint_1
-               OpStore %res %28
+         %31 = OpLoad %14 %arg_2
+         %32 = OpLoad %11 %arg_1
+         %34 = OpSampledImage %33 %32 %31
+         %35 = OpLoad %v3float %arg_3
+         %36 = OpCompositeExtract %float %35 0
+         %37 = OpCompositeExtract %float %35 1
+         %38 = OpCompositeExtract %float %35 2
+         %40 = OpLoad %uint %arg_4
+         %39 = OpConvertUToF %float %40
+         %41 = OpCompositeConstruct %v4float %36 %37 %38 %39
+         %30 = OpImageGather %v4float %34 %41 %uint_1
+               OpStore %res %30
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %42
-         %44 = OpLabel
-         %45 = OpFunctionCall %void %textureGather_8578bc
+%vertex_main_inner = OpFunction %v4float None %44
+         %46 = OpLabel
+         %47 = OpFunctionCall %void %textureGather_8578bc
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
-         %47 = OpLabel
-         %48 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %48
+         %49 = OpLabel
+         %50 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %50
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %15
-         %51 = OpLabel
-         %52 = OpFunctionCall %void %textureGather_8578bc
+         %52 = OpLabel
+         %53 = OpFunctionCall %void %textureGather_8578bc
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %15
-         %54 = OpLabel
-         %55 = OpFunctionCall %void %textureGather_8578bc
+         %55 = OpLabel
+         %56 = OpFunctionCall %void %textureGather_8578bc
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureGather/8578bc.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureGather/8578bc.wgsl.expected.wgsl
index 9a4dd4c..069acaf 100644
--- a/test/tint/builtins/gen/var/textureGather/8578bc.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/8578bc.wgsl.expected.wgsl
@@ -4,7 +4,7 @@
 
 fn textureGather_8578bc() {
   const arg_0 = 1u;
-  var arg_3 = vec3<f32>();
+  var arg_3 = vec3<f32>(1.0f);
   var arg_4 = 1u;
   var res : vec4<f32> = textureGather(arg_0, arg_1, arg_2, arg_3, arg_4);
 }
diff --git a/test/tint/builtins/gen/var/textureGather/89680f.wgsl b/test/tint/builtins/gen/var/textureGather/89680f.wgsl
index c94c858..494bd1b 100644
--- a/test/tint/builtins/gen/var/textureGather/89680f.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/89680f.wgsl
@@ -26,7 +26,7 @@
 // fn textureGather(@const component: u32, texture: texture_cube<u32>, sampler: sampler, coords: vec3<f32>) -> vec4<u32>
 fn textureGather_89680f() {
   const arg_0 = 1u;
-  var arg_3 = vec3<f32>();
+  var arg_3 = vec3<f32>(1.f);
   var res: vec4<u32> = textureGather(arg_0, arg_1, arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureGather/89680f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/89680f.wgsl.expected.dxc.hlsl
index a6d386c..c3e709a 100644
--- a/test/tint/builtins/gen/var/textureGather/89680f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/89680f.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_89680f() {
-  float3 arg_3 = (0.0f).xxx;
+  float3 arg_3 = (1.0f).xxx;
   uint4 res = arg_1.GatherGreen(arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureGather/89680f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/89680f.wgsl.expected.fxc.hlsl
index a6d386c..c3e709a 100644
--- a/test/tint/builtins/gen/var/textureGather/89680f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/89680f.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_89680f() {
-  float3 arg_3 = (0.0f).xxx;
+  float3 arg_3 = (1.0f).xxx;
   uint4 res = arg_1.GatherGreen(arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureGather/89680f.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureGather/89680f.wgsl.expected.glsl
index 6f98fe0..67bb598 100644
--- a/test/tint/builtins/gen/var/textureGather/89680f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureGather/89680f.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 uniform highp usamplerCube arg_1_arg_2;
 
 void textureGather_89680f() {
-  vec3 arg_3 = vec3(0.0f);
+  vec3 arg_3 = vec3(1.0f);
   uvec4 res = textureGather(arg_1_arg_2, arg_3, int(1u));
 }
 
@@ -26,7 +26,7 @@
 uniform highp usamplerCube arg_1_arg_2;
 
 void textureGather_89680f() {
-  vec3 arg_3 = vec3(0.0f);
+  vec3 arg_3 = vec3(1.0f);
   uvec4 res = textureGather(arg_1_arg_2, arg_3, int(1u));
 }
 
@@ -43,7 +43,7 @@
 uniform highp usamplerCube arg_1_arg_2;
 
 void textureGather_89680f() {
-  vec3 arg_3 = vec3(0.0f);
+  vec3 arg_3 = vec3(1.0f);
   uvec4 res = textureGather(arg_1_arg_2, arg_3, int(1u));
 }
 
diff --git a/test/tint/builtins/gen/var/textureGather/89680f.wgsl.expected.msl b/test/tint/builtins/gen/var/textureGather/89680f.wgsl.expected.msl
index e71f745..3668516 100644
--- a/test/tint/builtins/gen/var/textureGather/89680f.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureGather/89680f.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureGather_89680f(texturecube<uint, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float3 arg_3 = float3(0.0f);
+  float3 arg_3 = float3(1.0f);
   uint4 res = tint_symbol_1.gather(tint_symbol_2, arg_3, component::y);
 }
 
diff --git a/test/tint/builtins/gen/var/textureGather/89680f.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureGather/89680f.wgsl.expected.spvasm
index 700a3d0..8b47c7d 100644
--- a/test/tint/builtins/gen/var/textureGather/89680f.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureGather/89680f.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 49
+; Bound: 50
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -45,47 +45,48 @@
        %void = OpTypeVoid
          %16 = OpTypeFunction %void
     %v3float = OpTypeVector %float 3
-         %21 = OpConstantNull %v3float
+    %float_1 = OpConstant %float 1
+         %22 = OpConstantComposite %v3float %float_1 %float_1 %float_1
 %_ptr_Function_v3float = OpTypePointer Function %v3float
+         %25 = OpConstantNull %v3float
      %v4uint = OpTypeVector %uint 4
-         %28 = OpTypeSampledImage %11
+         %30 = OpTypeSampledImage %11
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %34 = OpConstantNull %v4uint
-         %35 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %36 = OpConstantNull %v4uint
+         %37 = OpTypeFunction %v4float
 %textureGather_89680f = OpFunction %void None %16
          %19 = OpLabel
-      %arg_3 = OpVariable %_ptr_Function_v3float Function %21
-        %res = OpVariable %_ptr_Function_v4uint Function %34
-               OpStore %arg_3 %21
-         %26 = OpLoad %15 %arg_2
-         %27 = OpLoad %11 %arg_1
-         %29 = OpSampledImage %28 %27 %26
-         %30 = OpLoad %v3float %arg_3
-         %24 = OpImageGather %v4uint %29 %30 %uint_1
-               OpStore %res %24
+      %arg_3 = OpVariable %_ptr_Function_v3float Function %25
+        %res = OpVariable %_ptr_Function_v4uint Function %36
+               OpStore %arg_3 %22
+         %28 = OpLoad %15 %arg_2
+         %29 = OpLoad %11 %arg_1
+         %31 = OpSampledImage %30 %29 %28
+         %32 = OpLoad %v3float %arg_3
+         %26 = OpImageGather %v4uint %31 %32 %uint_1
+               OpStore %res %26
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %35
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureGather_89680f
+%vertex_main_inner = OpFunction %v4float None %37
+         %39 = OpLabel
+         %40 = OpFunctionCall %void %textureGather_89680f
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %16
-         %40 = OpLabel
-         %41 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %41
+         %42 = OpLabel
+         %43 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %43
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %16
-         %44 = OpLabel
-         %45 = OpFunctionCall %void %textureGather_89680f
+         %45 = OpLabel
+         %46 = OpFunctionCall %void %textureGather_89680f
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %16
-         %47 = OpLabel
-         %48 = OpFunctionCall %void %textureGather_89680f
+         %48 = OpLabel
+         %49 = OpFunctionCall %void %textureGather_89680f
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureGather/89680f.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureGather/89680f.wgsl.expected.wgsl
index 47f8180..63c1ad0 100644
--- a/test/tint/builtins/gen/var/textureGather/89680f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/89680f.wgsl.expected.wgsl
@@ -4,7 +4,7 @@
 
 fn textureGather_89680f() {
   const arg_0 = 1u;
-  var arg_3 = vec3<f32>();
+  var arg_3 = vec3<f32>(1.0f);
   var res : vec4<u32> = textureGather(arg_0, arg_1, arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureGather/8b754c.wgsl b/test/tint/builtins/gen/var/textureGather/8b754c.wgsl
index 6fe4a5e..32c4e98 100644
--- a/test/tint/builtins/gen/var/textureGather/8b754c.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/8b754c.wgsl
@@ -26,7 +26,7 @@
 // fn textureGather(@const component: i32, texture: texture_2d_array<i32>, sampler: sampler, coords: vec2<f32>, array_index: i32) -> vec4<i32>
 fn textureGather_8b754c() {
   const arg_0 = 1i;
-  var arg_3 = vec2<f32>();
+  var arg_3 = vec2<f32>(1.f);
   var arg_4 = 1i;
   var res: vec4<i32> = textureGather(arg_0, arg_1, arg_2, arg_3, arg_4);
 }
diff --git a/test/tint/builtins/gen/var/textureGather/8b754c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/8b754c.wgsl.expected.dxc.hlsl
index 52dcf0f..c0256e6 100644
--- a/test/tint/builtins/gen/var/textureGather/8b754c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/8b754c.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_8b754c() {
-  float2 arg_3 = (0.0f).xx;
+  float2 arg_3 = (1.0f).xx;
   int arg_4 = 1;
   int4 res = arg_1.GatherGreen(arg_2, float3(arg_3, float(arg_4)));
 }
diff --git a/test/tint/builtins/gen/var/textureGather/8b754c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/8b754c.wgsl.expected.fxc.hlsl
index 52dcf0f..c0256e6 100644
--- a/test/tint/builtins/gen/var/textureGather/8b754c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/8b754c.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_8b754c() {
-  float2 arg_3 = (0.0f).xx;
+  float2 arg_3 = (1.0f).xx;
   int arg_4 = 1;
   int4 res = arg_1.GatherGreen(arg_2, float3(arg_3, float(arg_4)));
 }
diff --git a/test/tint/builtins/gen/var/textureGather/8b754c.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureGather/8b754c.wgsl.expected.glsl
index b7a690a..19a3f9f 100644
--- a/test/tint/builtins/gen/var/textureGather/8b754c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureGather/8b754c.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 uniform highp isampler2DArray arg_1_arg_2;
 
 void textureGather_8b754c() {
-  vec2 arg_3 = vec2(0.0f);
+  vec2 arg_3 = vec2(1.0f);
   int arg_4 = 1;
   ivec4 res = textureGather(arg_1_arg_2, vec3(arg_3, float(arg_4)), 1);
 }
@@ -27,7 +27,7 @@
 uniform highp isampler2DArray arg_1_arg_2;
 
 void textureGather_8b754c() {
-  vec2 arg_3 = vec2(0.0f);
+  vec2 arg_3 = vec2(1.0f);
   int arg_4 = 1;
   ivec4 res = textureGather(arg_1_arg_2, vec3(arg_3, float(arg_4)), 1);
 }
@@ -45,7 +45,7 @@
 uniform highp isampler2DArray arg_1_arg_2;
 
 void textureGather_8b754c() {
-  vec2 arg_3 = vec2(0.0f);
+  vec2 arg_3 = vec2(1.0f);
   int arg_4 = 1;
   ivec4 res = textureGather(arg_1_arg_2, vec3(arg_3, float(arg_4)), 1);
 }
diff --git a/test/tint/builtins/gen/var/textureGather/8b754c.wgsl.expected.msl b/test/tint/builtins/gen/var/textureGather/8b754c.wgsl.expected.msl
index 171f733..9ac6634 100644
--- a/test/tint/builtins/gen/var/textureGather/8b754c.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureGather/8b754c.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureGather_8b754c(texture2d_array<int, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float2 arg_3 = float2(0.0f);
+  float2 arg_3 = float2(1.0f);
   int arg_4 = 1;
   int4 res = tint_symbol_1.gather(tint_symbol_2, arg_3, arg_4, int2(0), component::y);
 }
diff --git a/test/tint/builtins/gen/var/textureGather/8b754c.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureGather/8b754c.wgsl.expected.spvasm
index 09b943b..2ffe76a 100644
--- a/test/tint/builtins/gen/var/textureGather/8b754c.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureGather/8b754c.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 58
+; Bound: 59
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -46,57 +46,58 @@
        %void = OpTypeVoid
          %16 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
-         %21 = OpConstantNull %v2float
+    %float_1 = OpConstant %float 1
+         %22 = OpConstantComposite %v2float %float_1 %float_1
 %_ptr_Function_v2float = OpTypePointer Function %v2float
+         %25 = OpConstantNull %v2float
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
-         %27 = OpConstantNull %int
+         %29 = OpConstantNull %int
       %v4int = OpTypeVector %int 4
-         %32 = OpTypeSampledImage %11
+         %34 = OpTypeSampledImage %11
     %v3float = OpTypeVector %float 3
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %43 = OpConstantNull %v4int
-         %44 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %45 = OpConstantNull %v4int
+         %46 = OpTypeFunction %v4float
 %textureGather_8b754c = OpFunction %void None %16
          %19 = OpLabel
-      %arg_3 = OpVariable %_ptr_Function_v2float Function %21
-      %arg_4 = OpVariable %_ptr_Function_int Function %27
-        %res = OpVariable %_ptr_Function_v4int Function %43
-               OpStore %arg_3 %21
+      %arg_3 = OpVariable %_ptr_Function_v2float Function %25
+      %arg_4 = OpVariable %_ptr_Function_int Function %29
+        %res = OpVariable %_ptr_Function_v4int Function %45
+               OpStore %arg_3 %22
                OpStore %arg_4 %int_1
-         %30 = OpLoad %15 %arg_2
-         %31 = OpLoad %11 %arg_1
-         %33 = OpSampledImage %32 %31 %30
-         %35 = OpLoad %v2float %arg_3
-         %36 = OpCompositeExtract %float %35 0
-         %37 = OpCompositeExtract %float %35 1
-         %39 = OpLoad %int %arg_4
-         %38 = OpConvertSToF %float %39
-         %40 = OpCompositeConstruct %v3float %36 %37 %38
-         %28 = OpImageGather %v4int %33 %40 %int_1
-               OpStore %res %28
+         %32 = OpLoad %15 %arg_2
+         %33 = OpLoad %11 %arg_1
+         %35 = OpSampledImage %34 %33 %32
+         %37 = OpLoad %v2float %arg_3
+         %38 = OpCompositeExtract %float %37 0
+         %39 = OpCompositeExtract %float %37 1
+         %41 = OpLoad %int %arg_4
+         %40 = OpConvertSToF %float %41
+         %42 = OpCompositeConstruct %v3float %38 %39 %40
+         %30 = OpImageGather %v4int %35 %42 %int_1
+               OpStore %res %30
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %44
-         %46 = OpLabel
-         %47 = OpFunctionCall %void %textureGather_8b754c
+%vertex_main_inner = OpFunction %v4float None %46
+         %48 = OpLabel
+         %49 = OpFunctionCall %void %textureGather_8b754c
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %16
-         %49 = OpLabel
-         %50 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %50
+         %51 = OpLabel
+         %52 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %52
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %16
-         %53 = OpLabel
-         %54 = OpFunctionCall %void %textureGather_8b754c
+         %54 = OpLabel
+         %55 = OpFunctionCall %void %textureGather_8b754c
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %16
-         %56 = OpLabel
-         %57 = OpFunctionCall %void %textureGather_8b754c
+         %57 = OpLabel
+         %58 = OpFunctionCall %void %textureGather_8b754c
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureGather/8b754c.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureGather/8b754c.wgsl.expected.wgsl
index bc214eb..a997540 100644
--- a/test/tint/builtins/gen/var/textureGather/8b754c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/8b754c.wgsl.expected.wgsl
@@ -4,7 +4,7 @@
 
 fn textureGather_8b754c() {
   const arg_0 = 1i;
-  var arg_3 = vec2<f32>();
+  var arg_3 = vec2<f32>(1.0f);
   var arg_4 = 1i;
   var res : vec4<i32> = textureGather(arg_0, arg_1, arg_2, arg_3, arg_4);
 }
diff --git a/test/tint/builtins/gen/var/textureGather/8fae00.wgsl b/test/tint/builtins/gen/var/textureGather/8fae00.wgsl
index 0821f74..e78eabd 100644
--- a/test/tint/builtins/gen/var/textureGather/8fae00.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/8fae00.wgsl
@@ -26,7 +26,7 @@
 // fn textureGather(@const component: u32, texture: texture_2d<u32>, sampler: sampler, coords: vec2<f32>) -> vec4<u32>
 fn textureGather_8fae00() {
   const arg_0 = 1u;
-  var arg_3 = vec2<f32>();
+  var arg_3 = vec2<f32>(1.f);
   var res: vec4<u32> = textureGather(arg_0, arg_1, arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureGather/8fae00.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/8fae00.wgsl.expected.dxc.hlsl
index 4f75e29..3e180aa 100644
--- a/test/tint/builtins/gen/var/textureGather/8fae00.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/8fae00.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_8fae00() {
-  float2 arg_3 = (0.0f).xx;
+  float2 arg_3 = (1.0f).xx;
   uint4 res = arg_1.GatherGreen(arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureGather/8fae00.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/8fae00.wgsl.expected.fxc.hlsl
index 4f75e29..3e180aa 100644
--- a/test/tint/builtins/gen/var/textureGather/8fae00.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/8fae00.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_8fae00() {
-  float2 arg_3 = (0.0f).xx;
+  float2 arg_3 = (1.0f).xx;
   uint4 res = arg_1.GatherGreen(arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureGather/8fae00.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureGather/8fae00.wgsl.expected.glsl
index f787c2e..199a442 100644
--- a/test/tint/builtins/gen/var/textureGather/8fae00.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureGather/8fae00.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 uniform highp usampler2D arg_1_arg_2;
 
 void textureGather_8fae00() {
-  vec2 arg_3 = vec2(0.0f);
+  vec2 arg_3 = vec2(1.0f);
   uvec4 res = textureGather(arg_1_arg_2, arg_3, int(1u));
 }
 
@@ -26,7 +26,7 @@
 uniform highp usampler2D arg_1_arg_2;
 
 void textureGather_8fae00() {
-  vec2 arg_3 = vec2(0.0f);
+  vec2 arg_3 = vec2(1.0f);
   uvec4 res = textureGather(arg_1_arg_2, arg_3, int(1u));
 }
 
@@ -43,7 +43,7 @@
 uniform highp usampler2D arg_1_arg_2;
 
 void textureGather_8fae00() {
-  vec2 arg_3 = vec2(0.0f);
+  vec2 arg_3 = vec2(1.0f);
   uvec4 res = textureGather(arg_1_arg_2, arg_3, int(1u));
 }
 
diff --git a/test/tint/builtins/gen/var/textureGather/8fae00.wgsl.expected.msl b/test/tint/builtins/gen/var/textureGather/8fae00.wgsl.expected.msl
index 55b262f..21e063a 100644
--- a/test/tint/builtins/gen/var/textureGather/8fae00.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureGather/8fae00.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureGather_8fae00(texture2d<uint, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float2 arg_3 = float2(0.0f);
+  float2 arg_3 = float2(1.0f);
   uint4 res = tint_symbol_1.gather(tint_symbol_2, arg_3, int2(0), component::y);
 }
 
diff --git a/test/tint/builtins/gen/var/textureGather/8fae00.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureGather/8fae00.wgsl.expected.spvasm
index 1739fb4..90e3391 100644
--- a/test/tint/builtins/gen/var/textureGather/8fae00.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureGather/8fae00.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 49
+; Bound: 50
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -45,47 +45,48 @@
        %void = OpTypeVoid
          %16 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
-         %21 = OpConstantNull %v2float
+    %float_1 = OpConstant %float 1
+         %22 = OpConstantComposite %v2float %float_1 %float_1
 %_ptr_Function_v2float = OpTypePointer Function %v2float
+         %25 = OpConstantNull %v2float
      %v4uint = OpTypeVector %uint 4
-         %28 = OpTypeSampledImage %11
+         %30 = OpTypeSampledImage %11
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %34 = OpConstantNull %v4uint
-         %35 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %36 = OpConstantNull %v4uint
+         %37 = OpTypeFunction %v4float
 %textureGather_8fae00 = OpFunction %void None %16
          %19 = OpLabel
-      %arg_3 = OpVariable %_ptr_Function_v2float Function %21
-        %res = OpVariable %_ptr_Function_v4uint Function %34
-               OpStore %arg_3 %21
-         %26 = OpLoad %15 %arg_2
-         %27 = OpLoad %11 %arg_1
-         %29 = OpSampledImage %28 %27 %26
-         %30 = OpLoad %v2float %arg_3
-         %24 = OpImageGather %v4uint %29 %30 %uint_1
-               OpStore %res %24
+      %arg_3 = OpVariable %_ptr_Function_v2float Function %25
+        %res = OpVariable %_ptr_Function_v4uint Function %36
+               OpStore %arg_3 %22
+         %28 = OpLoad %15 %arg_2
+         %29 = OpLoad %11 %arg_1
+         %31 = OpSampledImage %30 %29 %28
+         %32 = OpLoad %v2float %arg_3
+         %26 = OpImageGather %v4uint %31 %32 %uint_1
+               OpStore %res %26
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %35
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureGather_8fae00
+%vertex_main_inner = OpFunction %v4float None %37
+         %39 = OpLabel
+         %40 = OpFunctionCall %void %textureGather_8fae00
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %16
-         %40 = OpLabel
-         %41 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %41
+         %42 = OpLabel
+         %43 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %43
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %16
-         %44 = OpLabel
-         %45 = OpFunctionCall %void %textureGather_8fae00
+         %45 = OpLabel
+         %46 = OpFunctionCall %void %textureGather_8fae00
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %16
-         %47 = OpLabel
-         %48 = OpFunctionCall %void %textureGather_8fae00
+         %48 = OpLabel
+         %49 = OpFunctionCall %void %textureGather_8fae00
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureGather/8fae00.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureGather/8fae00.wgsl.expected.wgsl
index 69490b4..f661061 100644
--- a/test/tint/builtins/gen/var/textureGather/8fae00.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/8fae00.wgsl.expected.wgsl
@@ -4,7 +4,7 @@
 
 fn textureGather_8fae00() {
   const arg_0 = 1u;
-  var arg_3 = vec2<f32>();
+  var arg_3 = vec2<f32>(1.0f);
   var res : vec4<u32> = textureGather(arg_0, arg_1, arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureGather/92ea47.wgsl b/test/tint/builtins/gen/var/textureGather/92ea47.wgsl
index eea4da2..9eed5cb 100644
--- a/test/tint/builtins/gen/var/textureGather/92ea47.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/92ea47.wgsl
@@ -26,7 +26,7 @@
 // fn textureGather(@const component: u32, texture: texture_2d_array<u32>, sampler: sampler, coords: vec2<f32>, array_index: i32) -> vec4<u32>
 fn textureGather_92ea47() {
   const arg_0 = 1u;
-  var arg_3 = vec2<f32>();
+  var arg_3 = vec2<f32>(1.f);
   var arg_4 = 1i;
   var res: vec4<u32> = textureGather(arg_0, arg_1, arg_2, arg_3, arg_4);
 }
diff --git a/test/tint/builtins/gen/var/textureGather/92ea47.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/92ea47.wgsl.expected.dxc.hlsl
index caaf8b4..e90476d 100644
--- a/test/tint/builtins/gen/var/textureGather/92ea47.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/92ea47.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_92ea47() {
-  float2 arg_3 = (0.0f).xx;
+  float2 arg_3 = (1.0f).xx;
   int arg_4 = 1;
   uint4 res = arg_1.GatherGreen(arg_2, float3(arg_3, float(arg_4)));
 }
diff --git a/test/tint/builtins/gen/var/textureGather/92ea47.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/92ea47.wgsl.expected.fxc.hlsl
index caaf8b4..e90476d 100644
--- a/test/tint/builtins/gen/var/textureGather/92ea47.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/92ea47.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_92ea47() {
-  float2 arg_3 = (0.0f).xx;
+  float2 arg_3 = (1.0f).xx;
   int arg_4 = 1;
   uint4 res = arg_1.GatherGreen(arg_2, float3(arg_3, float(arg_4)));
 }
diff --git a/test/tint/builtins/gen/var/textureGather/92ea47.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureGather/92ea47.wgsl.expected.glsl
index 6004232..fa764dd 100644
--- a/test/tint/builtins/gen/var/textureGather/92ea47.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureGather/92ea47.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 uniform highp usampler2DArray arg_1_arg_2;
 
 void textureGather_92ea47() {
-  vec2 arg_3 = vec2(0.0f);
+  vec2 arg_3 = vec2(1.0f);
   int arg_4 = 1;
   uvec4 res = textureGather(arg_1_arg_2, vec3(arg_3, float(arg_4)), int(1u));
 }
@@ -27,7 +27,7 @@
 uniform highp usampler2DArray arg_1_arg_2;
 
 void textureGather_92ea47() {
-  vec2 arg_3 = vec2(0.0f);
+  vec2 arg_3 = vec2(1.0f);
   int arg_4 = 1;
   uvec4 res = textureGather(arg_1_arg_2, vec3(arg_3, float(arg_4)), int(1u));
 }
@@ -45,7 +45,7 @@
 uniform highp usampler2DArray arg_1_arg_2;
 
 void textureGather_92ea47() {
-  vec2 arg_3 = vec2(0.0f);
+  vec2 arg_3 = vec2(1.0f);
   int arg_4 = 1;
   uvec4 res = textureGather(arg_1_arg_2, vec3(arg_3, float(arg_4)), int(1u));
 }
diff --git a/test/tint/builtins/gen/var/textureGather/92ea47.wgsl.expected.msl b/test/tint/builtins/gen/var/textureGather/92ea47.wgsl.expected.msl
index b733157..17a6210 100644
--- a/test/tint/builtins/gen/var/textureGather/92ea47.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureGather/92ea47.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureGather_92ea47(texture2d_array<uint, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float2 arg_3 = float2(0.0f);
+  float2 arg_3 = float2(1.0f);
   int arg_4 = 1;
   uint4 res = tint_symbol_1.gather(tint_symbol_2, arg_3, arg_4, int2(0), component::y);
 }
diff --git a/test/tint/builtins/gen/var/textureGather/92ea47.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureGather/92ea47.wgsl.expected.spvasm
index 150621f..72535f4 100644
--- a/test/tint/builtins/gen/var/textureGather/92ea47.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureGather/92ea47.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 60
+; Bound: 61
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -46,59 +46,60 @@
        %void = OpTypeVoid
          %16 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
-         %21 = OpConstantNull %v2float
+    %float_1 = OpConstant %float 1
+         %22 = OpConstantComposite %v2float %float_1 %float_1
 %_ptr_Function_v2float = OpTypePointer Function %v2float
+         %25 = OpConstantNull %v2float
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
-         %28 = OpConstantNull %int
+         %30 = OpConstantNull %int
      %v4uint = OpTypeVector %uint 4
-         %33 = OpTypeSampledImage %11
+         %35 = OpTypeSampledImage %11
     %v3float = OpTypeVector %float 3
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %45 = OpConstantNull %v4uint
-         %46 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %47 = OpConstantNull %v4uint
+         %48 = OpTypeFunction %v4float
 %textureGather_92ea47 = OpFunction %void None %16
          %19 = OpLabel
-      %arg_3 = OpVariable %_ptr_Function_v2float Function %21
-      %arg_4 = OpVariable %_ptr_Function_int Function %28
-        %res = OpVariable %_ptr_Function_v4uint Function %45
-               OpStore %arg_3 %21
+      %arg_3 = OpVariable %_ptr_Function_v2float Function %25
+      %arg_4 = OpVariable %_ptr_Function_int Function %30
+        %res = OpVariable %_ptr_Function_v4uint Function %47
+               OpStore %arg_3 %22
                OpStore %arg_4 %int_1
-         %31 = OpLoad %15 %arg_2
-         %32 = OpLoad %11 %arg_1
-         %34 = OpSampledImage %33 %32 %31
-         %36 = OpLoad %v2float %arg_3
-         %37 = OpCompositeExtract %float %36 0
-         %38 = OpCompositeExtract %float %36 1
-         %40 = OpLoad %int %arg_4
-         %39 = OpConvertSToF %float %40
-         %41 = OpCompositeConstruct %v3float %37 %38 %39
-         %29 = OpImageGather %v4uint %34 %41 %uint_1
-               OpStore %res %29
+         %33 = OpLoad %15 %arg_2
+         %34 = OpLoad %11 %arg_1
+         %36 = OpSampledImage %35 %34 %33
+         %38 = OpLoad %v2float %arg_3
+         %39 = OpCompositeExtract %float %38 0
+         %40 = OpCompositeExtract %float %38 1
+         %42 = OpLoad %int %arg_4
+         %41 = OpConvertSToF %float %42
+         %43 = OpCompositeConstruct %v3float %39 %40 %41
+         %31 = OpImageGather %v4uint %36 %43 %uint_1
+               OpStore %res %31
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %46
-         %48 = OpLabel
-         %49 = OpFunctionCall %void %textureGather_92ea47
+%vertex_main_inner = OpFunction %v4float None %48
+         %50 = OpLabel
+         %51 = OpFunctionCall %void %textureGather_92ea47
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %16
-         %51 = OpLabel
-         %52 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %52
+         %53 = OpLabel
+         %54 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %54
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %16
-         %55 = OpLabel
-         %56 = OpFunctionCall %void %textureGather_92ea47
+         %56 = OpLabel
+         %57 = OpFunctionCall %void %textureGather_92ea47
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %16
-         %58 = OpLabel
-         %59 = OpFunctionCall %void %textureGather_92ea47
+         %59 = OpLabel
+         %60 = OpFunctionCall %void %textureGather_92ea47
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureGather/92ea47.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureGather/92ea47.wgsl.expected.wgsl
index c528d46..435dfab 100644
--- a/test/tint/builtins/gen/var/textureGather/92ea47.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/92ea47.wgsl.expected.wgsl
@@ -4,7 +4,7 @@
 
 fn textureGather_92ea47() {
   const arg_0 = 1u;
-  var arg_3 = vec2<f32>();
+  var arg_3 = vec2<f32>(1.0f);
   var arg_4 = 1i;
   var res : vec4<u32> = textureGather(arg_0, arg_1, arg_2, arg_3, arg_4);
 }
diff --git a/test/tint/builtins/gen/var/textureGather/986700.wgsl b/test/tint/builtins/gen/var/textureGather/986700.wgsl
index 86df23b..7e468be 100644
--- a/test/tint/builtins/gen/var/textureGather/986700.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/986700.wgsl
@@ -26,8 +26,8 @@
 // fn textureGather(@const component: u32, texture: texture_2d<u32>, sampler: sampler, coords: vec2<f32>, @const offset: vec2<i32>) -> vec4<u32>
 fn textureGather_986700() {
   const arg_0 = 1u;
-  var arg_3 = vec2<f32>();
-  const arg_4 = vec2<i32>();
+  var arg_3 = vec2<f32>(1.f);
+  const arg_4 = vec2<i32>(1i);
   var res: vec4<u32> = textureGather(arg_0, arg_1, arg_2, arg_3, arg_4);
 }
 
diff --git a/test/tint/builtins/gen/var/textureGather/986700.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/986700.wgsl.expected.dxc.hlsl
index 740ed2b..ec8491d 100644
--- a/test/tint/builtins/gen/var/textureGather/986700.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/986700.wgsl.expected.dxc.hlsl
@@ -2,8 +2,8 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_986700() {
-  float2 arg_3 = (0.0f).xx;
-  uint4 res = arg_1.GatherGreen(arg_2, arg_3, (0).xx);
+  float2 arg_3 = (1.0f).xx;
+  uint4 res = arg_1.GatherGreen(arg_2, arg_3, (1).xx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/textureGather/986700.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/986700.wgsl.expected.fxc.hlsl
index 740ed2b..ec8491d 100644
--- a/test/tint/builtins/gen/var/textureGather/986700.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/986700.wgsl.expected.fxc.hlsl
@@ -2,8 +2,8 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_986700() {
-  float2 arg_3 = (0.0f).xx;
-  uint4 res = arg_1.GatherGreen(arg_2, arg_3, (0).xx);
+  float2 arg_3 = (1.0f).xx;
+  uint4 res = arg_1.GatherGreen(arg_2, arg_3, (1).xx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/textureGather/986700.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureGather/986700.wgsl.expected.glsl
index 10921e5..b305559 100644
--- a/test/tint/builtins/gen/var/textureGather/986700.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureGather/986700.wgsl.expected.glsl
@@ -3,8 +3,8 @@
 uniform highp usampler2D arg_1_arg_2;
 
 void textureGather_986700() {
-  vec2 arg_3 = vec2(0.0f);
-  uvec4 res = textureGatherOffset(arg_1_arg_2, arg_3, ivec2(0), int(1u));
+  vec2 arg_3 = vec2(1.0f);
+  uvec4 res = textureGatherOffset(arg_1_arg_2, arg_3, ivec2(1), int(1u));
 }
 
 vec4 vertex_main() {
@@ -26,8 +26,8 @@
 uniform highp usampler2D arg_1_arg_2;
 
 void textureGather_986700() {
-  vec2 arg_3 = vec2(0.0f);
-  uvec4 res = textureGatherOffset(arg_1_arg_2, arg_3, ivec2(0), int(1u));
+  vec2 arg_3 = vec2(1.0f);
+  uvec4 res = textureGatherOffset(arg_1_arg_2, arg_3, ivec2(1), int(1u));
 }
 
 void fragment_main() {
@@ -43,8 +43,8 @@
 uniform highp usampler2D arg_1_arg_2;
 
 void textureGather_986700() {
-  vec2 arg_3 = vec2(0.0f);
-  uvec4 res = textureGatherOffset(arg_1_arg_2, arg_3, ivec2(0), int(1u));
+  vec2 arg_3 = vec2(1.0f);
+  uvec4 res = textureGatherOffset(arg_1_arg_2, arg_3, ivec2(1), int(1u));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/var/textureGather/986700.wgsl.expected.msl b/test/tint/builtins/gen/var/textureGather/986700.wgsl.expected.msl
index 024eebb..0b9c5e1 100644
--- a/test/tint/builtins/gen/var/textureGather/986700.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureGather/986700.wgsl.expected.msl
@@ -2,8 +2,8 @@
 
 using namespace metal;
 void textureGather_986700(texture2d<uint, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float2 arg_3 = float2(0.0f);
-  uint4 res = tint_symbol_1.gather(tint_symbol_2, arg_3, int2(0), component::y);
+  float2 arg_3 = float2(1.0f);
+  uint4 res = tint_symbol_1.gather(tint_symbol_2, arg_3, int2(1), component::y);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/textureGather/986700.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureGather/986700.wgsl.expected.spvasm
index cca05f3..a2f647e 100644
--- a/test/tint/builtins/gen/var/textureGather/986700.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureGather/986700.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 52
+; Bound: 54
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -45,50 +45,52 @@
        %void = OpTypeVoid
          %16 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
-         %21 = OpConstantNull %v2float
+    %float_1 = OpConstant %float 1
+         %22 = OpConstantComposite %v2float %float_1 %float_1
 %_ptr_Function_v2float = OpTypePointer Function %v2float
+         %25 = OpConstantNull %v2float
      %v4uint = OpTypeVector %uint 4
-         %28 = OpTypeSampledImage %11
+         %30 = OpTypeSampledImage %11
      %uint_1 = OpConstant %uint 1
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
-         %34 = OpConstantNull %v2int
+      %int_1 = OpConstant %int 1
+         %37 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %37 = OpConstantNull %v4uint
-         %38 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %40 = OpConstantNull %v4uint
+         %41 = OpTypeFunction %v4float
 %textureGather_986700 = OpFunction %void None %16
          %19 = OpLabel
-      %arg_3 = OpVariable %_ptr_Function_v2float Function %21
-        %res = OpVariable %_ptr_Function_v4uint Function %37
-               OpStore %arg_3 %21
-         %26 = OpLoad %15 %arg_2
-         %27 = OpLoad %11 %arg_1
-         %29 = OpSampledImage %28 %27 %26
-         %30 = OpLoad %v2float %arg_3
-         %24 = OpImageGather %v4uint %29 %30 %uint_1 ConstOffset %34
-               OpStore %res %24
+      %arg_3 = OpVariable %_ptr_Function_v2float Function %25
+        %res = OpVariable %_ptr_Function_v4uint Function %40
+               OpStore %arg_3 %22
+         %28 = OpLoad %15 %arg_2
+         %29 = OpLoad %11 %arg_1
+         %31 = OpSampledImage %30 %29 %28
+         %32 = OpLoad %v2float %arg_3
+         %26 = OpImageGather %v4uint %31 %32 %uint_1 ConstOffset %37
+               OpStore %res %26
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %38
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureGather_986700
+%vertex_main_inner = OpFunction %v4float None %41
+         %43 = OpLabel
+         %44 = OpFunctionCall %void %textureGather_986700
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %16
-         %43 = OpLabel
-         %44 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %44
+         %46 = OpLabel
+         %47 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %47
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %16
-         %47 = OpLabel
-         %48 = OpFunctionCall %void %textureGather_986700
+         %49 = OpLabel
+         %50 = OpFunctionCall %void %textureGather_986700
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %16
-         %50 = OpLabel
-         %51 = OpFunctionCall %void %textureGather_986700
+         %52 = OpLabel
+         %53 = OpFunctionCall %void %textureGather_986700
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureGather/986700.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureGather/986700.wgsl.expected.wgsl
index eb8526e..f9aa332 100644
--- a/test/tint/builtins/gen/var/textureGather/986700.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/986700.wgsl.expected.wgsl
@@ -4,8 +4,8 @@
 
 fn textureGather_986700() {
   const arg_0 = 1u;
-  var arg_3 = vec2<f32>();
-  const arg_4 = vec2<i32>();
+  var arg_3 = vec2<f32>(1.0f);
+  const arg_4 = vec2<i32>(1i);
   var res : vec4<u32> = textureGather(arg_0, arg_1, arg_2, arg_3, arg_4);
 }
 
diff --git a/test/tint/builtins/gen/var/textureGather/9a6358.wgsl b/test/tint/builtins/gen/var/textureGather/9a6358.wgsl
index 48f44fa..a2209d5 100644
--- a/test/tint/builtins/gen/var/textureGather/9a6358.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/9a6358.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureGather(texture: texture_depth_2d_array, sampler: sampler, coords: vec2<f32>, array_index: i32) -> vec4<f32>
 fn textureGather_9a6358() {
-  var arg_2 = vec2<f32>();
+  var arg_2 = vec2<f32>(1.f);
   var arg_3 = 1i;
   var res: vec4<f32> = textureGather(arg_0, arg_1, arg_2, arg_3);
 }
diff --git a/test/tint/builtins/gen/var/textureGather/9a6358.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/9a6358.wgsl.expected.dxc.hlsl
index 00950b5..5d3990e 100644
--- a/test/tint/builtins/gen/var/textureGather/9a6358.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/9a6358.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureGather_9a6358() {
-  float2 arg_2 = (0.0f).xx;
+  float2 arg_2 = (1.0f).xx;
   int arg_3 = 1;
   float4 res = arg_0.Gather(arg_1, float3(arg_2, float(arg_3)));
 }
diff --git a/test/tint/builtins/gen/var/textureGather/9a6358.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/9a6358.wgsl.expected.fxc.hlsl
index 00950b5..5d3990e 100644
--- a/test/tint/builtins/gen/var/textureGather/9a6358.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/9a6358.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureGather_9a6358() {
-  float2 arg_2 = (0.0f).xx;
+  float2 arg_2 = (1.0f).xx;
   int arg_3 = 1;
   float4 res = arg_0.Gather(arg_1, float3(arg_2, float(arg_3)));
 }
diff --git a/test/tint/builtins/gen/var/textureGather/9a6358.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureGather/9a6358.wgsl.expected.glsl
index f535b11..1f7d85f 100644
--- a/test/tint/builtins/gen/var/textureGather/9a6358.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureGather/9a6358.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 uniform highp sampler2DArrayShadow arg_0_arg_1;
 
 void textureGather_9a6358() {
-  vec2 arg_2 = vec2(0.0f);
+  vec2 arg_2 = vec2(1.0f);
   int arg_3 = 1;
   vec4 res = textureGather(arg_0_arg_1, vec3(arg_2, float(arg_3)), 0.0);
 }
@@ -27,7 +27,7 @@
 uniform highp sampler2DArrayShadow arg_0_arg_1;
 
 void textureGather_9a6358() {
-  vec2 arg_2 = vec2(0.0f);
+  vec2 arg_2 = vec2(1.0f);
   int arg_3 = 1;
   vec4 res = textureGather(arg_0_arg_1, vec3(arg_2, float(arg_3)), 0.0);
 }
@@ -45,7 +45,7 @@
 uniform highp sampler2DArrayShadow arg_0_arg_1;
 
 void textureGather_9a6358() {
-  vec2 arg_2 = vec2(0.0f);
+  vec2 arg_2 = vec2(1.0f);
   int arg_3 = 1;
   vec4 res = textureGather(arg_0_arg_1, vec3(arg_2, float(arg_3)), 0.0);
 }
diff --git a/test/tint/builtins/gen/var/textureGather/9a6358.wgsl.expected.msl b/test/tint/builtins/gen/var/textureGather/9a6358.wgsl.expected.msl
index 0b4f909..82bd613 100644
--- a/test/tint/builtins/gen/var/textureGather/9a6358.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureGather/9a6358.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureGather_9a6358(depth2d_array<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float2 arg_2 = float2(0.0f);
+  float2 arg_2 = float2(1.0f);
   int arg_3 = 1;
   float4 res = tint_symbol_1.gather(tint_symbol_2, arg_2, arg_3);
 }
diff --git a/test/tint/builtins/gen/var/textureGather/9a6358.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureGather/9a6358.wgsl.expected.spvasm
index 96ae32c..fac5ae5 100644
--- a/test/tint/builtins/gen/var/textureGather/9a6358.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureGather/9a6358.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 57
+; Bound: 58
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -45,57 +45,58 @@
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
-         %20 = OpConstantNull %v2float
+    %float_1 = OpConstant %float 1
+         %21 = OpConstantComposite %v2float %float_1 %float_1
 %_ptr_Function_v2float = OpTypePointer Function %v2float
+         %24 = OpConstantNull %v2float
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
-         %27 = OpConstantNull %int
-         %31 = OpTypeSampledImage %11
+         %29 = OpConstantNull %int
+         %33 = OpTypeSampledImage %11
     %v3float = OpTypeVector %float 3
       %int_0 = OpConstant %int 0
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %43 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %45 = OpTypeFunction %v4float
 %textureGather_9a6358 = OpFunction %void None %15
          %18 = OpLabel
-      %arg_2 = OpVariable %_ptr_Function_v2float Function %20
-      %arg_3 = OpVariable %_ptr_Function_int Function %27
+      %arg_2 = OpVariable %_ptr_Function_v2float Function %24
+      %arg_3 = OpVariable %_ptr_Function_int Function %29
         %res = OpVariable %_ptr_Function_v4float Function %5
-               OpStore %arg_2 %20
+               OpStore %arg_2 %21
                OpStore %arg_3 %int_1
-         %29 = OpLoad %14 %arg_1
-         %30 = OpLoad %11 %arg_0
-         %32 = OpSampledImage %31 %30 %29
-         %34 = OpLoad %v2float %arg_2
-         %35 = OpCompositeExtract %float %34 0
-         %36 = OpCompositeExtract %float %34 1
-         %38 = OpLoad %int %arg_3
-         %37 = OpConvertSToF %float %38
-         %39 = OpCompositeConstruct %v3float %35 %36 %37
-         %28 = OpImageGather %v4float %32 %39 %int_0
-               OpStore %res %28
+         %31 = OpLoad %14 %arg_1
+         %32 = OpLoad %11 %arg_0
+         %34 = OpSampledImage %33 %32 %31
+         %36 = OpLoad %v2float %arg_2
+         %37 = OpCompositeExtract %float %36 0
+         %38 = OpCompositeExtract %float %36 1
+         %40 = OpLoad %int %arg_3
+         %39 = OpConvertSToF %float %40
+         %41 = OpCompositeConstruct %v3float %37 %38 %39
+         %30 = OpImageGather %v4float %34 %41 %int_0
+               OpStore %res %30
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %43
-         %45 = OpLabel
-         %46 = OpFunctionCall %void %textureGather_9a6358
+%vertex_main_inner = OpFunction %v4float None %45
+         %47 = OpLabel
+         %48 = OpFunctionCall %void %textureGather_9a6358
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
-         %48 = OpLabel
-         %49 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %49
+         %50 = OpLabel
+         %51 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %51
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %15
-         %52 = OpLabel
-         %53 = OpFunctionCall %void %textureGather_9a6358
+         %53 = OpLabel
+         %54 = OpFunctionCall %void %textureGather_9a6358
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %15
-         %55 = OpLabel
-         %56 = OpFunctionCall %void %textureGather_9a6358
+         %56 = OpLabel
+         %57 = OpFunctionCall %void %textureGather_9a6358
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureGather/9a6358.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureGather/9a6358.wgsl.expected.wgsl
index 7d85b1b..934aa85 100644
--- a/test/tint/builtins/gen/var/textureGather/9a6358.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/9a6358.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(1) var arg_1 : sampler;
 
 fn textureGather_9a6358() {
-  var arg_2 = vec2<f32>();
+  var arg_2 = vec2<f32>(1.0f);
   var arg_3 = 1i;
   var res : vec4<f32> = textureGather(arg_0, arg_1, arg_2, arg_3);
 }
diff --git a/test/tint/builtins/gen/var/textureGather/9ab41e.wgsl b/test/tint/builtins/gen/var/textureGather/9ab41e.wgsl
index ea1369d..2d5a787 100644
--- a/test/tint/builtins/gen/var/textureGather/9ab41e.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/9ab41e.wgsl
@@ -26,9 +26,9 @@
 // fn textureGather(@const component: u32, texture: texture_2d_array<i32>, sampler: sampler, coords: vec2<f32>, array_index: i32, @const offset: vec2<i32>) -> vec4<i32>
 fn textureGather_9ab41e() {
   const arg_0 = 1u;
-  var arg_3 = vec2<f32>();
+  var arg_3 = vec2<f32>(1.f);
   var arg_4 = 1i;
-  const arg_5 = vec2<i32>();
+  const arg_5 = vec2<i32>(1i);
   var res: vec4<i32> = textureGather(arg_0, arg_1, arg_2, arg_3, arg_4, arg_5);
 }
 
diff --git a/test/tint/builtins/gen/var/textureGather/9ab41e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/9ab41e.wgsl.expected.dxc.hlsl
index 898324f..4c172c5 100644
--- a/test/tint/builtins/gen/var/textureGather/9ab41e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/9ab41e.wgsl.expected.dxc.hlsl
@@ -2,9 +2,9 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_9ab41e() {
-  float2 arg_3 = (0.0f).xx;
+  float2 arg_3 = (1.0f).xx;
   int arg_4 = 1;
-  int4 res = arg_1.GatherGreen(arg_2, float3(arg_3, float(arg_4)), (0).xx);
+  int4 res = arg_1.GatherGreen(arg_2, float3(arg_3, float(arg_4)), (1).xx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/textureGather/9ab41e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/9ab41e.wgsl.expected.fxc.hlsl
index 898324f..4c172c5 100644
--- a/test/tint/builtins/gen/var/textureGather/9ab41e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/9ab41e.wgsl.expected.fxc.hlsl
@@ -2,9 +2,9 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_9ab41e() {
-  float2 arg_3 = (0.0f).xx;
+  float2 arg_3 = (1.0f).xx;
   int arg_4 = 1;
-  int4 res = arg_1.GatherGreen(arg_2, float3(arg_3, float(arg_4)), (0).xx);
+  int4 res = arg_1.GatherGreen(arg_2, float3(arg_3, float(arg_4)), (1).xx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/textureGather/9ab41e.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureGather/9ab41e.wgsl.expected.glsl
index 4dfab19..6035dda 100644
--- a/test/tint/builtins/gen/var/textureGather/9ab41e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureGather/9ab41e.wgsl.expected.glsl
@@ -3,9 +3,9 @@
 uniform highp isampler2DArray arg_1_arg_2;
 
 void textureGather_9ab41e() {
-  vec2 arg_3 = vec2(0.0f);
+  vec2 arg_3 = vec2(1.0f);
   int arg_4 = 1;
-  ivec4 res = textureGatherOffset(arg_1_arg_2, vec3(arg_3, float(arg_4)), ivec2(0), int(1u));
+  ivec4 res = textureGatherOffset(arg_1_arg_2, vec3(arg_3, float(arg_4)), ivec2(1), int(1u));
 }
 
 vec4 vertex_main() {
@@ -27,9 +27,9 @@
 uniform highp isampler2DArray arg_1_arg_2;
 
 void textureGather_9ab41e() {
-  vec2 arg_3 = vec2(0.0f);
+  vec2 arg_3 = vec2(1.0f);
   int arg_4 = 1;
-  ivec4 res = textureGatherOffset(arg_1_arg_2, vec3(arg_3, float(arg_4)), ivec2(0), int(1u));
+  ivec4 res = textureGatherOffset(arg_1_arg_2, vec3(arg_3, float(arg_4)), ivec2(1), int(1u));
 }
 
 void fragment_main() {
@@ -45,9 +45,9 @@
 uniform highp isampler2DArray arg_1_arg_2;
 
 void textureGather_9ab41e() {
-  vec2 arg_3 = vec2(0.0f);
+  vec2 arg_3 = vec2(1.0f);
   int arg_4 = 1;
-  ivec4 res = textureGatherOffset(arg_1_arg_2, vec3(arg_3, float(arg_4)), ivec2(0), int(1u));
+  ivec4 res = textureGatherOffset(arg_1_arg_2, vec3(arg_3, float(arg_4)), ivec2(1), int(1u));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/var/textureGather/9ab41e.wgsl.expected.msl b/test/tint/builtins/gen/var/textureGather/9ab41e.wgsl.expected.msl
index 70bf095..cf0143c 100644
--- a/test/tint/builtins/gen/var/textureGather/9ab41e.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureGather/9ab41e.wgsl.expected.msl
@@ -2,9 +2,9 @@
 
 using namespace metal;
 void textureGather_9ab41e(texture2d_array<int, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float2 arg_3 = float2(0.0f);
+  float2 arg_3 = float2(1.0f);
   int arg_4 = 1;
-  int4 res = tint_symbol_1.gather(tint_symbol_2, arg_3, arg_4, int2(0), component::y);
+  int4 res = tint_symbol_1.gather(tint_symbol_2, arg_3, arg_4, int2(1), component::y);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/textureGather/9ab41e.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureGather/9ab41e.wgsl.expected.spvasm
index b3b751b..5bd290e 100644
--- a/test/tint/builtins/gen/var/textureGather/9ab41e.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureGather/9ab41e.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 62
+; Bound: 63
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -46,61 +46,62 @@
        %void = OpTypeVoid
          %16 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
-         %21 = OpConstantNull %v2float
+    %float_1 = OpConstant %float 1
+         %22 = OpConstantComposite %v2float %float_1 %float_1
 %_ptr_Function_v2float = OpTypePointer Function %v2float
+         %25 = OpConstantNull %v2float
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
-         %27 = OpConstantNull %int
+         %29 = OpConstantNull %int
       %v4int = OpTypeVector %int 4
-         %32 = OpTypeSampledImage %11
+         %34 = OpTypeSampledImage %11
     %v3float = OpTypeVector %float 3
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
       %v2int = OpTypeVector %int 2
-         %44 = OpConstantNull %v2int
+         %46 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %47 = OpConstantNull %v4int
-         %48 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %49 = OpConstantNull %v4int
+         %50 = OpTypeFunction %v4float
 %textureGather_9ab41e = OpFunction %void None %16
          %19 = OpLabel
-      %arg_3 = OpVariable %_ptr_Function_v2float Function %21
-      %arg_4 = OpVariable %_ptr_Function_int Function %27
-        %res = OpVariable %_ptr_Function_v4int Function %47
-               OpStore %arg_3 %21
+      %arg_3 = OpVariable %_ptr_Function_v2float Function %25
+      %arg_4 = OpVariable %_ptr_Function_int Function %29
+        %res = OpVariable %_ptr_Function_v4int Function %49
+               OpStore %arg_3 %22
                OpStore %arg_4 %int_1
-         %30 = OpLoad %15 %arg_2
-         %31 = OpLoad %11 %arg_1
-         %33 = OpSampledImage %32 %31 %30
-         %35 = OpLoad %v2float %arg_3
-         %36 = OpCompositeExtract %float %35 0
-         %37 = OpCompositeExtract %float %35 1
-         %39 = OpLoad %int %arg_4
-         %38 = OpConvertSToF %float %39
-         %40 = OpCompositeConstruct %v3float %36 %37 %38
-         %28 = OpImageGather %v4int %33 %40 %uint_1 ConstOffset %44
-               OpStore %res %28
+         %32 = OpLoad %15 %arg_2
+         %33 = OpLoad %11 %arg_1
+         %35 = OpSampledImage %34 %33 %32
+         %37 = OpLoad %v2float %arg_3
+         %38 = OpCompositeExtract %float %37 0
+         %39 = OpCompositeExtract %float %37 1
+         %41 = OpLoad %int %arg_4
+         %40 = OpConvertSToF %float %41
+         %42 = OpCompositeConstruct %v3float %38 %39 %40
+         %30 = OpImageGather %v4int %35 %42 %uint_1 ConstOffset %46
+               OpStore %res %30
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %48
-         %50 = OpLabel
-         %51 = OpFunctionCall %void %textureGather_9ab41e
+%vertex_main_inner = OpFunction %v4float None %50
+         %52 = OpLabel
+         %53 = OpFunctionCall %void %textureGather_9ab41e
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %16
-         %53 = OpLabel
-         %54 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %54
+         %55 = OpLabel
+         %56 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %56
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %16
-         %57 = OpLabel
-         %58 = OpFunctionCall %void %textureGather_9ab41e
+         %58 = OpLabel
+         %59 = OpFunctionCall %void %textureGather_9ab41e
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %16
-         %60 = OpLabel
-         %61 = OpFunctionCall %void %textureGather_9ab41e
+         %61 = OpLabel
+         %62 = OpFunctionCall %void %textureGather_9ab41e
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureGather/9ab41e.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureGather/9ab41e.wgsl.expected.wgsl
index 8a0dad6..5dba028 100644
--- a/test/tint/builtins/gen/var/textureGather/9ab41e.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/9ab41e.wgsl.expected.wgsl
@@ -4,9 +4,9 @@
 
 fn textureGather_9ab41e() {
   const arg_0 = 1u;
-  var arg_3 = vec2<f32>();
+  var arg_3 = vec2<f32>(1.0f);
   var arg_4 = 1i;
-  const arg_5 = vec2<i32>();
+  const arg_5 = vec2<i32>(1i);
   var res : vec4<i32> = textureGather(arg_0, arg_1, arg_2, arg_3, arg_4, arg_5);
 }
 
diff --git a/test/tint/builtins/gen/var/textureGather/a0372b.wgsl b/test/tint/builtins/gen/var/textureGather/a0372b.wgsl
index d6aedba..62f713b 100644
--- a/test/tint/builtins/gen/var/textureGather/a0372b.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/a0372b.wgsl
@@ -26,7 +26,7 @@
 // fn textureGather(@const component: i32, texture: texture_2d_array<u32>, sampler: sampler, coords: vec2<f32>, array_index: u32) -> vec4<u32>
 fn textureGather_a0372b() {
   const arg_0 = 1i;
-  var arg_3 = vec2<f32>();
+  var arg_3 = vec2<f32>(1.f);
   var arg_4 = 1u;
   var res: vec4<u32> = textureGather(arg_0, arg_1, arg_2, arg_3, arg_4);
 }
diff --git a/test/tint/builtins/gen/var/textureGather/a0372b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/a0372b.wgsl.expected.dxc.hlsl
index fb8e7d5..d55d5b2 100644
--- a/test/tint/builtins/gen/var/textureGather/a0372b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/a0372b.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_a0372b() {
-  float2 arg_3 = (0.0f).xx;
+  float2 arg_3 = (1.0f).xx;
   uint arg_4 = 1u;
   uint4 res = arg_1.GatherGreen(arg_2, float3(arg_3, float(arg_4)));
 }
diff --git a/test/tint/builtins/gen/var/textureGather/a0372b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/a0372b.wgsl.expected.fxc.hlsl
index fb8e7d5..d55d5b2 100644
--- a/test/tint/builtins/gen/var/textureGather/a0372b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/a0372b.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_a0372b() {
-  float2 arg_3 = (0.0f).xx;
+  float2 arg_3 = (1.0f).xx;
   uint arg_4 = 1u;
   uint4 res = arg_1.GatherGreen(arg_2, float3(arg_3, float(arg_4)));
 }
diff --git a/test/tint/builtins/gen/var/textureGather/a0372b.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureGather/a0372b.wgsl.expected.glsl
index c901057..937464c 100644
--- a/test/tint/builtins/gen/var/textureGather/a0372b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureGather/a0372b.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 uniform highp usampler2DArray arg_1_arg_2;
 
 void textureGather_a0372b() {
-  vec2 arg_3 = vec2(0.0f);
+  vec2 arg_3 = vec2(1.0f);
   uint arg_4 = 1u;
   uvec4 res = textureGather(arg_1_arg_2, vec3(arg_3, float(arg_4)), 1);
 }
@@ -27,7 +27,7 @@
 uniform highp usampler2DArray arg_1_arg_2;
 
 void textureGather_a0372b() {
-  vec2 arg_3 = vec2(0.0f);
+  vec2 arg_3 = vec2(1.0f);
   uint arg_4 = 1u;
   uvec4 res = textureGather(arg_1_arg_2, vec3(arg_3, float(arg_4)), 1);
 }
@@ -45,7 +45,7 @@
 uniform highp usampler2DArray arg_1_arg_2;
 
 void textureGather_a0372b() {
-  vec2 arg_3 = vec2(0.0f);
+  vec2 arg_3 = vec2(1.0f);
   uint arg_4 = 1u;
   uvec4 res = textureGather(arg_1_arg_2, vec3(arg_3, float(arg_4)), 1);
 }
diff --git a/test/tint/builtins/gen/var/textureGather/a0372b.wgsl.expected.msl b/test/tint/builtins/gen/var/textureGather/a0372b.wgsl.expected.msl
index 7a6f23d..6b012ed 100644
--- a/test/tint/builtins/gen/var/textureGather/a0372b.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureGather/a0372b.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureGather_a0372b(texture2d_array<uint, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float2 arg_3 = float2(0.0f);
+  float2 arg_3 = float2(1.0f);
   uint arg_4 = 1u;
   uint4 res = tint_symbol_1.gather(tint_symbol_2, arg_3, arg_4, int2(0), component::y);
 }
diff --git a/test/tint/builtins/gen/var/textureGather/a0372b.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureGather/a0372b.wgsl.expected.spvasm
index d884cab..36d6547 100644
--- a/test/tint/builtins/gen/var/textureGather/a0372b.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureGather/a0372b.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 60
+; Bound: 61
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -46,59 +46,60 @@
        %void = OpTypeVoid
          %16 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
-         %21 = OpConstantNull %v2float
+    %float_1 = OpConstant %float 1
+         %22 = OpConstantComposite %v2float %float_1 %float_1
 %_ptr_Function_v2float = OpTypePointer Function %v2float
+         %25 = OpConstantNull %v2float
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %27 = OpConstantNull %uint
+         %29 = OpConstantNull %uint
      %v4uint = OpTypeVector %uint 4
-         %32 = OpTypeSampledImage %11
+         %34 = OpTypeSampledImage %11
     %v3float = OpTypeVector %float 3
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %45 = OpConstantNull %v4uint
-         %46 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %47 = OpConstantNull %v4uint
+         %48 = OpTypeFunction %v4float
 %textureGather_a0372b = OpFunction %void None %16
          %19 = OpLabel
-      %arg_3 = OpVariable %_ptr_Function_v2float Function %21
-      %arg_4 = OpVariable %_ptr_Function_uint Function %27
-        %res = OpVariable %_ptr_Function_v4uint Function %45
-               OpStore %arg_3 %21
+      %arg_3 = OpVariable %_ptr_Function_v2float Function %25
+      %arg_4 = OpVariable %_ptr_Function_uint Function %29
+        %res = OpVariable %_ptr_Function_v4uint Function %47
+               OpStore %arg_3 %22
                OpStore %arg_4 %uint_1
-         %30 = OpLoad %15 %arg_2
-         %31 = OpLoad %11 %arg_1
-         %33 = OpSampledImage %32 %31 %30
-         %35 = OpLoad %v2float %arg_3
-         %36 = OpCompositeExtract %float %35 0
-         %37 = OpCompositeExtract %float %35 1
-         %39 = OpLoad %uint %arg_4
-         %38 = OpConvertUToF %float %39
-         %40 = OpCompositeConstruct %v3float %36 %37 %38
-         %28 = OpImageGather %v4uint %33 %40 %int_1
-               OpStore %res %28
+         %32 = OpLoad %15 %arg_2
+         %33 = OpLoad %11 %arg_1
+         %35 = OpSampledImage %34 %33 %32
+         %37 = OpLoad %v2float %arg_3
+         %38 = OpCompositeExtract %float %37 0
+         %39 = OpCompositeExtract %float %37 1
+         %41 = OpLoad %uint %arg_4
+         %40 = OpConvertUToF %float %41
+         %42 = OpCompositeConstruct %v3float %38 %39 %40
+         %30 = OpImageGather %v4uint %35 %42 %int_1
+               OpStore %res %30
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %46
-         %48 = OpLabel
-         %49 = OpFunctionCall %void %textureGather_a0372b
+%vertex_main_inner = OpFunction %v4float None %48
+         %50 = OpLabel
+         %51 = OpFunctionCall %void %textureGather_a0372b
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %16
-         %51 = OpLabel
-         %52 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %52
+         %53 = OpLabel
+         %54 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %54
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %16
-         %55 = OpLabel
-         %56 = OpFunctionCall %void %textureGather_a0372b
+         %56 = OpLabel
+         %57 = OpFunctionCall %void %textureGather_a0372b
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %16
-         %58 = OpLabel
-         %59 = OpFunctionCall %void %textureGather_a0372b
+         %59 = OpLabel
+         %60 = OpFunctionCall %void %textureGather_a0372b
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureGather/a0372b.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureGather/a0372b.wgsl.expected.wgsl
index 2daaad7..e4b97a2 100644
--- a/test/tint/builtins/gen/var/textureGather/a0372b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/a0372b.wgsl.expected.wgsl
@@ -4,7 +4,7 @@
 
 fn textureGather_a0372b() {
   const arg_0 = 1i;
-  var arg_3 = vec2<f32>();
+  var arg_3 = vec2<f32>(1.0f);
   var arg_4 = 1u;
   var res : vec4<u32> = textureGather(arg_0, arg_1, arg_2, arg_3, arg_4);
 }
diff --git a/test/tint/builtins/gen/var/textureGather/a68027.wgsl b/test/tint/builtins/gen/var/textureGather/a68027.wgsl
index f58770c6..d18ba4f 100644
--- a/test/tint/builtins/gen/var/textureGather/a68027.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/a68027.wgsl
@@ -25,9 +25,9 @@
 
 // fn textureGather(texture: texture_depth_2d_array, sampler: sampler, coords: vec2<f32>, array_index: u32, @const offset: vec2<i32>) -> vec4<f32>
 fn textureGather_a68027() {
-  var arg_2 = vec2<f32>();
+  var arg_2 = vec2<f32>(1.f);
   var arg_3 = 1u;
-  const arg_4 = vec2<i32>();
+  const arg_4 = vec2<i32>(1i);
   var res: vec4<f32> = textureGather(arg_0, arg_1, arg_2, arg_3, arg_4);
 }
 
diff --git a/test/tint/builtins/gen/var/textureGather/a68027.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/a68027.wgsl.expected.dxc.hlsl
index 97ae67b..d716bd5 100644
--- a/test/tint/builtins/gen/var/textureGather/a68027.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/a68027.wgsl.expected.dxc.hlsl
@@ -2,9 +2,9 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureGather_a68027() {
-  float2 arg_2 = (0.0f).xx;
+  float2 arg_2 = (1.0f).xx;
   uint arg_3 = 1u;
-  float4 res = arg_0.Gather(arg_1, float3(arg_2, float(arg_3)), (0).xx);
+  float4 res = arg_0.Gather(arg_1, float3(arg_2, float(arg_3)), (1).xx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/textureGather/a68027.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/a68027.wgsl.expected.fxc.hlsl
index 97ae67b..d716bd5 100644
--- a/test/tint/builtins/gen/var/textureGather/a68027.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/a68027.wgsl.expected.fxc.hlsl
@@ -2,9 +2,9 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureGather_a68027() {
-  float2 arg_2 = (0.0f).xx;
+  float2 arg_2 = (1.0f).xx;
   uint arg_3 = 1u;
-  float4 res = arg_0.Gather(arg_1, float3(arg_2, float(arg_3)), (0).xx);
+  float4 res = arg_0.Gather(arg_1, float3(arg_2, float(arg_3)), (1).xx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/textureGather/a68027.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureGather/a68027.wgsl.expected.glsl
index 24ac721..685e54f 100644
--- a/test/tint/builtins/gen/var/textureGather/a68027.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureGather/a68027.wgsl.expected.glsl
@@ -3,9 +3,9 @@
 uniform highp sampler2DArrayShadow arg_0_arg_1;
 
 void textureGather_a68027() {
-  vec2 arg_2 = vec2(0.0f);
+  vec2 arg_2 = vec2(1.0f);
   uint arg_3 = 1u;
-  vec4 res = textureGatherOffset(arg_0_arg_1, vec3(arg_2, float(arg_3)), 0.0, ivec2(0));
+  vec4 res = textureGatherOffset(arg_0_arg_1, vec3(arg_2, float(arg_3)), 0.0, ivec2(1));
 }
 
 vec4 vertex_main() {
@@ -27,9 +27,9 @@
 uniform highp sampler2DArrayShadow arg_0_arg_1;
 
 void textureGather_a68027() {
-  vec2 arg_2 = vec2(0.0f);
+  vec2 arg_2 = vec2(1.0f);
   uint arg_3 = 1u;
-  vec4 res = textureGatherOffset(arg_0_arg_1, vec3(arg_2, float(arg_3)), 0.0, ivec2(0));
+  vec4 res = textureGatherOffset(arg_0_arg_1, vec3(arg_2, float(arg_3)), 0.0, ivec2(1));
 }
 
 void fragment_main() {
@@ -45,9 +45,9 @@
 uniform highp sampler2DArrayShadow arg_0_arg_1;
 
 void textureGather_a68027() {
-  vec2 arg_2 = vec2(0.0f);
+  vec2 arg_2 = vec2(1.0f);
   uint arg_3 = 1u;
-  vec4 res = textureGatherOffset(arg_0_arg_1, vec3(arg_2, float(arg_3)), 0.0, ivec2(0));
+  vec4 res = textureGatherOffset(arg_0_arg_1, vec3(arg_2, float(arg_3)), 0.0, ivec2(1));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/var/textureGather/a68027.wgsl.expected.msl b/test/tint/builtins/gen/var/textureGather/a68027.wgsl.expected.msl
index 6584b67..1e36abd 100644
--- a/test/tint/builtins/gen/var/textureGather/a68027.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureGather/a68027.wgsl.expected.msl
@@ -2,9 +2,9 @@
 
 using namespace metal;
 void textureGather_a68027(depth2d_array<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float2 arg_2 = float2(0.0f);
+  float2 arg_2 = float2(1.0f);
   uint arg_3 = 1u;
-  float4 res = tint_symbol_1.gather(tint_symbol_2, arg_2, arg_3, int2(0));
+  float4 res = tint_symbol_1.gather(tint_symbol_2, arg_2, arg_3, int2(1));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/textureGather/a68027.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureGather/a68027.wgsl.expected.spvasm
index a0830ea..6fe0fae 100644
--- a/test/tint/builtins/gen/var/textureGather/a68027.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureGather/a68027.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 60
+; Bound: 62
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -45,60 +45,62 @@
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
-         %20 = OpConstantNull %v2float
+    %float_1 = OpConstant %float 1
+         %21 = OpConstantComposite %v2float %float_1 %float_1
 %_ptr_Function_v2float = OpTypePointer Function %v2float
+         %24 = OpConstantNull %v2float
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %27 = OpConstantNull %uint
-         %31 = OpTypeSampledImage %11
+         %29 = OpConstantNull %uint
+         %33 = OpTypeSampledImage %11
     %v3float = OpTypeVector %float 3
         %int = OpTypeInt 32 1
       %int_0 = OpConstant %int 0
       %v2int = OpTypeVector %int 2
-         %43 = OpConstantNull %v2int
+      %int_1 = OpConstant %int 1
+         %46 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %46 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %49 = OpTypeFunction %v4float
 %textureGather_a68027 = OpFunction %void None %15
          %18 = OpLabel
-      %arg_2 = OpVariable %_ptr_Function_v2float Function %20
-      %arg_3 = OpVariable %_ptr_Function_uint Function %27
+      %arg_2 = OpVariable %_ptr_Function_v2float Function %24
+      %arg_3 = OpVariable %_ptr_Function_uint Function %29
         %res = OpVariable %_ptr_Function_v4float Function %5
-               OpStore %arg_2 %20
+               OpStore %arg_2 %21
                OpStore %arg_3 %uint_1
-         %29 = OpLoad %14 %arg_1
-         %30 = OpLoad %11 %arg_0
-         %32 = OpSampledImage %31 %30 %29
-         %34 = OpLoad %v2float %arg_2
-         %35 = OpCompositeExtract %float %34 0
-         %36 = OpCompositeExtract %float %34 1
-         %38 = OpLoad %uint %arg_3
-         %37 = OpConvertUToF %float %38
-         %39 = OpCompositeConstruct %v3float %35 %36 %37
-         %28 = OpImageGather %v4float %32 %39 %int_0 ConstOffset %43
-               OpStore %res %28
+         %31 = OpLoad %14 %arg_1
+         %32 = OpLoad %11 %arg_0
+         %34 = OpSampledImage %33 %32 %31
+         %36 = OpLoad %v2float %arg_2
+         %37 = OpCompositeExtract %float %36 0
+         %38 = OpCompositeExtract %float %36 1
+         %40 = OpLoad %uint %arg_3
+         %39 = OpConvertUToF %float %40
+         %41 = OpCompositeConstruct %v3float %37 %38 %39
+         %30 = OpImageGather %v4float %34 %41 %int_0 ConstOffset %46
+               OpStore %res %30
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %46
-         %48 = OpLabel
-         %49 = OpFunctionCall %void %textureGather_a68027
+%vertex_main_inner = OpFunction %v4float None %49
+         %51 = OpLabel
+         %52 = OpFunctionCall %void %textureGather_a68027
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
-         %51 = OpLabel
-         %52 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %52
+         %54 = OpLabel
+         %55 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %55
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %15
-         %55 = OpLabel
-         %56 = OpFunctionCall %void %textureGather_a68027
+         %57 = OpLabel
+         %58 = OpFunctionCall %void %textureGather_a68027
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %15
-         %58 = OpLabel
-         %59 = OpFunctionCall %void %textureGather_a68027
+         %60 = OpLabel
+         %61 = OpFunctionCall %void %textureGather_a68027
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureGather/a68027.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureGather/a68027.wgsl.expected.wgsl
index f7aa73b..7806795 100644
--- a/test/tint/builtins/gen/var/textureGather/a68027.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/a68027.wgsl.expected.wgsl
@@ -3,9 +3,9 @@
 @group(1) @binding(1) var arg_1 : sampler;
 
 fn textureGather_a68027() {
-  var arg_2 = vec2<f32>();
+  var arg_2 = vec2<f32>(1.0f);
   var arg_3 = 1u;
-  const arg_4 = vec2<i32>();
+  const arg_4 = vec2<i32>(1i);
   var res : vec4<f32> = textureGather(arg_0, arg_1, arg_2, arg_3, arg_4);
 }
 
diff --git a/test/tint/builtins/gen/var/textureGather/aaf6bd.wgsl b/test/tint/builtins/gen/var/textureGather/aaf6bd.wgsl
index 640fa29..4e511c9 100644
--- a/test/tint/builtins/gen/var/textureGather/aaf6bd.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/aaf6bd.wgsl
@@ -26,7 +26,7 @@
 // fn textureGather(@const component: u32, texture: texture_cube_array<i32>, sampler: sampler, coords: vec3<f32>, array_index: i32) -> vec4<i32>
 fn textureGather_aaf6bd() {
   const arg_0 = 1u;
-  var arg_3 = vec3<f32>();
+  var arg_3 = vec3<f32>(1.f);
   var arg_4 = 1i;
   var res: vec4<i32> = textureGather(arg_0, arg_1, arg_2, arg_3, arg_4);
 }
diff --git a/test/tint/builtins/gen/var/textureGather/aaf6bd.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/aaf6bd.wgsl.expected.dxc.hlsl
index ff59e82..c9ad432 100644
--- a/test/tint/builtins/gen/var/textureGather/aaf6bd.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/aaf6bd.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_aaf6bd() {
-  float3 arg_3 = (0.0f).xxx;
+  float3 arg_3 = (1.0f).xxx;
   int arg_4 = 1;
   int4 res = arg_1.GatherGreen(arg_2, float4(arg_3, float(arg_4)));
 }
diff --git a/test/tint/builtins/gen/var/textureGather/aaf6bd.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/aaf6bd.wgsl.expected.fxc.hlsl
index ff59e82..c9ad432 100644
--- a/test/tint/builtins/gen/var/textureGather/aaf6bd.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/aaf6bd.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_aaf6bd() {
-  float3 arg_3 = (0.0f).xxx;
+  float3 arg_3 = (1.0f).xxx;
   int arg_4 = 1;
   int4 res = arg_1.GatherGreen(arg_2, float4(arg_3, float(arg_4)));
 }
diff --git a/test/tint/builtins/gen/var/textureGather/aaf6bd.wgsl.expected.msl b/test/tint/builtins/gen/var/textureGather/aaf6bd.wgsl.expected.msl
index 51280df..4a1771a 100644
--- a/test/tint/builtins/gen/var/textureGather/aaf6bd.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureGather/aaf6bd.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureGather_aaf6bd(texturecube_array<int, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float3 arg_3 = float3(0.0f);
+  float3 arg_3 = float3(1.0f);
   int arg_4 = 1;
   int4 res = tint_symbol_1.gather(tint_symbol_2, arg_3, arg_4, component::y);
 }
diff --git a/test/tint/builtins/gen/var/textureGather/aaf6bd.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureGather/aaf6bd.wgsl.expected.spvasm
index b4296f0..b02612c 100644
--- a/test/tint/builtins/gen/var/textureGather/aaf6bd.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureGather/aaf6bd.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 60
+; Bound: 61
 ; Schema: 0
                OpCapability Shader
                OpCapability SampledCubeArray
@@ -47,59 +47,60 @@
        %void = OpTypeVoid
          %16 = OpTypeFunction %void
     %v3float = OpTypeVector %float 3
-         %21 = OpConstantNull %v3float
+    %float_1 = OpConstant %float 1
+         %22 = OpConstantComposite %v3float %float_1 %float_1 %float_1
 %_ptr_Function_v3float = OpTypePointer Function %v3float
+         %25 = OpConstantNull %v3float
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
-         %27 = OpConstantNull %int
+         %29 = OpConstantNull %int
       %v4int = OpTypeVector %int 4
-         %32 = OpTypeSampledImage %11
+         %34 = OpTypeSampledImage %11
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %45 = OpConstantNull %v4int
-         %46 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %47 = OpConstantNull %v4int
+         %48 = OpTypeFunction %v4float
 %textureGather_aaf6bd = OpFunction %void None %16
          %19 = OpLabel
-      %arg_3 = OpVariable %_ptr_Function_v3float Function %21
-      %arg_4 = OpVariable %_ptr_Function_int Function %27
-        %res = OpVariable %_ptr_Function_v4int Function %45
-               OpStore %arg_3 %21
+      %arg_3 = OpVariable %_ptr_Function_v3float Function %25
+      %arg_4 = OpVariable %_ptr_Function_int Function %29
+        %res = OpVariable %_ptr_Function_v4int Function %47
+               OpStore %arg_3 %22
                OpStore %arg_4 %int_1
-         %30 = OpLoad %15 %arg_2
-         %31 = OpLoad %11 %arg_1
-         %33 = OpSampledImage %32 %31 %30
-         %34 = OpLoad %v3float %arg_3
-         %35 = OpCompositeExtract %float %34 0
-         %36 = OpCompositeExtract %float %34 1
-         %37 = OpCompositeExtract %float %34 2
-         %39 = OpLoad %int %arg_4
-         %38 = OpConvertSToF %float %39
-         %40 = OpCompositeConstruct %v4float %35 %36 %37 %38
-         %28 = OpImageGather %v4int %33 %40 %uint_1
-               OpStore %res %28
+         %32 = OpLoad %15 %arg_2
+         %33 = OpLoad %11 %arg_1
+         %35 = OpSampledImage %34 %33 %32
+         %36 = OpLoad %v3float %arg_3
+         %37 = OpCompositeExtract %float %36 0
+         %38 = OpCompositeExtract %float %36 1
+         %39 = OpCompositeExtract %float %36 2
+         %41 = OpLoad %int %arg_4
+         %40 = OpConvertSToF %float %41
+         %42 = OpCompositeConstruct %v4float %37 %38 %39 %40
+         %30 = OpImageGather %v4int %35 %42 %uint_1
+               OpStore %res %30
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %46
-         %48 = OpLabel
-         %49 = OpFunctionCall %void %textureGather_aaf6bd
+%vertex_main_inner = OpFunction %v4float None %48
+         %50 = OpLabel
+         %51 = OpFunctionCall %void %textureGather_aaf6bd
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %16
-         %51 = OpLabel
-         %52 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %52
+         %53 = OpLabel
+         %54 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %54
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %16
-         %55 = OpLabel
-         %56 = OpFunctionCall %void %textureGather_aaf6bd
+         %56 = OpLabel
+         %57 = OpFunctionCall %void %textureGather_aaf6bd
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %16
-         %58 = OpLabel
-         %59 = OpFunctionCall %void %textureGather_aaf6bd
+         %59 = OpLabel
+         %60 = OpFunctionCall %void %textureGather_aaf6bd
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureGather/aaf6bd.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureGather/aaf6bd.wgsl.expected.wgsl
index 957219f..7515732 100644
--- a/test/tint/builtins/gen/var/textureGather/aaf6bd.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/aaf6bd.wgsl.expected.wgsl
@@ -4,7 +4,7 @@
 
 fn textureGather_aaf6bd() {
   const arg_0 = 1u;
-  var arg_3 = vec3<f32>();
+  var arg_3 = vec3<f32>(1.0f);
   var arg_4 = 1i;
   var res : vec4<i32> = textureGather(arg_0, arg_1, arg_2, arg_3, arg_4);
 }
diff --git a/test/tint/builtins/gen/var/textureGather/af55b3.wgsl b/test/tint/builtins/gen/var/textureGather/af55b3.wgsl
index fe08084..0a0d4e0 100644
--- a/test/tint/builtins/gen/var/textureGather/af55b3.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/af55b3.wgsl
@@ -26,8 +26,8 @@
 // fn textureGather(@const component: i32, texture: texture_2d<f32>, sampler: sampler, coords: vec2<f32>, @const offset: vec2<i32>) -> vec4<f32>
 fn textureGather_af55b3() {
   const arg_0 = 1i;
-  var arg_3 = vec2<f32>();
-  const arg_4 = vec2<i32>();
+  var arg_3 = vec2<f32>(1.f);
+  const arg_4 = vec2<i32>(1i);
   var res: vec4<f32> = textureGather(arg_0, arg_1, arg_2, arg_3, arg_4);
 }
 
diff --git a/test/tint/builtins/gen/var/textureGather/af55b3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/af55b3.wgsl.expected.dxc.hlsl
index 2cf56d1..004bf3e 100644
--- a/test/tint/builtins/gen/var/textureGather/af55b3.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/af55b3.wgsl.expected.dxc.hlsl
@@ -2,8 +2,8 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_af55b3() {
-  float2 arg_3 = (0.0f).xx;
-  float4 res = arg_1.GatherGreen(arg_2, arg_3, (0).xx);
+  float2 arg_3 = (1.0f).xx;
+  float4 res = arg_1.GatherGreen(arg_2, arg_3, (1).xx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/textureGather/af55b3.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/af55b3.wgsl.expected.fxc.hlsl
index 2cf56d1..004bf3e 100644
--- a/test/tint/builtins/gen/var/textureGather/af55b3.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/af55b3.wgsl.expected.fxc.hlsl
@@ -2,8 +2,8 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_af55b3() {
-  float2 arg_3 = (0.0f).xx;
-  float4 res = arg_1.GatherGreen(arg_2, arg_3, (0).xx);
+  float2 arg_3 = (1.0f).xx;
+  float4 res = arg_1.GatherGreen(arg_2, arg_3, (1).xx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/textureGather/af55b3.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureGather/af55b3.wgsl.expected.glsl
index ec46313..f487bf8 100644
--- a/test/tint/builtins/gen/var/textureGather/af55b3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureGather/af55b3.wgsl.expected.glsl
@@ -3,8 +3,8 @@
 uniform highp sampler2D arg_1_arg_2;
 
 void textureGather_af55b3() {
-  vec2 arg_3 = vec2(0.0f);
-  vec4 res = textureGatherOffset(arg_1_arg_2, arg_3, ivec2(0), 1);
+  vec2 arg_3 = vec2(1.0f);
+  vec4 res = textureGatherOffset(arg_1_arg_2, arg_3, ivec2(1), 1);
 }
 
 vec4 vertex_main() {
@@ -26,8 +26,8 @@
 uniform highp sampler2D arg_1_arg_2;
 
 void textureGather_af55b3() {
-  vec2 arg_3 = vec2(0.0f);
-  vec4 res = textureGatherOffset(arg_1_arg_2, arg_3, ivec2(0), 1);
+  vec2 arg_3 = vec2(1.0f);
+  vec4 res = textureGatherOffset(arg_1_arg_2, arg_3, ivec2(1), 1);
 }
 
 void fragment_main() {
@@ -43,8 +43,8 @@
 uniform highp sampler2D arg_1_arg_2;
 
 void textureGather_af55b3() {
-  vec2 arg_3 = vec2(0.0f);
-  vec4 res = textureGatherOffset(arg_1_arg_2, arg_3, ivec2(0), 1);
+  vec2 arg_3 = vec2(1.0f);
+  vec4 res = textureGatherOffset(arg_1_arg_2, arg_3, ivec2(1), 1);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/var/textureGather/af55b3.wgsl.expected.msl b/test/tint/builtins/gen/var/textureGather/af55b3.wgsl.expected.msl
index 5bdf570..c60b757 100644
--- a/test/tint/builtins/gen/var/textureGather/af55b3.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureGather/af55b3.wgsl.expected.msl
@@ -2,8 +2,8 @@
 
 using namespace metal;
 void textureGather_af55b3(texture2d<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float2 arg_3 = float2(0.0f);
-  float4 res = tint_symbol_1.gather(tint_symbol_2, arg_3, int2(0), component::y);
+  float2 arg_3 = float2(1.0f);
+  float4 res = tint_symbol_1.gather(tint_symbol_2, arg_3, int2(1), component::y);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/textureGather/af55b3.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureGather/af55b3.wgsl.expected.spvasm
index 7bb9edc..1cf4833 100644
--- a/test/tint/builtins/gen/var/textureGather/af55b3.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureGather/af55b3.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 49
+; Bound: 50
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -44,48 +44,49 @@
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
-         %20 = OpConstantNull %v2float
+    %float_1 = OpConstant %float 1
+         %21 = OpConstantComposite %v2float %float_1 %float_1
 %_ptr_Function_v2float = OpTypePointer Function %v2float
-         %26 = OpTypeSampledImage %11
+         %24 = OpConstantNull %v2float
+         %28 = OpTypeSampledImage %11
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
       %v2int = OpTypeVector %int 2
-         %32 = OpConstantNull %v2int
+         %34 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %35 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %37 = OpTypeFunction %v4float
 %textureGather_af55b3 = OpFunction %void None %15
          %18 = OpLabel
-      %arg_3 = OpVariable %_ptr_Function_v2float Function %20
+      %arg_3 = OpVariable %_ptr_Function_v2float Function %24
         %res = OpVariable %_ptr_Function_v4float Function %5
-               OpStore %arg_3 %20
-         %24 = OpLoad %14 %arg_2
-         %25 = OpLoad %11 %arg_1
-         %27 = OpSampledImage %26 %25 %24
-         %28 = OpLoad %v2float %arg_3
-         %23 = OpImageGather %v4float %27 %28 %int_1 ConstOffset %32
-               OpStore %res %23
+               OpStore %arg_3 %21
+         %26 = OpLoad %14 %arg_2
+         %27 = OpLoad %11 %arg_1
+         %29 = OpSampledImage %28 %27 %26
+         %30 = OpLoad %v2float %arg_3
+         %25 = OpImageGather %v4float %29 %30 %int_1 ConstOffset %34
+               OpStore %res %25
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %35
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureGather_af55b3
+%vertex_main_inner = OpFunction %v4float None %37
+         %39 = OpLabel
+         %40 = OpFunctionCall %void %textureGather_af55b3
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
-         %40 = OpLabel
-         %41 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %41
+         %42 = OpLabel
+         %43 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %43
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %15
-         %44 = OpLabel
-         %45 = OpFunctionCall %void %textureGather_af55b3
+         %45 = OpLabel
+         %46 = OpFunctionCall %void %textureGather_af55b3
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %15
-         %47 = OpLabel
-         %48 = OpFunctionCall %void %textureGather_af55b3
+         %48 = OpLabel
+         %49 = OpFunctionCall %void %textureGather_af55b3
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureGather/af55b3.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureGather/af55b3.wgsl.expected.wgsl
index 027213b..ece4d49 100644
--- a/test/tint/builtins/gen/var/textureGather/af55b3.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/af55b3.wgsl.expected.wgsl
@@ -4,8 +4,8 @@
 
 fn textureGather_af55b3() {
   const arg_0 = 1i;
-  var arg_3 = vec2<f32>();
-  const arg_4 = vec2<i32>();
+  var arg_3 = vec2<f32>(1.0f);
+  const arg_4 = vec2<i32>(1i);
   var res : vec4<f32> = textureGather(arg_0, arg_1, arg_2, arg_3, arg_4);
 }
 
diff --git a/test/tint/builtins/gen/var/textureGather/bb3ac5.wgsl b/test/tint/builtins/gen/var/textureGather/bb3ac5.wgsl
index 1d90408..4cdc946 100644
--- a/test/tint/builtins/gen/var/textureGather/bb3ac5.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/bb3ac5.wgsl
@@ -26,7 +26,7 @@
 // fn textureGather(@const component: i32, texture: texture_2d<i32>, sampler: sampler, coords: vec2<f32>) -> vec4<i32>
 fn textureGather_bb3ac5() {
   const arg_0 = 1i;
-  var arg_3 = vec2<f32>();
+  var arg_3 = vec2<f32>(1.f);
   var res: vec4<i32> = textureGather(arg_0, arg_1, arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureGather/bb3ac5.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/bb3ac5.wgsl.expected.dxc.hlsl
index 2f718f3..bf01188 100644
--- a/test/tint/builtins/gen/var/textureGather/bb3ac5.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/bb3ac5.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_bb3ac5() {
-  float2 arg_3 = (0.0f).xx;
+  float2 arg_3 = (1.0f).xx;
   int4 res = arg_1.GatherGreen(arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureGather/bb3ac5.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/bb3ac5.wgsl.expected.fxc.hlsl
index 2f718f3..bf01188 100644
--- a/test/tint/builtins/gen/var/textureGather/bb3ac5.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/bb3ac5.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_bb3ac5() {
-  float2 arg_3 = (0.0f).xx;
+  float2 arg_3 = (1.0f).xx;
   int4 res = arg_1.GatherGreen(arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureGather/bb3ac5.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureGather/bb3ac5.wgsl.expected.glsl
index 0c9b449..eac794a 100644
--- a/test/tint/builtins/gen/var/textureGather/bb3ac5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureGather/bb3ac5.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 uniform highp isampler2D arg_1_arg_2;
 
 void textureGather_bb3ac5() {
-  vec2 arg_3 = vec2(0.0f);
+  vec2 arg_3 = vec2(1.0f);
   ivec4 res = textureGather(arg_1_arg_2, arg_3, 1);
 }
 
@@ -26,7 +26,7 @@
 uniform highp isampler2D arg_1_arg_2;
 
 void textureGather_bb3ac5() {
-  vec2 arg_3 = vec2(0.0f);
+  vec2 arg_3 = vec2(1.0f);
   ivec4 res = textureGather(arg_1_arg_2, arg_3, 1);
 }
 
@@ -43,7 +43,7 @@
 uniform highp isampler2D arg_1_arg_2;
 
 void textureGather_bb3ac5() {
-  vec2 arg_3 = vec2(0.0f);
+  vec2 arg_3 = vec2(1.0f);
   ivec4 res = textureGather(arg_1_arg_2, arg_3, 1);
 }
 
diff --git a/test/tint/builtins/gen/var/textureGather/bb3ac5.wgsl.expected.msl b/test/tint/builtins/gen/var/textureGather/bb3ac5.wgsl.expected.msl
index 99c8768..4fc6aef 100644
--- a/test/tint/builtins/gen/var/textureGather/bb3ac5.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureGather/bb3ac5.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureGather_bb3ac5(texture2d<int, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float2 arg_3 = float2(0.0f);
+  float2 arg_3 = float2(1.0f);
   int4 res = tint_symbol_1.gather(tint_symbol_2, arg_3, int2(0), component::y);
 }
 
diff --git a/test/tint/builtins/gen/var/textureGather/bb3ac5.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureGather/bb3ac5.wgsl.expected.spvasm
index 0d15df0..a9d8e0d 100644
--- a/test/tint/builtins/gen/var/textureGather/bb3ac5.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureGather/bb3ac5.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 49
+; Bound: 50
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -45,47 +45,48 @@
        %void = OpTypeVoid
          %16 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
-         %21 = OpConstantNull %v2float
+    %float_1 = OpConstant %float 1
+         %22 = OpConstantComposite %v2float %float_1 %float_1
 %_ptr_Function_v2float = OpTypePointer Function %v2float
+         %25 = OpConstantNull %v2float
       %v4int = OpTypeVector %int 4
-         %28 = OpTypeSampledImage %11
+         %30 = OpTypeSampledImage %11
       %int_1 = OpConstant %int 1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %34 = OpConstantNull %v4int
-         %35 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %36 = OpConstantNull %v4int
+         %37 = OpTypeFunction %v4float
 %textureGather_bb3ac5 = OpFunction %void None %16
          %19 = OpLabel
-      %arg_3 = OpVariable %_ptr_Function_v2float Function %21
-        %res = OpVariable %_ptr_Function_v4int Function %34
-               OpStore %arg_3 %21
-         %26 = OpLoad %15 %arg_2
-         %27 = OpLoad %11 %arg_1
-         %29 = OpSampledImage %28 %27 %26
-         %30 = OpLoad %v2float %arg_3
-         %24 = OpImageGather %v4int %29 %30 %int_1
-               OpStore %res %24
+      %arg_3 = OpVariable %_ptr_Function_v2float Function %25
+        %res = OpVariable %_ptr_Function_v4int Function %36
+               OpStore %arg_3 %22
+         %28 = OpLoad %15 %arg_2
+         %29 = OpLoad %11 %arg_1
+         %31 = OpSampledImage %30 %29 %28
+         %32 = OpLoad %v2float %arg_3
+         %26 = OpImageGather %v4int %31 %32 %int_1
+               OpStore %res %26
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %35
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureGather_bb3ac5
+%vertex_main_inner = OpFunction %v4float None %37
+         %39 = OpLabel
+         %40 = OpFunctionCall %void %textureGather_bb3ac5
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %16
-         %40 = OpLabel
-         %41 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %41
+         %42 = OpLabel
+         %43 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %43
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %16
-         %44 = OpLabel
-         %45 = OpFunctionCall %void %textureGather_bb3ac5
+         %45 = OpLabel
+         %46 = OpFunctionCall %void %textureGather_bb3ac5
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %16
-         %47 = OpLabel
-         %48 = OpFunctionCall %void %textureGather_bb3ac5
+         %48 = OpLabel
+         %49 = OpFunctionCall %void %textureGather_bb3ac5
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureGather/bb3ac5.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureGather/bb3ac5.wgsl.expected.wgsl
index 495e907..790a316 100644
--- a/test/tint/builtins/gen/var/textureGather/bb3ac5.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/bb3ac5.wgsl.expected.wgsl
@@ -4,7 +4,7 @@
 
 fn textureGather_bb3ac5() {
   const arg_0 = 1i;
-  var arg_3 = vec2<f32>();
+  var arg_3 = vec2<f32>(1.0f);
   var res : vec4<i32> = textureGather(arg_0, arg_1, arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureGather/bd33b6.wgsl b/test/tint/builtins/gen/var/textureGather/bd33b6.wgsl
index 12963b5..c401a2d 100644
--- a/test/tint/builtins/gen/var/textureGather/bd33b6.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/bd33b6.wgsl
@@ -26,9 +26,9 @@
 // fn textureGather(@const component: i32, texture: texture_2d_array<i32>, sampler: sampler, coords: vec2<f32>, array_index: u32, @const offset: vec2<i32>) -> vec4<i32>
 fn textureGather_bd33b6() {
   const arg_0 = 1i;
-  var arg_3 = vec2<f32>();
+  var arg_3 = vec2<f32>(1.f);
   var arg_4 = 1u;
-  const arg_5 = vec2<i32>();
+  const arg_5 = vec2<i32>(1i);
   var res: vec4<i32> = textureGather(arg_0, arg_1, arg_2, arg_3, arg_4, arg_5);
 }
 
diff --git a/test/tint/builtins/gen/var/textureGather/bd33b6.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/bd33b6.wgsl.expected.dxc.hlsl
index dd45876..cc7da20 100644
--- a/test/tint/builtins/gen/var/textureGather/bd33b6.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/bd33b6.wgsl.expected.dxc.hlsl
@@ -2,9 +2,9 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_bd33b6() {
-  float2 arg_3 = (0.0f).xx;
+  float2 arg_3 = (1.0f).xx;
   uint arg_4 = 1u;
-  int4 res = arg_1.GatherGreen(arg_2, float3(arg_3, float(arg_4)), (0).xx);
+  int4 res = arg_1.GatherGreen(arg_2, float3(arg_3, float(arg_4)), (1).xx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/textureGather/bd33b6.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/bd33b6.wgsl.expected.fxc.hlsl
index dd45876..cc7da20 100644
--- a/test/tint/builtins/gen/var/textureGather/bd33b6.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/bd33b6.wgsl.expected.fxc.hlsl
@@ -2,9 +2,9 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_bd33b6() {
-  float2 arg_3 = (0.0f).xx;
+  float2 arg_3 = (1.0f).xx;
   uint arg_4 = 1u;
-  int4 res = arg_1.GatherGreen(arg_2, float3(arg_3, float(arg_4)), (0).xx);
+  int4 res = arg_1.GatherGreen(arg_2, float3(arg_3, float(arg_4)), (1).xx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/textureGather/bd33b6.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureGather/bd33b6.wgsl.expected.glsl
index 7afb7c6..e8a0d0f 100644
--- a/test/tint/builtins/gen/var/textureGather/bd33b6.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureGather/bd33b6.wgsl.expected.glsl
@@ -3,9 +3,9 @@
 uniform highp isampler2DArray arg_1_arg_2;
 
 void textureGather_bd33b6() {
-  vec2 arg_3 = vec2(0.0f);
+  vec2 arg_3 = vec2(1.0f);
   uint arg_4 = 1u;
-  ivec4 res = textureGatherOffset(arg_1_arg_2, vec3(arg_3, float(arg_4)), ivec2(0), 1);
+  ivec4 res = textureGatherOffset(arg_1_arg_2, vec3(arg_3, float(arg_4)), ivec2(1), 1);
 }
 
 vec4 vertex_main() {
@@ -27,9 +27,9 @@
 uniform highp isampler2DArray arg_1_arg_2;
 
 void textureGather_bd33b6() {
-  vec2 arg_3 = vec2(0.0f);
+  vec2 arg_3 = vec2(1.0f);
   uint arg_4 = 1u;
-  ivec4 res = textureGatherOffset(arg_1_arg_2, vec3(arg_3, float(arg_4)), ivec2(0), 1);
+  ivec4 res = textureGatherOffset(arg_1_arg_2, vec3(arg_3, float(arg_4)), ivec2(1), 1);
 }
 
 void fragment_main() {
@@ -45,9 +45,9 @@
 uniform highp isampler2DArray arg_1_arg_2;
 
 void textureGather_bd33b6() {
-  vec2 arg_3 = vec2(0.0f);
+  vec2 arg_3 = vec2(1.0f);
   uint arg_4 = 1u;
-  ivec4 res = textureGatherOffset(arg_1_arg_2, vec3(arg_3, float(arg_4)), ivec2(0), 1);
+  ivec4 res = textureGatherOffset(arg_1_arg_2, vec3(arg_3, float(arg_4)), ivec2(1), 1);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/var/textureGather/bd33b6.wgsl.expected.msl b/test/tint/builtins/gen/var/textureGather/bd33b6.wgsl.expected.msl
index 7453f31..becd9cb 100644
--- a/test/tint/builtins/gen/var/textureGather/bd33b6.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureGather/bd33b6.wgsl.expected.msl
@@ -2,9 +2,9 @@
 
 using namespace metal;
 void textureGather_bd33b6(texture2d_array<int, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float2 arg_3 = float2(0.0f);
+  float2 arg_3 = float2(1.0f);
   uint arg_4 = 1u;
-  int4 res = tint_symbol_1.gather(tint_symbol_2, arg_3, arg_4, int2(0), component::y);
+  int4 res = tint_symbol_1.gather(tint_symbol_2, arg_3, arg_4, int2(1), component::y);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/textureGather/bd33b6.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureGather/bd33b6.wgsl.expected.spvasm
index 53a9d99..985c152 100644
--- a/test/tint/builtins/gen/var/textureGather/bd33b6.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureGather/bd33b6.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 62
+; Bound: 63
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -46,61 +46,62 @@
        %void = OpTypeVoid
          %16 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
-         %21 = OpConstantNull %v2float
+    %float_1 = OpConstant %float 1
+         %22 = OpConstantComposite %v2float %float_1 %float_1
 %_ptr_Function_v2float = OpTypePointer Function %v2float
+         %25 = OpConstantNull %v2float
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %28 = OpConstantNull %uint
+         %30 = OpConstantNull %uint
       %v4int = OpTypeVector %int 4
-         %33 = OpTypeSampledImage %11
+         %35 = OpTypeSampledImage %11
     %v3float = OpTypeVector %float 3
       %int_1 = OpConstant %int 1
       %v2int = OpTypeVector %int 2
-         %44 = OpConstantNull %v2int
+         %46 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %47 = OpConstantNull %v4int
-         %48 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %49 = OpConstantNull %v4int
+         %50 = OpTypeFunction %v4float
 %textureGather_bd33b6 = OpFunction %void None %16
          %19 = OpLabel
-      %arg_3 = OpVariable %_ptr_Function_v2float Function %21
-      %arg_4 = OpVariable %_ptr_Function_uint Function %28
-        %res = OpVariable %_ptr_Function_v4int Function %47
-               OpStore %arg_3 %21
+      %arg_3 = OpVariable %_ptr_Function_v2float Function %25
+      %arg_4 = OpVariable %_ptr_Function_uint Function %30
+        %res = OpVariable %_ptr_Function_v4int Function %49
+               OpStore %arg_3 %22
                OpStore %arg_4 %uint_1
-         %31 = OpLoad %15 %arg_2
-         %32 = OpLoad %11 %arg_1
-         %34 = OpSampledImage %33 %32 %31
-         %36 = OpLoad %v2float %arg_3
-         %37 = OpCompositeExtract %float %36 0
-         %38 = OpCompositeExtract %float %36 1
-         %40 = OpLoad %uint %arg_4
-         %39 = OpConvertUToF %float %40
-         %41 = OpCompositeConstruct %v3float %37 %38 %39
-         %29 = OpImageGather %v4int %34 %41 %int_1 ConstOffset %44
-               OpStore %res %29
+         %33 = OpLoad %15 %arg_2
+         %34 = OpLoad %11 %arg_1
+         %36 = OpSampledImage %35 %34 %33
+         %38 = OpLoad %v2float %arg_3
+         %39 = OpCompositeExtract %float %38 0
+         %40 = OpCompositeExtract %float %38 1
+         %42 = OpLoad %uint %arg_4
+         %41 = OpConvertUToF %float %42
+         %43 = OpCompositeConstruct %v3float %39 %40 %41
+         %31 = OpImageGather %v4int %36 %43 %int_1 ConstOffset %46
+               OpStore %res %31
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %48
-         %50 = OpLabel
-         %51 = OpFunctionCall %void %textureGather_bd33b6
+%vertex_main_inner = OpFunction %v4float None %50
+         %52 = OpLabel
+         %53 = OpFunctionCall %void %textureGather_bd33b6
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %16
-         %53 = OpLabel
-         %54 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %54
+         %55 = OpLabel
+         %56 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %56
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %16
-         %57 = OpLabel
-         %58 = OpFunctionCall %void %textureGather_bd33b6
+         %58 = OpLabel
+         %59 = OpFunctionCall %void %textureGather_bd33b6
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %16
-         %60 = OpLabel
-         %61 = OpFunctionCall %void %textureGather_bd33b6
+         %61 = OpLabel
+         %62 = OpFunctionCall %void %textureGather_bd33b6
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureGather/bd33b6.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureGather/bd33b6.wgsl.expected.wgsl
index e0a3f4d..9e313ac 100644
--- a/test/tint/builtins/gen/var/textureGather/bd33b6.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/bd33b6.wgsl.expected.wgsl
@@ -4,9 +4,9 @@
 
 fn textureGather_bd33b6() {
   const arg_0 = 1i;
-  var arg_3 = vec2<f32>();
+  var arg_3 = vec2<f32>(1.0f);
   var arg_4 = 1u;
-  const arg_5 = vec2<i32>();
+  const arg_5 = vec2<i32>(1i);
   var res : vec4<i32> = textureGather(arg_0, arg_1, arg_2, arg_3, arg_4, arg_5);
 }
 
diff --git a/test/tint/builtins/gen/var/textureGather/be276f.wgsl b/test/tint/builtins/gen/var/textureGather/be276f.wgsl
index 9823061..c370be7 100644
--- a/test/tint/builtins/gen/var/textureGather/be276f.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/be276f.wgsl
@@ -26,7 +26,7 @@
 // fn textureGather(@const component: i32, texture: texture_cube_array<u32>, sampler: sampler, coords: vec3<f32>, array_index: u32) -> vec4<u32>
 fn textureGather_be276f() {
   const arg_0 = 1i;
-  var arg_3 = vec3<f32>();
+  var arg_3 = vec3<f32>(1.f);
   var arg_4 = 1u;
   var res: vec4<u32> = textureGather(arg_0, arg_1, arg_2, arg_3, arg_4);
 }
diff --git a/test/tint/builtins/gen/var/textureGather/be276f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/be276f.wgsl.expected.dxc.hlsl
index 076da2b..a14fbfd 100644
--- a/test/tint/builtins/gen/var/textureGather/be276f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/be276f.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_be276f() {
-  float3 arg_3 = (0.0f).xxx;
+  float3 arg_3 = (1.0f).xxx;
   uint arg_4 = 1u;
   uint4 res = arg_1.GatherGreen(arg_2, float4(arg_3, float(arg_4)));
 }
diff --git a/test/tint/builtins/gen/var/textureGather/be276f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/be276f.wgsl.expected.fxc.hlsl
index 076da2b..a14fbfd 100644
--- a/test/tint/builtins/gen/var/textureGather/be276f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/be276f.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_be276f() {
-  float3 arg_3 = (0.0f).xxx;
+  float3 arg_3 = (1.0f).xxx;
   uint arg_4 = 1u;
   uint4 res = arg_1.GatherGreen(arg_2, float4(arg_3, float(arg_4)));
 }
diff --git a/test/tint/builtins/gen/var/textureGather/be276f.wgsl.expected.msl b/test/tint/builtins/gen/var/textureGather/be276f.wgsl.expected.msl
index 537029e..0642518 100644
--- a/test/tint/builtins/gen/var/textureGather/be276f.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureGather/be276f.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureGather_be276f(texturecube_array<uint, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float3 arg_3 = float3(0.0f);
+  float3 arg_3 = float3(1.0f);
   uint arg_4 = 1u;
   uint4 res = tint_symbol_1.gather(tint_symbol_2, arg_3, arg_4, component::y);
 }
diff --git a/test/tint/builtins/gen/var/textureGather/be276f.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureGather/be276f.wgsl.expected.spvasm
index 10fb0ee..e16c672 100644
--- a/test/tint/builtins/gen/var/textureGather/be276f.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureGather/be276f.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 60
+; Bound: 61
 ; Schema: 0
                OpCapability Shader
                OpCapability SampledCubeArray
@@ -47,59 +47,60 @@
        %void = OpTypeVoid
          %16 = OpTypeFunction %void
     %v3float = OpTypeVector %float 3
-         %21 = OpConstantNull %v3float
+    %float_1 = OpConstant %float 1
+         %22 = OpConstantComposite %v3float %float_1 %float_1 %float_1
 %_ptr_Function_v3float = OpTypePointer Function %v3float
+         %25 = OpConstantNull %v3float
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %27 = OpConstantNull %uint
+         %29 = OpConstantNull %uint
      %v4uint = OpTypeVector %uint 4
-         %32 = OpTypeSampledImage %11
+         %34 = OpTypeSampledImage %11
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %45 = OpConstantNull %v4uint
-         %46 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %47 = OpConstantNull %v4uint
+         %48 = OpTypeFunction %v4float
 %textureGather_be276f = OpFunction %void None %16
          %19 = OpLabel
-      %arg_3 = OpVariable %_ptr_Function_v3float Function %21
-      %arg_4 = OpVariable %_ptr_Function_uint Function %27
-        %res = OpVariable %_ptr_Function_v4uint Function %45
-               OpStore %arg_3 %21
+      %arg_3 = OpVariable %_ptr_Function_v3float Function %25
+      %arg_4 = OpVariable %_ptr_Function_uint Function %29
+        %res = OpVariable %_ptr_Function_v4uint Function %47
+               OpStore %arg_3 %22
                OpStore %arg_4 %uint_1
-         %30 = OpLoad %15 %arg_2
-         %31 = OpLoad %11 %arg_1
-         %33 = OpSampledImage %32 %31 %30
-         %34 = OpLoad %v3float %arg_3
-         %35 = OpCompositeExtract %float %34 0
-         %36 = OpCompositeExtract %float %34 1
-         %37 = OpCompositeExtract %float %34 2
-         %39 = OpLoad %uint %arg_4
-         %38 = OpConvertUToF %float %39
-         %40 = OpCompositeConstruct %v4float %35 %36 %37 %38
-         %28 = OpImageGather %v4uint %33 %40 %int_1
-               OpStore %res %28
+         %32 = OpLoad %15 %arg_2
+         %33 = OpLoad %11 %arg_1
+         %35 = OpSampledImage %34 %33 %32
+         %36 = OpLoad %v3float %arg_3
+         %37 = OpCompositeExtract %float %36 0
+         %38 = OpCompositeExtract %float %36 1
+         %39 = OpCompositeExtract %float %36 2
+         %41 = OpLoad %uint %arg_4
+         %40 = OpConvertUToF %float %41
+         %42 = OpCompositeConstruct %v4float %37 %38 %39 %40
+         %30 = OpImageGather %v4uint %35 %42 %int_1
+               OpStore %res %30
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %46
-         %48 = OpLabel
-         %49 = OpFunctionCall %void %textureGather_be276f
+%vertex_main_inner = OpFunction %v4float None %48
+         %50 = OpLabel
+         %51 = OpFunctionCall %void %textureGather_be276f
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %16
-         %51 = OpLabel
-         %52 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %52
+         %53 = OpLabel
+         %54 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %54
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %16
-         %55 = OpLabel
-         %56 = OpFunctionCall %void %textureGather_be276f
+         %56 = OpLabel
+         %57 = OpFunctionCall %void %textureGather_be276f
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %16
-         %58 = OpLabel
-         %59 = OpFunctionCall %void %textureGather_be276f
+         %59 = OpLabel
+         %60 = OpFunctionCall %void %textureGather_be276f
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureGather/be276f.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureGather/be276f.wgsl.expected.wgsl
index ba4234a..91f83dd 100644
--- a/test/tint/builtins/gen/var/textureGather/be276f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/be276f.wgsl.expected.wgsl
@@ -4,7 +4,7 @@
 
 fn textureGather_be276f() {
   const arg_0 = 1i;
-  var arg_3 = vec3<f32>();
+  var arg_3 = vec3<f32>(1.0f);
   var arg_4 = 1u;
   var res : vec4<u32> = textureGather(arg_0, arg_1, arg_2, arg_3, arg_4);
 }
diff --git a/test/tint/builtins/gen/var/textureGather/c0640c.wgsl b/test/tint/builtins/gen/var/textureGather/c0640c.wgsl
index 4cf7792..4c2d2b2 100644
--- a/test/tint/builtins/gen/var/textureGather/c0640c.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/c0640c.wgsl
@@ -26,7 +26,7 @@
 // fn textureGather(@const component: i32, texture: texture_cube_array<i32>, sampler: sampler, coords: vec3<f32>, array_index: i32) -> vec4<i32>
 fn textureGather_c0640c() {
   const arg_0 = 1i;
-  var arg_3 = vec3<f32>();
+  var arg_3 = vec3<f32>(1.f);
   var arg_4 = 1i;
   var res: vec4<i32> = textureGather(arg_0, arg_1, arg_2, arg_3, arg_4);
 }
diff --git a/test/tint/builtins/gen/var/textureGather/c0640c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/c0640c.wgsl.expected.dxc.hlsl
index 76b208b..74d182b 100644
--- a/test/tint/builtins/gen/var/textureGather/c0640c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/c0640c.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_c0640c() {
-  float3 arg_3 = (0.0f).xxx;
+  float3 arg_3 = (1.0f).xxx;
   int arg_4 = 1;
   int4 res = arg_1.GatherGreen(arg_2, float4(arg_3, float(arg_4)));
 }
diff --git a/test/tint/builtins/gen/var/textureGather/c0640c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/c0640c.wgsl.expected.fxc.hlsl
index 76b208b..74d182b 100644
--- a/test/tint/builtins/gen/var/textureGather/c0640c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/c0640c.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_c0640c() {
-  float3 arg_3 = (0.0f).xxx;
+  float3 arg_3 = (1.0f).xxx;
   int arg_4 = 1;
   int4 res = arg_1.GatherGreen(arg_2, float4(arg_3, float(arg_4)));
 }
diff --git a/test/tint/builtins/gen/var/textureGather/c0640c.wgsl.expected.msl b/test/tint/builtins/gen/var/textureGather/c0640c.wgsl.expected.msl
index 9e5a33b..4514dbc 100644
--- a/test/tint/builtins/gen/var/textureGather/c0640c.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureGather/c0640c.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureGather_c0640c(texturecube_array<int, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float3 arg_3 = float3(0.0f);
+  float3 arg_3 = float3(1.0f);
   int arg_4 = 1;
   int4 res = tint_symbol_1.gather(tint_symbol_2, arg_3, arg_4, component::y);
 }
diff --git a/test/tint/builtins/gen/var/textureGather/c0640c.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureGather/c0640c.wgsl.expected.spvasm
index 1a0206b..a404b03 100644
--- a/test/tint/builtins/gen/var/textureGather/c0640c.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureGather/c0640c.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 58
+; Bound: 59
 ; Schema: 0
                OpCapability Shader
                OpCapability SampledCubeArray
@@ -47,57 +47,58 @@
        %void = OpTypeVoid
          %16 = OpTypeFunction %void
     %v3float = OpTypeVector %float 3
-         %21 = OpConstantNull %v3float
+    %float_1 = OpConstant %float 1
+         %22 = OpConstantComposite %v3float %float_1 %float_1 %float_1
 %_ptr_Function_v3float = OpTypePointer Function %v3float
+         %25 = OpConstantNull %v3float
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
-         %27 = OpConstantNull %int
+         %29 = OpConstantNull %int
       %v4int = OpTypeVector %int 4
-         %32 = OpTypeSampledImage %11
+         %34 = OpTypeSampledImage %11
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %43 = OpConstantNull %v4int
-         %44 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %45 = OpConstantNull %v4int
+         %46 = OpTypeFunction %v4float
 %textureGather_c0640c = OpFunction %void None %16
          %19 = OpLabel
-      %arg_3 = OpVariable %_ptr_Function_v3float Function %21
-      %arg_4 = OpVariable %_ptr_Function_int Function %27
-        %res = OpVariable %_ptr_Function_v4int Function %43
-               OpStore %arg_3 %21
+      %arg_3 = OpVariable %_ptr_Function_v3float Function %25
+      %arg_4 = OpVariable %_ptr_Function_int Function %29
+        %res = OpVariable %_ptr_Function_v4int Function %45
+               OpStore %arg_3 %22
                OpStore %arg_4 %int_1
-         %30 = OpLoad %15 %arg_2
-         %31 = OpLoad %11 %arg_1
-         %33 = OpSampledImage %32 %31 %30
-         %34 = OpLoad %v3float %arg_3
-         %35 = OpCompositeExtract %float %34 0
-         %36 = OpCompositeExtract %float %34 1
-         %37 = OpCompositeExtract %float %34 2
-         %39 = OpLoad %int %arg_4
-         %38 = OpConvertSToF %float %39
-         %40 = OpCompositeConstruct %v4float %35 %36 %37 %38
-         %28 = OpImageGather %v4int %33 %40 %int_1
-               OpStore %res %28
+         %32 = OpLoad %15 %arg_2
+         %33 = OpLoad %11 %arg_1
+         %35 = OpSampledImage %34 %33 %32
+         %36 = OpLoad %v3float %arg_3
+         %37 = OpCompositeExtract %float %36 0
+         %38 = OpCompositeExtract %float %36 1
+         %39 = OpCompositeExtract %float %36 2
+         %41 = OpLoad %int %arg_4
+         %40 = OpConvertSToF %float %41
+         %42 = OpCompositeConstruct %v4float %37 %38 %39 %40
+         %30 = OpImageGather %v4int %35 %42 %int_1
+               OpStore %res %30
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %44
-         %46 = OpLabel
-         %47 = OpFunctionCall %void %textureGather_c0640c
+%vertex_main_inner = OpFunction %v4float None %46
+         %48 = OpLabel
+         %49 = OpFunctionCall %void %textureGather_c0640c
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %16
-         %49 = OpLabel
-         %50 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %50
+         %51 = OpLabel
+         %52 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %52
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %16
-         %53 = OpLabel
-         %54 = OpFunctionCall %void %textureGather_c0640c
+         %54 = OpLabel
+         %55 = OpFunctionCall %void %textureGather_c0640c
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %16
-         %56 = OpLabel
-         %57 = OpFunctionCall %void %textureGather_c0640c
+         %57 = OpLabel
+         %58 = OpFunctionCall %void %textureGather_c0640c
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureGather/c0640c.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureGather/c0640c.wgsl.expected.wgsl
index eae1f9a..3372a4d 100644
--- a/test/tint/builtins/gen/var/textureGather/c0640c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/c0640c.wgsl.expected.wgsl
@@ -4,7 +4,7 @@
 
 fn textureGather_c0640c() {
   const arg_0 = 1i;
-  var arg_3 = vec3<f32>();
+  var arg_3 = vec3<f32>(1.0f);
   var arg_4 = 1i;
   var res : vec4<i32> = textureGather(arg_0, arg_1, arg_2, arg_3, arg_4);
 }
diff --git a/test/tint/builtins/gen/var/textureGather/ccadde.wgsl b/test/tint/builtins/gen/var/textureGather/ccadde.wgsl
index d841c27..4a66e72 100644
--- a/test/tint/builtins/gen/var/textureGather/ccadde.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/ccadde.wgsl
@@ -26,7 +26,7 @@
 // fn textureGather(@const component: u32, texture: texture_2d<i32>, sampler: sampler, coords: vec2<f32>) -> vec4<i32>
 fn textureGather_ccadde() {
   const arg_0 = 1u;
-  var arg_3 = vec2<f32>();
+  var arg_3 = vec2<f32>(1.f);
   var res: vec4<i32> = textureGather(arg_0, arg_1, arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureGather/ccadde.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/ccadde.wgsl.expected.dxc.hlsl
index 1b760a5..48f27de 100644
--- a/test/tint/builtins/gen/var/textureGather/ccadde.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/ccadde.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_ccadde() {
-  float2 arg_3 = (0.0f).xx;
+  float2 arg_3 = (1.0f).xx;
   int4 res = arg_1.GatherGreen(arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureGather/ccadde.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/ccadde.wgsl.expected.fxc.hlsl
index 1b760a5..48f27de 100644
--- a/test/tint/builtins/gen/var/textureGather/ccadde.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/ccadde.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_ccadde() {
-  float2 arg_3 = (0.0f).xx;
+  float2 arg_3 = (1.0f).xx;
   int4 res = arg_1.GatherGreen(arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureGather/ccadde.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureGather/ccadde.wgsl.expected.glsl
index 5268f1f..d2d56a9 100644
--- a/test/tint/builtins/gen/var/textureGather/ccadde.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureGather/ccadde.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 uniform highp isampler2D arg_1_arg_2;
 
 void textureGather_ccadde() {
-  vec2 arg_3 = vec2(0.0f);
+  vec2 arg_3 = vec2(1.0f);
   ivec4 res = textureGather(arg_1_arg_2, arg_3, int(1u));
 }
 
@@ -26,7 +26,7 @@
 uniform highp isampler2D arg_1_arg_2;
 
 void textureGather_ccadde() {
-  vec2 arg_3 = vec2(0.0f);
+  vec2 arg_3 = vec2(1.0f);
   ivec4 res = textureGather(arg_1_arg_2, arg_3, int(1u));
 }
 
@@ -43,7 +43,7 @@
 uniform highp isampler2D arg_1_arg_2;
 
 void textureGather_ccadde() {
-  vec2 arg_3 = vec2(0.0f);
+  vec2 arg_3 = vec2(1.0f);
   ivec4 res = textureGather(arg_1_arg_2, arg_3, int(1u));
 }
 
diff --git a/test/tint/builtins/gen/var/textureGather/ccadde.wgsl.expected.msl b/test/tint/builtins/gen/var/textureGather/ccadde.wgsl.expected.msl
index 47a6567..6b81fe0 100644
--- a/test/tint/builtins/gen/var/textureGather/ccadde.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureGather/ccadde.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureGather_ccadde(texture2d<int, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float2 arg_3 = float2(0.0f);
+  float2 arg_3 = float2(1.0f);
   int4 res = tint_symbol_1.gather(tint_symbol_2, arg_3, int2(0), component::y);
 }
 
diff --git a/test/tint/builtins/gen/var/textureGather/ccadde.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureGather/ccadde.wgsl.expected.spvasm
index e8acb0b..55ebe0d 100644
--- a/test/tint/builtins/gen/var/textureGather/ccadde.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureGather/ccadde.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 50
+; Bound: 51
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -45,48 +45,49 @@
        %void = OpTypeVoid
          %16 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
-         %21 = OpConstantNull %v2float
+    %float_1 = OpConstant %float 1
+         %22 = OpConstantComposite %v2float %float_1 %float_1
 %_ptr_Function_v2float = OpTypePointer Function %v2float
+         %25 = OpConstantNull %v2float
       %v4int = OpTypeVector %int 4
-         %28 = OpTypeSampledImage %11
+         %30 = OpTypeSampledImage %11
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %35 = OpConstantNull %v4int
-         %36 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %37 = OpConstantNull %v4int
+         %38 = OpTypeFunction %v4float
 %textureGather_ccadde = OpFunction %void None %16
          %19 = OpLabel
-      %arg_3 = OpVariable %_ptr_Function_v2float Function %21
-        %res = OpVariable %_ptr_Function_v4int Function %35
-               OpStore %arg_3 %21
-         %26 = OpLoad %15 %arg_2
-         %27 = OpLoad %11 %arg_1
-         %29 = OpSampledImage %28 %27 %26
-         %30 = OpLoad %v2float %arg_3
-         %24 = OpImageGather %v4int %29 %30 %uint_1
-               OpStore %res %24
+      %arg_3 = OpVariable %_ptr_Function_v2float Function %25
+        %res = OpVariable %_ptr_Function_v4int Function %37
+               OpStore %arg_3 %22
+         %28 = OpLoad %15 %arg_2
+         %29 = OpLoad %11 %arg_1
+         %31 = OpSampledImage %30 %29 %28
+         %32 = OpLoad %v2float %arg_3
+         %26 = OpImageGather %v4int %31 %32 %uint_1
+               OpStore %res %26
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %36
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureGather_ccadde
+%vertex_main_inner = OpFunction %v4float None %38
+         %40 = OpLabel
+         %41 = OpFunctionCall %void %textureGather_ccadde
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %16
-         %41 = OpLabel
-         %42 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %42
+         %43 = OpLabel
+         %44 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %44
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %16
-         %45 = OpLabel
-         %46 = OpFunctionCall %void %textureGather_ccadde
+         %46 = OpLabel
+         %47 = OpFunctionCall %void %textureGather_ccadde
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %16
-         %48 = OpLabel
-         %49 = OpFunctionCall %void %textureGather_ccadde
+         %49 = OpLabel
+         %50 = OpFunctionCall %void %textureGather_ccadde
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureGather/ccadde.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureGather/ccadde.wgsl.expected.wgsl
index 15cdbb4..509edb3 100644
--- a/test/tint/builtins/gen/var/textureGather/ccadde.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/ccadde.wgsl.expected.wgsl
@@ -4,7 +4,7 @@
 
 fn textureGather_ccadde() {
   const arg_0 = 1u;
-  var arg_3 = vec2<f32>();
+  var arg_3 = vec2<f32>(1.0f);
   var res : vec4<i32> = textureGather(arg_0, arg_1, arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureGather/ce5578.wgsl b/test/tint/builtins/gen/var/textureGather/ce5578.wgsl
index 156d1ec..e2d08b2 100644
--- a/test/tint/builtins/gen/var/textureGather/ce5578.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/ce5578.wgsl
@@ -26,9 +26,9 @@
 // fn textureGather(@const component: i32, texture: texture_2d_array<u32>, sampler: sampler, coords: vec2<f32>, array_index: u32, @const offset: vec2<i32>) -> vec4<u32>
 fn textureGather_ce5578() {
   const arg_0 = 1i;
-  var arg_3 = vec2<f32>();
+  var arg_3 = vec2<f32>(1.f);
   var arg_4 = 1u;
-  const arg_5 = vec2<i32>();
+  const arg_5 = vec2<i32>(1i);
   var res: vec4<u32> = textureGather(arg_0, arg_1, arg_2, arg_3, arg_4, arg_5);
 }
 
diff --git a/test/tint/builtins/gen/var/textureGather/ce5578.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/ce5578.wgsl.expected.dxc.hlsl
index 7df33ee..4ab074d 100644
--- a/test/tint/builtins/gen/var/textureGather/ce5578.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/ce5578.wgsl.expected.dxc.hlsl
@@ -2,9 +2,9 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_ce5578() {
-  float2 arg_3 = (0.0f).xx;
+  float2 arg_3 = (1.0f).xx;
   uint arg_4 = 1u;
-  uint4 res = arg_1.GatherGreen(arg_2, float3(arg_3, float(arg_4)), (0).xx);
+  uint4 res = arg_1.GatherGreen(arg_2, float3(arg_3, float(arg_4)), (1).xx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/textureGather/ce5578.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/ce5578.wgsl.expected.fxc.hlsl
index 7df33ee..4ab074d 100644
--- a/test/tint/builtins/gen/var/textureGather/ce5578.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/ce5578.wgsl.expected.fxc.hlsl
@@ -2,9 +2,9 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_ce5578() {
-  float2 arg_3 = (0.0f).xx;
+  float2 arg_3 = (1.0f).xx;
   uint arg_4 = 1u;
-  uint4 res = arg_1.GatherGreen(arg_2, float3(arg_3, float(arg_4)), (0).xx);
+  uint4 res = arg_1.GatherGreen(arg_2, float3(arg_3, float(arg_4)), (1).xx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/textureGather/ce5578.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureGather/ce5578.wgsl.expected.glsl
index a7825b7..360f4fb 100644
--- a/test/tint/builtins/gen/var/textureGather/ce5578.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureGather/ce5578.wgsl.expected.glsl
@@ -3,9 +3,9 @@
 uniform highp usampler2DArray arg_1_arg_2;
 
 void textureGather_ce5578() {
-  vec2 arg_3 = vec2(0.0f);
+  vec2 arg_3 = vec2(1.0f);
   uint arg_4 = 1u;
-  uvec4 res = textureGatherOffset(arg_1_arg_2, vec3(arg_3, float(arg_4)), ivec2(0), 1);
+  uvec4 res = textureGatherOffset(arg_1_arg_2, vec3(arg_3, float(arg_4)), ivec2(1), 1);
 }
 
 vec4 vertex_main() {
@@ -27,9 +27,9 @@
 uniform highp usampler2DArray arg_1_arg_2;
 
 void textureGather_ce5578() {
-  vec2 arg_3 = vec2(0.0f);
+  vec2 arg_3 = vec2(1.0f);
   uint arg_4 = 1u;
-  uvec4 res = textureGatherOffset(arg_1_arg_2, vec3(arg_3, float(arg_4)), ivec2(0), 1);
+  uvec4 res = textureGatherOffset(arg_1_arg_2, vec3(arg_3, float(arg_4)), ivec2(1), 1);
 }
 
 void fragment_main() {
@@ -45,9 +45,9 @@
 uniform highp usampler2DArray arg_1_arg_2;
 
 void textureGather_ce5578() {
-  vec2 arg_3 = vec2(0.0f);
+  vec2 arg_3 = vec2(1.0f);
   uint arg_4 = 1u;
-  uvec4 res = textureGatherOffset(arg_1_arg_2, vec3(arg_3, float(arg_4)), ivec2(0), 1);
+  uvec4 res = textureGatherOffset(arg_1_arg_2, vec3(arg_3, float(arg_4)), ivec2(1), 1);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/var/textureGather/ce5578.wgsl.expected.msl b/test/tint/builtins/gen/var/textureGather/ce5578.wgsl.expected.msl
index 14a5c03..b2f8c74 100644
--- a/test/tint/builtins/gen/var/textureGather/ce5578.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureGather/ce5578.wgsl.expected.msl
@@ -2,9 +2,9 @@
 
 using namespace metal;
 void textureGather_ce5578(texture2d_array<uint, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float2 arg_3 = float2(0.0f);
+  float2 arg_3 = float2(1.0f);
   uint arg_4 = 1u;
-  uint4 res = tint_symbol_1.gather(tint_symbol_2, arg_3, arg_4, int2(0), component::y);
+  uint4 res = tint_symbol_1.gather(tint_symbol_2, arg_3, arg_4, int2(1), component::y);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/textureGather/ce5578.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureGather/ce5578.wgsl.expected.spvasm
index aec41cc..4bfdca5 100644
--- a/test/tint/builtins/gen/var/textureGather/ce5578.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureGather/ce5578.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 62
+; Bound: 63
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -46,61 +46,62 @@
        %void = OpTypeVoid
          %16 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
-         %21 = OpConstantNull %v2float
+    %float_1 = OpConstant %float 1
+         %22 = OpConstantComposite %v2float %float_1 %float_1
 %_ptr_Function_v2float = OpTypePointer Function %v2float
+         %25 = OpConstantNull %v2float
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %27 = OpConstantNull %uint
+         %29 = OpConstantNull %uint
      %v4uint = OpTypeVector %uint 4
-         %32 = OpTypeSampledImage %11
+         %34 = OpTypeSampledImage %11
     %v3float = OpTypeVector %float 3
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
       %v2int = OpTypeVector %int 2
-         %44 = OpConstantNull %v2int
+         %46 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %47 = OpConstantNull %v4uint
-         %48 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %49 = OpConstantNull %v4uint
+         %50 = OpTypeFunction %v4float
 %textureGather_ce5578 = OpFunction %void None %16
          %19 = OpLabel
-      %arg_3 = OpVariable %_ptr_Function_v2float Function %21
-      %arg_4 = OpVariable %_ptr_Function_uint Function %27
-        %res = OpVariable %_ptr_Function_v4uint Function %47
-               OpStore %arg_3 %21
+      %arg_3 = OpVariable %_ptr_Function_v2float Function %25
+      %arg_4 = OpVariable %_ptr_Function_uint Function %29
+        %res = OpVariable %_ptr_Function_v4uint Function %49
+               OpStore %arg_3 %22
                OpStore %arg_4 %uint_1
-         %30 = OpLoad %15 %arg_2
-         %31 = OpLoad %11 %arg_1
-         %33 = OpSampledImage %32 %31 %30
-         %35 = OpLoad %v2float %arg_3
-         %36 = OpCompositeExtract %float %35 0
-         %37 = OpCompositeExtract %float %35 1
-         %39 = OpLoad %uint %arg_4
-         %38 = OpConvertUToF %float %39
-         %40 = OpCompositeConstruct %v3float %36 %37 %38
-         %28 = OpImageGather %v4uint %33 %40 %int_1 ConstOffset %44
-               OpStore %res %28
+         %32 = OpLoad %15 %arg_2
+         %33 = OpLoad %11 %arg_1
+         %35 = OpSampledImage %34 %33 %32
+         %37 = OpLoad %v2float %arg_3
+         %38 = OpCompositeExtract %float %37 0
+         %39 = OpCompositeExtract %float %37 1
+         %41 = OpLoad %uint %arg_4
+         %40 = OpConvertUToF %float %41
+         %42 = OpCompositeConstruct %v3float %38 %39 %40
+         %30 = OpImageGather %v4uint %35 %42 %int_1 ConstOffset %46
+               OpStore %res %30
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %48
-         %50 = OpLabel
-         %51 = OpFunctionCall %void %textureGather_ce5578
+%vertex_main_inner = OpFunction %v4float None %50
+         %52 = OpLabel
+         %53 = OpFunctionCall %void %textureGather_ce5578
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %16
-         %53 = OpLabel
-         %54 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %54
+         %55 = OpLabel
+         %56 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %56
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %16
-         %57 = OpLabel
-         %58 = OpFunctionCall %void %textureGather_ce5578
+         %58 = OpLabel
+         %59 = OpFunctionCall %void %textureGather_ce5578
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %16
-         %60 = OpLabel
-         %61 = OpFunctionCall %void %textureGather_ce5578
+         %61 = OpLabel
+         %62 = OpFunctionCall %void %textureGather_ce5578
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureGather/ce5578.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureGather/ce5578.wgsl.expected.wgsl
index f936734..27f3c1c 100644
--- a/test/tint/builtins/gen/var/textureGather/ce5578.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/ce5578.wgsl.expected.wgsl
@@ -4,9 +4,9 @@
 
 fn textureGather_ce5578() {
   const arg_0 = 1i;
-  var arg_3 = vec2<f32>();
+  var arg_3 = vec2<f32>(1.0f);
   var arg_4 = 1u;
-  const arg_5 = vec2<i32>();
+  const arg_5 = vec2<i32>(1i);
   var res : vec4<u32> = textureGather(arg_0, arg_1, arg_2, arg_3, arg_4, arg_5);
 }
 
diff --git a/test/tint/builtins/gen/var/textureGather/cf9112.wgsl b/test/tint/builtins/gen/var/textureGather/cf9112.wgsl
index bd3e4df..4c0baaf 100644
--- a/test/tint/builtins/gen/var/textureGather/cf9112.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/cf9112.wgsl
@@ -26,9 +26,9 @@
 // fn textureGather(@const component: u32, texture: texture_2d_array<i32>, sampler: sampler, coords: vec2<f32>, array_index: u32, @const offset: vec2<i32>) -> vec4<i32>
 fn textureGather_cf9112() {
   const arg_0 = 1u;
-  var arg_3 = vec2<f32>();
+  var arg_3 = vec2<f32>(1.f);
   var arg_4 = 1u;
-  const arg_5 = vec2<i32>();
+  const arg_5 = vec2<i32>(1i);
   var res: vec4<i32> = textureGather(arg_0, arg_1, arg_2, arg_3, arg_4, arg_5);
 }
 
diff --git a/test/tint/builtins/gen/var/textureGather/cf9112.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/cf9112.wgsl.expected.dxc.hlsl
index cefff93..59c08dc 100644
--- a/test/tint/builtins/gen/var/textureGather/cf9112.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/cf9112.wgsl.expected.dxc.hlsl
@@ -2,9 +2,9 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_cf9112() {
-  float2 arg_3 = (0.0f).xx;
+  float2 arg_3 = (1.0f).xx;
   uint arg_4 = 1u;
-  int4 res = arg_1.GatherGreen(arg_2, float3(arg_3, float(arg_4)), (0).xx);
+  int4 res = arg_1.GatherGreen(arg_2, float3(arg_3, float(arg_4)), (1).xx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/textureGather/cf9112.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/cf9112.wgsl.expected.fxc.hlsl
index cefff93..59c08dc 100644
--- a/test/tint/builtins/gen/var/textureGather/cf9112.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/cf9112.wgsl.expected.fxc.hlsl
@@ -2,9 +2,9 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_cf9112() {
-  float2 arg_3 = (0.0f).xx;
+  float2 arg_3 = (1.0f).xx;
   uint arg_4 = 1u;
-  int4 res = arg_1.GatherGreen(arg_2, float3(arg_3, float(arg_4)), (0).xx);
+  int4 res = arg_1.GatherGreen(arg_2, float3(arg_3, float(arg_4)), (1).xx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/textureGather/cf9112.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureGather/cf9112.wgsl.expected.glsl
index 60d154e..71a71e0 100644
--- a/test/tint/builtins/gen/var/textureGather/cf9112.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureGather/cf9112.wgsl.expected.glsl
@@ -3,9 +3,9 @@
 uniform highp isampler2DArray arg_1_arg_2;
 
 void textureGather_cf9112() {
-  vec2 arg_3 = vec2(0.0f);
+  vec2 arg_3 = vec2(1.0f);
   uint arg_4 = 1u;
-  ivec4 res = textureGatherOffset(arg_1_arg_2, vec3(arg_3, float(arg_4)), ivec2(0), int(1u));
+  ivec4 res = textureGatherOffset(arg_1_arg_2, vec3(arg_3, float(arg_4)), ivec2(1), int(1u));
 }
 
 vec4 vertex_main() {
@@ -27,9 +27,9 @@
 uniform highp isampler2DArray arg_1_arg_2;
 
 void textureGather_cf9112() {
-  vec2 arg_3 = vec2(0.0f);
+  vec2 arg_3 = vec2(1.0f);
   uint arg_4 = 1u;
-  ivec4 res = textureGatherOffset(arg_1_arg_2, vec3(arg_3, float(arg_4)), ivec2(0), int(1u));
+  ivec4 res = textureGatherOffset(arg_1_arg_2, vec3(arg_3, float(arg_4)), ivec2(1), int(1u));
 }
 
 void fragment_main() {
@@ -45,9 +45,9 @@
 uniform highp isampler2DArray arg_1_arg_2;
 
 void textureGather_cf9112() {
-  vec2 arg_3 = vec2(0.0f);
+  vec2 arg_3 = vec2(1.0f);
   uint arg_4 = 1u;
-  ivec4 res = textureGatherOffset(arg_1_arg_2, vec3(arg_3, float(arg_4)), ivec2(0), int(1u));
+  ivec4 res = textureGatherOffset(arg_1_arg_2, vec3(arg_3, float(arg_4)), ivec2(1), int(1u));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/var/textureGather/cf9112.wgsl.expected.msl b/test/tint/builtins/gen/var/textureGather/cf9112.wgsl.expected.msl
index 0d762a7..36494a4 100644
--- a/test/tint/builtins/gen/var/textureGather/cf9112.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureGather/cf9112.wgsl.expected.msl
@@ -2,9 +2,9 @@
 
 using namespace metal;
 void textureGather_cf9112(texture2d_array<int, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float2 arg_3 = float2(0.0f);
+  float2 arg_3 = float2(1.0f);
   uint arg_4 = 1u;
-  int4 res = tint_symbol_1.gather(tint_symbol_2, arg_3, arg_4, int2(0), component::y);
+  int4 res = tint_symbol_1.gather(tint_symbol_2, arg_3, arg_4, int2(1), component::y);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/textureGather/cf9112.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureGather/cf9112.wgsl.expected.spvasm
index 05debe8..488b0e1 100644
--- a/test/tint/builtins/gen/var/textureGather/cf9112.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureGather/cf9112.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 61
+; Bound: 63
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -46,60 +46,62 @@
        %void = OpTypeVoid
          %16 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
-         %21 = OpConstantNull %v2float
+    %float_1 = OpConstant %float 1
+         %22 = OpConstantComposite %v2float %float_1 %float_1
 %_ptr_Function_v2float = OpTypePointer Function %v2float
+         %25 = OpConstantNull %v2float
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %28 = OpConstantNull %uint
+         %30 = OpConstantNull %uint
       %v4int = OpTypeVector %int 4
-         %33 = OpTypeSampledImage %11
+         %35 = OpTypeSampledImage %11
     %v3float = OpTypeVector %float 3
       %v2int = OpTypeVector %int 2
-         %43 = OpConstantNull %v2int
+      %int_1 = OpConstant %int 1
+         %46 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %46 = OpConstantNull %v4int
-         %47 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %49 = OpConstantNull %v4int
+         %50 = OpTypeFunction %v4float
 %textureGather_cf9112 = OpFunction %void None %16
          %19 = OpLabel
-      %arg_3 = OpVariable %_ptr_Function_v2float Function %21
-      %arg_4 = OpVariable %_ptr_Function_uint Function %28
-        %res = OpVariable %_ptr_Function_v4int Function %46
-               OpStore %arg_3 %21
+      %arg_3 = OpVariable %_ptr_Function_v2float Function %25
+      %arg_4 = OpVariable %_ptr_Function_uint Function %30
+        %res = OpVariable %_ptr_Function_v4int Function %49
+               OpStore %arg_3 %22
                OpStore %arg_4 %uint_1
-         %31 = OpLoad %15 %arg_2
-         %32 = OpLoad %11 %arg_1
-         %34 = OpSampledImage %33 %32 %31
-         %36 = OpLoad %v2float %arg_3
-         %37 = OpCompositeExtract %float %36 0
-         %38 = OpCompositeExtract %float %36 1
-         %40 = OpLoad %uint %arg_4
-         %39 = OpConvertUToF %float %40
-         %41 = OpCompositeConstruct %v3float %37 %38 %39
-         %29 = OpImageGather %v4int %34 %41 %uint_1 ConstOffset %43
-               OpStore %res %29
+         %33 = OpLoad %15 %arg_2
+         %34 = OpLoad %11 %arg_1
+         %36 = OpSampledImage %35 %34 %33
+         %38 = OpLoad %v2float %arg_3
+         %39 = OpCompositeExtract %float %38 0
+         %40 = OpCompositeExtract %float %38 1
+         %42 = OpLoad %uint %arg_4
+         %41 = OpConvertUToF %float %42
+         %43 = OpCompositeConstruct %v3float %39 %40 %41
+         %31 = OpImageGather %v4int %36 %43 %uint_1 ConstOffset %46
+               OpStore %res %31
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %47
-         %49 = OpLabel
-         %50 = OpFunctionCall %void %textureGather_cf9112
+%vertex_main_inner = OpFunction %v4float None %50
+         %52 = OpLabel
+         %53 = OpFunctionCall %void %textureGather_cf9112
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %16
-         %52 = OpLabel
-         %53 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %53
+         %55 = OpLabel
+         %56 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %56
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %16
-         %56 = OpLabel
-         %57 = OpFunctionCall %void %textureGather_cf9112
+         %58 = OpLabel
+         %59 = OpFunctionCall %void %textureGather_cf9112
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %16
-         %59 = OpLabel
-         %60 = OpFunctionCall %void %textureGather_cf9112
+         %61 = OpLabel
+         %62 = OpFunctionCall %void %textureGather_cf9112
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureGather/cf9112.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureGather/cf9112.wgsl.expected.wgsl
index ac3035b..2991409 100644
--- a/test/tint/builtins/gen/var/textureGather/cf9112.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/cf9112.wgsl.expected.wgsl
@@ -4,9 +4,9 @@
 
 fn textureGather_cf9112() {
   const arg_0 = 1u;
-  var arg_3 = vec2<f32>();
+  var arg_3 = vec2<f32>(1.0f);
   var arg_4 = 1u;
-  const arg_5 = vec2<i32>();
+  const arg_5 = vec2<i32>(1i);
   var res : vec4<i32> = textureGather(arg_0, arg_1, arg_2, arg_3, arg_4, arg_5);
 }
 
diff --git a/test/tint/builtins/gen/var/textureGather/d1f187.wgsl b/test/tint/builtins/gen/var/textureGather/d1f187.wgsl
index 81533b2..305f819 100644
--- a/test/tint/builtins/gen/var/textureGather/d1f187.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/d1f187.wgsl
@@ -26,9 +26,9 @@
 // fn textureGather(@const component: i32, texture: texture_2d_array<u32>, sampler: sampler, coords: vec2<f32>, array_index: i32, @const offset: vec2<i32>) -> vec4<u32>
 fn textureGather_d1f187() {
   const arg_0 = 1i;
-  var arg_3 = vec2<f32>();
+  var arg_3 = vec2<f32>(1.f);
   var arg_4 = 1i;
-  const arg_5 = vec2<i32>();
+  const arg_5 = vec2<i32>(1i);
   var res: vec4<u32> = textureGather(arg_0, arg_1, arg_2, arg_3, arg_4, arg_5);
 }
 
diff --git a/test/tint/builtins/gen/var/textureGather/d1f187.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/d1f187.wgsl.expected.dxc.hlsl
index 6fdf9e4..f7f3833 100644
--- a/test/tint/builtins/gen/var/textureGather/d1f187.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/d1f187.wgsl.expected.dxc.hlsl
@@ -2,9 +2,9 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_d1f187() {
-  float2 arg_3 = (0.0f).xx;
+  float2 arg_3 = (1.0f).xx;
   int arg_4 = 1;
-  uint4 res = arg_1.GatherGreen(arg_2, float3(arg_3, float(arg_4)), (0).xx);
+  uint4 res = arg_1.GatherGreen(arg_2, float3(arg_3, float(arg_4)), (1).xx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/textureGather/d1f187.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/d1f187.wgsl.expected.fxc.hlsl
index 6fdf9e4..f7f3833 100644
--- a/test/tint/builtins/gen/var/textureGather/d1f187.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/d1f187.wgsl.expected.fxc.hlsl
@@ -2,9 +2,9 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_d1f187() {
-  float2 arg_3 = (0.0f).xx;
+  float2 arg_3 = (1.0f).xx;
   int arg_4 = 1;
-  uint4 res = arg_1.GatherGreen(arg_2, float3(arg_3, float(arg_4)), (0).xx);
+  uint4 res = arg_1.GatherGreen(arg_2, float3(arg_3, float(arg_4)), (1).xx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/textureGather/d1f187.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureGather/d1f187.wgsl.expected.glsl
index cf015a2..2631480 100644
--- a/test/tint/builtins/gen/var/textureGather/d1f187.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureGather/d1f187.wgsl.expected.glsl
@@ -3,9 +3,9 @@
 uniform highp usampler2DArray arg_1_arg_2;
 
 void textureGather_d1f187() {
-  vec2 arg_3 = vec2(0.0f);
+  vec2 arg_3 = vec2(1.0f);
   int arg_4 = 1;
-  uvec4 res = textureGatherOffset(arg_1_arg_2, vec3(arg_3, float(arg_4)), ivec2(0), 1);
+  uvec4 res = textureGatherOffset(arg_1_arg_2, vec3(arg_3, float(arg_4)), ivec2(1), 1);
 }
 
 vec4 vertex_main() {
@@ -27,9 +27,9 @@
 uniform highp usampler2DArray arg_1_arg_2;
 
 void textureGather_d1f187() {
-  vec2 arg_3 = vec2(0.0f);
+  vec2 arg_3 = vec2(1.0f);
   int arg_4 = 1;
-  uvec4 res = textureGatherOffset(arg_1_arg_2, vec3(arg_3, float(arg_4)), ivec2(0), 1);
+  uvec4 res = textureGatherOffset(arg_1_arg_2, vec3(arg_3, float(arg_4)), ivec2(1), 1);
 }
 
 void fragment_main() {
@@ -45,9 +45,9 @@
 uniform highp usampler2DArray arg_1_arg_2;
 
 void textureGather_d1f187() {
-  vec2 arg_3 = vec2(0.0f);
+  vec2 arg_3 = vec2(1.0f);
   int arg_4 = 1;
-  uvec4 res = textureGatherOffset(arg_1_arg_2, vec3(arg_3, float(arg_4)), ivec2(0), 1);
+  uvec4 res = textureGatherOffset(arg_1_arg_2, vec3(arg_3, float(arg_4)), ivec2(1), 1);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/var/textureGather/d1f187.wgsl.expected.msl b/test/tint/builtins/gen/var/textureGather/d1f187.wgsl.expected.msl
index a2e3383..29eda44 100644
--- a/test/tint/builtins/gen/var/textureGather/d1f187.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureGather/d1f187.wgsl.expected.msl
@@ -2,9 +2,9 @@
 
 using namespace metal;
 void textureGather_d1f187(texture2d_array<uint, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float2 arg_3 = float2(0.0f);
+  float2 arg_3 = float2(1.0f);
   int arg_4 = 1;
-  uint4 res = tint_symbol_1.gather(tint_symbol_2, arg_3, arg_4, int2(0), component::y);
+  uint4 res = tint_symbol_1.gather(tint_symbol_2, arg_3, arg_4, int2(1), component::y);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/textureGather/d1f187.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureGather/d1f187.wgsl.expected.spvasm
index f88d541..fece5f4 100644
--- a/test/tint/builtins/gen/var/textureGather/d1f187.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureGather/d1f187.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 61
+; Bound: 62
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -46,60 +46,61 @@
        %void = OpTypeVoid
          %16 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
-         %21 = OpConstantNull %v2float
+    %float_1 = OpConstant %float 1
+         %22 = OpConstantComposite %v2float %float_1 %float_1
 %_ptr_Function_v2float = OpTypePointer Function %v2float
+         %25 = OpConstantNull %v2float
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
-         %28 = OpConstantNull %int
+         %30 = OpConstantNull %int
      %v4uint = OpTypeVector %uint 4
-         %33 = OpTypeSampledImage %11
+         %35 = OpTypeSampledImage %11
     %v3float = OpTypeVector %float 3
       %v2int = OpTypeVector %int 2
-         %43 = OpConstantNull %v2int
+         %45 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %46 = OpConstantNull %v4uint
-         %47 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %48 = OpConstantNull %v4uint
+         %49 = OpTypeFunction %v4float
 %textureGather_d1f187 = OpFunction %void None %16
          %19 = OpLabel
-      %arg_3 = OpVariable %_ptr_Function_v2float Function %21
-      %arg_4 = OpVariable %_ptr_Function_int Function %28
-        %res = OpVariable %_ptr_Function_v4uint Function %46
-               OpStore %arg_3 %21
+      %arg_3 = OpVariable %_ptr_Function_v2float Function %25
+      %arg_4 = OpVariable %_ptr_Function_int Function %30
+        %res = OpVariable %_ptr_Function_v4uint Function %48
+               OpStore %arg_3 %22
                OpStore %arg_4 %int_1
-         %31 = OpLoad %15 %arg_2
-         %32 = OpLoad %11 %arg_1
-         %34 = OpSampledImage %33 %32 %31
-         %36 = OpLoad %v2float %arg_3
-         %37 = OpCompositeExtract %float %36 0
-         %38 = OpCompositeExtract %float %36 1
-         %40 = OpLoad %int %arg_4
-         %39 = OpConvertSToF %float %40
-         %41 = OpCompositeConstruct %v3float %37 %38 %39
-         %29 = OpImageGather %v4uint %34 %41 %int_1 ConstOffset %43
-               OpStore %res %29
+         %33 = OpLoad %15 %arg_2
+         %34 = OpLoad %11 %arg_1
+         %36 = OpSampledImage %35 %34 %33
+         %38 = OpLoad %v2float %arg_3
+         %39 = OpCompositeExtract %float %38 0
+         %40 = OpCompositeExtract %float %38 1
+         %42 = OpLoad %int %arg_4
+         %41 = OpConvertSToF %float %42
+         %43 = OpCompositeConstruct %v3float %39 %40 %41
+         %31 = OpImageGather %v4uint %36 %43 %int_1 ConstOffset %45
+               OpStore %res %31
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %47
-         %49 = OpLabel
-         %50 = OpFunctionCall %void %textureGather_d1f187
+%vertex_main_inner = OpFunction %v4float None %49
+         %51 = OpLabel
+         %52 = OpFunctionCall %void %textureGather_d1f187
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %16
-         %52 = OpLabel
-         %53 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %53
+         %54 = OpLabel
+         %55 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %55
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %16
-         %56 = OpLabel
-         %57 = OpFunctionCall %void %textureGather_d1f187
+         %57 = OpLabel
+         %58 = OpFunctionCall %void %textureGather_d1f187
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %16
-         %59 = OpLabel
-         %60 = OpFunctionCall %void %textureGather_d1f187
+         %60 = OpLabel
+         %61 = OpFunctionCall %void %textureGather_d1f187
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureGather/d1f187.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureGather/d1f187.wgsl.expected.wgsl
index c7522da..f005403 100644
--- a/test/tint/builtins/gen/var/textureGather/d1f187.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/d1f187.wgsl.expected.wgsl
@@ -4,9 +4,9 @@
 
 fn textureGather_d1f187() {
   const arg_0 = 1i;
-  var arg_3 = vec2<f32>();
+  var arg_3 = vec2<f32>(1.0f);
   var arg_4 = 1i;
-  const arg_5 = vec2<i32>();
+  const arg_5 = vec2<i32>(1i);
   var res : vec4<u32> = textureGather(arg_0, arg_1, arg_2, arg_3, arg_4, arg_5);
 }
 
diff --git a/test/tint/builtins/gen/var/textureGather/d4b5c6.wgsl b/test/tint/builtins/gen/var/textureGather/d4b5c6.wgsl
index 25afe4a..bd6a182 100644
--- a/test/tint/builtins/gen/var/textureGather/d4b5c6.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/d4b5c6.wgsl
@@ -26,7 +26,7 @@
 // fn textureGather(@const component: u32, texture: texture_cube_array<u32>, sampler: sampler, coords: vec3<f32>, array_index: i32) -> vec4<u32>
 fn textureGather_d4b5c6() {
   const arg_0 = 1u;
-  var arg_3 = vec3<f32>();
+  var arg_3 = vec3<f32>(1.f);
   var arg_4 = 1i;
   var res: vec4<u32> = textureGather(arg_0, arg_1, arg_2, arg_3, arg_4);
 }
diff --git a/test/tint/builtins/gen/var/textureGather/d4b5c6.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/d4b5c6.wgsl.expected.dxc.hlsl
index f8af258..1790e9e 100644
--- a/test/tint/builtins/gen/var/textureGather/d4b5c6.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/d4b5c6.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_d4b5c6() {
-  float3 arg_3 = (0.0f).xxx;
+  float3 arg_3 = (1.0f).xxx;
   int arg_4 = 1;
   uint4 res = arg_1.GatherGreen(arg_2, float4(arg_3, float(arg_4)));
 }
diff --git a/test/tint/builtins/gen/var/textureGather/d4b5c6.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/d4b5c6.wgsl.expected.fxc.hlsl
index f8af258..1790e9e 100644
--- a/test/tint/builtins/gen/var/textureGather/d4b5c6.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/d4b5c6.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_d4b5c6() {
-  float3 arg_3 = (0.0f).xxx;
+  float3 arg_3 = (1.0f).xxx;
   int arg_4 = 1;
   uint4 res = arg_1.GatherGreen(arg_2, float4(arg_3, float(arg_4)));
 }
diff --git a/test/tint/builtins/gen/var/textureGather/d4b5c6.wgsl.expected.msl b/test/tint/builtins/gen/var/textureGather/d4b5c6.wgsl.expected.msl
index ad72e15..110ba98 100644
--- a/test/tint/builtins/gen/var/textureGather/d4b5c6.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureGather/d4b5c6.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureGather_d4b5c6(texturecube_array<uint, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float3 arg_3 = float3(0.0f);
+  float3 arg_3 = float3(1.0f);
   int arg_4 = 1;
   uint4 res = tint_symbol_1.gather(tint_symbol_2, arg_3, arg_4, component::y);
 }
diff --git a/test/tint/builtins/gen/var/textureGather/d4b5c6.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureGather/d4b5c6.wgsl.expected.spvasm
index 33772f0..2e65d3a 100644
--- a/test/tint/builtins/gen/var/textureGather/d4b5c6.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureGather/d4b5c6.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 60
+; Bound: 61
 ; Schema: 0
                OpCapability Shader
                OpCapability SampledCubeArray
@@ -47,59 +47,60 @@
        %void = OpTypeVoid
          %16 = OpTypeFunction %void
     %v3float = OpTypeVector %float 3
-         %21 = OpConstantNull %v3float
+    %float_1 = OpConstant %float 1
+         %22 = OpConstantComposite %v3float %float_1 %float_1 %float_1
 %_ptr_Function_v3float = OpTypePointer Function %v3float
+         %25 = OpConstantNull %v3float
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
-         %28 = OpConstantNull %int
+         %30 = OpConstantNull %int
      %v4uint = OpTypeVector %uint 4
-         %33 = OpTypeSampledImage %11
+         %35 = OpTypeSampledImage %11
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %45 = OpConstantNull %v4uint
-         %46 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %47 = OpConstantNull %v4uint
+         %48 = OpTypeFunction %v4float
 %textureGather_d4b5c6 = OpFunction %void None %16
          %19 = OpLabel
-      %arg_3 = OpVariable %_ptr_Function_v3float Function %21
-      %arg_4 = OpVariable %_ptr_Function_int Function %28
-        %res = OpVariable %_ptr_Function_v4uint Function %45
-               OpStore %arg_3 %21
+      %arg_3 = OpVariable %_ptr_Function_v3float Function %25
+      %arg_4 = OpVariable %_ptr_Function_int Function %30
+        %res = OpVariable %_ptr_Function_v4uint Function %47
+               OpStore %arg_3 %22
                OpStore %arg_4 %int_1
-         %31 = OpLoad %15 %arg_2
-         %32 = OpLoad %11 %arg_1
-         %34 = OpSampledImage %33 %32 %31
-         %35 = OpLoad %v3float %arg_3
-         %36 = OpCompositeExtract %float %35 0
-         %37 = OpCompositeExtract %float %35 1
-         %38 = OpCompositeExtract %float %35 2
-         %40 = OpLoad %int %arg_4
-         %39 = OpConvertSToF %float %40
-         %41 = OpCompositeConstruct %v4float %36 %37 %38 %39
-         %29 = OpImageGather %v4uint %34 %41 %uint_1
-               OpStore %res %29
+         %33 = OpLoad %15 %arg_2
+         %34 = OpLoad %11 %arg_1
+         %36 = OpSampledImage %35 %34 %33
+         %37 = OpLoad %v3float %arg_3
+         %38 = OpCompositeExtract %float %37 0
+         %39 = OpCompositeExtract %float %37 1
+         %40 = OpCompositeExtract %float %37 2
+         %42 = OpLoad %int %arg_4
+         %41 = OpConvertSToF %float %42
+         %43 = OpCompositeConstruct %v4float %38 %39 %40 %41
+         %31 = OpImageGather %v4uint %36 %43 %uint_1
+               OpStore %res %31
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %46
-         %48 = OpLabel
-         %49 = OpFunctionCall %void %textureGather_d4b5c6
+%vertex_main_inner = OpFunction %v4float None %48
+         %50 = OpLabel
+         %51 = OpFunctionCall %void %textureGather_d4b5c6
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %16
-         %51 = OpLabel
-         %52 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %52
+         %53 = OpLabel
+         %54 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %54
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %16
-         %55 = OpLabel
-         %56 = OpFunctionCall %void %textureGather_d4b5c6
+         %56 = OpLabel
+         %57 = OpFunctionCall %void %textureGather_d4b5c6
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %16
-         %58 = OpLabel
-         %59 = OpFunctionCall %void %textureGather_d4b5c6
+         %59 = OpLabel
+         %60 = OpFunctionCall %void %textureGather_d4b5c6
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureGather/d4b5c6.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureGather/d4b5c6.wgsl.expected.wgsl
index 9b394bb..573afe7 100644
--- a/test/tint/builtins/gen/var/textureGather/d4b5c6.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/d4b5c6.wgsl.expected.wgsl
@@ -4,7 +4,7 @@
 
 fn textureGather_d4b5c6() {
   const arg_0 = 1u;
-  var arg_3 = vec3<f32>();
+  var arg_3 = vec3<f32>(1.0f);
   var arg_4 = 1i;
   var res : vec4<u32> = textureGather(arg_0, arg_1, arg_2, arg_3, arg_4);
 }
diff --git a/test/tint/builtins/gen/var/textureGather/d6507c.wgsl b/test/tint/builtins/gen/var/textureGather/d6507c.wgsl
index 529a2b4..667dc52 100644
--- a/test/tint/builtins/gen/var/textureGather/d6507c.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/d6507c.wgsl
@@ -26,8 +26,8 @@
 // fn textureGather(@const component: u32, texture: texture_2d<f32>, sampler: sampler, coords: vec2<f32>, @const offset: vec2<i32>) -> vec4<f32>
 fn textureGather_d6507c() {
   const arg_0 = 1u;
-  var arg_3 = vec2<f32>();
-  const arg_4 = vec2<i32>();
+  var arg_3 = vec2<f32>(1.f);
+  const arg_4 = vec2<i32>(1i);
   var res: vec4<f32> = textureGather(arg_0, arg_1, arg_2, arg_3, arg_4);
 }
 
diff --git a/test/tint/builtins/gen/var/textureGather/d6507c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/d6507c.wgsl.expected.dxc.hlsl
index 158dc3c..7075df4 100644
--- a/test/tint/builtins/gen/var/textureGather/d6507c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/d6507c.wgsl.expected.dxc.hlsl
@@ -2,8 +2,8 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_d6507c() {
-  float2 arg_3 = (0.0f).xx;
-  float4 res = arg_1.GatherGreen(arg_2, arg_3, (0).xx);
+  float2 arg_3 = (1.0f).xx;
+  float4 res = arg_1.GatherGreen(arg_2, arg_3, (1).xx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/textureGather/d6507c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/d6507c.wgsl.expected.fxc.hlsl
index 158dc3c..7075df4 100644
--- a/test/tint/builtins/gen/var/textureGather/d6507c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/d6507c.wgsl.expected.fxc.hlsl
@@ -2,8 +2,8 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_d6507c() {
-  float2 arg_3 = (0.0f).xx;
-  float4 res = arg_1.GatherGreen(arg_2, arg_3, (0).xx);
+  float2 arg_3 = (1.0f).xx;
+  float4 res = arg_1.GatherGreen(arg_2, arg_3, (1).xx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/textureGather/d6507c.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureGather/d6507c.wgsl.expected.glsl
index 493bc74..4226409 100644
--- a/test/tint/builtins/gen/var/textureGather/d6507c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureGather/d6507c.wgsl.expected.glsl
@@ -3,8 +3,8 @@
 uniform highp sampler2D arg_1_arg_2;
 
 void textureGather_d6507c() {
-  vec2 arg_3 = vec2(0.0f);
-  vec4 res = textureGatherOffset(arg_1_arg_2, arg_3, ivec2(0), int(1u));
+  vec2 arg_3 = vec2(1.0f);
+  vec4 res = textureGatherOffset(arg_1_arg_2, arg_3, ivec2(1), int(1u));
 }
 
 vec4 vertex_main() {
@@ -26,8 +26,8 @@
 uniform highp sampler2D arg_1_arg_2;
 
 void textureGather_d6507c() {
-  vec2 arg_3 = vec2(0.0f);
-  vec4 res = textureGatherOffset(arg_1_arg_2, arg_3, ivec2(0), int(1u));
+  vec2 arg_3 = vec2(1.0f);
+  vec4 res = textureGatherOffset(arg_1_arg_2, arg_3, ivec2(1), int(1u));
 }
 
 void fragment_main() {
@@ -43,8 +43,8 @@
 uniform highp sampler2D arg_1_arg_2;
 
 void textureGather_d6507c() {
-  vec2 arg_3 = vec2(0.0f);
-  vec4 res = textureGatherOffset(arg_1_arg_2, arg_3, ivec2(0), int(1u));
+  vec2 arg_3 = vec2(1.0f);
+  vec4 res = textureGatherOffset(arg_1_arg_2, arg_3, ivec2(1), int(1u));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/var/textureGather/d6507c.wgsl.expected.msl b/test/tint/builtins/gen/var/textureGather/d6507c.wgsl.expected.msl
index 2a6abf0..c9b6de0 100644
--- a/test/tint/builtins/gen/var/textureGather/d6507c.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureGather/d6507c.wgsl.expected.msl
@@ -2,8 +2,8 @@
 
 using namespace metal;
 void textureGather_d6507c(texture2d<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float2 arg_3 = float2(0.0f);
-  float4 res = tint_symbol_1.gather(tint_symbol_2, arg_3, int2(0), component::y);
+  float2 arg_3 = float2(1.0f);
+  float4 res = tint_symbol_1.gather(tint_symbol_2, arg_3, int2(1), component::y);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/textureGather/d6507c.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureGather/d6507c.wgsl.expected.spvasm
index 6ea4db6..f73987d 100644
--- a/test/tint/builtins/gen/var/textureGather/d6507c.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureGather/d6507c.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 50
+; Bound: 52
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -44,49 +44,51 @@
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
-         %20 = OpConstantNull %v2float
+    %float_1 = OpConstant %float 1
+         %21 = OpConstantComposite %v2float %float_1 %float_1
 %_ptr_Function_v2float = OpTypePointer Function %v2float
-         %26 = OpTypeSampledImage %11
+         %24 = OpConstantNull %v2float
+         %28 = OpTypeSampledImage %11
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
-         %33 = OpConstantNull %v2int
+      %int_1 = OpConstant %int 1
+         %36 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %36 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %39 = OpTypeFunction %v4float
 %textureGather_d6507c = OpFunction %void None %15
          %18 = OpLabel
-      %arg_3 = OpVariable %_ptr_Function_v2float Function %20
+      %arg_3 = OpVariable %_ptr_Function_v2float Function %24
         %res = OpVariable %_ptr_Function_v4float Function %5
-               OpStore %arg_3 %20
-         %24 = OpLoad %14 %arg_2
-         %25 = OpLoad %11 %arg_1
-         %27 = OpSampledImage %26 %25 %24
-         %28 = OpLoad %v2float %arg_3
-         %23 = OpImageGather %v4float %27 %28 %uint_1 ConstOffset %33
-               OpStore %res %23
+               OpStore %arg_3 %21
+         %26 = OpLoad %14 %arg_2
+         %27 = OpLoad %11 %arg_1
+         %29 = OpSampledImage %28 %27 %26
+         %30 = OpLoad %v2float %arg_3
+         %25 = OpImageGather %v4float %29 %30 %uint_1 ConstOffset %36
+               OpStore %res %25
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %36
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureGather_d6507c
+%vertex_main_inner = OpFunction %v4float None %39
+         %41 = OpLabel
+         %42 = OpFunctionCall %void %textureGather_d6507c
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
-         %41 = OpLabel
-         %42 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %42
+         %44 = OpLabel
+         %45 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %45
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %15
-         %45 = OpLabel
-         %46 = OpFunctionCall %void %textureGather_d6507c
+         %47 = OpLabel
+         %48 = OpFunctionCall %void %textureGather_d6507c
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %15
-         %48 = OpLabel
-         %49 = OpFunctionCall %void %textureGather_d6507c
+         %50 = OpLabel
+         %51 = OpFunctionCall %void %textureGather_d6507c
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureGather/d6507c.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureGather/d6507c.wgsl.expected.wgsl
index 97e61e9..392cf96 100644
--- a/test/tint/builtins/gen/var/textureGather/d6507c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/d6507c.wgsl.expected.wgsl
@@ -4,8 +4,8 @@
 
 fn textureGather_d6507c() {
   const arg_0 = 1u;
-  var arg_3 = vec2<f32>();
-  const arg_4 = vec2<i32>();
+  var arg_3 = vec2<f32>(1.0f);
+  const arg_4 = vec2<i32>(1i);
   var res : vec4<f32> = textureGather(arg_0, arg_1, arg_2, arg_3, arg_4);
 }
 
diff --git a/test/tint/builtins/gen/var/textureGather/d8e958.wgsl b/test/tint/builtins/gen/var/textureGather/d8e958.wgsl
index c9d9eac..0908c1f 100644
--- a/test/tint/builtins/gen/var/textureGather/d8e958.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/d8e958.wgsl
@@ -26,7 +26,7 @@
 // fn textureGather(@const component: u32, texture: texture_2d<f32>, sampler: sampler, coords: vec2<f32>) -> vec4<f32>
 fn textureGather_d8e958() {
   const arg_0 = 1u;
-  var arg_3 = vec2<f32>();
+  var arg_3 = vec2<f32>(1.f);
   var res: vec4<f32> = textureGather(arg_0, arg_1, arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureGather/d8e958.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/d8e958.wgsl.expected.dxc.hlsl
index 03635a4..9160d0b 100644
--- a/test/tint/builtins/gen/var/textureGather/d8e958.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/d8e958.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_d8e958() {
-  float2 arg_3 = (0.0f).xx;
+  float2 arg_3 = (1.0f).xx;
   float4 res = arg_1.GatherGreen(arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureGather/d8e958.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/d8e958.wgsl.expected.fxc.hlsl
index 03635a4..9160d0b 100644
--- a/test/tint/builtins/gen/var/textureGather/d8e958.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/d8e958.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_d8e958() {
-  float2 arg_3 = (0.0f).xx;
+  float2 arg_3 = (1.0f).xx;
   float4 res = arg_1.GatherGreen(arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureGather/d8e958.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureGather/d8e958.wgsl.expected.glsl
index ec027e7..1cfc5db 100644
--- a/test/tint/builtins/gen/var/textureGather/d8e958.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureGather/d8e958.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 uniform highp sampler2D arg_1_arg_2;
 
 void textureGather_d8e958() {
-  vec2 arg_3 = vec2(0.0f);
+  vec2 arg_3 = vec2(1.0f);
   vec4 res = textureGather(arg_1_arg_2, arg_3, int(1u));
 }
 
@@ -26,7 +26,7 @@
 uniform highp sampler2D arg_1_arg_2;
 
 void textureGather_d8e958() {
-  vec2 arg_3 = vec2(0.0f);
+  vec2 arg_3 = vec2(1.0f);
   vec4 res = textureGather(arg_1_arg_2, arg_3, int(1u));
 }
 
@@ -43,7 +43,7 @@
 uniform highp sampler2D arg_1_arg_2;
 
 void textureGather_d8e958() {
-  vec2 arg_3 = vec2(0.0f);
+  vec2 arg_3 = vec2(1.0f);
   vec4 res = textureGather(arg_1_arg_2, arg_3, int(1u));
 }
 
diff --git a/test/tint/builtins/gen/var/textureGather/d8e958.wgsl.expected.msl b/test/tint/builtins/gen/var/textureGather/d8e958.wgsl.expected.msl
index 0cf129f..463582b 100644
--- a/test/tint/builtins/gen/var/textureGather/d8e958.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureGather/d8e958.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureGather_d8e958(texture2d<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float2 arg_3 = float2(0.0f);
+  float2 arg_3 = float2(1.0f);
   float4 res = tint_symbol_1.gather(tint_symbol_2, arg_3, int2(0), component::y);
 }
 
diff --git a/test/tint/builtins/gen/var/textureGather/d8e958.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureGather/d8e958.wgsl.expected.spvasm
index 3800a97..0e48fa2 100644
--- a/test/tint/builtins/gen/var/textureGather/d8e958.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureGather/d8e958.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 47
+; Bound: 48
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -44,46 +44,47 @@
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
-         %20 = OpConstantNull %v2float
+    %float_1 = OpConstant %float 1
+         %21 = OpConstantComposite %v2float %float_1 %float_1
 %_ptr_Function_v2float = OpTypePointer Function %v2float
-         %26 = OpTypeSampledImage %11
+         %24 = OpConstantNull %v2float
+         %28 = OpTypeSampledImage %11
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %33 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %35 = OpTypeFunction %v4float
 %textureGather_d8e958 = OpFunction %void None %15
          %18 = OpLabel
-      %arg_3 = OpVariable %_ptr_Function_v2float Function %20
+      %arg_3 = OpVariable %_ptr_Function_v2float Function %24
         %res = OpVariable %_ptr_Function_v4float Function %5
-               OpStore %arg_3 %20
-         %24 = OpLoad %14 %arg_2
-         %25 = OpLoad %11 %arg_1
-         %27 = OpSampledImage %26 %25 %24
-         %28 = OpLoad %v2float %arg_3
-         %23 = OpImageGather %v4float %27 %28 %uint_1
-               OpStore %res %23
+               OpStore %arg_3 %21
+         %26 = OpLoad %14 %arg_2
+         %27 = OpLoad %11 %arg_1
+         %29 = OpSampledImage %28 %27 %26
+         %30 = OpLoad %v2float %arg_3
+         %25 = OpImageGather %v4float %29 %30 %uint_1
+               OpStore %res %25
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %33
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureGather_d8e958
+%vertex_main_inner = OpFunction %v4float None %35
+         %37 = OpLabel
+         %38 = OpFunctionCall %void %textureGather_d8e958
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
-         %38 = OpLabel
-         %39 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %39
+         %40 = OpLabel
+         %41 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %41
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %15
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureGather_d8e958
+         %43 = OpLabel
+         %44 = OpFunctionCall %void %textureGather_d8e958
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %15
-         %45 = OpLabel
-         %46 = OpFunctionCall %void %textureGather_d8e958
+         %46 = OpLabel
+         %47 = OpFunctionCall %void %textureGather_d8e958
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureGather/d8e958.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureGather/d8e958.wgsl.expected.wgsl
index f4776fb..7abc15a 100644
--- a/test/tint/builtins/gen/var/textureGather/d8e958.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/d8e958.wgsl.expected.wgsl
@@ -4,7 +4,7 @@
 
 fn textureGather_d8e958() {
   const arg_0 = 1u;
-  var arg_3 = vec2<f32>();
+  var arg_3 = vec2<f32>(1.0f);
   var res : vec4<f32> = textureGather(arg_0, arg_1, arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureGather/d90605.wgsl b/test/tint/builtins/gen/var/textureGather/d90605.wgsl
index 5e9106b..4aed3ac 100644
--- a/test/tint/builtins/gen/var/textureGather/d90605.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/d90605.wgsl
@@ -25,9 +25,9 @@
 
 // fn textureGather(texture: texture_depth_2d_array, sampler: sampler, coords: vec2<f32>, array_index: i32, @const offset: vec2<i32>) -> vec4<f32>
 fn textureGather_d90605() {
-  var arg_2 = vec2<f32>();
+  var arg_2 = vec2<f32>(1.f);
   var arg_3 = 1i;
-  const arg_4 = vec2<i32>();
+  const arg_4 = vec2<i32>(1i);
   var res: vec4<f32> = textureGather(arg_0, arg_1, arg_2, arg_3, arg_4);
 }
 
diff --git a/test/tint/builtins/gen/var/textureGather/d90605.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/d90605.wgsl.expected.dxc.hlsl
index 961f7f3..2ea2c41 100644
--- a/test/tint/builtins/gen/var/textureGather/d90605.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/d90605.wgsl.expected.dxc.hlsl
@@ -2,9 +2,9 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureGather_d90605() {
-  float2 arg_2 = (0.0f).xx;
+  float2 arg_2 = (1.0f).xx;
   int arg_3 = 1;
-  float4 res = arg_0.Gather(arg_1, float3(arg_2, float(arg_3)), (0).xx);
+  float4 res = arg_0.Gather(arg_1, float3(arg_2, float(arg_3)), (1).xx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/textureGather/d90605.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/d90605.wgsl.expected.fxc.hlsl
index 961f7f3..2ea2c41 100644
--- a/test/tint/builtins/gen/var/textureGather/d90605.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/d90605.wgsl.expected.fxc.hlsl
@@ -2,9 +2,9 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureGather_d90605() {
-  float2 arg_2 = (0.0f).xx;
+  float2 arg_2 = (1.0f).xx;
   int arg_3 = 1;
-  float4 res = arg_0.Gather(arg_1, float3(arg_2, float(arg_3)), (0).xx);
+  float4 res = arg_0.Gather(arg_1, float3(arg_2, float(arg_3)), (1).xx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/textureGather/d90605.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureGather/d90605.wgsl.expected.glsl
index 698dd66..f83b545 100644
--- a/test/tint/builtins/gen/var/textureGather/d90605.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureGather/d90605.wgsl.expected.glsl
@@ -3,9 +3,9 @@
 uniform highp sampler2DArrayShadow arg_0_arg_1;
 
 void textureGather_d90605() {
-  vec2 arg_2 = vec2(0.0f);
+  vec2 arg_2 = vec2(1.0f);
   int arg_3 = 1;
-  vec4 res = textureGatherOffset(arg_0_arg_1, vec3(arg_2, float(arg_3)), 0.0, ivec2(0));
+  vec4 res = textureGatherOffset(arg_0_arg_1, vec3(arg_2, float(arg_3)), 0.0, ivec2(1));
 }
 
 vec4 vertex_main() {
@@ -27,9 +27,9 @@
 uniform highp sampler2DArrayShadow arg_0_arg_1;
 
 void textureGather_d90605() {
-  vec2 arg_2 = vec2(0.0f);
+  vec2 arg_2 = vec2(1.0f);
   int arg_3 = 1;
-  vec4 res = textureGatherOffset(arg_0_arg_1, vec3(arg_2, float(arg_3)), 0.0, ivec2(0));
+  vec4 res = textureGatherOffset(arg_0_arg_1, vec3(arg_2, float(arg_3)), 0.0, ivec2(1));
 }
 
 void fragment_main() {
@@ -45,9 +45,9 @@
 uniform highp sampler2DArrayShadow arg_0_arg_1;
 
 void textureGather_d90605() {
-  vec2 arg_2 = vec2(0.0f);
+  vec2 arg_2 = vec2(1.0f);
   int arg_3 = 1;
-  vec4 res = textureGatherOffset(arg_0_arg_1, vec3(arg_2, float(arg_3)), 0.0, ivec2(0));
+  vec4 res = textureGatherOffset(arg_0_arg_1, vec3(arg_2, float(arg_3)), 0.0, ivec2(1));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/var/textureGather/d90605.wgsl.expected.msl b/test/tint/builtins/gen/var/textureGather/d90605.wgsl.expected.msl
index b5074d2..e27f2f7 100644
--- a/test/tint/builtins/gen/var/textureGather/d90605.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureGather/d90605.wgsl.expected.msl
@@ -2,9 +2,9 @@
 
 using namespace metal;
 void textureGather_d90605(depth2d_array<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float2 arg_2 = float2(0.0f);
+  float2 arg_2 = float2(1.0f);
   int arg_3 = 1;
-  float4 res = tint_symbol_1.gather(tint_symbol_2, arg_2, arg_3, int2(0));
+  float4 res = tint_symbol_1.gather(tint_symbol_2, arg_2, arg_3, int2(1));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/textureGather/d90605.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureGather/d90605.wgsl.expected.spvasm
index 2c1da3f..9867556 100644
--- a/test/tint/builtins/gen/var/textureGather/d90605.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureGather/d90605.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 59
+; Bound: 60
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -45,59 +45,60 @@
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
-         %20 = OpConstantNull %v2float
+    %float_1 = OpConstant %float 1
+         %21 = OpConstantComposite %v2float %float_1 %float_1
 %_ptr_Function_v2float = OpTypePointer Function %v2float
+         %24 = OpConstantNull %v2float
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
-         %27 = OpConstantNull %int
-         %31 = OpTypeSampledImage %11
+         %29 = OpConstantNull %int
+         %33 = OpTypeSampledImage %11
     %v3float = OpTypeVector %float 3
       %int_0 = OpConstant %int 0
       %v2int = OpTypeVector %int 2
-         %42 = OpConstantNull %v2int
+         %44 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %45 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %47 = OpTypeFunction %v4float
 %textureGather_d90605 = OpFunction %void None %15
          %18 = OpLabel
-      %arg_2 = OpVariable %_ptr_Function_v2float Function %20
-      %arg_3 = OpVariable %_ptr_Function_int Function %27
+      %arg_2 = OpVariable %_ptr_Function_v2float Function %24
+      %arg_3 = OpVariable %_ptr_Function_int Function %29
         %res = OpVariable %_ptr_Function_v4float Function %5
-               OpStore %arg_2 %20
+               OpStore %arg_2 %21
                OpStore %arg_3 %int_1
-         %29 = OpLoad %14 %arg_1
-         %30 = OpLoad %11 %arg_0
-         %32 = OpSampledImage %31 %30 %29
-         %34 = OpLoad %v2float %arg_2
-         %35 = OpCompositeExtract %float %34 0
-         %36 = OpCompositeExtract %float %34 1
-         %38 = OpLoad %int %arg_3
-         %37 = OpConvertSToF %float %38
-         %39 = OpCompositeConstruct %v3float %35 %36 %37
-         %28 = OpImageGather %v4float %32 %39 %int_0 ConstOffset %42
-               OpStore %res %28
+         %31 = OpLoad %14 %arg_1
+         %32 = OpLoad %11 %arg_0
+         %34 = OpSampledImage %33 %32 %31
+         %36 = OpLoad %v2float %arg_2
+         %37 = OpCompositeExtract %float %36 0
+         %38 = OpCompositeExtract %float %36 1
+         %40 = OpLoad %int %arg_3
+         %39 = OpConvertSToF %float %40
+         %41 = OpCompositeConstruct %v3float %37 %38 %39
+         %30 = OpImageGather %v4float %34 %41 %int_0 ConstOffset %44
+               OpStore %res %30
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %45
-         %47 = OpLabel
-         %48 = OpFunctionCall %void %textureGather_d90605
+%vertex_main_inner = OpFunction %v4float None %47
+         %49 = OpLabel
+         %50 = OpFunctionCall %void %textureGather_d90605
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
-         %50 = OpLabel
-         %51 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %51
+         %52 = OpLabel
+         %53 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %53
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %15
-         %54 = OpLabel
-         %55 = OpFunctionCall %void %textureGather_d90605
+         %55 = OpLabel
+         %56 = OpFunctionCall %void %textureGather_d90605
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %15
-         %57 = OpLabel
-         %58 = OpFunctionCall %void %textureGather_d90605
+         %58 = OpLabel
+         %59 = OpFunctionCall %void %textureGather_d90605
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureGather/d90605.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureGather/d90605.wgsl.expected.wgsl
index 32f00b3..a24fe40 100644
--- a/test/tint/builtins/gen/var/textureGather/d90605.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/d90605.wgsl.expected.wgsl
@@ -3,9 +3,9 @@
 @group(1) @binding(1) var arg_1 : sampler;
 
 fn textureGather_d90605() {
-  var arg_2 = vec2<f32>();
+  var arg_2 = vec2<f32>(1.0f);
   var arg_3 = 1i;
-  const arg_4 = vec2<i32>();
+  const arg_4 = vec2<i32>(1i);
   var res : vec4<f32> = textureGather(arg_0, arg_1, arg_2, arg_3, arg_4);
 }
 
diff --git a/test/tint/builtins/gen/var/textureGather/d98d59.wgsl b/test/tint/builtins/gen/var/textureGather/d98d59.wgsl
index e4e7524..c1c9e72 100644
--- a/test/tint/builtins/gen/var/textureGather/d98d59.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/d98d59.wgsl
@@ -26,7 +26,7 @@
 // fn textureGather(@const component: u32, texture: texture_cube_array<f32>, sampler: sampler, coords: vec3<f32>, array_index: i32) -> vec4<f32>
 fn textureGather_d98d59() {
   const arg_0 = 1u;
-  var arg_3 = vec3<f32>();
+  var arg_3 = vec3<f32>(1.f);
   var arg_4 = 1i;
   var res: vec4<f32> = textureGather(arg_0, arg_1, arg_2, arg_3, arg_4);
 }
diff --git a/test/tint/builtins/gen/var/textureGather/d98d59.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/d98d59.wgsl.expected.dxc.hlsl
index 5636e11..68e7ca4 100644
--- a/test/tint/builtins/gen/var/textureGather/d98d59.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/d98d59.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_d98d59() {
-  float3 arg_3 = (0.0f).xxx;
+  float3 arg_3 = (1.0f).xxx;
   int arg_4 = 1;
   float4 res = arg_1.GatherGreen(arg_2, float4(arg_3, float(arg_4)));
 }
diff --git a/test/tint/builtins/gen/var/textureGather/d98d59.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/d98d59.wgsl.expected.fxc.hlsl
index 5636e11..68e7ca4 100644
--- a/test/tint/builtins/gen/var/textureGather/d98d59.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/d98d59.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_d98d59() {
-  float3 arg_3 = (0.0f).xxx;
+  float3 arg_3 = (1.0f).xxx;
   int arg_4 = 1;
   float4 res = arg_1.GatherGreen(arg_2, float4(arg_3, float(arg_4)));
 }
diff --git a/test/tint/builtins/gen/var/textureGather/d98d59.wgsl.expected.msl b/test/tint/builtins/gen/var/textureGather/d98d59.wgsl.expected.msl
index b764f21..4d7e894 100644
--- a/test/tint/builtins/gen/var/textureGather/d98d59.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureGather/d98d59.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureGather_d98d59(texturecube_array<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float3 arg_3 = float3(0.0f);
+  float3 arg_3 = float3(1.0f);
   int arg_4 = 1;
   float4 res = tint_symbol_1.gather(tint_symbol_2, arg_3, arg_4, component::y);
 }
diff --git a/test/tint/builtins/gen/var/textureGather/d98d59.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureGather/d98d59.wgsl.expected.spvasm
index eb9a8ab..d2be53c 100644
--- a/test/tint/builtins/gen/var/textureGather/d98d59.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureGather/d98d59.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 58
+; Bound: 59
 ; Schema: 0
                OpCapability Shader
                OpCapability SampledCubeArray
@@ -46,58 +46,59 @@
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
     %v3float = OpTypeVector %float 3
-         %20 = OpConstantNull %v3float
+    %float_1 = OpConstant %float 1
+         %21 = OpConstantComposite %v3float %float_1 %float_1 %float_1
 %_ptr_Function_v3float = OpTypePointer Function %v3float
+         %24 = OpConstantNull %v3float
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
-         %27 = OpConstantNull %int
-         %31 = OpTypeSampledImage %11
+         %29 = OpConstantNull %int
+         %33 = OpTypeSampledImage %11
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %44 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %46 = OpTypeFunction %v4float
 %textureGather_d98d59 = OpFunction %void None %15
          %18 = OpLabel
-      %arg_3 = OpVariable %_ptr_Function_v3float Function %20
-      %arg_4 = OpVariable %_ptr_Function_int Function %27
+      %arg_3 = OpVariable %_ptr_Function_v3float Function %24
+      %arg_4 = OpVariable %_ptr_Function_int Function %29
         %res = OpVariable %_ptr_Function_v4float Function %5
-               OpStore %arg_3 %20
+               OpStore %arg_3 %21
                OpStore %arg_4 %int_1
-         %29 = OpLoad %14 %arg_2
-         %30 = OpLoad %11 %arg_1
-         %32 = OpSampledImage %31 %30 %29
-         %33 = OpLoad %v3float %arg_3
-         %34 = OpCompositeExtract %float %33 0
-         %35 = OpCompositeExtract %float %33 1
-         %36 = OpCompositeExtract %float %33 2
-         %38 = OpLoad %int %arg_4
-         %37 = OpConvertSToF %float %38
-         %39 = OpCompositeConstruct %v4float %34 %35 %36 %37
-         %28 = OpImageGather %v4float %32 %39 %uint_1
-               OpStore %res %28
+         %31 = OpLoad %14 %arg_2
+         %32 = OpLoad %11 %arg_1
+         %34 = OpSampledImage %33 %32 %31
+         %35 = OpLoad %v3float %arg_3
+         %36 = OpCompositeExtract %float %35 0
+         %37 = OpCompositeExtract %float %35 1
+         %38 = OpCompositeExtract %float %35 2
+         %40 = OpLoad %int %arg_4
+         %39 = OpConvertSToF %float %40
+         %41 = OpCompositeConstruct %v4float %36 %37 %38 %39
+         %30 = OpImageGather %v4float %34 %41 %uint_1
+               OpStore %res %30
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %44
-         %46 = OpLabel
-         %47 = OpFunctionCall %void %textureGather_d98d59
+%vertex_main_inner = OpFunction %v4float None %46
+         %48 = OpLabel
+         %49 = OpFunctionCall %void %textureGather_d98d59
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
-         %49 = OpLabel
-         %50 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %50
+         %51 = OpLabel
+         %52 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %52
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %15
-         %53 = OpLabel
-         %54 = OpFunctionCall %void %textureGather_d98d59
+         %54 = OpLabel
+         %55 = OpFunctionCall %void %textureGather_d98d59
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %15
-         %56 = OpLabel
-         %57 = OpFunctionCall %void %textureGather_d98d59
+         %57 = OpLabel
+         %58 = OpFunctionCall %void %textureGather_d98d59
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureGather/d98d59.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureGather/d98d59.wgsl.expected.wgsl
index dc7f8c7..fb91e26 100644
--- a/test/tint/builtins/gen/var/textureGather/d98d59.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/d98d59.wgsl.expected.wgsl
@@ -4,7 +4,7 @@
 
 fn textureGather_d98d59() {
   const arg_0 = 1u;
-  var arg_3 = vec3<f32>();
+  var arg_3 = vec3<f32>(1.0f);
   var arg_4 = 1i;
   var res : vec4<f32> = textureGather(arg_0, arg_1, arg_2, arg_3, arg_4);
 }
diff --git a/test/tint/builtins/gen/var/textureGather/dc6661.wgsl b/test/tint/builtins/gen/var/textureGather/dc6661.wgsl
index b51c3e5..365b22f 100644
--- a/test/tint/builtins/gen/var/textureGather/dc6661.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/dc6661.wgsl
@@ -26,8 +26,8 @@
 // fn textureGather(@const component: u32, texture: texture_2d<i32>, sampler: sampler, coords: vec2<f32>, @const offset: vec2<i32>) -> vec4<i32>
 fn textureGather_dc6661() {
   const arg_0 = 1u;
-  var arg_3 = vec2<f32>();
-  const arg_4 = vec2<i32>();
+  var arg_3 = vec2<f32>(1.f);
+  const arg_4 = vec2<i32>(1i);
   var res: vec4<i32> = textureGather(arg_0, arg_1, arg_2, arg_3, arg_4);
 }
 
diff --git a/test/tint/builtins/gen/var/textureGather/dc6661.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/dc6661.wgsl.expected.dxc.hlsl
index 0fc31ac..3c686c6 100644
--- a/test/tint/builtins/gen/var/textureGather/dc6661.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/dc6661.wgsl.expected.dxc.hlsl
@@ -2,8 +2,8 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_dc6661() {
-  float2 arg_3 = (0.0f).xx;
-  int4 res = arg_1.GatherGreen(arg_2, arg_3, (0).xx);
+  float2 arg_3 = (1.0f).xx;
+  int4 res = arg_1.GatherGreen(arg_2, arg_3, (1).xx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/textureGather/dc6661.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/dc6661.wgsl.expected.fxc.hlsl
index 0fc31ac..3c686c6 100644
--- a/test/tint/builtins/gen/var/textureGather/dc6661.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/dc6661.wgsl.expected.fxc.hlsl
@@ -2,8 +2,8 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_dc6661() {
-  float2 arg_3 = (0.0f).xx;
-  int4 res = arg_1.GatherGreen(arg_2, arg_3, (0).xx);
+  float2 arg_3 = (1.0f).xx;
+  int4 res = arg_1.GatherGreen(arg_2, arg_3, (1).xx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/textureGather/dc6661.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureGather/dc6661.wgsl.expected.glsl
index 98f224d..4c66cb9 100644
--- a/test/tint/builtins/gen/var/textureGather/dc6661.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureGather/dc6661.wgsl.expected.glsl
@@ -3,8 +3,8 @@
 uniform highp isampler2D arg_1_arg_2;
 
 void textureGather_dc6661() {
-  vec2 arg_3 = vec2(0.0f);
-  ivec4 res = textureGatherOffset(arg_1_arg_2, arg_3, ivec2(0), int(1u));
+  vec2 arg_3 = vec2(1.0f);
+  ivec4 res = textureGatherOffset(arg_1_arg_2, arg_3, ivec2(1), int(1u));
 }
 
 vec4 vertex_main() {
@@ -26,8 +26,8 @@
 uniform highp isampler2D arg_1_arg_2;
 
 void textureGather_dc6661() {
-  vec2 arg_3 = vec2(0.0f);
-  ivec4 res = textureGatherOffset(arg_1_arg_2, arg_3, ivec2(0), int(1u));
+  vec2 arg_3 = vec2(1.0f);
+  ivec4 res = textureGatherOffset(arg_1_arg_2, arg_3, ivec2(1), int(1u));
 }
 
 void fragment_main() {
@@ -43,8 +43,8 @@
 uniform highp isampler2D arg_1_arg_2;
 
 void textureGather_dc6661() {
-  vec2 arg_3 = vec2(0.0f);
-  ivec4 res = textureGatherOffset(arg_1_arg_2, arg_3, ivec2(0), int(1u));
+  vec2 arg_3 = vec2(1.0f);
+  ivec4 res = textureGatherOffset(arg_1_arg_2, arg_3, ivec2(1), int(1u));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/var/textureGather/dc6661.wgsl.expected.msl b/test/tint/builtins/gen/var/textureGather/dc6661.wgsl.expected.msl
index 479290e..08dd959 100644
--- a/test/tint/builtins/gen/var/textureGather/dc6661.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureGather/dc6661.wgsl.expected.msl
@@ -2,8 +2,8 @@
 
 using namespace metal;
 void textureGather_dc6661(texture2d<int, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float2 arg_3 = float2(0.0f);
-  int4 res = tint_symbol_1.gather(tint_symbol_2, arg_3, int2(0), component::y);
+  float2 arg_3 = float2(1.0f);
+  int4 res = tint_symbol_1.gather(tint_symbol_2, arg_3, int2(1), component::y);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/textureGather/dc6661.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureGather/dc6661.wgsl.expected.spvasm
index a6e8142..0f57540 100644
--- a/test/tint/builtins/gen/var/textureGather/dc6661.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureGather/dc6661.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 52
+; Bound: 54
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -45,50 +45,52 @@
        %void = OpTypeVoid
          %16 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
-         %21 = OpConstantNull %v2float
+    %float_1 = OpConstant %float 1
+         %22 = OpConstantComposite %v2float %float_1 %float_1
 %_ptr_Function_v2float = OpTypePointer Function %v2float
+         %25 = OpConstantNull %v2float
       %v4int = OpTypeVector %int 4
-         %28 = OpTypeSampledImage %11
+         %30 = OpTypeSampledImage %11
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
       %v2int = OpTypeVector %int 2
-         %34 = OpConstantNull %v2int
+      %int_1 = OpConstant %int 1
+         %37 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %37 = OpConstantNull %v4int
-         %38 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %40 = OpConstantNull %v4int
+         %41 = OpTypeFunction %v4float
 %textureGather_dc6661 = OpFunction %void None %16
          %19 = OpLabel
-      %arg_3 = OpVariable %_ptr_Function_v2float Function %21
-        %res = OpVariable %_ptr_Function_v4int Function %37
-               OpStore %arg_3 %21
-         %26 = OpLoad %15 %arg_2
-         %27 = OpLoad %11 %arg_1
-         %29 = OpSampledImage %28 %27 %26
-         %30 = OpLoad %v2float %arg_3
-         %24 = OpImageGather %v4int %29 %30 %uint_1 ConstOffset %34
-               OpStore %res %24
+      %arg_3 = OpVariable %_ptr_Function_v2float Function %25
+        %res = OpVariable %_ptr_Function_v4int Function %40
+               OpStore %arg_3 %22
+         %28 = OpLoad %15 %arg_2
+         %29 = OpLoad %11 %arg_1
+         %31 = OpSampledImage %30 %29 %28
+         %32 = OpLoad %v2float %arg_3
+         %26 = OpImageGather %v4int %31 %32 %uint_1 ConstOffset %37
+               OpStore %res %26
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %38
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureGather_dc6661
+%vertex_main_inner = OpFunction %v4float None %41
+         %43 = OpLabel
+         %44 = OpFunctionCall %void %textureGather_dc6661
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %16
-         %43 = OpLabel
-         %44 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %44
+         %46 = OpLabel
+         %47 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %47
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %16
-         %47 = OpLabel
-         %48 = OpFunctionCall %void %textureGather_dc6661
+         %49 = OpLabel
+         %50 = OpFunctionCall %void %textureGather_dc6661
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %16
-         %50 = OpLabel
-         %51 = OpFunctionCall %void %textureGather_dc6661
+         %52 = OpLabel
+         %53 = OpFunctionCall %void %textureGather_dc6661
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureGather/dc6661.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureGather/dc6661.wgsl.expected.wgsl
index b639399..8e2e84e 100644
--- a/test/tint/builtins/gen/var/textureGather/dc6661.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/dc6661.wgsl.expected.wgsl
@@ -4,8 +4,8 @@
 
 fn textureGather_dc6661() {
   const arg_0 = 1u;
-  var arg_3 = vec2<f32>();
-  const arg_4 = vec2<i32>();
+  var arg_3 = vec2<f32>(1.0f);
+  const arg_4 = vec2<i32>(1i);
   var res : vec4<i32> = textureGather(arg_0, arg_1, arg_2, arg_3, arg_4);
 }
 
diff --git a/test/tint/builtins/gen/var/textureGather/e2acac.wgsl b/test/tint/builtins/gen/var/textureGather/e2acac.wgsl
index 6d145fa..7b40592 100644
--- a/test/tint/builtins/gen/var/textureGather/e2acac.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/e2acac.wgsl
@@ -26,7 +26,7 @@
 // fn textureGather(@const component: u32, texture: texture_cube_array<u32>, sampler: sampler, coords: vec3<f32>, array_index: u32) -> vec4<u32>
 fn textureGather_e2acac() {
   const arg_0 = 1u;
-  var arg_3 = vec3<f32>();
+  var arg_3 = vec3<f32>(1.f);
   var arg_4 = 1u;
   var res: vec4<u32> = textureGather(arg_0, arg_1, arg_2, arg_3, arg_4);
 }
diff --git a/test/tint/builtins/gen/var/textureGather/e2acac.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/e2acac.wgsl.expected.dxc.hlsl
index 57cafd4..a3242e3 100644
--- a/test/tint/builtins/gen/var/textureGather/e2acac.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/e2acac.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_e2acac() {
-  float3 arg_3 = (0.0f).xxx;
+  float3 arg_3 = (1.0f).xxx;
   uint arg_4 = 1u;
   uint4 res = arg_1.GatherGreen(arg_2, float4(arg_3, float(arg_4)));
 }
diff --git a/test/tint/builtins/gen/var/textureGather/e2acac.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/e2acac.wgsl.expected.fxc.hlsl
index 57cafd4..a3242e3 100644
--- a/test/tint/builtins/gen/var/textureGather/e2acac.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/e2acac.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_e2acac() {
-  float3 arg_3 = (0.0f).xxx;
+  float3 arg_3 = (1.0f).xxx;
   uint arg_4 = 1u;
   uint4 res = arg_1.GatherGreen(arg_2, float4(arg_3, float(arg_4)));
 }
diff --git a/test/tint/builtins/gen/var/textureGather/e2acac.wgsl.expected.msl b/test/tint/builtins/gen/var/textureGather/e2acac.wgsl.expected.msl
index 1fdaddc..4044a85 100644
--- a/test/tint/builtins/gen/var/textureGather/e2acac.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureGather/e2acac.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureGather_e2acac(texturecube_array<uint, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float3 arg_3 = float3(0.0f);
+  float3 arg_3 = float3(1.0f);
   uint arg_4 = 1u;
   uint4 res = tint_symbol_1.gather(tint_symbol_2, arg_3, arg_4, component::y);
 }
diff --git a/test/tint/builtins/gen/var/textureGather/e2acac.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureGather/e2acac.wgsl.expected.spvasm
index f6a7322..6650551 100644
--- a/test/tint/builtins/gen/var/textureGather/e2acac.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureGather/e2acac.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 58
+; Bound: 59
 ; Schema: 0
                OpCapability Shader
                OpCapability SampledCubeArray
@@ -47,57 +47,58 @@
        %void = OpTypeVoid
          %16 = OpTypeFunction %void
     %v3float = OpTypeVector %float 3
-         %21 = OpConstantNull %v3float
+    %float_1 = OpConstant %float 1
+         %22 = OpConstantComposite %v3float %float_1 %float_1 %float_1
 %_ptr_Function_v3float = OpTypePointer Function %v3float
+         %25 = OpConstantNull %v3float
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %27 = OpConstantNull %uint
+         %29 = OpConstantNull %uint
      %v4uint = OpTypeVector %uint 4
-         %32 = OpTypeSampledImage %11
+         %34 = OpTypeSampledImage %11
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %43 = OpConstantNull %v4uint
-         %44 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %45 = OpConstantNull %v4uint
+         %46 = OpTypeFunction %v4float
 %textureGather_e2acac = OpFunction %void None %16
          %19 = OpLabel
-      %arg_3 = OpVariable %_ptr_Function_v3float Function %21
-      %arg_4 = OpVariable %_ptr_Function_uint Function %27
-        %res = OpVariable %_ptr_Function_v4uint Function %43
-               OpStore %arg_3 %21
+      %arg_3 = OpVariable %_ptr_Function_v3float Function %25
+      %arg_4 = OpVariable %_ptr_Function_uint Function %29
+        %res = OpVariable %_ptr_Function_v4uint Function %45
+               OpStore %arg_3 %22
                OpStore %arg_4 %uint_1
-         %30 = OpLoad %15 %arg_2
-         %31 = OpLoad %11 %arg_1
-         %33 = OpSampledImage %32 %31 %30
-         %34 = OpLoad %v3float %arg_3
-         %35 = OpCompositeExtract %float %34 0
-         %36 = OpCompositeExtract %float %34 1
-         %37 = OpCompositeExtract %float %34 2
-         %39 = OpLoad %uint %arg_4
-         %38 = OpConvertUToF %float %39
-         %40 = OpCompositeConstruct %v4float %35 %36 %37 %38
-         %28 = OpImageGather %v4uint %33 %40 %uint_1
-               OpStore %res %28
+         %32 = OpLoad %15 %arg_2
+         %33 = OpLoad %11 %arg_1
+         %35 = OpSampledImage %34 %33 %32
+         %36 = OpLoad %v3float %arg_3
+         %37 = OpCompositeExtract %float %36 0
+         %38 = OpCompositeExtract %float %36 1
+         %39 = OpCompositeExtract %float %36 2
+         %41 = OpLoad %uint %arg_4
+         %40 = OpConvertUToF %float %41
+         %42 = OpCompositeConstruct %v4float %37 %38 %39 %40
+         %30 = OpImageGather %v4uint %35 %42 %uint_1
+               OpStore %res %30
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %44
-         %46 = OpLabel
-         %47 = OpFunctionCall %void %textureGather_e2acac
+%vertex_main_inner = OpFunction %v4float None %46
+         %48 = OpLabel
+         %49 = OpFunctionCall %void %textureGather_e2acac
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %16
-         %49 = OpLabel
-         %50 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %50
+         %51 = OpLabel
+         %52 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %52
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %16
-         %53 = OpLabel
-         %54 = OpFunctionCall %void %textureGather_e2acac
+         %54 = OpLabel
+         %55 = OpFunctionCall %void %textureGather_e2acac
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %16
-         %56 = OpLabel
-         %57 = OpFunctionCall %void %textureGather_e2acac
+         %57 = OpLabel
+         %58 = OpFunctionCall %void %textureGather_e2acac
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureGather/e2acac.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureGather/e2acac.wgsl.expected.wgsl
index f3fda10..bf9657f 100644
--- a/test/tint/builtins/gen/var/textureGather/e2acac.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/e2acac.wgsl.expected.wgsl
@@ -4,7 +4,7 @@
 
 fn textureGather_e2acac() {
   const arg_0 = 1u;
-  var arg_3 = vec3<f32>();
+  var arg_3 = vec3<f32>(1.0f);
   var arg_4 = 1u;
   var res : vec4<u32> = textureGather(arg_0, arg_1, arg_2, arg_3, arg_4);
 }
diff --git a/test/tint/builtins/gen/var/textureGather/e3165f.wgsl b/test/tint/builtins/gen/var/textureGather/e3165f.wgsl
index a261325..145f621 100644
--- a/test/tint/builtins/gen/var/textureGather/e3165f.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/e3165f.wgsl
@@ -26,9 +26,9 @@
 // fn textureGather(@const component: u32, texture: texture_2d_array<u32>, sampler: sampler, coords: vec2<f32>, array_index: i32, @const offset: vec2<i32>) -> vec4<u32>
 fn textureGather_e3165f() {
   const arg_0 = 1u;
-  var arg_3 = vec2<f32>();
+  var arg_3 = vec2<f32>(1.f);
   var arg_4 = 1i;
-  const arg_5 = vec2<i32>();
+  const arg_5 = vec2<i32>(1i);
   var res: vec4<u32> = textureGather(arg_0, arg_1, arg_2, arg_3, arg_4, arg_5);
 }
 
diff --git a/test/tint/builtins/gen/var/textureGather/e3165f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/e3165f.wgsl.expected.dxc.hlsl
index 81a031d..7d57cba 100644
--- a/test/tint/builtins/gen/var/textureGather/e3165f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/e3165f.wgsl.expected.dxc.hlsl
@@ -2,9 +2,9 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_e3165f() {
-  float2 arg_3 = (0.0f).xx;
+  float2 arg_3 = (1.0f).xx;
   int arg_4 = 1;
-  uint4 res = arg_1.GatherGreen(arg_2, float3(arg_3, float(arg_4)), (0).xx);
+  uint4 res = arg_1.GatherGreen(arg_2, float3(arg_3, float(arg_4)), (1).xx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/textureGather/e3165f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/e3165f.wgsl.expected.fxc.hlsl
index 81a031d..7d57cba 100644
--- a/test/tint/builtins/gen/var/textureGather/e3165f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/e3165f.wgsl.expected.fxc.hlsl
@@ -2,9 +2,9 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_e3165f() {
-  float2 arg_3 = (0.0f).xx;
+  float2 arg_3 = (1.0f).xx;
   int arg_4 = 1;
-  uint4 res = arg_1.GatherGreen(arg_2, float3(arg_3, float(arg_4)), (0).xx);
+  uint4 res = arg_1.GatherGreen(arg_2, float3(arg_3, float(arg_4)), (1).xx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/textureGather/e3165f.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureGather/e3165f.wgsl.expected.glsl
index 6239d68..e96d0ae 100644
--- a/test/tint/builtins/gen/var/textureGather/e3165f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureGather/e3165f.wgsl.expected.glsl
@@ -3,9 +3,9 @@
 uniform highp usampler2DArray arg_1_arg_2;
 
 void textureGather_e3165f() {
-  vec2 arg_3 = vec2(0.0f);
+  vec2 arg_3 = vec2(1.0f);
   int arg_4 = 1;
-  uvec4 res = textureGatherOffset(arg_1_arg_2, vec3(arg_3, float(arg_4)), ivec2(0), int(1u));
+  uvec4 res = textureGatherOffset(arg_1_arg_2, vec3(arg_3, float(arg_4)), ivec2(1), int(1u));
 }
 
 vec4 vertex_main() {
@@ -27,9 +27,9 @@
 uniform highp usampler2DArray arg_1_arg_2;
 
 void textureGather_e3165f() {
-  vec2 arg_3 = vec2(0.0f);
+  vec2 arg_3 = vec2(1.0f);
   int arg_4 = 1;
-  uvec4 res = textureGatherOffset(arg_1_arg_2, vec3(arg_3, float(arg_4)), ivec2(0), int(1u));
+  uvec4 res = textureGatherOffset(arg_1_arg_2, vec3(arg_3, float(arg_4)), ivec2(1), int(1u));
 }
 
 void fragment_main() {
@@ -45,9 +45,9 @@
 uniform highp usampler2DArray arg_1_arg_2;
 
 void textureGather_e3165f() {
-  vec2 arg_3 = vec2(0.0f);
+  vec2 arg_3 = vec2(1.0f);
   int arg_4 = 1;
-  uvec4 res = textureGatherOffset(arg_1_arg_2, vec3(arg_3, float(arg_4)), ivec2(0), int(1u));
+  uvec4 res = textureGatherOffset(arg_1_arg_2, vec3(arg_3, float(arg_4)), ivec2(1), int(1u));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/var/textureGather/e3165f.wgsl.expected.msl b/test/tint/builtins/gen/var/textureGather/e3165f.wgsl.expected.msl
index 89f5559..6891bef 100644
--- a/test/tint/builtins/gen/var/textureGather/e3165f.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureGather/e3165f.wgsl.expected.msl
@@ -2,9 +2,9 @@
 
 using namespace metal;
 void textureGather_e3165f(texture2d_array<uint, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float2 arg_3 = float2(0.0f);
+  float2 arg_3 = float2(1.0f);
   int arg_4 = 1;
-  uint4 res = tint_symbol_1.gather(tint_symbol_2, arg_3, arg_4, int2(0), component::y);
+  uint4 res = tint_symbol_1.gather(tint_symbol_2, arg_3, arg_4, int2(1), component::y);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/textureGather/e3165f.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureGather/e3165f.wgsl.expected.spvasm
index b246f34..7dd439e 100644
--- a/test/tint/builtins/gen/var/textureGather/e3165f.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureGather/e3165f.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 62
+; Bound: 63
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -46,61 +46,62 @@
        %void = OpTypeVoid
          %16 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
-         %21 = OpConstantNull %v2float
+    %float_1 = OpConstant %float 1
+         %22 = OpConstantComposite %v2float %float_1 %float_1
 %_ptr_Function_v2float = OpTypePointer Function %v2float
+         %25 = OpConstantNull %v2float
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
-         %28 = OpConstantNull %int
+         %30 = OpConstantNull %int
      %v4uint = OpTypeVector %uint 4
-         %33 = OpTypeSampledImage %11
+         %35 = OpTypeSampledImage %11
     %v3float = OpTypeVector %float 3
      %uint_1 = OpConstant %uint 1
       %v2int = OpTypeVector %int 2
-         %44 = OpConstantNull %v2int
+         %46 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %47 = OpConstantNull %v4uint
-         %48 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %49 = OpConstantNull %v4uint
+         %50 = OpTypeFunction %v4float
 %textureGather_e3165f = OpFunction %void None %16
          %19 = OpLabel
-      %arg_3 = OpVariable %_ptr_Function_v2float Function %21
-      %arg_4 = OpVariable %_ptr_Function_int Function %28
-        %res = OpVariable %_ptr_Function_v4uint Function %47
-               OpStore %arg_3 %21
+      %arg_3 = OpVariable %_ptr_Function_v2float Function %25
+      %arg_4 = OpVariable %_ptr_Function_int Function %30
+        %res = OpVariable %_ptr_Function_v4uint Function %49
+               OpStore %arg_3 %22
                OpStore %arg_4 %int_1
-         %31 = OpLoad %15 %arg_2
-         %32 = OpLoad %11 %arg_1
-         %34 = OpSampledImage %33 %32 %31
-         %36 = OpLoad %v2float %arg_3
-         %37 = OpCompositeExtract %float %36 0
-         %38 = OpCompositeExtract %float %36 1
-         %40 = OpLoad %int %arg_4
-         %39 = OpConvertSToF %float %40
-         %41 = OpCompositeConstruct %v3float %37 %38 %39
-         %29 = OpImageGather %v4uint %34 %41 %uint_1 ConstOffset %44
-               OpStore %res %29
+         %33 = OpLoad %15 %arg_2
+         %34 = OpLoad %11 %arg_1
+         %36 = OpSampledImage %35 %34 %33
+         %38 = OpLoad %v2float %arg_3
+         %39 = OpCompositeExtract %float %38 0
+         %40 = OpCompositeExtract %float %38 1
+         %42 = OpLoad %int %arg_4
+         %41 = OpConvertSToF %float %42
+         %43 = OpCompositeConstruct %v3float %39 %40 %41
+         %31 = OpImageGather %v4uint %36 %43 %uint_1 ConstOffset %46
+               OpStore %res %31
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %48
-         %50 = OpLabel
-         %51 = OpFunctionCall %void %textureGather_e3165f
+%vertex_main_inner = OpFunction %v4float None %50
+         %52 = OpLabel
+         %53 = OpFunctionCall %void %textureGather_e3165f
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %16
-         %53 = OpLabel
-         %54 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %54
+         %55 = OpLabel
+         %56 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %56
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %16
-         %57 = OpLabel
-         %58 = OpFunctionCall %void %textureGather_e3165f
+         %58 = OpLabel
+         %59 = OpFunctionCall %void %textureGather_e3165f
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %16
-         %60 = OpLabel
-         %61 = OpFunctionCall %void %textureGather_e3165f
+         %61 = OpLabel
+         %62 = OpFunctionCall %void %textureGather_e3165f
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureGather/e3165f.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureGather/e3165f.wgsl.expected.wgsl
index 4f62566..2cd2864 100644
--- a/test/tint/builtins/gen/var/textureGather/e3165f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/e3165f.wgsl.expected.wgsl
@@ -4,9 +4,9 @@
 
 fn textureGather_e3165f() {
   const arg_0 = 1u;
-  var arg_3 = vec2<f32>();
+  var arg_3 = vec2<f32>(1.0f);
   var arg_4 = 1i;
-  const arg_5 = vec2<i32>();
+  const arg_5 = vec2<i32>(1i);
   var res : vec4<u32> = textureGather(arg_0, arg_1, arg_2, arg_3, arg_4, arg_5);
 }
 
diff --git a/test/tint/builtins/gen/var/textureGather/e9d390.wgsl b/test/tint/builtins/gen/var/textureGather/e9d390.wgsl
index 167a0b2..c7f277d 100644
--- a/test/tint/builtins/gen/var/textureGather/e9d390.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/e9d390.wgsl
@@ -26,9 +26,9 @@
 // fn textureGather(@const component: i32, texture: texture_2d_array<i32>, sampler: sampler, coords: vec2<f32>, array_index: i32, @const offset: vec2<i32>) -> vec4<i32>
 fn textureGather_e9d390() {
   const arg_0 = 1i;
-  var arg_3 = vec2<f32>();
+  var arg_3 = vec2<f32>(1.f);
   var arg_4 = 1i;
-  const arg_5 = vec2<i32>();
+  const arg_5 = vec2<i32>(1i);
   var res: vec4<i32> = textureGather(arg_0, arg_1, arg_2, arg_3, arg_4, arg_5);
 }
 
diff --git a/test/tint/builtins/gen/var/textureGather/e9d390.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/e9d390.wgsl.expected.dxc.hlsl
index 303164a..0604af7 100644
--- a/test/tint/builtins/gen/var/textureGather/e9d390.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/e9d390.wgsl.expected.dxc.hlsl
@@ -2,9 +2,9 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_e9d390() {
-  float2 arg_3 = (0.0f).xx;
+  float2 arg_3 = (1.0f).xx;
   int arg_4 = 1;
-  int4 res = arg_1.GatherGreen(arg_2, float3(arg_3, float(arg_4)), (0).xx);
+  int4 res = arg_1.GatherGreen(arg_2, float3(arg_3, float(arg_4)), (1).xx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/textureGather/e9d390.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/e9d390.wgsl.expected.fxc.hlsl
index 303164a..0604af7 100644
--- a/test/tint/builtins/gen/var/textureGather/e9d390.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/e9d390.wgsl.expected.fxc.hlsl
@@ -2,9 +2,9 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_e9d390() {
-  float2 arg_3 = (0.0f).xx;
+  float2 arg_3 = (1.0f).xx;
   int arg_4 = 1;
-  int4 res = arg_1.GatherGreen(arg_2, float3(arg_3, float(arg_4)), (0).xx);
+  int4 res = arg_1.GatherGreen(arg_2, float3(arg_3, float(arg_4)), (1).xx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/textureGather/e9d390.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureGather/e9d390.wgsl.expected.glsl
index 51dbcc1..9c122b8 100644
--- a/test/tint/builtins/gen/var/textureGather/e9d390.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureGather/e9d390.wgsl.expected.glsl
@@ -3,9 +3,9 @@
 uniform highp isampler2DArray arg_1_arg_2;
 
 void textureGather_e9d390() {
-  vec2 arg_3 = vec2(0.0f);
+  vec2 arg_3 = vec2(1.0f);
   int arg_4 = 1;
-  ivec4 res = textureGatherOffset(arg_1_arg_2, vec3(arg_3, float(arg_4)), ivec2(0), 1);
+  ivec4 res = textureGatherOffset(arg_1_arg_2, vec3(arg_3, float(arg_4)), ivec2(1), 1);
 }
 
 vec4 vertex_main() {
@@ -27,9 +27,9 @@
 uniform highp isampler2DArray arg_1_arg_2;
 
 void textureGather_e9d390() {
-  vec2 arg_3 = vec2(0.0f);
+  vec2 arg_3 = vec2(1.0f);
   int arg_4 = 1;
-  ivec4 res = textureGatherOffset(arg_1_arg_2, vec3(arg_3, float(arg_4)), ivec2(0), 1);
+  ivec4 res = textureGatherOffset(arg_1_arg_2, vec3(arg_3, float(arg_4)), ivec2(1), 1);
 }
 
 void fragment_main() {
@@ -45,9 +45,9 @@
 uniform highp isampler2DArray arg_1_arg_2;
 
 void textureGather_e9d390() {
-  vec2 arg_3 = vec2(0.0f);
+  vec2 arg_3 = vec2(1.0f);
   int arg_4 = 1;
-  ivec4 res = textureGatherOffset(arg_1_arg_2, vec3(arg_3, float(arg_4)), ivec2(0), 1);
+  ivec4 res = textureGatherOffset(arg_1_arg_2, vec3(arg_3, float(arg_4)), ivec2(1), 1);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/var/textureGather/e9d390.wgsl.expected.msl b/test/tint/builtins/gen/var/textureGather/e9d390.wgsl.expected.msl
index 6d75549..28ce256 100644
--- a/test/tint/builtins/gen/var/textureGather/e9d390.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureGather/e9d390.wgsl.expected.msl
@@ -2,9 +2,9 @@
 
 using namespace metal;
 void textureGather_e9d390(texture2d_array<int, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float2 arg_3 = float2(0.0f);
+  float2 arg_3 = float2(1.0f);
   int arg_4 = 1;
-  int4 res = tint_symbol_1.gather(tint_symbol_2, arg_3, arg_4, int2(0), component::y);
+  int4 res = tint_symbol_1.gather(tint_symbol_2, arg_3, arg_4, int2(1), component::y);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/textureGather/e9d390.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureGather/e9d390.wgsl.expected.spvasm
index 0748d70..0092cc8 100644
--- a/test/tint/builtins/gen/var/textureGather/e9d390.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureGather/e9d390.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 60
+; Bound: 61
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -46,59 +46,60 @@
        %void = OpTypeVoid
          %16 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
-         %21 = OpConstantNull %v2float
+    %float_1 = OpConstant %float 1
+         %22 = OpConstantComposite %v2float %float_1 %float_1
 %_ptr_Function_v2float = OpTypePointer Function %v2float
+         %25 = OpConstantNull %v2float
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
-         %27 = OpConstantNull %int
+         %29 = OpConstantNull %int
       %v4int = OpTypeVector %int 4
-         %32 = OpTypeSampledImage %11
+         %34 = OpTypeSampledImage %11
     %v3float = OpTypeVector %float 3
       %v2int = OpTypeVector %int 2
-         %42 = OpConstantNull %v2int
+         %44 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %45 = OpConstantNull %v4int
-         %46 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %47 = OpConstantNull %v4int
+         %48 = OpTypeFunction %v4float
 %textureGather_e9d390 = OpFunction %void None %16
          %19 = OpLabel
-      %arg_3 = OpVariable %_ptr_Function_v2float Function %21
-      %arg_4 = OpVariable %_ptr_Function_int Function %27
-        %res = OpVariable %_ptr_Function_v4int Function %45
-               OpStore %arg_3 %21
+      %arg_3 = OpVariable %_ptr_Function_v2float Function %25
+      %arg_4 = OpVariable %_ptr_Function_int Function %29
+        %res = OpVariable %_ptr_Function_v4int Function %47
+               OpStore %arg_3 %22
                OpStore %arg_4 %int_1
-         %30 = OpLoad %15 %arg_2
-         %31 = OpLoad %11 %arg_1
-         %33 = OpSampledImage %32 %31 %30
-         %35 = OpLoad %v2float %arg_3
-         %36 = OpCompositeExtract %float %35 0
-         %37 = OpCompositeExtract %float %35 1
-         %39 = OpLoad %int %arg_4
-         %38 = OpConvertSToF %float %39
-         %40 = OpCompositeConstruct %v3float %36 %37 %38
-         %28 = OpImageGather %v4int %33 %40 %int_1 ConstOffset %42
-               OpStore %res %28
+         %32 = OpLoad %15 %arg_2
+         %33 = OpLoad %11 %arg_1
+         %35 = OpSampledImage %34 %33 %32
+         %37 = OpLoad %v2float %arg_3
+         %38 = OpCompositeExtract %float %37 0
+         %39 = OpCompositeExtract %float %37 1
+         %41 = OpLoad %int %arg_4
+         %40 = OpConvertSToF %float %41
+         %42 = OpCompositeConstruct %v3float %38 %39 %40
+         %30 = OpImageGather %v4int %35 %42 %int_1 ConstOffset %44
+               OpStore %res %30
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %46
-         %48 = OpLabel
-         %49 = OpFunctionCall %void %textureGather_e9d390
+%vertex_main_inner = OpFunction %v4float None %48
+         %50 = OpLabel
+         %51 = OpFunctionCall %void %textureGather_e9d390
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %16
-         %51 = OpLabel
-         %52 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %52
+         %53 = OpLabel
+         %54 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %54
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %16
-         %55 = OpLabel
-         %56 = OpFunctionCall %void %textureGather_e9d390
+         %56 = OpLabel
+         %57 = OpFunctionCall %void %textureGather_e9d390
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %16
-         %58 = OpLabel
-         %59 = OpFunctionCall %void %textureGather_e9d390
+         %59 = OpLabel
+         %60 = OpFunctionCall %void %textureGather_e9d390
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureGather/e9d390.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureGather/e9d390.wgsl.expected.wgsl
index 6cf5907..1f1750b 100644
--- a/test/tint/builtins/gen/var/textureGather/e9d390.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/e9d390.wgsl.expected.wgsl
@@ -4,9 +4,9 @@
 
 fn textureGather_e9d390() {
   const arg_0 = 1i;
-  var arg_3 = vec2<f32>();
+  var arg_3 = vec2<f32>(1.0f);
   var arg_4 = 1i;
-  const arg_5 = vec2<i32>();
+  const arg_5 = vec2<i32>(1i);
   var res : vec4<i32> = textureGather(arg_0, arg_1, arg_2, arg_3, arg_4, arg_5);
 }
 
diff --git a/test/tint/builtins/gen/var/textureGather/ea8eb4.wgsl b/test/tint/builtins/gen/var/textureGather/ea8eb4.wgsl
index dc6250b..5e60b91 100644
--- a/test/tint/builtins/gen/var/textureGather/ea8eb4.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/ea8eb4.wgsl
@@ -26,7 +26,7 @@
 // fn textureGather(@const component: u32, texture: texture_2d_array<f32>, sampler: sampler, coords: vec2<f32>, array_index: u32) -> vec4<f32>
 fn textureGather_ea8eb4() {
   const arg_0 = 1u;
-  var arg_3 = vec2<f32>();
+  var arg_3 = vec2<f32>(1.f);
   var arg_4 = 1u;
   var res: vec4<f32> = textureGather(arg_0, arg_1, arg_2, arg_3, arg_4);
 }
diff --git a/test/tint/builtins/gen/var/textureGather/ea8eb4.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/ea8eb4.wgsl.expected.dxc.hlsl
index 0759fa5..a9e5e58 100644
--- a/test/tint/builtins/gen/var/textureGather/ea8eb4.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/ea8eb4.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_ea8eb4() {
-  float2 arg_3 = (0.0f).xx;
+  float2 arg_3 = (1.0f).xx;
   uint arg_4 = 1u;
   float4 res = arg_1.GatherGreen(arg_2, float3(arg_3, float(arg_4)));
 }
diff --git a/test/tint/builtins/gen/var/textureGather/ea8eb4.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/ea8eb4.wgsl.expected.fxc.hlsl
index 0759fa5..a9e5e58 100644
--- a/test/tint/builtins/gen/var/textureGather/ea8eb4.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/ea8eb4.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_ea8eb4() {
-  float2 arg_3 = (0.0f).xx;
+  float2 arg_3 = (1.0f).xx;
   uint arg_4 = 1u;
   float4 res = arg_1.GatherGreen(arg_2, float3(arg_3, float(arg_4)));
 }
diff --git a/test/tint/builtins/gen/var/textureGather/ea8eb4.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureGather/ea8eb4.wgsl.expected.glsl
index 87e62b4..5a389b9 100644
--- a/test/tint/builtins/gen/var/textureGather/ea8eb4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureGather/ea8eb4.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 uniform highp sampler2DArray arg_1_arg_2;
 
 void textureGather_ea8eb4() {
-  vec2 arg_3 = vec2(0.0f);
+  vec2 arg_3 = vec2(1.0f);
   uint arg_4 = 1u;
   vec4 res = textureGather(arg_1_arg_2, vec3(arg_3, float(arg_4)), int(1u));
 }
@@ -27,7 +27,7 @@
 uniform highp sampler2DArray arg_1_arg_2;
 
 void textureGather_ea8eb4() {
-  vec2 arg_3 = vec2(0.0f);
+  vec2 arg_3 = vec2(1.0f);
   uint arg_4 = 1u;
   vec4 res = textureGather(arg_1_arg_2, vec3(arg_3, float(arg_4)), int(1u));
 }
@@ -45,7 +45,7 @@
 uniform highp sampler2DArray arg_1_arg_2;
 
 void textureGather_ea8eb4() {
-  vec2 arg_3 = vec2(0.0f);
+  vec2 arg_3 = vec2(1.0f);
   uint arg_4 = 1u;
   vec4 res = textureGather(arg_1_arg_2, vec3(arg_3, float(arg_4)), int(1u));
 }
diff --git a/test/tint/builtins/gen/var/textureGather/ea8eb4.wgsl.expected.msl b/test/tint/builtins/gen/var/textureGather/ea8eb4.wgsl.expected.msl
index 51fd170..5e246ec 100644
--- a/test/tint/builtins/gen/var/textureGather/ea8eb4.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureGather/ea8eb4.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureGather_ea8eb4(texture2d_array<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float2 arg_3 = float2(0.0f);
+  float2 arg_3 = float2(1.0f);
   uint arg_4 = 1u;
   float4 res = tint_symbol_1.gather(tint_symbol_2, arg_3, arg_4, int2(0), component::y);
 }
diff --git a/test/tint/builtins/gen/var/textureGather/ea8eb4.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureGather/ea8eb4.wgsl.expected.spvasm
index e629bb7..1b348a4 100644
--- a/test/tint/builtins/gen/var/textureGather/ea8eb4.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureGather/ea8eb4.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 56
+; Bound: 57
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -45,56 +45,57 @@
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
-         %20 = OpConstantNull %v2float
+    %float_1 = OpConstant %float 1
+         %21 = OpConstantComposite %v2float %float_1 %float_1
 %_ptr_Function_v2float = OpTypePointer Function %v2float
+         %24 = OpConstantNull %v2float
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %27 = OpConstantNull %uint
-         %31 = OpTypeSampledImage %11
+         %29 = OpConstantNull %uint
+         %33 = OpTypeSampledImage %11
     %v3float = OpTypeVector %float 3
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %42 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %44 = OpTypeFunction %v4float
 %textureGather_ea8eb4 = OpFunction %void None %15
          %18 = OpLabel
-      %arg_3 = OpVariable %_ptr_Function_v2float Function %20
-      %arg_4 = OpVariable %_ptr_Function_uint Function %27
+      %arg_3 = OpVariable %_ptr_Function_v2float Function %24
+      %arg_4 = OpVariable %_ptr_Function_uint Function %29
         %res = OpVariable %_ptr_Function_v4float Function %5
-               OpStore %arg_3 %20
+               OpStore %arg_3 %21
                OpStore %arg_4 %uint_1
-         %29 = OpLoad %14 %arg_2
-         %30 = OpLoad %11 %arg_1
-         %32 = OpSampledImage %31 %30 %29
-         %34 = OpLoad %v2float %arg_3
-         %35 = OpCompositeExtract %float %34 0
-         %36 = OpCompositeExtract %float %34 1
-         %38 = OpLoad %uint %arg_4
-         %37 = OpConvertUToF %float %38
-         %39 = OpCompositeConstruct %v3float %35 %36 %37
-         %28 = OpImageGather %v4float %32 %39 %uint_1
-               OpStore %res %28
+         %31 = OpLoad %14 %arg_2
+         %32 = OpLoad %11 %arg_1
+         %34 = OpSampledImage %33 %32 %31
+         %36 = OpLoad %v2float %arg_3
+         %37 = OpCompositeExtract %float %36 0
+         %38 = OpCompositeExtract %float %36 1
+         %40 = OpLoad %uint %arg_4
+         %39 = OpConvertUToF %float %40
+         %41 = OpCompositeConstruct %v3float %37 %38 %39
+         %30 = OpImageGather %v4float %34 %41 %uint_1
+               OpStore %res %30
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %42
-         %44 = OpLabel
-         %45 = OpFunctionCall %void %textureGather_ea8eb4
+%vertex_main_inner = OpFunction %v4float None %44
+         %46 = OpLabel
+         %47 = OpFunctionCall %void %textureGather_ea8eb4
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
-         %47 = OpLabel
-         %48 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %48
+         %49 = OpLabel
+         %50 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %50
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %15
-         %51 = OpLabel
-         %52 = OpFunctionCall %void %textureGather_ea8eb4
+         %52 = OpLabel
+         %53 = OpFunctionCall %void %textureGather_ea8eb4
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %15
-         %54 = OpLabel
-         %55 = OpFunctionCall %void %textureGather_ea8eb4
+         %55 = OpLabel
+         %56 = OpFunctionCall %void %textureGather_ea8eb4
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureGather/ea8eb4.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureGather/ea8eb4.wgsl.expected.wgsl
index 5062f18..63fe006 100644
--- a/test/tint/builtins/gen/var/textureGather/ea8eb4.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/ea8eb4.wgsl.expected.wgsl
@@ -4,7 +4,7 @@
 
 fn textureGather_ea8eb4() {
   const arg_0 = 1u;
-  var arg_3 = vec2<f32>();
+  var arg_3 = vec2<f32>(1.0f);
   var arg_4 = 1u;
   var res : vec4<f32> = textureGather(arg_0, arg_1, arg_2, arg_3, arg_4);
 }
diff --git a/test/tint/builtins/gen/var/textureGather/f2c6e3.wgsl b/test/tint/builtins/gen/var/textureGather/f2c6e3.wgsl
index b1bdb2d..4d6a8b4 100644
--- a/test/tint/builtins/gen/var/textureGather/f2c6e3.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/f2c6e3.wgsl
@@ -26,7 +26,7 @@
 // fn textureGather(@const component: i32, texture: texture_cube_array<u32>, sampler: sampler, coords: vec3<f32>, array_index: i32) -> vec4<u32>
 fn textureGather_f2c6e3() {
   const arg_0 = 1i;
-  var arg_3 = vec3<f32>();
+  var arg_3 = vec3<f32>(1.f);
   var arg_4 = 1i;
   var res: vec4<u32> = textureGather(arg_0, arg_1, arg_2, arg_3, arg_4);
 }
diff --git a/test/tint/builtins/gen/var/textureGather/f2c6e3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/f2c6e3.wgsl.expected.dxc.hlsl
index e7b6ba8..358b397 100644
--- a/test/tint/builtins/gen/var/textureGather/f2c6e3.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/f2c6e3.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_f2c6e3() {
-  float3 arg_3 = (0.0f).xxx;
+  float3 arg_3 = (1.0f).xxx;
   int arg_4 = 1;
   uint4 res = arg_1.GatherGreen(arg_2, float4(arg_3, float(arg_4)));
 }
diff --git a/test/tint/builtins/gen/var/textureGather/f2c6e3.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/f2c6e3.wgsl.expected.fxc.hlsl
index e7b6ba8..358b397 100644
--- a/test/tint/builtins/gen/var/textureGather/f2c6e3.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/f2c6e3.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_2 : register(s2, space1);
 
 void textureGather_f2c6e3() {
-  float3 arg_3 = (0.0f).xxx;
+  float3 arg_3 = (1.0f).xxx;
   int arg_4 = 1;
   uint4 res = arg_1.GatherGreen(arg_2, float4(arg_3, float(arg_4)));
 }
diff --git a/test/tint/builtins/gen/var/textureGather/f2c6e3.wgsl.expected.msl b/test/tint/builtins/gen/var/textureGather/f2c6e3.wgsl.expected.msl
index 088082f..b356eb9 100644
--- a/test/tint/builtins/gen/var/textureGather/f2c6e3.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureGather/f2c6e3.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureGather_f2c6e3(texturecube_array<uint, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float3 arg_3 = float3(0.0f);
+  float3 arg_3 = float3(1.0f);
   int arg_4 = 1;
   uint4 res = tint_symbol_1.gather(tint_symbol_2, arg_3, arg_4, component::y);
 }
diff --git a/test/tint/builtins/gen/var/textureGather/f2c6e3.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureGather/f2c6e3.wgsl.expected.spvasm
index 2fba92b..36837a2 100644
--- a/test/tint/builtins/gen/var/textureGather/f2c6e3.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureGather/f2c6e3.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 59
+; Bound: 60
 ; Schema: 0
                OpCapability Shader
                OpCapability SampledCubeArray
@@ -47,58 +47,59 @@
        %void = OpTypeVoid
          %16 = OpTypeFunction %void
     %v3float = OpTypeVector %float 3
-         %21 = OpConstantNull %v3float
+    %float_1 = OpConstant %float 1
+         %22 = OpConstantComposite %v3float %float_1 %float_1 %float_1
 %_ptr_Function_v3float = OpTypePointer Function %v3float
+         %25 = OpConstantNull %v3float
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
-         %28 = OpConstantNull %int
+         %30 = OpConstantNull %int
      %v4uint = OpTypeVector %uint 4
-         %33 = OpTypeSampledImage %11
+         %35 = OpTypeSampledImage %11
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %44 = OpConstantNull %v4uint
-         %45 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %46 = OpConstantNull %v4uint
+         %47 = OpTypeFunction %v4float
 %textureGather_f2c6e3 = OpFunction %void None %16
          %19 = OpLabel
-      %arg_3 = OpVariable %_ptr_Function_v3float Function %21
-      %arg_4 = OpVariable %_ptr_Function_int Function %28
-        %res = OpVariable %_ptr_Function_v4uint Function %44
-               OpStore %arg_3 %21
+      %arg_3 = OpVariable %_ptr_Function_v3float Function %25
+      %arg_4 = OpVariable %_ptr_Function_int Function %30
+        %res = OpVariable %_ptr_Function_v4uint Function %46
+               OpStore %arg_3 %22
                OpStore %arg_4 %int_1
-         %31 = OpLoad %15 %arg_2
-         %32 = OpLoad %11 %arg_1
-         %34 = OpSampledImage %33 %32 %31
-         %35 = OpLoad %v3float %arg_3
-         %36 = OpCompositeExtract %float %35 0
-         %37 = OpCompositeExtract %float %35 1
-         %38 = OpCompositeExtract %float %35 2
-         %40 = OpLoad %int %arg_4
-         %39 = OpConvertSToF %float %40
-         %41 = OpCompositeConstruct %v4float %36 %37 %38 %39
-         %29 = OpImageGather %v4uint %34 %41 %int_1
-               OpStore %res %29
+         %33 = OpLoad %15 %arg_2
+         %34 = OpLoad %11 %arg_1
+         %36 = OpSampledImage %35 %34 %33
+         %37 = OpLoad %v3float %arg_3
+         %38 = OpCompositeExtract %float %37 0
+         %39 = OpCompositeExtract %float %37 1
+         %40 = OpCompositeExtract %float %37 2
+         %42 = OpLoad %int %arg_4
+         %41 = OpConvertSToF %float %42
+         %43 = OpCompositeConstruct %v4float %38 %39 %40 %41
+         %31 = OpImageGather %v4uint %36 %43 %int_1
+               OpStore %res %31
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %45
-         %47 = OpLabel
-         %48 = OpFunctionCall %void %textureGather_f2c6e3
+%vertex_main_inner = OpFunction %v4float None %47
+         %49 = OpLabel
+         %50 = OpFunctionCall %void %textureGather_f2c6e3
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %16
-         %50 = OpLabel
-         %51 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %51
+         %52 = OpLabel
+         %53 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %53
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %16
-         %54 = OpLabel
-         %55 = OpFunctionCall %void %textureGather_f2c6e3
+         %55 = OpLabel
+         %56 = OpFunctionCall %void %textureGather_f2c6e3
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %16
-         %57 = OpLabel
-         %58 = OpFunctionCall %void %textureGather_f2c6e3
+         %58 = OpLabel
+         %59 = OpFunctionCall %void %textureGather_f2c6e3
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureGather/f2c6e3.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureGather/f2c6e3.wgsl.expected.wgsl
index 3a4243c..3005c80 100644
--- a/test/tint/builtins/gen/var/textureGather/f2c6e3.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/f2c6e3.wgsl.expected.wgsl
@@ -4,7 +4,7 @@
 
 fn textureGather_f2c6e3() {
   const arg_0 = 1i;
-  var arg_3 = vec3<f32>();
+  var arg_3 = vec3<f32>(1.0f);
   var arg_4 = 1i;
   var res : vec4<u32> = textureGather(arg_0, arg_1, arg_2, arg_3, arg_4);
 }
diff --git a/test/tint/builtins/gen/var/textureGatherCompare/144a9a.wgsl b/test/tint/builtins/gen/var/textureGatherCompare/144a9a.wgsl
index f54540c..e0d3b6e 100644
--- a/test/tint/builtins/gen/var/textureGatherCompare/144a9a.wgsl
+++ b/test/tint/builtins/gen/var/textureGatherCompare/144a9a.wgsl
@@ -25,10 +25,10 @@
 
 // fn textureGatherCompare(texture: texture_depth_2d_array, sampler: sampler_comparison, coords: vec2<f32>, array_index: u32, depth_ref: f32, @const offset: vec2<i32>) -> vec4<f32>
 fn textureGatherCompare_144a9a() {
-  var arg_2 = vec2<f32>();
+  var arg_2 = vec2<f32>(1.f);
   var arg_3 = 1u;
   var arg_4 = 1.f;
-  const arg_5 = vec2<i32>();
+  const arg_5 = vec2<i32>(1i);
   var res: vec4<f32> = textureGatherCompare(arg_0, arg_1, arg_2, arg_3, arg_4, arg_5);
 }
 
diff --git a/test/tint/builtins/gen/var/textureGatherCompare/144a9a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureGatherCompare/144a9a.wgsl.expected.dxc.hlsl
index 889e75c..ee5d38a 100644
--- a/test/tint/builtins/gen/var/textureGatherCompare/144a9a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGatherCompare/144a9a.wgsl.expected.dxc.hlsl
@@ -2,10 +2,10 @@
 SamplerComparisonState arg_1 : register(s1, space1);
 
 void textureGatherCompare_144a9a() {
-  float2 arg_2 = (0.0f).xx;
+  float2 arg_2 = (1.0f).xx;
   uint arg_3 = 1u;
   float arg_4 = 1.0f;
-  float4 res = arg_0.GatherCmp(arg_1, float3(arg_2, float(arg_3)), arg_4, (0).xx);
+  float4 res = arg_0.GatherCmp(arg_1, float3(arg_2, float(arg_3)), arg_4, (1).xx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/textureGatherCompare/144a9a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureGatherCompare/144a9a.wgsl.expected.fxc.hlsl
index 889e75c..ee5d38a 100644
--- a/test/tint/builtins/gen/var/textureGatherCompare/144a9a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGatherCompare/144a9a.wgsl.expected.fxc.hlsl
@@ -2,10 +2,10 @@
 SamplerComparisonState arg_1 : register(s1, space1);
 
 void textureGatherCompare_144a9a() {
-  float2 arg_2 = (0.0f).xx;
+  float2 arg_2 = (1.0f).xx;
   uint arg_3 = 1u;
   float arg_4 = 1.0f;
-  float4 res = arg_0.GatherCmp(arg_1, float3(arg_2, float(arg_3)), arg_4, (0).xx);
+  float4 res = arg_0.GatherCmp(arg_1, float3(arg_2, float(arg_3)), arg_4, (1).xx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/textureGatherCompare/144a9a.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureGatherCompare/144a9a.wgsl.expected.glsl
index 000522c..5920e0e 100644
--- a/test/tint/builtins/gen/var/textureGatherCompare/144a9a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureGatherCompare/144a9a.wgsl.expected.glsl
@@ -3,10 +3,10 @@
 uniform highp sampler2DArrayShadow arg_0_arg_1;
 
 void textureGatherCompare_144a9a() {
-  vec2 arg_2 = vec2(0.0f);
+  vec2 arg_2 = vec2(1.0f);
   uint arg_3 = 1u;
   float arg_4 = 1.0f;
-  vec4 res = textureGatherOffset(arg_0_arg_1, vec3(arg_2, float(arg_3)), arg_4, ivec2(0));
+  vec4 res = textureGatherOffset(arg_0_arg_1, vec3(arg_2, float(arg_3)), arg_4, ivec2(1));
 }
 
 vec4 vertex_main() {
@@ -28,10 +28,10 @@
 uniform highp sampler2DArrayShadow arg_0_arg_1;
 
 void textureGatherCompare_144a9a() {
-  vec2 arg_2 = vec2(0.0f);
+  vec2 arg_2 = vec2(1.0f);
   uint arg_3 = 1u;
   float arg_4 = 1.0f;
-  vec4 res = textureGatherOffset(arg_0_arg_1, vec3(arg_2, float(arg_3)), arg_4, ivec2(0));
+  vec4 res = textureGatherOffset(arg_0_arg_1, vec3(arg_2, float(arg_3)), arg_4, ivec2(1));
 }
 
 void fragment_main() {
@@ -47,10 +47,10 @@
 uniform highp sampler2DArrayShadow arg_0_arg_1;
 
 void textureGatherCompare_144a9a() {
-  vec2 arg_2 = vec2(0.0f);
+  vec2 arg_2 = vec2(1.0f);
   uint arg_3 = 1u;
   float arg_4 = 1.0f;
-  vec4 res = textureGatherOffset(arg_0_arg_1, vec3(arg_2, float(arg_3)), arg_4, ivec2(0));
+  vec4 res = textureGatherOffset(arg_0_arg_1, vec3(arg_2, float(arg_3)), arg_4, ivec2(1));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/var/textureGatherCompare/144a9a.wgsl.expected.msl b/test/tint/builtins/gen/var/textureGatherCompare/144a9a.wgsl.expected.msl
index 2332e49..6e0c82f 100644
--- a/test/tint/builtins/gen/var/textureGatherCompare/144a9a.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureGatherCompare/144a9a.wgsl.expected.msl
@@ -2,10 +2,10 @@
 
 using namespace metal;
 void textureGatherCompare_144a9a(depth2d_array<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float2 arg_2 = float2(0.0f);
+  float2 arg_2 = float2(1.0f);
   uint arg_3 = 1u;
   float arg_4 = 1.0f;
-  float4 res = tint_symbol_1.gather_compare(tint_symbol_2, arg_2, arg_3, arg_4, int2(0));
+  float4 res = tint_symbol_1.gather_compare(tint_symbol_2, arg_2, arg_3, arg_4, int2(1));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/textureGatherCompare/144a9a.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureGatherCompare/144a9a.wgsl.expected.spvasm
index d2973ef..c027f94 100644
--- a/test/tint/builtins/gen/var/textureGatherCompare/144a9a.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureGatherCompare/144a9a.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 62
+; Bound: 64
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -46,63 +46,65 @@
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
-         %20 = OpConstantNull %v2float
+    %float_1 = OpConstant %float 1
+         %21 = OpConstantComposite %v2float %float_1 %float_1
 %_ptr_Function_v2float = OpTypePointer Function %v2float
+         %24 = OpConstantNull %v2float
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %27 = OpConstantNull %uint
-    %float_1 = OpConstant %float 1
+         %29 = OpConstantNull %uint
 %_ptr_Function_float = OpTypePointer Function %float
-         %34 = OpTypeSampledImage %11
+         %35 = OpTypeSampledImage %11
     %v3float = OpTypeVector %float 3
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
-         %46 = OpConstantNull %v2int
+      %int_1 = OpConstant %int 1
+         %48 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %49 = OpTypeFunction %v4float
+         %51 = OpTypeFunction %v4float
 %textureGatherCompare_144a9a = OpFunction %void None %15
          %18 = OpLabel
-      %arg_2 = OpVariable %_ptr_Function_v2float Function %20
-      %arg_3 = OpVariable %_ptr_Function_uint Function %27
+      %arg_2 = OpVariable %_ptr_Function_v2float Function %24
+      %arg_3 = OpVariable %_ptr_Function_uint Function %29
       %arg_4 = OpVariable %_ptr_Function_float Function %8
         %res = OpVariable %_ptr_Function_v4float Function %5
-               OpStore %arg_2 %20
+               OpStore %arg_2 %21
                OpStore %arg_3 %uint_1
                OpStore %arg_4 %float_1
-         %32 = OpLoad %14 %arg_1
-         %33 = OpLoad %11 %arg_0
-         %35 = OpSampledImage %34 %33 %32
-         %37 = OpLoad %v2float %arg_2
-         %38 = OpCompositeExtract %float %37 0
-         %39 = OpCompositeExtract %float %37 1
-         %41 = OpLoad %uint %arg_3
-         %40 = OpConvertUToF %float %41
-         %42 = OpCompositeConstruct %v3float %38 %39 %40
-         %43 = OpLoad %float %arg_4
-         %31 = OpImageDrefGather %v4float %35 %42 %43 ConstOffset %46
-               OpStore %res %31
+         %33 = OpLoad %14 %arg_1
+         %34 = OpLoad %11 %arg_0
+         %36 = OpSampledImage %35 %34 %33
+         %38 = OpLoad %v2float %arg_2
+         %39 = OpCompositeExtract %float %38 0
+         %40 = OpCompositeExtract %float %38 1
+         %42 = OpLoad %uint %arg_3
+         %41 = OpConvertUToF %float %42
+         %43 = OpCompositeConstruct %v3float %39 %40 %41
+         %44 = OpLoad %float %arg_4
+         %32 = OpImageDrefGather %v4float %36 %43 %44 ConstOffset %48
+               OpStore %res %32
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %49
-         %51 = OpLabel
-         %52 = OpFunctionCall %void %textureGatherCompare_144a9a
+%vertex_main_inner = OpFunction %v4float None %51
+         %53 = OpLabel
+         %54 = OpFunctionCall %void %textureGatherCompare_144a9a
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
-         %54 = OpLabel
-         %55 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %55
+         %56 = OpLabel
+         %57 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %57
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %15
-         %57 = OpLabel
-         %58 = OpFunctionCall %void %textureGatherCompare_144a9a
+         %59 = OpLabel
+         %60 = OpFunctionCall %void %textureGatherCompare_144a9a
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %15
-         %60 = OpLabel
-         %61 = OpFunctionCall %void %textureGatherCompare_144a9a
+         %62 = OpLabel
+         %63 = OpFunctionCall %void %textureGatherCompare_144a9a
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureGatherCompare/144a9a.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureGatherCompare/144a9a.wgsl.expected.wgsl
index 3544909..bff46b7 100644
--- a/test/tint/builtins/gen/var/textureGatherCompare/144a9a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureGatherCompare/144a9a.wgsl.expected.wgsl
@@ -3,10 +3,10 @@
 @group(1) @binding(1) var arg_1 : sampler_comparison;
 
 fn textureGatherCompare_144a9a() {
-  var arg_2 = vec2<f32>();
+  var arg_2 = vec2<f32>(1.0f);
   var arg_3 = 1u;
   var arg_4 = 1.0f;
-  const arg_5 = vec2<i32>();
+  const arg_5 = vec2<i32>(1i);
   var res : vec4<f32> = textureGatherCompare(arg_0, arg_1, arg_2, arg_3, arg_4, arg_5);
 }
 
diff --git a/test/tint/builtins/gen/var/textureGatherCompare/182fd4.wgsl b/test/tint/builtins/gen/var/textureGatherCompare/182fd4.wgsl
index 1c12576..c021e00 100644
--- a/test/tint/builtins/gen/var/textureGatherCompare/182fd4.wgsl
+++ b/test/tint/builtins/gen/var/textureGatherCompare/182fd4.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureGatherCompare(texture: texture_depth_cube, sampler: sampler_comparison, coords: vec3<f32>, depth_ref: f32) -> vec4<f32>
 fn textureGatherCompare_182fd4() {
-  var arg_2 = vec3<f32>();
+  var arg_2 = vec3<f32>(1.f);
   var arg_3 = 1.f;
   var res: vec4<f32> = textureGatherCompare(arg_0, arg_1, arg_2, arg_3);
 }
diff --git a/test/tint/builtins/gen/var/textureGatherCompare/182fd4.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureGatherCompare/182fd4.wgsl.expected.dxc.hlsl
index 294d4d3..775595e 100644
--- a/test/tint/builtins/gen/var/textureGatherCompare/182fd4.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGatherCompare/182fd4.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerComparisonState arg_1 : register(s1, space1);
 
 void textureGatherCompare_182fd4() {
-  float3 arg_2 = (0.0f).xxx;
+  float3 arg_2 = (1.0f).xxx;
   float arg_3 = 1.0f;
   float4 res = arg_0.GatherCmp(arg_1, arg_2, arg_3);
 }
diff --git a/test/tint/builtins/gen/var/textureGatherCompare/182fd4.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureGatherCompare/182fd4.wgsl.expected.fxc.hlsl
index 294d4d3..775595e 100644
--- a/test/tint/builtins/gen/var/textureGatherCompare/182fd4.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGatherCompare/182fd4.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerComparisonState arg_1 : register(s1, space1);
 
 void textureGatherCompare_182fd4() {
-  float3 arg_2 = (0.0f).xxx;
+  float3 arg_2 = (1.0f).xxx;
   float arg_3 = 1.0f;
   float4 res = arg_0.GatherCmp(arg_1, arg_2, arg_3);
 }
diff --git a/test/tint/builtins/gen/var/textureGatherCompare/182fd4.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureGatherCompare/182fd4.wgsl.expected.glsl
index af1dd4d..7d7d856 100644
--- a/test/tint/builtins/gen/var/textureGatherCompare/182fd4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureGatherCompare/182fd4.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 uniform highp samplerCubeShadow arg_0_arg_1;
 
 void textureGatherCompare_182fd4() {
-  vec3 arg_2 = vec3(0.0f);
+  vec3 arg_2 = vec3(1.0f);
   float arg_3 = 1.0f;
   vec4 res = textureGather(arg_0_arg_1, arg_2, arg_3);
 }
@@ -27,7 +27,7 @@
 uniform highp samplerCubeShadow arg_0_arg_1;
 
 void textureGatherCompare_182fd4() {
-  vec3 arg_2 = vec3(0.0f);
+  vec3 arg_2 = vec3(1.0f);
   float arg_3 = 1.0f;
   vec4 res = textureGather(arg_0_arg_1, arg_2, arg_3);
 }
@@ -45,7 +45,7 @@
 uniform highp samplerCubeShadow arg_0_arg_1;
 
 void textureGatherCompare_182fd4() {
-  vec3 arg_2 = vec3(0.0f);
+  vec3 arg_2 = vec3(1.0f);
   float arg_3 = 1.0f;
   vec4 res = textureGather(arg_0_arg_1, arg_2, arg_3);
 }
diff --git a/test/tint/builtins/gen/var/textureGatherCompare/182fd4.wgsl.expected.msl b/test/tint/builtins/gen/var/textureGatherCompare/182fd4.wgsl.expected.msl
index 5f3be12..34f3a8c 100644
--- a/test/tint/builtins/gen/var/textureGatherCompare/182fd4.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureGatherCompare/182fd4.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureGatherCompare_182fd4(depthcube<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float3 arg_2 = float3(0.0f);
+  float3 arg_2 = float3(1.0f);
   float arg_3 = 1.0f;
   float4 res = tint_symbol_1.gather_compare(tint_symbol_2, arg_2, arg_3);
 }
diff --git a/test/tint/builtins/gen/var/textureGatherCompare/182fd4.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureGatherCompare/182fd4.wgsl.expected.spvasm
index e8bd4b7..e276158 100644
--- a/test/tint/builtins/gen/var/textureGatherCompare/182fd4.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureGatherCompare/182fd4.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 48
+; Bound: 49
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -45,48 +45,49 @@
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
     %v3float = OpTypeVector %float 3
-         %20 = OpConstantNull %v3float
-%_ptr_Function_v3float = OpTypePointer Function %v3float
     %float_1 = OpConstant %float 1
+         %21 = OpConstantComposite %v3float %float_1 %float_1 %float_1
+%_ptr_Function_v3float = OpTypePointer Function %v3float
+         %24 = OpConstantNull %v3float
 %_ptr_Function_float = OpTypePointer Function %float
-         %29 = OpTypeSampledImage %11
+         %30 = OpTypeSampledImage %11
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %35 = OpTypeFunction %v4float
+         %36 = OpTypeFunction %v4float
 %textureGatherCompare_182fd4 = OpFunction %void None %15
          %18 = OpLabel
-      %arg_2 = OpVariable %_ptr_Function_v3float Function %20
+      %arg_2 = OpVariable %_ptr_Function_v3float Function %24
       %arg_3 = OpVariable %_ptr_Function_float Function %8
         %res = OpVariable %_ptr_Function_v4float Function %5
-               OpStore %arg_2 %20
+               OpStore %arg_2 %21
                OpStore %arg_3 %float_1
-         %27 = OpLoad %14 %arg_1
-         %28 = OpLoad %11 %arg_0
-         %30 = OpSampledImage %29 %28 %27
-         %31 = OpLoad %v3float %arg_2
-         %32 = OpLoad %float %arg_3
-         %26 = OpImageDrefGather %v4float %30 %31 %32
-               OpStore %res %26
+         %28 = OpLoad %14 %arg_1
+         %29 = OpLoad %11 %arg_0
+         %31 = OpSampledImage %30 %29 %28
+         %32 = OpLoad %v3float %arg_2
+         %33 = OpLoad %float %arg_3
+         %27 = OpImageDrefGather %v4float %31 %32 %33
+               OpStore %res %27
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %35
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureGatherCompare_182fd4
+%vertex_main_inner = OpFunction %v4float None %36
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %textureGatherCompare_182fd4
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
-         %40 = OpLabel
-         %41 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %41
+         %41 = OpLabel
+         %42 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %42
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %15
-         %43 = OpLabel
-         %44 = OpFunctionCall %void %textureGatherCompare_182fd4
+         %44 = OpLabel
+         %45 = OpFunctionCall %void %textureGatherCompare_182fd4
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %15
-         %46 = OpLabel
-         %47 = OpFunctionCall %void %textureGatherCompare_182fd4
+         %47 = OpLabel
+         %48 = OpFunctionCall %void %textureGatherCompare_182fd4
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureGatherCompare/182fd4.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureGatherCompare/182fd4.wgsl.expected.wgsl
index d2d4c30..e810f09 100644
--- a/test/tint/builtins/gen/var/textureGatherCompare/182fd4.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureGatherCompare/182fd4.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(1) var arg_1 : sampler_comparison;
 
 fn textureGatherCompare_182fd4() {
-  var arg_2 = vec3<f32>();
+  var arg_2 = vec3<f32>(1.0f);
   var arg_3 = 1.0f;
   var res : vec4<f32> = textureGatherCompare(arg_0, arg_1, arg_2, arg_3);
 }
diff --git a/test/tint/builtins/gen/var/textureGatherCompare/2e409c.wgsl b/test/tint/builtins/gen/var/textureGatherCompare/2e409c.wgsl
index d6ea315..7ca38fb 100644
--- a/test/tint/builtins/gen/var/textureGatherCompare/2e409c.wgsl
+++ b/test/tint/builtins/gen/var/textureGatherCompare/2e409c.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureGatherCompare(texture: texture_depth_cube_array, sampler: sampler_comparison, coords: vec3<f32>, array_index: u32, depth_ref: f32) -> vec4<f32>
 fn textureGatherCompare_2e409c() {
-  var arg_2 = vec3<f32>();
+  var arg_2 = vec3<f32>(1.f);
   var arg_3 = 1u;
   var arg_4 = 1.f;
   var res: vec4<f32> = textureGatherCompare(arg_0, arg_1, arg_2, arg_3, arg_4);
diff --git a/test/tint/builtins/gen/var/textureGatherCompare/2e409c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureGatherCompare/2e409c.wgsl.expected.dxc.hlsl
index 625ef635..fb2cc17 100644
--- a/test/tint/builtins/gen/var/textureGatherCompare/2e409c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGatherCompare/2e409c.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerComparisonState arg_1 : register(s1, space1);
 
 void textureGatherCompare_2e409c() {
-  float3 arg_2 = (0.0f).xxx;
+  float3 arg_2 = (1.0f).xxx;
   uint arg_3 = 1u;
   float arg_4 = 1.0f;
   float4 res = arg_0.GatherCmp(arg_1, float4(arg_2, float(arg_3)), arg_4);
diff --git a/test/tint/builtins/gen/var/textureGatherCompare/2e409c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureGatherCompare/2e409c.wgsl.expected.fxc.hlsl
index 625ef635..fb2cc17 100644
--- a/test/tint/builtins/gen/var/textureGatherCompare/2e409c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGatherCompare/2e409c.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerComparisonState arg_1 : register(s1, space1);
 
 void textureGatherCompare_2e409c() {
-  float3 arg_2 = (0.0f).xxx;
+  float3 arg_2 = (1.0f).xxx;
   uint arg_3 = 1u;
   float arg_4 = 1.0f;
   float4 res = arg_0.GatherCmp(arg_1, float4(arg_2, float(arg_3)), arg_4);
diff --git a/test/tint/builtins/gen/var/textureGatherCompare/2e409c.wgsl.expected.msl b/test/tint/builtins/gen/var/textureGatherCompare/2e409c.wgsl.expected.msl
index bd7e100..7f17941 100644
--- a/test/tint/builtins/gen/var/textureGatherCompare/2e409c.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureGatherCompare/2e409c.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureGatherCompare_2e409c(depthcube_array<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float3 arg_2 = float3(0.0f);
+  float3 arg_2 = float3(1.0f);
   uint arg_3 = 1u;
   float arg_4 = 1.0f;
   float4 res = tint_symbol_1.gather_compare(tint_symbol_2, arg_2, arg_3, arg_4);
diff --git a/test/tint/builtins/gen/var/textureGatherCompare/2e409c.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureGatherCompare/2e409c.wgsl.expected.spvasm
index e65e051..c937e06 100644
--- a/test/tint/builtins/gen/var/textureGatherCompare/2e409c.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureGatherCompare/2e409c.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 59
+; Bound: 60
 ; Schema: 0
                OpCapability Shader
                OpCapability SampledCubeArray
@@ -47,60 +47,61 @@
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
     %v3float = OpTypeVector %float 3
-         %20 = OpConstantNull %v3float
+    %float_1 = OpConstant %float 1
+         %21 = OpConstantComposite %v3float %float_1 %float_1 %float_1
 %_ptr_Function_v3float = OpTypePointer Function %v3float
+         %24 = OpConstantNull %v3float
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %27 = OpConstantNull %uint
-    %float_1 = OpConstant %float 1
+         %29 = OpConstantNull %uint
 %_ptr_Function_float = OpTypePointer Function %float
-         %34 = OpTypeSampledImage %11
+         %35 = OpTypeSampledImage %11
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %46 = OpTypeFunction %v4float
+         %47 = OpTypeFunction %v4float
 %textureGatherCompare_2e409c = OpFunction %void None %15
          %18 = OpLabel
-      %arg_2 = OpVariable %_ptr_Function_v3float Function %20
-      %arg_3 = OpVariable %_ptr_Function_uint Function %27
+      %arg_2 = OpVariable %_ptr_Function_v3float Function %24
+      %arg_3 = OpVariable %_ptr_Function_uint Function %29
       %arg_4 = OpVariable %_ptr_Function_float Function %8
         %res = OpVariable %_ptr_Function_v4float Function %5
-               OpStore %arg_2 %20
+               OpStore %arg_2 %21
                OpStore %arg_3 %uint_1
                OpStore %arg_4 %float_1
-         %32 = OpLoad %14 %arg_1
-         %33 = OpLoad %11 %arg_0
-         %35 = OpSampledImage %34 %33 %32
-         %36 = OpLoad %v3float %arg_2
-         %37 = OpCompositeExtract %float %36 0
-         %38 = OpCompositeExtract %float %36 1
-         %39 = OpCompositeExtract %float %36 2
-         %41 = OpLoad %uint %arg_3
-         %40 = OpConvertUToF %float %41
-         %42 = OpCompositeConstruct %v4float %37 %38 %39 %40
-         %43 = OpLoad %float %arg_4
-         %31 = OpImageDrefGather %v4float %35 %42 %43
-               OpStore %res %31
+         %33 = OpLoad %14 %arg_1
+         %34 = OpLoad %11 %arg_0
+         %36 = OpSampledImage %35 %34 %33
+         %37 = OpLoad %v3float %arg_2
+         %38 = OpCompositeExtract %float %37 0
+         %39 = OpCompositeExtract %float %37 1
+         %40 = OpCompositeExtract %float %37 2
+         %42 = OpLoad %uint %arg_3
+         %41 = OpConvertUToF %float %42
+         %43 = OpCompositeConstruct %v4float %38 %39 %40 %41
+         %44 = OpLoad %float %arg_4
+         %32 = OpImageDrefGather %v4float %36 %43 %44
+               OpStore %res %32
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %46
-         %48 = OpLabel
-         %49 = OpFunctionCall %void %textureGatherCompare_2e409c
+%vertex_main_inner = OpFunction %v4float None %47
+         %49 = OpLabel
+         %50 = OpFunctionCall %void %textureGatherCompare_2e409c
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
-         %51 = OpLabel
-         %52 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %52
+         %52 = OpLabel
+         %53 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %53
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %15
-         %54 = OpLabel
-         %55 = OpFunctionCall %void %textureGatherCompare_2e409c
+         %55 = OpLabel
+         %56 = OpFunctionCall %void %textureGatherCompare_2e409c
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %15
-         %57 = OpLabel
-         %58 = OpFunctionCall %void %textureGatherCompare_2e409c
+         %58 = OpLabel
+         %59 = OpFunctionCall %void %textureGatherCompare_2e409c
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureGatherCompare/2e409c.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureGatherCompare/2e409c.wgsl.expected.wgsl
index 384d9fd..1534917 100644
--- a/test/tint/builtins/gen/var/textureGatherCompare/2e409c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureGatherCompare/2e409c.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(1) var arg_1 : sampler_comparison;
 
 fn textureGatherCompare_2e409c() {
-  var arg_2 = vec3<f32>();
+  var arg_2 = vec3<f32>(1.0f);
   var arg_3 = 1u;
   var arg_4 = 1.0f;
   var res : vec4<f32> = textureGatherCompare(arg_0, arg_1, arg_2, arg_3, arg_4);
diff --git a/test/tint/builtins/gen/var/textureGatherCompare/313add.wgsl b/test/tint/builtins/gen/var/textureGatherCompare/313add.wgsl
index 6dee4b9..58b2f55 100644
--- a/test/tint/builtins/gen/var/textureGatherCompare/313add.wgsl
+++ b/test/tint/builtins/gen/var/textureGatherCompare/313add.wgsl
@@ -25,9 +25,9 @@
 
 // fn textureGatherCompare(texture: texture_depth_2d, sampler: sampler_comparison, coords: vec2<f32>, depth_ref: f32, @const offset: vec2<i32>) -> vec4<f32>
 fn textureGatherCompare_313add() {
-  var arg_2 = vec2<f32>();
+  var arg_2 = vec2<f32>(1.f);
   var arg_3 = 1.f;
-  const arg_4 = vec2<i32>();
+  const arg_4 = vec2<i32>(1i);
   var res: vec4<f32> = textureGatherCompare(arg_0, arg_1, arg_2, arg_3, arg_4);
 }
 
diff --git a/test/tint/builtins/gen/var/textureGatherCompare/313add.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureGatherCompare/313add.wgsl.expected.dxc.hlsl
index c92a22b..46845ac 100644
--- a/test/tint/builtins/gen/var/textureGatherCompare/313add.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGatherCompare/313add.wgsl.expected.dxc.hlsl
@@ -2,9 +2,9 @@
 SamplerComparisonState arg_1 : register(s1, space1);
 
 void textureGatherCompare_313add() {
-  float2 arg_2 = (0.0f).xx;
+  float2 arg_2 = (1.0f).xx;
   float arg_3 = 1.0f;
-  float4 res = arg_0.GatherCmp(arg_1, arg_2, arg_3, (0).xx);
+  float4 res = arg_0.GatherCmp(arg_1, arg_2, arg_3, (1).xx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/textureGatherCompare/313add.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureGatherCompare/313add.wgsl.expected.fxc.hlsl
index c92a22b..46845ac 100644
--- a/test/tint/builtins/gen/var/textureGatherCompare/313add.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGatherCompare/313add.wgsl.expected.fxc.hlsl
@@ -2,9 +2,9 @@
 SamplerComparisonState arg_1 : register(s1, space1);
 
 void textureGatherCompare_313add() {
-  float2 arg_2 = (0.0f).xx;
+  float2 arg_2 = (1.0f).xx;
   float arg_3 = 1.0f;
-  float4 res = arg_0.GatherCmp(arg_1, arg_2, arg_3, (0).xx);
+  float4 res = arg_0.GatherCmp(arg_1, arg_2, arg_3, (1).xx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/textureGatherCompare/313add.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureGatherCompare/313add.wgsl.expected.glsl
index 951aa5a..fc17439 100644
--- a/test/tint/builtins/gen/var/textureGatherCompare/313add.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureGatherCompare/313add.wgsl.expected.glsl
@@ -3,9 +3,9 @@
 uniform highp sampler2DShadow arg_0_arg_1;
 
 void textureGatherCompare_313add() {
-  vec2 arg_2 = vec2(0.0f);
+  vec2 arg_2 = vec2(1.0f);
   float arg_3 = 1.0f;
-  vec4 res = textureGatherOffset(arg_0_arg_1, arg_2, arg_3, ivec2(0));
+  vec4 res = textureGatherOffset(arg_0_arg_1, arg_2, arg_3, ivec2(1));
 }
 
 vec4 vertex_main() {
@@ -27,9 +27,9 @@
 uniform highp sampler2DShadow arg_0_arg_1;
 
 void textureGatherCompare_313add() {
-  vec2 arg_2 = vec2(0.0f);
+  vec2 arg_2 = vec2(1.0f);
   float arg_3 = 1.0f;
-  vec4 res = textureGatherOffset(arg_0_arg_1, arg_2, arg_3, ivec2(0));
+  vec4 res = textureGatherOffset(arg_0_arg_1, arg_2, arg_3, ivec2(1));
 }
 
 void fragment_main() {
@@ -45,9 +45,9 @@
 uniform highp sampler2DShadow arg_0_arg_1;
 
 void textureGatherCompare_313add() {
-  vec2 arg_2 = vec2(0.0f);
+  vec2 arg_2 = vec2(1.0f);
   float arg_3 = 1.0f;
-  vec4 res = textureGatherOffset(arg_0_arg_1, arg_2, arg_3, ivec2(0));
+  vec4 res = textureGatherOffset(arg_0_arg_1, arg_2, arg_3, ivec2(1));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/var/textureGatherCompare/313add.wgsl.expected.msl b/test/tint/builtins/gen/var/textureGatherCompare/313add.wgsl.expected.msl
index 4862938..461ee05 100644
--- a/test/tint/builtins/gen/var/textureGatherCompare/313add.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureGatherCompare/313add.wgsl.expected.msl
@@ -2,9 +2,9 @@
 
 using namespace metal;
 void textureGatherCompare_313add(depth2d<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float2 arg_2 = float2(0.0f);
+  float2 arg_2 = float2(1.0f);
   float arg_3 = 1.0f;
-  float4 res = tint_symbol_1.gather_compare(tint_symbol_2, arg_2, arg_3, int2(0));
+  float4 res = tint_symbol_1.gather_compare(tint_symbol_2, arg_2, arg_3, int2(1));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/textureGatherCompare/313add.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureGatherCompare/313add.wgsl.expected.spvasm
index fe55f7a..2584713 100644
--- a/test/tint/builtins/gen/var/textureGatherCompare/313add.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureGatherCompare/313add.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 51
+; Bound: 53
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -45,51 +45,53 @@
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
-         %20 = OpConstantNull %v2float
-%_ptr_Function_v2float = OpTypePointer Function %v2float
     %float_1 = OpConstant %float 1
+         %21 = OpConstantComposite %v2float %float_1 %float_1
+%_ptr_Function_v2float = OpTypePointer Function %v2float
+         %24 = OpConstantNull %v2float
 %_ptr_Function_float = OpTypePointer Function %float
-         %29 = OpTypeSampledImage %11
+         %30 = OpTypeSampledImage %11
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
-         %35 = OpConstantNull %v2int
+      %int_1 = OpConstant %int 1
+         %37 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %38 = OpTypeFunction %v4float
+         %40 = OpTypeFunction %v4float
 %textureGatherCompare_313add = OpFunction %void None %15
          %18 = OpLabel
-      %arg_2 = OpVariable %_ptr_Function_v2float Function %20
+      %arg_2 = OpVariable %_ptr_Function_v2float Function %24
       %arg_3 = OpVariable %_ptr_Function_float Function %8
         %res = OpVariable %_ptr_Function_v4float Function %5
-               OpStore %arg_2 %20
+               OpStore %arg_2 %21
                OpStore %arg_3 %float_1
-         %27 = OpLoad %14 %arg_1
-         %28 = OpLoad %11 %arg_0
-         %30 = OpSampledImage %29 %28 %27
-         %31 = OpLoad %v2float %arg_2
-         %32 = OpLoad %float %arg_3
-         %26 = OpImageDrefGather %v4float %30 %31 %32 ConstOffset %35
-               OpStore %res %26
+         %28 = OpLoad %14 %arg_1
+         %29 = OpLoad %11 %arg_0
+         %31 = OpSampledImage %30 %29 %28
+         %32 = OpLoad %v2float %arg_2
+         %33 = OpLoad %float %arg_3
+         %27 = OpImageDrefGather %v4float %31 %32 %33 ConstOffset %37
+               OpStore %res %27
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %38
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureGatherCompare_313add
+%vertex_main_inner = OpFunction %v4float None %40
+         %42 = OpLabel
+         %43 = OpFunctionCall %void %textureGatherCompare_313add
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
-         %43 = OpLabel
-         %44 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %44
+         %45 = OpLabel
+         %46 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %46
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %15
-         %46 = OpLabel
-         %47 = OpFunctionCall %void %textureGatherCompare_313add
+         %48 = OpLabel
+         %49 = OpFunctionCall %void %textureGatherCompare_313add
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %15
-         %49 = OpLabel
-         %50 = OpFunctionCall %void %textureGatherCompare_313add
+         %51 = OpLabel
+         %52 = OpFunctionCall %void %textureGatherCompare_313add
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureGatherCompare/313add.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureGatherCompare/313add.wgsl.expected.wgsl
index bf8dea8..9b3cb2c 100644
--- a/test/tint/builtins/gen/var/textureGatherCompare/313add.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureGatherCompare/313add.wgsl.expected.wgsl
@@ -3,9 +3,9 @@
 @group(1) @binding(1) var arg_1 : sampler_comparison;
 
 fn textureGatherCompare_313add() {
-  var arg_2 = vec2<f32>();
+  var arg_2 = vec2<f32>(1.0f);
   var arg_3 = 1.0f;
-  const arg_4 = vec2<i32>();
+  const arg_4 = vec2<i32>(1i);
   var res : vec4<f32> = textureGatherCompare(arg_0, arg_1, arg_2, arg_3, arg_4);
 }
 
diff --git a/test/tint/builtins/gen/var/textureGatherCompare/60d2d1.wgsl b/test/tint/builtins/gen/var/textureGatherCompare/60d2d1.wgsl
index bfb5ad1..fc82524 100644
--- a/test/tint/builtins/gen/var/textureGatherCompare/60d2d1.wgsl
+++ b/test/tint/builtins/gen/var/textureGatherCompare/60d2d1.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureGatherCompare(texture: texture_depth_cube_array, sampler: sampler_comparison, coords: vec3<f32>, array_index: i32, depth_ref: f32) -> vec4<f32>
 fn textureGatherCompare_60d2d1() {
-  var arg_2 = vec3<f32>();
+  var arg_2 = vec3<f32>(1.f);
   var arg_3 = 1i;
   var arg_4 = 1.f;
   var res: vec4<f32> = textureGatherCompare(arg_0, arg_1, arg_2, arg_3, arg_4);
diff --git a/test/tint/builtins/gen/var/textureGatherCompare/60d2d1.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureGatherCompare/60d2d1.wgsl.expected.dxc.hlsl
index a0284d8..76afffa 100644
--- a/test/tint/builtins/gen/var/textureGatherCompare/60d2d1.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGatherCompare/60d2d1.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerComparisonState arg_1 : register(s1, space1);
 
 void textureGatherCompare_60d2d1() {
-  float3 arg_2 = (0.0f).xxx;
+  float3 arg_2 = (1.0f).xxx;
   int arg_3 = 1;
   float arg_4 = 1.0f;
   float4 res = arg_0.GatherCmp(arg_1, float4(arg_2, float(arg_3)), arg_4);
diff --git a/test/tint/builtins/gen/var/textureGatherCompare/60d2d1.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureGatherCompare/60d2d1.wgsl.expected.fxc.hlsl
index a0284d8..76afffa 100644
--- a/test/tint/builtins/gen/var/textureGatherCompare/60d2d1.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGatherCompare/60d2d1.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerComparisonState arg_1 : register(s1, space1);
 
 void textureGatherCompare_60d2d1() {
-  float3 arg_2 = (0.0f).xxx;
+  float3 arg_2 = (1.0f).xxx;
   int arg_3 = 1;
   float arg_4 = 1.0f;
   float4 res = arg_0.GatherCmp(arg_1, float4(arg_2, float(arg_3)), arg_4);
diff --git a/test/tint/builtins/gen/var/textureGatherCompare/60d2d1.wgsl.expected.msl b/test/tint/builtins/gen/var/textureGatherCompare/60d2d1.wgsl.expected.msl
index 682a170..ee19149 100644
--- a/test/tint/builtins/gen/var/textureGatherCompare/60d2d1.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureGatherCompare/60d2d1.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureGatherCompare_60d2d1(depthcube_array<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float3 arg_2 = float3(0.0f);
+  float3 arg_2 = float3(1.0f);
   int arg_3 = 1;
   float arg_4 = 1.0f;
   float4 res = tint_symbol_1.gather_compare(tint_symbol_2, arg_2, arg_3, arg_4);
diff --git a/test/tint/builtins/gen/var/textureGatherCompare/60d2d1.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureGatherCompare/60d2d1.wgsl.expected.spvasm
index 660f0f3..2320452 100644
--- a/test/tint/builtins/gen/var/textureGatherCompare/60d2d1.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureGatherCompare/60d2d1.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 59
+; Bound: 60
 ; Schema: 0
                OpCapability Shader
                OpCapability SampledCubeArray
@@ -47,60 +47,61 @@
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
     %v3float = OpTypeVector %float 3
-         %20 = OpConstantNull %v3float
+    %float_1 = OpConstant %float 1
+         %21 = OpConstantComposite %v3float %float_1 %float_1 %float_1
 %_ptr_Function_v3float = OpTypePointer Function %v3float
+         %24 = OpConstantNull %v3float
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
-         %27 = OpConstantNull %int
-    %float_1 = OpConstant %float 1
+         %29 = OpConstantNull %int
 %_ptr_Function_float = OpTypePointer Function %float
-         %34 = OpTypeSampledImage %11
+         %35 = OpTypeSampledImage %11
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %46 = OpTypeFunction %v4float
+         %47 = OpTypeFunction %v4float
 %textureGatherCompare_60d2d1 = OpFunction %void None %15
          %18 = OpLabel
-      %arg_2 = OpVariable %_ptr_Function_v3float Function %20
-      %arg_3 = OpVariable %_ptr_Function_int Function %27
+      %arg_2 = OpVariable %_ptr_Function_v3float Function %24
+      %arg_3 = OpVariable %_ptr_Function_int Function %29
       %arg_4 = OpVariable %_ptr_Function_float Function %8
         %res = OpVariable %_ptr_Function_v4float Function %5
-               OpStore %arg_2 %20
+               OpStore %arg_2 %21
                OpStore %arg_3 %int_1
                OpStore %arg_4 %float_1
-         %32 = OpLoad %14 %arg_1
-         %33 = OpLoad %11 %arg_0
-         %35 = OpSampledImage %34 %33 %32
-         %36 = OpLoad %v3float %arg_2
-         %37 = OpCompositeExtract %float %36 0
-         %38 = OpCompositeExtract %float %36 1
-         %39 = OpCompositeExtract %float %36 2
-         %41 = OpLoad %int %arg_3
-         %40 = OpConvertSToF %float %41
-         %42 = OpCompositeConstruct %v4float %37 %38 %39 %40
-         %43 = OpLoad %float %arg_4
-         %31 = OpImageDrefGather %v4float %35 %42 %43
-               OpStore %res %31
+         %33 = OpLoad %14 %arg_1
+         %34 = OpLoad %11 %arg_0
+         %36 = OpSampledImage %35 %34 %33
+         %37 = OpLoad %v3float %arg_2
+         %38 = OpCompositeExtract %float %37 0
+         %39 = OpCompositeExtract %float %37 1
+         %40 = OpCompositeExtract %float %37 2
+         %42 = OpLoad %int %arg_3
+         %41 = OpConvertSToF %float %42
+         %43 = OpCompositeConstruct %v4float %38 %39 %40 %41
+         %44 = OpLoad %float %arg_4
+         %32 = OpImageDrefGather %v4float %36 %43 %44
+               OpStore %res %32
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %46
-         %48 = OpLabel
-         %49 = OpFunctionCall %void %textureGatherCompare_60d2d1
+%vertex_main_inner = OpFunction %v4float None %47
+         %49 = OpLabel
+         %50 = OpFunctionCall %void %textureGatherCompare_60d2d1
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
-         %51 = OpLabel
-         %52 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %52
+         %52 = OpLabel
+         %53 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %53
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %15
-         %54 = OpLabel
-         %55 = OpFunctionCall %void %textureGatherCompare_60d2d1
+         %55 = OpLabel
+         %56 = OpFunctionCall %void %textureGatherCompare_60d2d1
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %15
-         %57 = OpLabel
-         %58 = OpFunctionCall %void %textureGatherCompare_60d2d1
+         %58 = OpLabel
+         %59 = OpFunctionCall %void %textureGatherCompare_60d2d1
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureGatherCompare/60d2d1.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureGatherCompare/60d2d1.wgsl.expected.wgsl
index 4ecb26c..3937d85 100644
--- a/test/tint/builtins/gen/var/textureGatherCompare/60d2d1.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureGatherCompare/60d2d1.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(1) var arg_1 : sampler_comparison;
 
 fn textureGatherCompare_60d2d1() {
-  var arg_2 = vec3<f32>();
+  var arg_2 = vec3<f32>(1.0f);
   var arg_3 = 1i;
   var arg_4 = 1.0f;
   var res : vec4<f32> = textureGatherCompare(arg_0, arg_1, arg_2, arg_3, arg_4);
diff --git a/test/tint/builtins/gen/var/textureGatherCompare/6d9352.wgsl b/test/tint/builtins/gen/var/textureGatherCompare/6d9352.wgsl
index 083163e..5802254 100644
--- a/test/tint/builtins/gen/var/textureGatherCompare/6d9352.wgsl
+++ b/test/tint/builtins/gen/var/textureGatherCompare/6d9352.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureGatherCompare(texture: texture_depth_2d, sampler: sampler_comparison, coords: vec2<f32>, depth_ref: f32) -> vec4<f32>
 fn textureGatherCompare_6d9352() {
-  var arg_2 = vec2<f32>();
+  var arg_2 = vec2<f32>(1.f);
   var arg_3 = 1.f;
   var res: vec4<f32> = textureGatherCompare(arg_0, arg_1, arg_2, arg_3);
 }
diff --git a/test/tint/builtins/gen/var/textureGatherCompare/6d9352.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureGatherCompare/6d9352.wgsl.expected.dxc.hlsl
index 6c7d0f4..d136dca 100644
--- a/test/tint/builtins/gen/var/textureGatherCompare/6d9352.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGatherCompare/6d9352.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerComparisonState arg_1 : register(s1, space1);
 
 void textureGatherCompare_6d9352() {
-  float2 arg_2 = (0.0f).xx;
+  float2 arg_2 = (1.0f).xx;
   float arg_3 = 1.0f;
   float4 res = arg_0.GatherCmp(arg_1, arg_2, arg_3);
 }
diff --git a/test/tint/builtins/gen/var/textureGatherCompare/6d9352.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureGatherCompare/6d9352.wgsl.expected.fxc.hlsl
index 6c7d0f4..d136dca 100644
--- a/test/tint/builtins/gen/var/textureGatherCompare/6d9352.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGatherCompare/6d9352.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerComparisonState arg_1 : register(s1, space1);
 
 void textureGatherCompare_6d9352() {
-  float2 arg_2 = (0.0f).xx;
+  float2 arg_2 = (1.0f).xx;
   float arg_3 = 1.0f;
   float4 res = arg_0.GatherCmp(arg_1, arg_2, arg_3);
 }
diff --git a/test/tint/builtins/gen/var/textureGatherCompare/6d9352.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureGatherCompare/6d9352.wgsl.expected.glsl
index b57e663..94b92bb 100644
--- a/test/tint/builtins/gen/var/textureGatherCompare/6d9352.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureGatherCompare/6d9352.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 uniform highp sampler2DShadow arg_0_arg_1;
 
 void textureGatherCompare_6d9352() {
-  vec2 arg_2 = vec2(0.0f);
+  vec2 arg_2 = vec2(1.0f);
   float arg_3 = 1.0f;
   vec4 res = textureGather(arg_0_arg_1, arg_2, arg_3);
 }
@@ -27,7 +27,7 @@
 uniform highp sampler2DShadow arg_0_arg_1;
 
 void textureGatherCompare_6d9352() {
-  vec2 arg_2 = vec2(0.0f);
+  vec2 arg_2 = vec2(1.0f);
   float arg_3 = 1.0f;
   vec4 res = textureGather(arg_0_arg_1, arg_2, arg_3);
 }
@@ -45,7 +45,7 @@
 uniform highp sampler2DShadow arg_0_arg_1;
 
 void textureGatherCompare_6d9352() {
-  vec2 arg_2 = vec2(0.0f);
+  vec2 arg_2 = vec2(1.0f);
   float arg_3 = 1.0f;
   vec4 res = textureGather(arg_0_arg_1, arg_2, arg_3);
 }
diff --git a/test/tint/builtins/gen/var/textureGatherCompare/6d9352.wgsl.expected.msl b/test/tint/builtins/gen/var/textureGatherCompare/6d9352.wgsl.expected.msl
index ce42345..2dc296d 100644
--- a/test/tint/builtins/gen/var/textureGatherCompare/6d9352.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureGatherCompare/6d9352.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureGatherCompare_6d9352(depth2d<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float2 arg_2 = float2(0.0f);
+  float2 arg_2 = float2(1.0f);
   float arg_3 = 1.0f;
   float4 res = tint_symbol_1.gather_compare(tint_symbol_2, arg_2, arg_3);
 }
diff --git a/test/tint/builtins/gen/var/textureGatherCompare/6d9352.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureGatherCompare/6d9352.wgsl.expected.spvasm
index 0a6a857..eaab3ee 100644
--- a/test/tint/builtins/gen/var/textureGatherCompare/6d9352.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureGatherCompare/6d9352.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 48
+; Bound: 49
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -45,48 +45,49 @@
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
-         %20 = OpConstantNull %v2float
-%_ptr_Function_v2float = OpTypePointer Function %v2float
     %float_1 = OpConstant %float 1
+         %21 = OpConstantComposite %v2float %float_1 %float_1
+%_ptr_Function_v2float = OpTypePointer Function %v2float
+         %24 = OpConstantNull %v2float
 %_ptr_Function_float = OpTypePointer Function %float
-         %29 = OpTypeSampledImage %11
+         %30 = OpTypeSampledImage %11
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %35 = OpTypeFunction %v4float
+         %36 = OpTypeFunction %v4float
 %textureGatherCompare_6d9352 = OpFunction %void None %15
          %18 = OpLabel
-      %arg_2 = OpVariable %_ptr_Function_v2float Function %20
+      %arg_2 = OpVariable %_ptr_Function_v2float Function %24
       %arg_3 = OpVariable %_ptr_Function_float Function %8
         %res = OpVariable %_ptr_Function_v4float Function %5
-               OpStore %arg_2 %20
+               OpStore %arg_2 %21
                OpStore %arg_3 %float_1
-         %27 = OpLoad %14 %arg_1
-         %28 = OpLoad %11 %arg_0
-         %30 = OpSampledImage %29 %28 %27
-         %31 = OpLoad %v2float %arg_2
-         %32 = OpLoad %float %arg_3
-         %26 = OpImageDrefGather %v4float %30 %31 %32
-               OpStore %res %26
+         %28 = OpLoad %14 %arg_1
+         %29 = OpLoad %11 %arg_0
+         %31 = OpSampledImage %30 %29 %28
+         %32 = OpLoad %v2float %arg_2
+         %33 = OpLoad %float %arg_3
+         %27 = OpImageDrefGather %v4float %31 %32 %33
+               OpStore %res %27
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %35
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureGatherCompare_6d9352
+%vertex_main_inner = OpFunction %v4float None %36
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %textureGatherCompare_6d9352
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
-         %40 = OpLabel
-         %41 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %41
+         %41 = OpLabel
+         %42 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %42
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %15
-         %43 = OpLabel
-         %44 = OpFunctionCall %void %textureGatherCompare_6d9352
+         %44 = OpLabel
+         %45 = OpFunctionCall %void %textureGatherCompare_6d9352
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %15
-         %46 = OpLabel
-         %47 = OpFunctionCall %void %textureGatherCompare_6d9352
+         %47 = OpLabel
+         %48 = OpFunctionCall %void %textureGatherCompare_6d9352
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureGatherCompare/6d9352.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureGatherCompare/6d9352.wgsl.expected.wgsl
index c202682..e7aff07 100644
--- a/test/tint/builtins/gen/var/textureGatherCompare/6d9352.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureGatherCompare/6d9352.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(1) var arg_1 : sampler_comparison;
 
 fn textureGatherCompare_6d9352() {
-  var arg_2 = vec2<f32>();
+  var arg_2 = vec2<f32>(1.0f);
   var arg_3 = 1.0f;
   var res : vec4<f32> = textureGatherCompare(arg_0, arg_1, arg_2, arg_3);
 }
diff --git a/test/tint/builtins/gen/var/textureGatherCompare/783e65.wgsl b/test/tint/builtins/gen/var/textureGatherCompare/783e65.wgsl
index f3d7bbb..60450e1 100644
--- a/test/tint/builtins/gen/var/textureGatherCompare/783e65.wgsl
+++ b/test/tint/builtins/gen/var/textureGatherCompare/783e65.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureGatherCompare(texture: texture_depth_2d_array, sampler: sampler_comparison, coords: vec2<f32>, array_index: i32, depth_ref: f32) -> vec4<f32>
 fn textureGatherCompare_783e65() {
-  var arg_2 = vec2<f32>();
+  var arg_2 = vec2<f32>(1.f);
   var arg_3 = 1i;
   var arg_4 = 1.f;
   var res: vec4<f32> = textureGatherCompare(arg_0, arg_1, arg_2, arg_3, arg_4);
diff --git a/test/tint/builtins/gen/var/textureGatherCompare/783e65.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureGatherCompare/783e65.wgsl.expected.dxc.hlsl
index c0b2cce..827c246 100644
--- a/test/tint/builtins/gen/var/textureGatherCompare/783e65.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGatherCompare/783e65.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerComparisonState arg_1 : register(s1, space1);
 
 void textureGatherCompare_783e65() {
-  float2 arg_2 = (0.0f).xx;
+  float2 arg_2 = (1.0f).xx;
   int arg_3 = 1;
   float arg_4 = 1.0f;
   float4 res = arg_0.GatherCmp(arg_1, float3(arg_2, float(arg_3)), arg_4);
diff --git a/test/tint/builtins/gen/var/textureGatherCompare/783e65.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureGatherCompare/783e65.wgsl.expected.fxc.hlsl
index c0b2cce..827c246 100644
--- a/test/tint/builtins/gen/var/textureGatherCompare/783e65.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGatherCompare/783e65.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerComparisonState arg_1 : register(s1, space1);
 
 void textureGatherCompare_783e65() {
-  float2 arg_2 = (0.0f).xx;
+  float2 arg_2 = (1.0f).xx;
   int arg_3 = 1;
   float arg_4 = 1.0f;
   float4 res = arg_0.GatherCmp(arg_1, float3(arg_2, float(arg_3)), arg_4);
diff --git a/test/tint/builtins/gen/var/textureGatherCompare/783e65.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureGatherCompare/783e65.wgsl.expected.glsl
index 84f32d5..a137b93 100644
--- a/test/tint/builtins/gen/var/textureGatherCompare/783e65.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureGatherCompare/783e65.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 uniform highp sampler2DArrayShadow arg_0_arg_1;
 
 void textureGatherCompare_783e65() {
-  vec2 arg_2 = vec2(0.0f);
+  vec2 arg_2 = vec2(1.0f);
   int arg_3 = 1;
   float arg_4 = 1.0f;
   vec4 res = textureGather(arg_0_arg_1, vec3(arg_2, float(arg_3)), arg_4);
@@ -28,7 +28,7 @@
 uniform highp sampler2DArrayShadow arg_0_arg_1;
 
 void textureGatherCompare_783e65() {
-  vec2 arg_2 = vec2(0.0f);
+  vec2 arg_2 = vec2(1.0f);
   int arg_3 = 1;
   float arg_4 = 1.0f;
   vec4 res = textureGather(arg_0_arg_1, vec3(arg_2, float(arg_3)), arg_4);
@@ -47,7 +47,7 @@
 uniform highp sampler2DArrayShadow arg_0_arg_1;
 
 void textureGatherCompare_783e65() {
-  vec2 arg_2 = vec2(0.0f);
+  vec2 arg_2 = vec2(1.0f);
   int arg_3 = 1;
   float arg_4 = 1.0f;
   vec4 res = textureGather(arg_0_arg_1, vec3(arg_2, float(arg_3)), arg_4);
diff --git a/test/tint/builtins/gen/var/textureGatherCompare/783e65.wgsl.expected.msl b/test/tint/builtins/gen/var/textureGatherCompare/783e65.wgsl.expected.msl
index b6aade7..5d7179d 100644
--- a/test/tint/builtins/gen/var/textureGatherCompare/783e65.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureGatherCompare/783e65.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureGatherCompare_783e65(depth2d_array<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float2 arg_2 = float2(0.0f);
+  float2 arg_2 = float2(1.0f);
   int arg_3 = 1;
   float arg_4 = 1.0f;
   float4 res = tint_symbol_1.gather_compare(tint_symbol_2, arg_2, arg_3, arg_4);
diff --git a/test/tint/builtins/gen/var/textureGatherCompare/783e65.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureGatherCompare/783e65.wgsl.expected.spvasm
index 9b37b33..9d93082 100644
--- a/test/tint/builtins/gen/var/textureGatherCompare/783e65.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureGatherCompare/783e65.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 59
+; Bound: 60
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -46,60 +46,61 @@
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
-         %20 = OpConstantNull %v2float
+    %float_1 = OpConstant %float 1
+         %21 = OpConstantComposite %v2float %float_1 %float_1
 %_ptr_Function_v2float = OpTypePointer Function %v2float
+         %24 = OpConstantNull %v2float
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
-         %27 = OpConstantNull %int
-    %float_1 = OpConstant %float 1
+         %29 = OpConstantNull %int
 %_ptr_Function_float = OpTypePointer Function %float
-         %34 = OpTypeSampledImage %11
+         %35 = OpTypeSampledImage %11
     %v3float = OpTypeVector %float 3
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %46 = OpTypeFunction %v4float
+         %47 = OpTypeFunction %v4float
 %textureGatherCompare_783e65 = OpFunction %void None %15
          %18 = OpLabel
-      %arg_2 = OpVariable %_ptr_Function_v2float Function %20
-      %arg_3 = OpVariable %_ptr_Function_int Function %27
+      %arg_2 = OpVariable %_ptr_Function_v2float Function %24
+      %arg_3 = OpVariable %_ptr_Function_int Function %29
       %arg_4 = OpVariable %_ptr_Function_float Function %8
         %res = OpVariable %_ptr_Function_v4float Function %5
-               OpStore %arg_2 %20
+               OpStore %arg_2 %21
                OpStore %arg_3 %int_1
                OpStore %arg_4 %float_1
-         %32 = OpLoad %14 %arg_1
-         %33 = OpLoad %11 %arg_0
-         %35 = OpSampledImage %34 %33 %32
-         %37 = OpLoad %v2float %arg_2
-         %38 = OpCompositeExtract %float %37 0
-         %39 = OpCompositeExtract %float %37 1
-         %41 = OpLoad %int %arg_3
-         %40 = OpConvertSToF %float %41
-         %42 = OpCompositeConstruct %v3float %38 %39 %40
-         %43 = OpLoad %float %arg_4
-         %31 = OpImageDrefGather %v4float %35 %42 %43
-               OpStore %res %31
+         %33 = OpLoad %14 %arg_1
+         %34 = OpLoad %11 %arg_0
+         %36 = OpSampledImage %35 %34 %33
+         %38 = OpLoad %v2float %arg_2
+         %39 = OpCompositeExtract %float %38 0
+         %40 = OpCompositeExtract %float %38 1
+         %42 = OpLoad %int %arg_3
+         %41 = OpConvertSToF %float %42
+         %43 = OpCompositeConstruct %v3float %39 %40 %41
+         %44 = OpLoad %float %arg_4
+         %32 = OpImageDrefGather %v4float %36 %43 %44
+               OpStore %res %32
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %46
-         %48 = OpLabel
-         %49 = OpFunctionCall %void %textureGatherCompare_783e65
+%vertex_main_inner = OpFunction %v4float None %47
+         %49 = OpLabel
+         %50 = OpFunctionCall %void %textureGatherCompare_783e65
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
-         %51 = OpLabel
-         %52 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %52
+         %52 = OpLabel
+         %53 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %53
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %15
-         %54 = OpLabel
-         %55 = OpFunctionCall %void %textureGatherCompare_783e65
+         %55 = OpLabel
+         %56 = OpFunctionCall %void %textureGatherCompare_783e65
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %15
-         %57 = OpLabel
-         %58 = OpFunctionCall %void %textureGatherCompare_783e65
+         %58 = OpLabel
+         %59 = OpFunctionCall %void %textureGatherCompare_783e65
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureGatherCompare/783e65.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureGatherCompare/783e65.wgsl.expected.wgsl
index f6d5b8f..cbb0d13 100644
--- a/test/tint/builtins/gen/var/textureGatherCompare/783e65.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureGatherCompare/783e65.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(1) var arg_1 : sampler_comparison;
 
 fn textureGatherCompare_783e65() {
-  var arg_2 = vec2<f32>();
+  var arg_2 = vec2<f32>(1.0f);
   var arg_3 = 1i;
   var arg_4 = 1.0f;
   var res : vec4<f32> = textureGatherCompare(arg_0, arg_1, arg_2, arg_3, arg_4);
diff --git a/test/tint/builtins/gen/var/textureGatherCompare/b5bc43.wgsl b/test/tint/builtins/gen/var/textureGatherCompare/b5bc43.wgsl
index 0dd8c4d..03eef71 100644
--- a/test/tint/builtins/gen/var/textureGatherCompare/b5bc43.wgsl
+++ b/test/tint/builtins/gen/var/textureGatherCompare/b5bc43.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureGatherCompare(texture: texture_depth_2d_array, sampler: sampler_comparison, coords: vec2<f32>, array_index: u32, depth_ref: f32) -> vec4<f32>
 fn textureGatherCompare_b5bc43() {
-  var arg_2 = vec2<f32>();
+  var arg_2 = vec2<f32>(1.f);
   var arg_3 = 1u;
   var arg_4 = 1.f;
   var res: vec4<f32> = textureGatherCompare(arg_0, arg_1, arg_2, arg_3, arg_4);
diff --git a/test/tint/builtins/gen/var/textureGatherCompare/b5bc43.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureGatherCompare/b5bc43.wgsl.expected.dxc.hlsl
index f663775..a4ffc04 100644
--- a/test/tint/builtins/gen/var/textureGatherCompare/b5bc43.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGatherCompare/b5bc43.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerComparisonState arg_1 : register(s1, space1);
 
 void textureGatherCompare_b5bc43() {
-  float2 arg_2 = (0.0f).xx;
+  float2 arg_2 = (1.0f).xx;
   uint arg_3 = 1u;
   float arg_4 = 1.0f;
   float4 res = arg_0.GatherCmp(arg_1, float3(arg_2, float(arg_3)), arg_4);
diff --git a/test/tint/builtins/gen/var/textureGatherCompare/b5bc43.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureGatherCompare/b5bc43.wgsl.expected.fxc.hlsl
index f663775..a4ffc04 100644
--- a/test/tint/builtins/gen/var/textureGatherCompare/b5bc43.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGatherCompare/b5bc43.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerComparisonState arg_1 : register(s1, space1);
 
 void textureGatherCompare_b5bc43() {
-  float2 arg_2 = (0.0f).xx;
+  float2 arg_2 = (1.0f).xx;
   uint arg_3 = 1u;
   float arg_4 = 1.0f;
   float4 res = arg_0.GatherCmp(arg_1, float3(arg_2, float(arg_3)), arg_4);
diff --git a/test/tint/builtins/gen/var/textureGatherCompare/b5bc43.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureGatherCompare/b5bc43.wgsl.expected.glsl
index 5e394d1..ecc3638 100644
--- a/test/tint/builtins/gen/var/textureGatherCompare/b5bc43.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureGatherCompare/b5bc43.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 uniform highp sampler2DArrayShadow arg_0_arg_1;
 
 void textureGatherCompare_b5bc43() {
-  vec2 arg_2 = vec2(0.0f);
+  vec2 arg_2 = vec2(1.0f);
   uint arg_3 = 1u;
   float arg_4 = 1.0f;
   vec4 res = textureGather(arg_0_arg_1, vec3(arg_2, float(arg_3)), arg_4);
@@ -28,7 +28,7 @@
 uniform highp sampler2DArrayShadow arg_0_arg_1;
 
 void textureGatherCompare_b5bc43() {
-  vec2 arg_2 = vec2(0.0f);
+  vec2 arg_2 = vec2(1.0f);
   uint arg_3 = 1u;
   float arg_4 = 1.0f;
   vec4 res = textureGather(arg_0_arg_1, vec3(arg_2, float(arg_3)), arg_4);
@@ -47,7 +47,7 @@
 uniform highp sampler2DArrayShadow arg_0_arg_1;
 
 void textureGatherCompare_b5bc43() {
-  vec2 arg_2 = vec2(0.0f);
+  vec2 arg_2 = vec2(1.0f);
   uint arg_3 = 1u;
   float arg_4 = 1.0f;
   vec4 res = textureGather(arg_0_arg_1, vec3(arg_2, float(arg_3)), arg_4);
diff --git a/test/tint/builtins/gen/var/textureGatherCompare/b5bc43.wgsl.expected.msl b/test/tint/builtins/gen/var/textureGatherCompare/b5bc43.wgsl.expected.msl
index 24c567b..31fc042 100644
--- a/test/tint/builtins/gen/var/textureGatherCompare/b5bc43.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureGatherCompare/b5bc43.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureGatherCompare_b5bc43(depth2d_array<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float2 arg_2 = float2(0.0f);
+  float2 arg_2 = float2(1.0f);
   uint arg_3 = 1u;
   float arg_4 = 1.0f;
   float4 res = tint_symbol_1.gather_compare(tint_symbol_2, arg_2, arg_3, arg_4);
diff --git a/test/tint/builtins/gen/var/textureGatherCompare/b5bc43.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureGatherCompare/b5bc43.wgsl.expected.spvasm
index 770ddcf..e67de9f 100644
--- a/test/tint/builtins/gen/var/textureGatherCompare/b5bc43.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureGatherCompare/b5bc43.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 59
+; Bound: 60
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -46,60 +46,61 @@
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
-         %20 = OpConstantNull %v2float
+    %float_1 = OpConstant %float 1
+         %21 = OpConstantComposite %v2float %float_1 %float_1
 %_ptr_Function_v2float = OpTypePointer Function %v2float
+         %24 = OpConstantNull %v2float
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %27 = OpConstantNull %uint
-    %float_1 = OpConstant %float 1
+         %29 = OpConstantNull %uint
 %_ptr_Function_float = OpTypePointer Function %float
-         %34 = OpTypeSampledImage %11
+         %35 = OpTypeSampledImage %11
     %v3float = OpTypeVector %float 3
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %46 = OpTypeFunction %v4float
+         %47 = OpTypeFunction %v4float
 %textureGatherCompare_b5bc43 = OpFunction %void None %15
          %18 = OpLabel
-      %arg_2 = OpVariable %_ptr_Function_v2float Function %20
-      %arg_3 = OpVariable %_ptr_Function_uint Function %27
+      %arg_2 = OpVariable %_ptr_Function_v2float Function %24
+      %arg_3 = OpVariable %_ptr_Function_uint Function %29
       %arg_4 = OpVariable %_ptr_Function_float Function %8
         %res = OpVariable %_ptr_Function_v4float Function %5
-               OpStore %arg_2 %20
+               OpStore %arg_2 %21
                OpStore %arg_3 %uint_1
                OpStore %arg_4 %float_1
-         %32 = OpLoad %14 %arg_1
-         %33 = OpLoad %11 %arg_0
-         %35 = OpSampledImage %34 %33 %32
-         %37 = OpLoad %v2float %arg_2
-         %38 = OpCompositeExtract %float %37 0
-         %39 = OpCompositeExtract %float %37 1
-         %41 = OpLoad %uint %arg_3
-         %40 = OpConvertUToF %float %41
-         %42 = OpCompositeConstruct %v3float %38 %39 %40
-         %43 = OpLoad %float %arg_4
-         %31 = OpImageDrefGather %v4float %35 %42 %43
-               OpStore %res %31
+         %33 = OpLoad %14 %arg_1
+         %34 = OpLoad %11 %arg_0
+         %36 = OpSampledImage %35 %34 %33
+         %38 = OpLoad %v2float %arg_2
+         %39 = OpCompositeExtract %float %38 0
+         %40 = OpCompositeExtract %float %38 1
+         %42 = OpLoad %uint %arg_3
+         %41 = OpConvertUToF %float %42
+         %43 = OpCompositeConstruct %v3float %39 %40 %41
+         %44 = OpLoad %float %arg_4
+         %32 = OpImageDrefGather %v4float %36 %43 %44
+               OpStore %res %32
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %46
-         %48 = OpLabel
-         %49 = OpFunctionCall %void %textureGatherCompare_b5bc43
+%vertex_main_inner = OpFunction %v4float None %47
+         %49 = OpLabel
+         %50 = OpFunctionCall %void %textureGatherCompare_b5bc43
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
-         %51 = OpLabel
-         %52 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %52
+         %52 = OpLabel
+         %53 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %53
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %15
-         %54 = OpLabel
-         %55 = OpFunctionCall %void %textureGatherCompare_b5bc43
+         %55 = OpLabel
+         %56 = OpFunctionCall %void %textureGatherCompare_b5bc43
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %15
-         %57 = OpLabel
-         %58 = OpFunctionCall %void %textureGatherCompare_b5bc43
+         %58 = OpLabel
+         %59 = OpFunctionCall %void %textureGatherCompare_b5bc43
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureGatherCompare/b5bc43.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureGatherCompare/b5bc43.wgsl.expected.wgsl
index a17ccf0..7740030 100644
--- a/test/tint/builtins/gen/var/textureGatherCompare/b5bc43.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureGatherCompare/b5bc43.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(1) var arg_1 : sampler_comparison;
 
 fn textureGatherCompare_b5bc43() {
-  var arg_2 = vec2<f32>();
+  var arg_2 = vec2<f32>(1.0f);
   var arg_3 = 1u;
   var arg_4 = 1.0f;
   var res : vec4<f32> = textureGatherCompare(arg_0, arg_1, arg_2, arg_3, arg_4);
diff --git a/test/tint/builtins/gen/var/textureGatherCompare/f585cc.wgsl b/test/tint/builtins/gen/var/textureGatherCompare/f585cc.wgsl
index a9cb427..f742acd 100644
--- a/test/tint/builtins/gen/var/textureGatherCompare/f585cc.wgsl
+++ b/test/tint/builtins/gen/var/textureGatherCompare/f585cc.wgsl
@@ -25,10 +25,10 @@
 
 // fn textureGatherCompare(texture: texture_depth_2d_array, sampler: sampler_comparison, coords: vec2<f32>, array_index: i32, depth_ref: f32, @const offset: vec2<i32>) -> vec4<f32>
 fn textureGatherCompare_f585cc() {
-  var arg_2 = vec2<f32>();
+  var arg_2 = vec2<f32>(1.f);
   var arg_3 = 1i;
   var arg_4 = 1.f;
-  const arg_5 = vec2<i32>();
+  const arg_5 = vec2<i32>(1i);
   var res: vec4<f32> = textureGatherCompare(arg_0, arg_1, arg_2, arg_3, arg_4, arg_5);
 }
 
diff --git a/test/tint/builtins/gen/var/textureGatherCompare/f585cc.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureGatherCompare/f585cc.wgsl.expected.dxc.hlsl
index eef0720..f4905b5 100644
--- a/test/tint/builtins/gen/var/textureGatherCompare/f585cc.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGatherCompare/f585cc.wgsl.expected.dxc.hlsl
@@ -2,10 +2,10 @@
 SamplerComparisonState arg_1 : register(s1, space1);
 
 void textureGatherCompare_f585cc() {
-  float2 arg_2 = (0.0f).xx;
+  float2 arg_2 = (1.0f).xx;
   int arg_3 = 1;
   float arg_4 = 1.0f;
-  float4 res = arg_0.GatherCmp(arg_1, float3(arg_2, float(arg_3)), arg_4, (0).xx);
+  float4 res = arg_0.GatherCmp(arg_1, float3(arg_2, float(arg_3)), arg_4, (1).xx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/textureGatherCompare/f585cc.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureGatherCompare/f585cc.wgsl.expected.fxc.hlsl
index eef0720..f4905b5 100644
--- a/test/tint/builtins/gen/var/textureGatherCompare/f585cc.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGatherCompare/f585cc.wgsl.expected.fxc.hlsl
@@ -2,10 +2,10 @@
 SamplerComparisonState arg_1 : register(s1, space1);
 
 void textureGatherCompare_f585cc() {
-  float2 arg_2 = (0.0f).xx;
+  float2 arg_2 = (1.0f).xx;
   int arg_3 = 1;
   float arg_4 = 1.0f;
-  float4 res = arg_0.GatherCmp(arg_1, float3(arg_2, float(arg_3)), arg_4, (0).xx);
+  float4 res = arg_0.GatherCmp(arg_1, float3(arg_2, float(arg_3)), arg_4, (1).xx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/textureGatherCompare/f585cc.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureGatherCompare/f585cc.wgsl.expected.glsl
index 8ae1b0a..38f91d2 100644
--- a/test/tint/builtins/gen/var/textureGatherCompare/f585cc.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureGatherCompare/f585cc.wgsl.expected.glsl
@@ -3,10 +3,10 @@
 uniform highp sampler2DArrayShadow arg_0_arg_1;
 
 void textureGatherCompare_f585cc() {
-  vec2 arg_2 = vec2(0.0f);
+  vec2 arg_2 = vec2(1.0f);
   int arg_3 = 1;
   float arg_4 = 1.0f;
-  vec4 res = textureGatherOffset(arg_0_arg_1, vec3(arg_2, float(arg_3)), arg_4, ivec2(0));
+  vec4 res = textureGatherOffset(arg_0_arg_1, vec3(arg_2, float(arg_3)), arg_4, ivec2(1));
 }
 
 vec4 vertex_main() {
@@ -28,10 +28,10 @@
 uniform highp sampler2DArrayShadow arg_0_arg_1;
 
 void textureGatherCompare_f585cc() {
-  vec2 arg_2 = vec2(0.0f);
+  vec2 arg_2 = vec2(1.0f);
   int arg_3 = 1;
   float arg_4 = 1.0f;
-  vec4 res = textureGatherOffset(arg_0_arg_1, vec3(arg_2, float(arg_3)), arg_4, ivec2(0));
+  vec4 res = textureGatherOffset(arg_0_arg_1, vec3(arg_2, float(arg_3)), arg_4, ivec2(1));
 }
 
 void fragment_main() {
@@ -47,10 +47,10 @@
 uniform highp sampler2DArrayShadow arg_0_arg_1;
 
 void textureGatherCompare_f585cc() {
-  vec2 arg_2 = vec2(0.0f);
+  vec2 arg_2 = vec2(1.0f);
   int arg_3 = 1;
   float arg_4 = 1.0f;
-  vec4 res = textureGatherOffset(arg_0_arg_1, vec3(arg_2, float(arg_3)), arg_4, ivec2(0));
+  vec4 res = textureGatherOffset(arg_0_arg_1, vec3(arg_2, float(arg_3)), arg_4, ivec2(1));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/var/textureGatherCompare/f585cc.wgsl.expected.msl b/test/tint/builtins/gen/var/textureGatherCompare/f585cc.wgsl.expected.msl
index 31ed159..adfe72c 100644
--- a/test/tint/builtins/gen/var/textureGatherCompare/f585cc.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureGatherCompare/f585cc.wgsl.expected.msl
@@ -2,10 +2,10 @@
 
 using namespace metal;
 void textureGatherCompare_f585cc(depth2d_array<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float2 arg_2 = float2(0.0f);
+  float2 arg_2 = float2(1.0f);
   int arg_3 = 1;
   float arg_4 = 1.0f;
-  float4 res = tint_symbol_1.gather_compare(tint_symbol_2, arg_2, arg_3, arg_4, int2(0));
+  float4 res = tint_symbol_1.gather_compare(tint_symbol_2, arg_2, arg_3, arg_4, int2(1));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/textureGatherCompare/f585cc.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureGatherCompare/f585cc.wgsl.expected.spvasm
index 9d23a22..498b0fe 100644
--- a/test/tint/builtins/gen/var/textureGatherCompare/f585cc.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureGatherCompare/f585cc.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 61
+; Bound: 62
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -46,62 +46,63 @@
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
-         %20 = OpConstantNull %v2float
+    %float_1 = OpConstant %float 1
+         %21 = OpConstantComposite %v2float %float_1 %float_1
 %_ptr_Function_v2float = OpTypePointer Function %v2float
+         %24 = OpConstantNull %v2float
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
-         %27 = OpConstantNull %int
-    %float_1 = OpConstant %float 1
+         %29 = OpConstantNull %int
 %_ptr_Function_float = OpTypePointer Function %float
-         %34 = OpTypeSampledImage %11
+         %35 = OpTypeSampledImage %11
     %v3float = OpTypeVector %float 3
       %v2int = OpTypeVector %int 2
-         %45 = OpConstantNull %v2int
+         %46 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %48 = OpTypeFunction %v4float
+         %49 = OpTypeFunction %v4float
 %textureGatherCompare_f585cc = OpFunction %void None %15
          %18 = OpLabel
-      %arg_2 = OpVariable %_ptr_Function_v2float Function %20
-      %arg_3 = OpVariable %_ptr_Function_int Function %27
+      %arg_2 = OpVariable %_ptr_Function_v2float Function %24
+      %arg_3 = OpVariable %_ptr_Function_int Function %29
       %arg_4 = OpVariable %_ptr_Function_float Function %8
         %res = OpVariable %_ptr_Function_v4float Function %5
-               OpStore %arg_2 %20
+               OpStore %arg_2 %21
                OpStore %arg_3 %int_1
                OpStore %arg_4 %float_1
-         %32 = OpLoad %14 %arg_1
-         %33 = OpLoad %11 %arg_0
-         %35 = OpSampledImage %34 %33 %32
-         %37 = OpLoad %v2float %arg_2
-         %38 = OpCompositeExtract %float %37 0
-         %39 = OpCompositeExtract %float %37 1
-         %41 = OpLoad %int %arg_3
-         %40 = OpConvertSToF %float %41
-         %42 = OpCompositeConstruct %v3float %38 %39 %40
-         %43 = OpLoad %float %arg_4
-         %31 = OpImageDrefGather %v4float %35 %42 %43 ConstOffset %45
-               OpStore %res %31
+         %33 = OpLoad %14 %arg_1
+         %34 = OpLoad %11 %arg_0
+         %36 = OpSampledImage %35 %34 %33
+         %38 = OpLoad %v2float %arg_2
+         %39 = OpCompositeExtract %float %38 0
+         %40 = OpCompositeExtract %float %38 1
+         %42 = OpLoad %int %arg_3
+         %41 = OpConvertSToF %float %42
+         %43 = OpCompositeConstruct %v3float %39 %40 %41
+         %44 = OpLoad %float %arg_4
+         %32 = OpImageDrefGather %v4float %36 %43 %44 ConstOffset %46
+               OpStore %res %32
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %48
-         %50 = OpLabel
-         %51 = OpFunctionCall %void %textureGatherCompare_f585cc
+%vertex_main_inner = OpFunction %v4float None %49
+         %51 = OpLabel
+         %52 = OpFunctionCall %void %textureGatherCompare_f585cc
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
-         %53 = OpLabel
-         %54 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %54
+         %54 = OpLabel
+         %55 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %55
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %15
-         %56 = OpLabel
-         %57 = OpFunctionCall %void %textureGatherCompare_f585cc
+         %57 = OpLabel
+         %58 = OpFunctionCall %void %textureGatherCompare_f585cc
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %15
-         %59 = OpLabel
-         %60 = OpFunctionCall %void %textureGatherCompare_f585cc
+         %60 = OpLabel
+         %61 = OpFunctionCall %void %textureGatherCompare_f585cc
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureGatherCompare/f585cc.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureGatherCompare/f585cc.wgsl.expected.wgsl
index e3983d2..e495b0f 100644
--- a/test/tint/builtins/gen/var/textureGatherCompare/f585cc.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureGatherCompare/f585cc.wgsl.expected.wgsl
@@ -3,10 +3,10 @@
 @group(1) @binding(1) var arg_1 : sampler_comparison;
 
 fn textureGatherCompare_f585cc() {
-  var arg_2 = vec2<f32>();
+  var arg_2 = vec2<f32>(1.0f);
   var arg_3 = 1i;
   var arg_4 = 1.0f;
-  const arg_5 = vec2<i32>();
+  const arg_5 = vec2<i32>(1i);
   var res : vec4<f32> = textureGatherCompare(arg_0, arg_1, arg_2, arg_3, arg_4, arg_5);
 }
 
diff --git a/test/tint/builtins/gen/var/textureLoad/019da0.wgsl b/test/tint/builtins/gen/var/textureLoad/019da0.wgsl
index ad2c4e1..d8febef 100644
--- a/test/tint/builtins/gen/var/textureLoad/019da0.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/019da0.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureLoad(texture: texture_3d<f32>, coords: vec3<i32>, level: u32) -> vec4<f32>
 fn textureLoad_019da0() {
-  var arg_1 = vec3<i32>();
+  var arg_1 = vec3<i32>(1i);
   var arg_2 = 1u;
   var res: vec4<f32> = textureLoad(arg_0, arg_1, arg_2);
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/019da0.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/019da0.wgsl.expected.dxc.hlsl
index d7d9113..f661e8d 100644
--- a/test/tint/builtins/gen/var/textureLoad/019da0.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/019da0.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 Texture3D<float4> arg_0 : register(t0, space1);
 
 void textureLoad_019da0() {
-  int3 arg_1 = (0).xxx;
+  int3 arg_1 = (1).xxx;
   uint arg_2 = 1u;
   float4 res = arg_0.Load(int4(arg_1, int(arg_2)));
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/019da0.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/019da0.wgsl.expected.fxc.hlsl
index d7d9113..f661e8d 100644
--- a/test/tint/builtins/gen/var/textureLoad/019da0.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/019da0.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 Texture3D<float4> arg_0 : register(t0, space1);
 
 void textureLoad_019da0() {
-  int3 arg_1 = (0).xxx;
+  int3 arg_1 = (1).xxx;
   uint arg_2 = 1u;
   float4 res = arg_0.Load(int4(arg_1, int(arg_2)));
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/019da0.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/019da0.wgsl.expected.glsl
index f4f76c3..62b9a35 100644
--- a/test/tint/builtins/gen/var/textureLoad/019da0.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/019da0.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 uniform highp sampler3D arg_0_1;
 void textureLoad_019da0() {
-  ivec3 arg_1 = ivec3(0);
+  ivec3 arg_1 = ivec3(1);
   uint arg_2 = 1u;
   vec4 res = texelFetch(arg_0_1, arg_1, int(arg_2));
 }
@@ -25,7 +25,7 @@
 
 uniform highp sampler3D arg_0_1;
 void textureLoad_019da0() {
-  ivec3 arg_1 = ivec3(0);
+  ivec3 arg_1 = ivec3(1);
   uint arg_2 = 1u;
   vec4 res = texelFetch(arg_0_1, arg_1, int(arg_2));
 }
@@ -42,7 +42,7 @@
 
 uniform highp sampler3D arg_0_1;
 void textureLoad_019da0() {
-  ivec3 arg_1 = ivec3(0);
+  ivec3 arg_1 = ivec3(1);
   uint arg_2 = 1u;
   vec4 res = texelFetch(arg_0_1, arg_1, int(arg_2));
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/019da0.wgsl.expected.msl b/test/tint/builtins/gen/var/textureLoad/019da0.wgsl.expected.msl
index 9355436..78ea10c 100644
--- a/test/tint/builtins/gen/var/textureLoad/019da0.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureLoad/019da0.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureLoad_019da0(texture3d<float, access::sample> tint_symbol_1) {
-  int3 arg_1 = int3(0);
+  int3 arg_1 = int3(1);
   uint arg_2 = 1u;
   float4 res = tint_symbol_1.read(uint3(arg_1), arg_2);
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/019da0.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/019da0.wgsl.expected.spvasm
index b3dc43b..3c9fcae 100644
--- a/test/tint/builtins/gen/var/textureLoad/019da0.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/019da0.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 46
+; Bound: 48
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -40,48 +40,50 @@
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
-         %18 = OpConstantNull %v3int
+      %int_1 = OpConstant %int 1
+         %19 = OpConstantComposite %v3int %int_1 %int_1 %int_1
 %_ptr_Function_v3int = OpTypePointer Function %v3int
+         %22 = OpConstantNull %v3int
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %25 = OpConstantNull %uint
+         %27 = OpConstantNull %uint
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %32 = OpTypeFunction %v4float
+         %34 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_019da0 = OpFunction %void None %12
          %15 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v3int Function %18
-      %arg_2 = OpVariable %_ptr_Function_uint Function %25
+      %arg_1 = OpVariable %_ptr_Function_v3int Function %22
+      %arg_2 = OpVariable %_ptr_Function_uint Function %27
         %res = OpVariable %_ptr_Function_v4float Function %5
-               OpStore %arg_1 %18
+               OpStore %arg_1 %19
                OpStore %arg_2 %uint_1
-         %27 = OpLoad %11 %arg_0
-         %28 = OpLoad %v3int %arg_1
-         %29 = OpLoad %uint %arg_2
-         %26 = OpImageFetch %v4float %27 %28 Lod %29
-               OpStore %res %26
+         %29 = OpLoad %11 %arg_0
+         %30 = OpLoad %v3int %arg_1
+         %31 = OpLoad %uint %arg_2
+         %28 = OpImageFetch %v4float %29 %30 Lod %31
+               OpStore %res %28
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %32
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureLoad_019da0
+%vertex_main_inner = OpFunction %v4float None %34
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureLoad_019da0
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %37 = OpLabel
-         %38 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %38
+         %39 = OpLabel
+         %40 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %40
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureLoad_019da0
+         %43 = OpLabel
+         %44 = OpFunctionCall %void %textureLoad_019da0
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %44 = OpLabel
-         %45 = OpFunctionCall %void %textureLoad_019da0
+         %46 = OpLabel
+         %47 = OpFunctionCall %void %textureLoad_019da0
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureLoad/019da0.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/019da0.wgsl.expected.wgsl
index 90c7618..d4653f6 100644
--- a/test/tint/builtins/gen/var/textureLoad/019da0.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/019da0.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_3d<f32>;
 
 fn textureLoad_019da0() {
-  var arg_1 = vec3<i32>();
+  var arg_1 = vec3<i32>(1i);
   var arg_2 = 1u;
   var res : vec4<f32> = textureLoad(arg_0, arg_1, arg_2);
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/026217.wgsl b/test/tint/builtins/gen/var/textureLoad/026217.wgsl
index 8cca36c..74edd08 100644
--- a/test/tint/builtins/gen/var/textureLoad/026217.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/026217.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureLoad(texture: texture_2d_array<u32>, coords: vec2<u32>, array_index: u32, level: i32) -> vec4<u32>
 fn textureLoad_026217() {
-  var arg_1 = vec2<u32>();
+  var arg_1 = vec2<u32>(1u);
   var arg_2 = 1u;
   var arg_3 = 1i;
   var res: vec4<u32> = textureLoad(arg_0, arg_1, arg_2, arg_3);
diff --git a/test/tint/builtins/gen/var/textureLoad/026217.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/026217.wgsl.expected.dxc.hlsl
index bd6e939..e8a34dd 100644
--- a/test/tint/builtins/gen/var/textureLoad/026217.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/026217.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 void textureLoad_026217() {
-  uint2 arg_1 = (0u).xx;
+  uint2 arg_1 = (1u).xx;
   uint arg_2 = 1u;
   int arg_3 = 1;
   uint4 res = arg_0.Load(uint4(uint3(arg_1, arg_2), uint(arg_3)));
diff --git a/test/tint/builtins/gen/var/textureLoad/026217.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/026217.wgsl.expected.fxc.hlsl
index bd6e939..e8a34dd 100644
--- a/test/tint/builtins/gen/var/textureLoad/026217.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/026217.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 void textureLoad_026217() {
-  uint2 arg_1 = (0u).xx;
+  uint2 arg_1 = (1u).xx;
   uint arg_2 = 1u;
   int arg_3 = 1;
   uint4 res = arg_0.Load(uint4(uint3(arg_1, arg_2), uint(arg_3)));
diff --git a/test/tint/builtins/gen/var/textureLoad/026217.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/026217.wgsl.expected.glsl
index 182e968..57801df 100644
--- a/test/tint/builtins/gen/var/textureLoad/026217.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/026217.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 uniform highp usampler2DArray arg_0_1;
 void textureLoad_026217() {
-  uvec2 arg_1 = uvec2(0u);
+  uvec2 arg_1 = uvec2(1u);
   uint arg_2 = 1u;
   int arg_3 = 1;
   uvec4 res = texelFetch(arg_0_1, ivec3(uvec3(arg_1, arg_2)), arg_3);
@@ -26,7 +26,7 @@
 
 uniform highp usampler2DArray arg_0_1;
 void textureLoad_026217() {
-  uvec2 arg_1 = uvec2(0u);
+  uvec2 arg_1 = uvec2(1u);
   uint arg_2 = 1u;
   int arg_3 = 1;
   uvec4 res = texelFetch(arg_0_1, ivec3(uvec3(arg_1, arg_2)), arg_3);
@@ -44,7 +44,7 @@
 
 uniform highp usampler2DArray arg_0_1;
 void textureLoad_026217() {
-  uvec2 arg_1 = uvec2(0u);
+  uvec2 arg_1 = uvec2(1u);
   uint arg_2 = 1u;
   int arg_3 = 1;
   uvec4 res = texelFetch(arg_0_1, ivec3(uvec3(arg_1, arg_2)), arg_3);
diff --git a/test/tint/builtins/gen/var/textureLoad/026217.wgsl.expected.msl b/test/tint/builtins/gen/var/textureLoad/026217.wgsl.expected.msl
index 4e2fc4d..68fe376 100644
--- a/test/tint/builtins/gen/var/textureLoad/026217.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureLoad/026217.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureLoad_026217(texture2d_array<uint, access::sample> tint_symbol_1) {
-  uint2 arg_1 = uint2(0u);
+  uint2 arg_1 = uint2(1u);
   uint arg_2 = 1u;
   int arg_3 = 1;
   uint4 res = tint_symbol_1.read(uint2(arg_1), arg_2, arg_3);
diff --git a/test/tint/builtins/gen/var/textureLoad/026217.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/026217.wgsl.expected.spvasm
index fd8d9f2..9e98066 100644
--- a/test/tint/builtins/gen/var/textureLoad/026217.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/026217.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 57
+; Bound: 58
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -41,60 +41,61 @@
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
      %v2uint = OpTypeVector %uint 2
-         %18 = OpConstantNull %v2uint
-%_ptr_Function_v2uint = OpTypePointer Function %v2uint
      %uint_1 = OpConstant %uint 1
+         %19 = OpConstantComposite %v2uint %uint_1 %uint_1
+%_ptr_Function_v2uint = OpTypePointer Function %v2uint
+         %22 = OpConstantNull %v2uint
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %24 = OpConstantNull %uint
+         %25 = OpConstantNull %uint
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
-         %29 = OpConstantNull %int
+         %30 = OpConstantNull %int
      %v4uint = OpTypeVector %uint 4
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %42 = OpConstantNull %v4uint
-         %43 = OpTypeFunction %v4float
+         %43 = OpConstantNull %v4uint
+         %44 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_026217 = OpFunction %void None %13
          %16 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2uint Function %18
-      %arg_2 = OpVariable %_ptr_Function_uint Function %24
-      %arg_3 = OpVariable %_ptr_Function_int Function %29
-        %res = OpVariable %_ptr_Function_v4uint Function %42
-               OpStore %arg_1 %18
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %22
+      %arg_2 = OpVariable %_ptr_Function_uint Function %25
+      %arg_3 = OpVariable %_ptr_Function_int Function %30
+        %res = OpVariable %_ptr_Function_v4uint Function %43
+               OpStore %arg_1 %19
                OpStore %arg_2 %uint_1
                OpStore %arg_3 %int_1
-         %32 = OpLoad %11 %arg_0
-         %34 = OpLoad %v2uint %arg_1
-         %35 = OpCompositeExtract %uint %34 0
-         %36 = OpCompositeExtract %uint %34 1
-         %37 = OpLoad %uint %arg_2
-         %38 = OpCompositeConstruct %v3uint %35 %36 %37
-         %39 = OpLoad %int %arg_3
-         %30 = OpImageFetch %v4uint %32 %38 Lod %39
-               OpStore %res %30
+         %33 = OpLoad %11 %arg_0
+         %35 = OpLoad %v2uint %arg_1
+         %36 = OpCompositeExtract %uint %35 0
+         %37 = OpCompositeExtract %uint %35 1
+         %38 = OpLoad %uint %arg_2
+         %39 = OpCompositeConstruct %v3uint %36 %37 %38
+         %40 = OpLoad %int %arg_3
+         %31 = OpImageFetch %v4uint %33 %39 Lod %40
+               OpStore %res %31
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %43
-         %45 = OpLabel
-         %46 = OpFunctionCall %void %textureLoad_026217
+%vertex_main_inner = OpFunction %v4float None %44
+         %46 = OpLabel
+         %47 = OpFunctionCall %void %textureLoad_026217
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %48 = OpLabel
-         %49 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %49
+         %49 = OpLabel
+         %50 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %50
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %52 = OpLabel
-         %53 = OpFunctionCall %void %textureLoad_026217
+         %53 = OpLabel
+         %54 = OpFunctionCall %void %textureLoad_026217
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %55 = OpLabel
-         %56 = OpFunctionCall %void %textureLoad_026217
+         %56 = OpLabel
+         %57 = OpFunctionCall %void %textureLoad_026217
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureLoad/026217.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/026217.wgsl.expected.wgsl
index 1e2a15b..b117b2d 100644
--- a/test/tint/builtins/gen/var/textureLoad/026217.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/026217.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_2d_array<u32>;
 
 fn textureLoad_026217() {
-  var arg_1 = vec2<u32>();
+  var arg_1 = vec2<u32>(1u);
   var arg_2 = 1u;
   var arg_3 = 1i;
   var res : vec4<u32> = textureLoad(arg_0, arg_1, arg_2, arg_3);
diff --git a/test/tint/builtins/gen/var/textureLoad/04b911.wgsl b/test/tint/builtins/gen/var/textureLoad/04b911.wgsl
index 6047511..dc1160e 100644
--- a/test/tint/builtins/gen/var/textureLoad/04b911.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/04b911.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureLoad(texture: texture_depth_2d_array, coords: vec2<u32>, array_index: i32, level: u32) -> f32
 fn textureLoad_04b911() {
-  var arg_1 = vec2<u32>();
+  var arg_1 = vec2<u32>(1u);
   var arg_2 = 1i;
   var arg_3 = 1u;
   var res: f32 = textureLoad(arg_0, arg_1, arg_2, arg_3);
diff --git a/test/tint/builtins/gen/var/textureLoad/04b911.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/04b911.wgsl.expected.dxc.hlsl
index bce9f3c..fec8d4f 100644
--- a/test/tint/builtins/gen/var/textureLoad/04b911.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/04b911.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DArray arg_0 : register(t0, space1);
 
 void textureLoad_04b911() {
-  uint2 arg_1 = (0u).xx;
+  uint2 arg_1 = (1u).xx;
   int arg_2 = 1;
   uint arg_3 = 1u;
   float res = arg_0.Load(uint4(uint3(arg_1, uint(arg_2)), arg_3)).x;
diff --git a/test/tint/builtins/gen/var/textureLoad/04b911.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/04b911.wgsl.expected.fxc.hlsl
index bce9f3c..fec8d4f 100644
--- a/test/tint/builtins/gen/var/textureLoad/04b911.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/04b911.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DArray arg_0 : register(t0, space1);
 
 void textureLoad_04b911() {
-  uint2 arg_1 = (0u).xx;
+  uint2 arg_1 = (1u).xx;
   int arg_2 = 1;
   uint arg_3 = 1u;
   float res = arg_0.Load(uint4(uint3(arg_1, uint(arg_2)), arg_3)).x;
diff --git a/test/tint/builtins/gen/var/textureLoad/04b911.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/04b911.wgsl.expected.glsl
index 2742b07..4427e30 100644
--- a/test/tint/builtins/gen/var/textureLoad/04b911.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/04b911.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 uniform highp sampler2DArray arg_0_1;
 void textureLoad_04b911() {
-  uvec2 arg_1 = uvec2(0u);
+  uvec2 arg_1 = uvec2(1u);
   int arg_2 = 1;
   uint arg_3 = 1u;
   float res = texelFetch(arg_0_1, ivec3(uvec3(arg_1, uint(arg_2))), int(arg_3)).x;
@@ -26,7 +26,7 @@
 
 uniform highp sampler2DArray arg_0_1;
 void textureLoad_04b911() {
-  uvec2 arg_1 = uvec2(0u);
+  uvec2 arg_1 = uvec2(1u);
   int arg_2 = 1;
   uint arg_3 = 1u;
   float res = texelFetch(arg_0_1, ivec3(uvec3(arg_1, uint(arg_2))), int(arg_3)).x;
@@ -44,7 +44,7 @@
 
 uniform highp sampler2DArray arg_0_1;
 void textureLoad_04b911() {
-  uvec2 arg_1 = uvec2(0u);
+  uvec2 arg_1 = uvec2(1u);
   int arg_2 = 1;
   uint arg_3 = 1u;
   float res = texelFetch(arg_0_1, ivec3(uvec3(arg_1, uint(arg_2))), int(arg_3)).x;
diff --git a/test/tint/builtins/gen/var/textureLoad/04b911.wgsl.expected.msl b/test/tint/builtins/gen/var/textureLoad/04b911.wgsl.expected.msl
index a8900e9..12f55f7d 100644
--- a/test/tint/builtins/gen/var/textureLoad/04b911.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureLoad/04b911.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureLoad_04b911(depth2d_array<float, access::sample> tint_symbol_1) {
-  uint2 arg_1 = uint2(0u);
+  uint2 arg_1 = uint2(1u);
   int arg_2 = 1;
   uint arg_3 = 1u;
   float res = tint_symbol_1.read(uint2(arg_1), arg_2, arg_3);
diff --git a/test/tint/builtins/gen/var/textureLoad/04b911.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/04b911.wgsl.expected.spvasm
index bcdf21d..fc8d6f5 100644
--- a/test/tint/builtins/gen/var/textureLoad/04b911.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/04b911.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 57
+; Bound: 58
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -41,60 +41,61 @@
          %12 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
-         %18 = OpConstantNull %v2uint
+     %uint_1 = OpConstant %uint 1
+         %19 = OpConstantComposite %v2uint %uint_1 %uint_1
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
+         %22 = OpConstantNull %v2uint
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
-         %25 = OpConstantNull %int
-     %uint_1 = OpConstant %uint 1
+         %27 = OpConstantNull %int
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %29 = OpConstantNull %uint
+         %30 = OpConstantNull %uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_float = OpTypePointer Function %float
-         %43 = OpTypeFunction %v4float
+         %44 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_04b911 = OpFunction %void None %12
          %15 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2uint Function %18
-      %arg_2 = OpVariable %_ptr_Function_int Function %25
-      %arg_3 = OpVariable %_ptr_Function_uint Function %29
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %22
+      %arg_2 = OpVariable %_ptr_Function_int Function %27
+      %arg_3 = OpVariable %_ptr_Function_uint Function %30
         %res = OpVariable %_ptr_Function_float Function %8
-               OpStore %arg_1 %18
+               OpStore %arg_1 %19
                OpStore %arg_2 %int_1
                OpStore %arg_3 %uint_1
-         %32 = OpLoad %11 %arg_0
-         %34 = OpLoad %v2uint %arg_1
-         %35 = OpCompositeExtract %uint %34 0
-         %36 = OpCompositeExtract %uint %34 1
-         %38 = OpLoad %int %arg_2
-         %37 = OpBitcast %uint %38
-         %39 = OpCompositeConstruct %v3uint %35 %36 %37
-         %40 = OpLoad %uint %arg_3
-         %31 = OpImageFetch %v4float %32 %39 Lod %40
-         %30 = OpCompositeExtract %float %31 0
-               OpStore %res %30
+         %33 = OpLoad %11 %arg_0
+         %35 = OpLoad %v2uint %arg_1
+         %36 = OpCompositeExtract %uint %35 0
+         %37 = OpCompositeExtract %uint %35 1
+         %39 = OpLoad %int %arg_2
+         %38 = OpBitcast %uint %39
+         %40 = OpCompositeConstruct %v3uint %36 %37 %38
+         %41 = OpLoad %uint %arg_3
+         %32 = OpImageFetch %v4float %33 %40 Lod %41
+         %31 = OpCompositeExtract %float %32 0
+               OpStore %res %31
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %43
-         %45 = OpLabel
-         %46 = OpFunctionCall %void %textureLoad_04b911
+%vertex_main_inner = OpFunction %v4float None %44
+         %46 = OpLabel
+         %47 = OpFunctionCall %void %textureLoad_04b911
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %48 = OpLabel
-         %49 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %49
+         %49 = OpLabel
+         %50 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %50
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %52 = OpLabel
-         %53 = OpFunctionCall %void %textureLoad_04b911
+         %53 = OpLabel
+         %54 = OpFunctionCall %void %textureLoad_04b911
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %55 = OpLabel
-         %56 = OpFunctionCall %void %textureLoad_04b911
+         %56 = OpLabel
+         %57 = OpFunctionCall %void %textureLoad_04b911
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureLoad/04b911.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/04b911.wgsl.expected.wgsl
index ee48583..bdff948 100644
--- a/test/tint/builtins/gen/var/textureLoad/04b911.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/04b911.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_depth_2d_array;
 
 fn textureLoad_04b911() {
-  var arg_1 = vec2<u32>();
+  var arg_1 = vec2<u32>(1u);
   var arg_2 = 1i;
   var arg_3 = 1u;
   var res : f32 = textureLoad(arg_0, arg_1, arg_2, arg_3);
diff --git a/test/tint/builtins/gen/var/textureLoad/168dc8.wgsl b/test/tint/builtins/gen/var/textureLoad/168dc8.wgsl
index 2563e1c..2f1e52a 100644
--- a/test/tint/builtins/gen/var/textureLoad/168dc8.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/168dc8.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureLoad(texture: texture_2d_array<i32>, coords: vec2<u32>, array_index: i32, level: i32) -> vec4<i32>
 fn textureLoad_168dc8() {
-  var arg_1 = vec2<u32>();
+  var arg_1 = vec2<u32>(1u);
   var arg_2 = 1i;
   var arg_3 = 1i;
   var res: vec4<i32> = textureLoad(arg_0, arg_1, arg_2, arg_3);
diff --git a/test/tint/builtins/gen/var/textureLoad/168dc8.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/168dc8.wgsl.expected.dxc.hlsl
index 56cc8e8..abc8e57 100644
--- a/test/tint/builtins/gen/var/textureLoad/168dc8.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/168dc8.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 void textureLoad_168dc8() {
-  uint2 arg_1 = (0u).xx;
+  uint2 arg_1 = (1u).xx;
   int arg_2 = 1;
   int arg_3 = 1;
   int4 res = arg_0.Load(uint4(uint3(arg_1, uint(arg_2)), uint(arg_3)));
diff --git a/test/tint/builtins/gen/var/textureLoad/168dc8.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/168dc8.wgsl.expected.fxc.hlsl
index 56cc8e8..abc8e57 100644
--- a/test/tint/builtins/gen/var/textureLoad/168dc8.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/168dc8.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 void textureLoad_168dc8() {
-  uint2 arg_1 = (0u).xx;
+  uint2 arg_1 = (1u).xx;
   int arg_2 = 1;
   int arg_3 = 1;
   int4 res = arg_0.Load(uint4(uint3(arg_1, uint(arg_2)), uint(arg_3)));
diff --git a/test/tint/builtins/gen/var/textureLoad/168dc8.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/168dc8.wgsl.expected.glsl
index a0cc687..cca08c5 100644
--- a/test/tint/builtins/gen/var/textureLoad/168dc8.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/168dc8.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 uniform highp isampler2DArray arg_0_1;
 void textureLoad_168dc8() {
-  uvec2 arg_1 = uvec2(0u);
+  uvec2 arg_1 = uvec2(1u);
   int arg_2 = 1;
   int arg_3 = 1;
   ivec4 res = texelFetch(arg_0_1, ivec3(uvec3(arg_1, uint(arg_2))), arg_3);
@@ -26,7 +26,7 @@
 
 uniform highp isampler2DArray arg_0_1;
 void textureLoad_168dc8() {
-  uvec2 arg_1 = uvec2(0u);
+  uvec2 arg_1 = uvec2(1u);
   int arg_2 = 1;
   int arg_3 = 1;
   ivec4 res = texelFetch(arg_0_1, ivec3(uvec3(arg_1, uint(arg_2))), arg_3);
@@ -44,7 +44,7 @@
 
 uniform highp isampler2DArray arg_0_1;
 void textureLoad_168dc8() {
-  uvec2 arg_1 = uvec2(0u);
+  uvec2 arg_1 = uvec2(1u);
   int arg_2 = 1;
   int arg_3 = 1;
   ivec4 res = texelFetch(arg_0_1, ivec3(uvec3(arg_1, uint(arg_2))), arg_3);
diff --git a/test/tint/builtins/gen/var/textureLoad/168dc8.wgsl.expected.msl b/test/tint/builtins/gen/var/textureLoad/168dc8.wgsl.expected.msl
index 3ade60f..b157f12 100644
--- a/test/tint/builtins/gen/var/textureLoad/168dc8.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureLoad/168dc8.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureLoad_168dc8(texture2d_array<int, access::sample> tint_symbol_1) {
-  uint2 arg_1 = uint2(0u);
+  uint2 arg_1 = uint2(1u);
   int arg_2 = 1;
   int arg_3 = 1;
   int4 res = tint_symbol_1.read(uint2(arg_1), arg_2, arg_3);
diff --git a/test/tint/builtins/gen/var/textureLoad/168dc8.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/168dc8.wgsl.expected.spvasm
index 4febae6..fd2efd2 100644
--- a/test/tint/builtins/gen/var/textureLoad/168dc8.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/168dc8.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 55
+; Bound: 57
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -42,57 +42,59 @@
          %13 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
-         %19 = OpConstantNull %v2uint
+     %uint_1 = OpConstant %uint 1
+         %20 = OpConstantComposite %v2uint %uint_1 %uint_1
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
+         %23 = OpConstantNull %v2uint
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
-         %25 = OpConstantNull %int
+         %27 = OpConstantNull %int
       %v4int = OpTypeVector %int 4
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %40 = OpConstantNull %v4int
-         %41 = OpTypeFunction %v4float
+         %42 = OpConstantNull %v4int
+         %43 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_168dc8 = OpFunction %void None %13
          %16 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2uint Function %19
-      %arg_2 = OpVariable %_ptr_Function_int Function %25
-      %arg_3 = OpVariable %_ptr_Function_int Function %25
-        %res = OpVariable %_ptr_Function_v4int Function %40
-               OpStore %arg_1 %19
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %23
+      %arg_2 = OpVariable %_ptr_Function_int Function %27
+      %arg_3 = OpVariable %_ptr_Function_int Function %27
+        %res = OpVariable %_ptr_Function_v4int Function %42
+               OpStore %arg_1 %20
                OpStore %arg_2 %int_1
                OpStore %arg_3 %int_1
-         %29 = OpLoad %11 %arg_0
-         %31 = OpLoad %v2uint %arg_1
-         %32 = OpCompositeExtract %uint %31 0
-         %33 = OpCompositeExtract %uint %31 1
-         %35 = OpLoad %int %arg_2
-         %34 = OpBitcast %uint %35
-         %36 = OpCompositeConstruct %v3uint %32 %33 %34
-         %37 = OpLoad %int %arg_3
-         %27 = OpImageFetch %v4int %29 %36 Lod %37
-               OpStore %res %27
+         %31 = OpLoad %11 %arg_0
+         %33 = OpLoad %v2uint %arg_1
+         %34 = OpCompositeExtract %uint %33 0
+         %35 = OpCompositeExtract %uint %33 1
+         %37 = OpLoad %int %arg_2
+         %36 = OpBitcast %uint %37
+         %38 = OpCompositeConstruct %v3uint %34 %35 %36
+         %39 = OpLoad %int %arg_3
+         %29 = OpImageFetch %v4int %31 %38 Lod %39
+               OpStore %res %29
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %41
-         %43 = OpLabel
-         %44 = OpFunctionCall %void %textureLoad_168dc8
+%vertex_main_inner = OpFunction %v4float None %43
+         %45 = OpLabel
+         %46 = OpFunctionCall %void %textureLoad_168dc8
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %46 = OpLabel
-         %47 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %47
+         %48 = OpLabel
+         %49 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %49
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %50 = OpLabel
-         %51 = OpFunctionCall %void %textureLoad_168dc8
+         %52 = OpLabel
+         %53 = OpFunctionCall %void %textureLoad_168dc8
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %53 = OpLabel
-         %54 = OpFunctionCall %void %textureLoad_168dc8
+         %55 = OpLabel
+         %56 = OpFunctionCall %void %textureLoad_168dc8
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureLoad/168dc8.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/168dc8.wgsl.expected.wgsl
index 6642f02..ccd9e51 100644
--- a/test/tint/builtins/gen/var/textureLoad/168dc8.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/168dc8.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_2d_array<i32>;
 
 fn textureLoad_168dc8() {
-  var arg_1 = vec2<u32>();
+  var arg_1 = vec2<u32>(1u);
   var arg_2 = 1i;
   var arg_3 = 1i;
   var res : vec4<i32> = textureLoad(arg_0, arg_1, arg_2, arg_3);
diff --git a/test/tint/builtins/gen/var/textureLoad/19cf87.wgsl b/test/tint/builtins/gen/var/textureLoad/19cf87.wgsl
index 4863704..3614c35 100644
--- a/test/tint/builtins/gen/var/textureLoad/19cf87.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/19cf87.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureLoad(texture: texture_depth_2d, coords: vec2<i32>, level: i32) -> f32
 fn textureLoad_19cf87() {
-  var arg_1 = vec2<i32>();
+  var arg_1 = vec2<i32>(1i);
   var arg_2 = 1i;
   var res: f32 = textureLoad(arg_0, arg_1, arg_2);
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/19cf87.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/19cf87.wgsl.expected.dxc.hlsl
index b9e2e0d..6482ac0 100644
--- a/test/tint/builtins/gen/var/textureLoad/19cf87.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/19cf87.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 Texture2D arg_0 : register(t0, space1);
 
 void textureLoad_19cf87() {
-  int2 arg_1 = (0).xx;
+  int2 arg_1 = (1).xx;
   int arg_2 = 1;
   float res = arg_0.Load(int3(arg_1, arg_2)).x;
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/19cf87.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/19cf87.wgsl.expected.fxc.hlsl
index b9e2e0d..6482ac0 100644
--- a/test/tint/builtins/gen/var/textureLoad/19cf87.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/19cf87.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 Texture2D arg_0 : register(t0, space1);
 
 void textureLoad_19cf87() {
-  int2 arg_1 = (0).xx;
+  int2 arg_1 = (1).xx;
   int arg_2 = 1;
   float res = arg_0.Load(int3(arg_1, arg_2)).x;
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/19cf87.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/19cf87.wgsl.expected.glsl
index 0f4a833..d202d31 100644
--- a/test/tint/builtins/gen/var/textureLoad/19cf87.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/19cf87.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 uniform highp sampler2D arg_0_1;
 void textureLoad_19cf87() {
-  ivec2 arg_1 = ivec2(0);
+  ivec2 arg_1 = ivec2(1);
   int arg_2 = 1;
   float res = texelFetch(arg_0_1, arg_1, arg_2).x;
 }
@@ -25,7 +25,7 @@
 
 uniform highp sampler2D arg_0_1;
 void textureLoad_19cf87() {
-  ivec2 arg_1 = ivec2(0);
+  ivec2 arg_1 = ivec2(1);
   int arg_2 = 1;
   float res = texelFetch(arg_0_1, arg_1, arg_2).x;
 }
@@ -42,7 +42,7 @@
 
 uniform highp sampler2D arg_0_1;
 void textureLoad_19cf87() {
-  ivec2 arg_1 = ivec2(0);
+  ivec2 arg_1 = ivec2(1);
   int arg_2 = 1;
   float res = texelFetch(arg_0_1, arg_1, arg_2).x;
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/19cf87.wgsl.expected.msl b/test/tint/builtins/gen/var/textureLoad/19cf87.wgsl.expected.msl
index 19f28cd..72e24bb 100644
--- a/test/tint/builtins/gen/var/textureLoad/19cf87.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureLoad/19cf87.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureLoad_19cf87(depth2d<float, access::sample> tint_symbol_1) {
-  int2 arg_1 = int2(0);
+  int2 arg_1 = int2(1);
   int arg_2 = 1;
   float res = tint_symbol_1.read(uint2(arg_1), arg_2);
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/19cf87.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/19cf87.wgsl.expected.spvasm
index 9f43b72..cd11687 100644
--- a/test/tint/builtins/gen/var/textureLoad/19cf87.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/19cf87.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 46
+; Bound: 47
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -40,48 +40,49 @@
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
-         %18 = OpConstantNull %v2int
-%_ptr_Function_v2int = OpTypePointer Function %v2int
       %int_1 = OpConstant %int 1
+         %19 = OpConstantComposite %v2int %int_1 %int_1
+%_ptr_Function_v2int = OpTypePointer Function %v2int
+         %22 = OpConstantNull %v2int
 %_ptr_Function_int = OpTypePointer Function %int
-         %24 = OpConstantNull %int
+         %25 = OpConstantNull %int
 %_ptr_Function_float = OpTypePointer Function %float
-         %32 = OpTypeFunction %v4float
+         %33 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_19cf87 = OpFunction %void None %12
          %15 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2int Function %18
-      %arg_2 = OpVariable %_ptr_Function_int Function %24
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %22
+      %arg_2 = OpVariable %_ptr_Function_int Function %25
         %res = OpVariable %_ptr_Function_float Function %8
-               OpStore %arg_1 %18
+               OpStore %arg_1 %19
                OpStore %arg_2 %int_1
-         %27 = OpLoad %11 %arg_0
-         %28 = OpLoad %v2int %arg_1
-         %29 = OpLoad %int %arg_2
-         %26 = OpImageFetch %v4float %27 %28 Lod %29
-         %25 = OpCompositeExtract %float %26 0
-               OpStore %res %25
+         %28 = OpLoad %11 %arg_0
+         %29 = OpLoad %v2int %arg_1
+         %30 = OpLoad %int %arg_2
+         %27 = OpImageFetch %v4float %28 %29 Lod %30
+         %26 = OpCompositeExtract %float %27 0
+               OpStore %res %26
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %32
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureLoad_19cf87
+%vertex_main_inner = OpFunction %v4float None %33
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureLoad_19cf87
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %37 = OpLabel
-         %38 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %38
+         %38 = OpLabel
+         %39 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %39
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureLoad_19cf87
+         %42 = OpLabel
+         %43 = OpFunctionCall %void %textureLoad_19cf87
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %44 = OpLabel
-         %45 = OpFunctionCall %void %textureLoad_19cf87
+         %45 = OpLabel
+         %46 = OpFunctionCall %void %textureLoad_19cf87
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureLoad/19cf87.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/19cf87.wgsl.expected.wgsl
index 4eac972..203dfc5 100644
--- a/test/tint/builtins/gen/var/textureLoad/19cf87.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/19cf87.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_depth_2d;
 
 fn textureLoad_19cf87() {
-  var arg_1 = vec2<i32>();
+  var arg_1 = vec2<i32>(1i);
   var arg_2 = 1i;
   var res : f32 = textureLoad(arg_0, arg_1, arg_2);
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/1b051f.wgsl b/test/tint/builtins/gen/var/textureLoad/1b051f.wgsl
index c493409..dff77c1 100644
--- a/test/tint/builtins/gen/var/textureLoad/1b051f.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/1b051f.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureLoad(texture: texture_2d_array<u32>, coords: vec2<i32>, array_index: u32, level: u32) -> vec4<u32>
 fn textureLoad_1b051f() {
-  var arg_1 = vec2<i32>();
+  var arg_1 = vec2<i32>(1i);
   var arg_2 = 1u;
   var arg_3 = 1u;
   var res: vec4<u32> = textureLoad(arg_0, arg_1, arg_2, arg_3);
diff --git a/test/tint/builtins/gen/var/textureLoad/1b051f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/1b051f.wgsl.expected.dxc.hlsl
index d638828..ce8e545 100644
--- a/test/tint/builtins/gen/var/textureLoad/1b051f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/1b051f.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 void textureLoad_1b051f() {
-  int2 arg_1 = (0).xx;
+  int2 arg_1 = (1).xx;
   uint arg_2 = 1u;
   uint arg_3 = 1u;
   uint4 res = arg_0.Load(int4(int3(arg_1, int(arg_2)), int(arg_3)));
diff --git a/test/tint/builtins/gen/var/textureLoad/1b051f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/1b051f.wgsl.expected.fxc.hlsl
index d638828..ce8e545 100644
--- a/test/tint/builtins/gen/var/textureLoad/1b051f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/1b051f.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 void textureLoad_1b051f() {
-  int2 arg_1 = (0).xx;
+  int2 arg_1 = (1).xx;
   uint arg_2 = 1u;
   uint arg_3 = 1u;
   uint4 res = arg_0.Load(int4(int3(arg_1, int(arg_2)), int(arg_3)));
diff --git a/test/tint/builtins/gen/var/textureLoad/1b051f.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/1b051f.wgsl.expected.glsl
index 8e6d181..6072777 100644
--- a/test/tint/builtins/gen/var/textureLoad/1b051f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/1b051f.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 uniform highp usampler2DArray arg_0_1;
 void textureLoad_1b051f() {
-  ivec2 arg_1 = ivec2(0);
+  ivec2 arg_1 = ivec2(1);
   uint arg_2 = 1u;
   uint arg_3 = 1u;
   uvec4 res = texelFetch(arg_0_1, ivec3(arg_1, int(arg_2)), int(arg_3));
@@ -26,7 +26,7 @@
 
 uniform highp usampler2DArray arg_0_1;
 void textureLoad_1b051f() {
-  ivec2 arg_1 = ivec2(0);
+  ivec2 arg_1 = ivec2(1);
   uint arg_2 = 1u;
   uint arg_3 = 1u;
   uvec4 res = texelFetch(arg_0_1, ivec3(arg_1, int(arg_2)), int(arg_3));
@@ -44,7 +44,7 @@
 
 uniform highp usampler2DArray arg_0_1;
 void textureLoad_1b051f() {
-  ivec2 arg_1 = ivec2(0);
+  ivec2 arg_1 = ivec2(1);
   uint arg_2 = 1u;
   uint arg_3 = 1u;
   uvec4 res = texelFetch(arg_0_1, ivec3(arg_1, int(arg_2)), int(arg_3));
diff --git a/test/tint/builtins/gen/var/textureLoad/1b051f.wgsl.expected.msl b/test/tint/builtins/gen/var/textureLoad/1b051f.wgsl.expected.msl
index ddf4a08..c61f6ff 100644
--- a/test/tint/builtins/gen/var/textureLoad/1b051f.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureLoad/1b051f.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureLoad_1b051f(texture2d_array<uint, access::sample> tint_symbol_1) {
-  int2 arg_1 = int2(0);
+  int2 arg_1 = int2(1);
   uint arg_2 = 1u;
   uint arg_3 = 1u;
   uint4 res = tint_symbol_1.read(uint2(arg_1), arg_2, arg_3);
diff --git a/test/tint/builtins/gen/var/textureLoad/1b051f.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/1b051f.wgsl.expected.spvasm
index fd14d43..9dce9cd 100644
--- a/test/tint/builtins/gen/var/textureLoad/1b051f.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/1b051f.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 55
+; Bound: 57
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -42,57 +42,59 @@
          %13 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
-         %19 = OpConstantNull %v2int
+      %int_1 = OpConstant %int 1
+         %20 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v2int = OpTypePointer Function %v2int
+         %23 = OpConstantNull %v2int
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %25 = OpConstantNull %uint
+         %27 = OpConstantNull %uint
      %v4uint = OpTypeVector %uint 4
       %v3int = OpTypeVector %int 3
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %40 = OpConstantNull %v4uint
-         %41 = OpTypeFunction %v4float
+         %42 = OpConstantNull %v4uint
+         %43 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_1b051f = OpFunction %void None %13
          %16 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2int Function %19
-      %arg_2 = OpVariable %_ptr_Function_uint Function %25
-      %arg_3 = OpVariable %_ptr_Function_uint Function %25
-        %res = OpVariable %_ptr_Function_v4uint Function %40
-               OpStore %arg_1 %19
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %23
+      %arg_2 = OpVariable %_ptr_Function_uint Function %27
+      %arg_3 = OpVariable %_ptr_Function_uint Function %27
+        %res = OpVariable %_ptr_Function_v4uint Function %42
+               OpStore %arg_1 %20
                OpStore %arg_2 %uint_1
                OpStore %arg_3 %uint_1
-         %29 = OpLoad %11 %arg_0
-         %31 = OpLoad %v2int %arg_1
-         %32 = OpCompositeExtract %int %31 0
-         %33 = OpCompositeExtract %int %31 1
-         %35 = OpLoad %uint %arg_2
-         %34 = OpBitcast %int %35
-         %36 = OpCompositeConstruct %v3int %32 %33 %34
-         %37 = OpLoad %uint %arg_3
-         %27 = OpImageFetch %v4uint %29 %36 Lod %37
-               OpStore %res %27
+         %31 = OpLoad %11 %arg_0
+         %33 = OpLoad %v2int %arg_1
+         %34 = OpCompositeExtract %int %33 0
+         %35 = OpCompositeExtract %int %33 1
+         %37 = OpLoad %uint %arg_2
+         %36 = OpBitcast %int %37
+         %38 = OpCompositeConstruct %v3int %34 %35 %36
+         %39 = OpLoad %uint %arg_3
+         %29 = OpImageFetch %v4uint %31 %38 Lod %39
+               OpStore %res %29
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %41
-         %43 = OpLabel
-         %44 = OpFunctionCall %void %textureLoad_1b051f
+%vertex_main_inner = OpFunction %v4float None %43
+         %45 = OpLabel
+         %46 = OpFunctionCall %void %textureLoad_1b051f
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %46 = OpLabel
-         %47 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %47
+         %48 = OpLabel
+         %49 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %49
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %50 = OpLabel
-         %51 = OpFunctionCall %void %textureLoad_1b051f
+         %52 = OpLabel
+         %53 = OpFunctionCall %void %textureLoad_1b051f
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %53 = OpLabel
-         %54 = OpFunctionCall %void %textureLoad_1b051f
+         %55 = OpLabel
+         %56 = OpFunctionCall %void %textureLoad_1b051f
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureLoad/1b051f.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/1b051f.wgsl.expected.wgsl
index 576677d..c941b74 100644
--- a/test/tint/builtins/gen/var/textureLoad/1b051f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/1b051f.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_2d_array<u32>;
 
 fn textureLoad_1b051f() {
-  var arg_1 = vec2<i32>();
+  var arg_1 = vec2<i32>(1i);
   var arg_2 = 1u;
   var arg_3 = 1u;
   var res : vec4<u32> = textureLoad(arg_0, arg_1, arg_2, arg_3);
diff --git a/test/tint/builtins/gen/var/textureLoad/1bfdfb.wgsl b/test/tint/builtins/gen/var/textureLoad/1bfdfb.wgsl
index 13db23e..7c1e957 100644
--- a/test/tint/builtins/gen/var/textureLoad/1bfdfb.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/1bfdfb.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureLoad(texture: texture_external, coords: vec2<u32>) -> vec4<f32>
 fn textureLoad_1bfdfb() {
-  var arg_1 = vec2<u32>();
+  var arg_1 = vec2<u32>(1u);
   var res: vec4<f32> = textureLoad(arg_0, arg_1);
 }
 
diff --git a/test/tint/builtins/gen/var/textureLoad/1bfdfb.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/1bfdfb.wgsl.expected.dxc.hlsl
index 5e1e301..dd7959d 100644
--- a/test/tint/builtins/gen/var/textureLoad/1bfdfb.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/1bfdfb.wgsl.expected.dxc.hlsl
@@ -80,7 +80,7 @@
 }
 
 void textureLoad_1bfdfb() {
-  uint2 arg_1 = (0u).xx;
+  uint2 arg_1 = (1u).xx;
   float4 res = textureLoadExternal(arg_0, ext_tex_plane_1, arg_1, tint_symbol_1(ext_tex_params, 0u));
 }
 
diff --git a/test/tint/builtins/gen/var/textureLoad/1bfdfb.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/1bfdfb.wgsl.expected.fxc.hlsl
index 5e1e301..dd7959d 100644
--- a/test/tint/builtins/gen/var/textureLoad/1bfdfb.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/1bfdfb.wgsl.expected.fxc.hlsl
@@ -80,7 +80,7 @@
 }
 
 void textureLoad_1bfdfb() {
-  uint2 arg_1 = (0u).xx;
+  uint2 arg_1 = (1u).xx;
   float4 res = textureLoadExternal(arg_0, ext_tex_plane_1, arg_1, tint_symbol_1(ext_tex_params, 0u));
 }
 
diff --git a/test/tint/builtins/gen/var/textureLoad/1bfdfb.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/1bfdfb.wgsl.expected.glsl
index adc2cf9..4011eb4 100644
--- a/test/tint/builtins/gen/var/textureLoad/1bfdfb.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/1bfdfb.wgsl.expected.glsl
@@ -49,7 +49,7 @@
 uniform highp sampler2D arg_0_1;
 uniform highp sampler2D ext_tex_plane_1_1;
 void textureLoad_1bfdfb() {
-  uvec2 arg_1 = uvec2(0u);
+  uvec2 arg_1 = uvec2(1u);
   vec4 res = textureLoadExternal(arg_0_1, ext_tex_plane_1_1, arg_1, ext_tex_params.inner);
 }
 
@@ -118,7 +118,7 @@
 uniform highp sampler2D arg_0_1;
 uniform highp sampler2D ext_tex_plane_1_1;
 void textureLoad_1bfdfb() {
-  uvec2 arg_1 = uvec2(0u);
+  uvec2 arg_1 = uvec2(1u);
   vec4 res = textureLoadExternal(arg_0_1, ext_tex_plane_1_1, arg_1, ext_tex_params.inner);
 }
 
@@ -181,7 +181,7 @@
 uniform highp sampler2D arg_0_1;
 uniform highp sampler2D ext_tex_plane_1_1;
 void textureLoad_1bfdfb() {
-  uvec2 arg_1 = uvec2(0u);
+  uvec2 arg_1 = uvec2(1u);
   vec4 res = textureLoadExternal(arg_0_1, ext_tex_plane_1_1, arg_1, ext_tex_params.inner);
 }
 
diff --git a/test/tint/builtins/gen/var/textureLoad/1bfdfb.wgsl.expected.msl b/test/tint/builtins/gen/var/textureLoad/1bfdfb.wgsl.expected.msl
index f18ad2f..2de6a9d 100644
--- a/test/tint/builtins/gen/var/textureLoad/1bfdfb.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureLoad/1bfdfb.wgsl.expected.msl
@@ -58,7 +58,7 @@
 }
 
 void textureLoad_1bfdfb(texture2d<float, access::sample> tint_symbol_1, texture2d<float, access::sample> tint_symbol_2, const constant ExternalTextureParams* const tint_symbol_3) {
-  uint2 arg_1 = uint2(0u);
+  uint2 arg_1 = uint2(1u);
   float4 res = textureLoadExternal(tint_symbol_1, tint_symbol_2, arg_1, *(tint_symbol_3));
 }
 
diff --git a/test/tint/builtins/gen/var/textureLoad/1bfdfb.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/1bfdfb.wgsl.expected.spvasm
index c1606c9..d9c8b31 100644
--- a/test/tint/builtins/gen/var/textureLoad/1bfdfb.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/1bfdfb.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 141
+; Bound: 142
 ; Schema: 0
                OpCapability Shader
          %28 = OpExtInstImport "GLSL.std.450"
@@ -115,12 +115,13 @@
          %93 = OpConstantNull %uint
        %void = OpTypeVoid
         %111 = OpTypeFunction %void
-        %115 = OpConstantNull %v2uint
+        %115 = OpConstantComposite %v2uint %uint_1 %uint_1
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
+        %118 = OpConstantNull %v2uint
      %uint_0 = OpConstant %uint 0
 %_ptr_Uniform_ExternalTextureParams = OpTypePointer Uniform %ExternalTextureParams
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-        %128 = OpTypeFunction %v4float
+        %129 = OpTypeFunction %v4float
 %gammaCorrection = OpFunction %v3float None %22
           %v = OpFunctionParameter %v3float
      %params = OpFunctionParameter %GammaTransferParams
@@ -214,37 +215,37 @@
                OpFunctionEnd
 %textureLoad_1bfdfb = OpFunction %void None %111
         %114 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2uint Function %115
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %118
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %115
-        %119 = OpLoad %11 %arg_0
-        %120 = OpLoad %11 %ext_tex_plane_1
-        %121 = OpLoad %v2uint %arg_1
-        %124 = OpAccessChain %_ptr_Uniform_ExternalTextureParams %ext_tex_params %uint_0
-        %125 = OpLoad %ExternalTextureParams %124
-        %118 = OpFunctionCall %v4float %textureLoadExternal %119 %120 %121 %125
-               OpStore %res %118
+        %120 = OpLoad %11 %arg_0
+        %121 = OpLoad %11 %ext_tex_plane_1
+        %122 = OpLoad %v2uint %arg_1
+        %125 = OpAccessChain %_ptr_Uniform_ExternalTextureParams %ext_tex_params %uint_0
+        %126 = OpLoad %ExternalTextureParams %125
+        %119 = OpFunctionCall %v4float %textureLoadExternal %120 %121 %122 %126
+               OpStore %res %119
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %128
-        %130 = OpLabel
-        %131 = OpFunctionCall %void %textureLoad_1bfdfb
+%vertex_main_inner = OpFunction %v4float None %129
+        %131 = OpLabel
+        %132 = OpFunctionCall %void %textureLoad_1bfdfb
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %111
-        %133 = OpLabel
-        %134 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %134
+        %134 = OpLabel
+        %135 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %135
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %111
-        %136 = OpLabel
-        %137 = OpFunctionCall %void %textureLoad_1bfdfb
+        %137 = OpLabel
+        %138 = OpFunctionCall %void %textureLoad_1bfdfb
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %111
-        %139 = OpLabel
-        %140 = OpFunctionCall %void %textureLoad_1bfdfb
+        %140 = OpLabel
+        %141 = OpFunctionCall %void %textureLoad_1bfdfb
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureLoad/1bfdfb.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/1bfdfb.wgsl.expected.wgsl
index 52a6fc3..9e3fd90 100644
--- a/test/tint/builtins/gen/var/textureLoad/1bfdfb.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/1bfdfb.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_external;
 
 fn textureLoad_1bfdfb() {
-  var arg_1 = vec2<u32>();
+  var arg_1 = vec2<u32>(1u);
   var res : vec4<f32> = textureLoad(arg_0, arg_1);
 }
 
diff --git a/test/tint/builtins/gen/var/textureLoad/1c562a.wgsl b/test/tint/builtins/gen/var/textureLoad/1c562a.wgsl
index edd5e4d..550618f 100644
--- a/test/tint/builtins/gen/var/textureLoad/1c562a.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/1c562a.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureLoad(texture: texture_3d<u32>, coords: vec3<u32>, level: u32) -> vec4<u32>
 fn textureLoad_1c562a() {
-  var arg_1 = vec3<u32>();
+  var arg_1 = vec3<u32>(1u);
   var arg_2 = 1u;
   var res: vec4<u32> = textureLoad(arg_0, arg_1, arg_2);
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/1c562a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/1c562a.wgsl.expected.dxc.hlsl
index 0bb5f34..332dd71 100644
--- a/test/tint/builtins/gen/var/textureLoad/1c562a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/1c562a.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 Texture3D<uint4> arg_0 : register(t0, space1);
 
 void textureLoad_1c562a() {
-  uint3 arg_1 = (0u).xxx;
+  uint3 arg_1 = (1u).xxx;
   uint arg_2 = 1u;
   uint4 res = arg_0.Load(uint4(arg_1, arg_2));
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/1c562a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/1c562a.wgsl.expected.fxc.hlsl
index 0bb5f34..332dd71 100644
--- a/test/tint/builtins/gen/var/textureLoad/1c562a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/1c562a.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 Texture3D<uint4> arg_0 : register(t0, space1);
 
 void textureLoad_1c562a() {
-  uint3 arg_1 = (0u).xxx;
+  uint3 arg_1 = (1u).xxx;
   uint arg_2 = 1u;
   uint4 res = arg_0.Load(uint4(arg_1, arg_2));
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/1c562a.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/1c562a.wgsl.expected.glsl
index 846f8f5..c028bc9 100644
--- a/test/tint/builtins/gen/var/textureLoad/1c562a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/1c562a.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 uniform highp usampler3D arg_0_1;
 void textureLoad_1c562a() {
-  uvec3 arg_1 = uvec3(0u);
+  uvec3 arg_1 = uvec3(1u);
   uint arg_2 = 1u;
   uvec4 res = texelFetch(arg_0_1, ivec3(arg_1), int(arg_2));
 }
@@ -25,7 +25,7 @@
 
 uniform highp usampler3D arg_0_1;
 void textureLoad_1c562a() {
-  uvec3 arg_1 = uvec3(0u);
+  uvec3 arg_1 = uvec3(1u);
   uint arg_2 = 1u;
   uvec4 res = texelFetch(arg_0_1, ivec3(arg_1), int(arg_2));
 }
@@ -42,7 +42,7 @@
 
 uniform highp usampler3D arg_0_1;
 void textureLoad_1c562a() {
-  uvec3 arg_1 = uvec3(0u);
+  uvec3 arg_1 = uvec3(1u);
   uint arg_2 = 1u;
   uvec4 res = texelFetch(arg_0_1, ivec3(arg_1), int(arg_2));
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/1c562a.wgsl.expected.msl b/test/tint/builtins/gen/var/textureLoad/1c562a.wgsl.expected.msl
index a8cffe5..f00e162 100644
--- a/test/tint/builtins/gen/var/textureLoad/1c562a.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureLoad/1c562a.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureLoad_1c562a(texture3d<uint, access::sample> tint_symbol_1) {
-  uint3 arg_1 = uint3(0u);
+  uint3 arg_1 = uint3(1u);
   uint arg_2 = 1u;
   uint4 res = tint_symbol_1.read(uint3(arg_1), arg_2);
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/1c562a.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/1c562a.wgsl.expected.spvasm
index ee1302d..afcdd7f 100644
--- a/test/tint/builtins/gen/var/textureLoad/1c562a.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/1c562a.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 47
+; Bound: 48
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -40,49 +40,50 @@
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
      %v3uint = OpTypeVector %uint 3
-         %18 = OpConstantNull %v3uint
-%_ptr_Function_v3uint = OpTypePointer Function %v3uint
      %uint_1 = OpConstant %uint 1
+         %19 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
+%_ptr_Function_v3uint = OpTypePointer Function %v3uint
+         %22 = OpConstantNull %v3uint
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %24 = OpConstantNull %uint
+         %25 = OpConstantNull %uint
      %v4uint = OpTypeVector %uint 4
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %32 = OpConstantNull %v4uint
-         %33 = OpTypeFunction %v4float
+         %33 = OpConstantNull %v4uint
+         %34 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_1c562a = OpFunction %void None %13
          %16 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v3uint Function %18
-      %arg_2 = OpVariable %_ptr_Function_uint Function %24
-        %res = OpVariable %_ptr_Function_v4uint Function %32
-               OpStore %arg_1 %18
+      %arg_1 = OpVariable %_ptr_Function_v3uint Function %22
+      %arg_2 = OpVariable %_ptr_Function_uint Function %25
+        %res = OpVariable %_ptr_Function_v4uint Function %33
+               OpStore %arg_1 %19
                OpStore %arg_2 %uint_1
-         %27 = OpLoad %11 %arg_0
-         %28 = OpLoad %v3uint %arg_1
-         %29 = OpLoad %uint %arg_2
-         %25 = OpImageFetch %v4uint %27 %28 Lod %29
-               OpStore %res %25
+         %28 = OpLoad %11 %arg_0
+         %29 = OpLoad %v3uint %arg_1
+         %30 = OpLoad %uint %arg_2
+         %26 = OpImageFetch %v4uint %28 %29 Lod %30
+               OpStore %res %26
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %33
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureLoad_1c562a
+%vertex_main_inner = OpFunction %v4float None %34
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureLoad_1c562a
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %38 = OpLabel
-         %39 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %39
+         %39 = OpLabel
+         %40 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %40
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureLoad_1c562a
+         %43 = OpLabel
+         %44 = OpFunctionCall %void %textureLoad_1c562a
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %45 = OpLabel
-         %46 = OpFunctionCall %void %textureLoad_1c562a
+         %46 = OpLabel
+         %47 = OpFunctionCall %void %textureLoad_1c562a
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureLoad/1c562a.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/1c562a.wgsl.expected.wgsl
index 6f9672a..376ef18 100644
--- a/test/tint/builtins/gen/var/textureLoad/1c562a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/1c562a.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_3d<u32>;
 
 fn textureLoad_1c562a() {
-  var arg_1 = vec3<u32>();
+  var arg_1 = vec3<u32>(1u);
   var arg_2 = 1u;
   var res : vec4<u32> = textureLoad(arg_0, arg_1, arg_2);
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/1f2016.wgsl b/test/tint/builtins/gen/var/textureLoad/1f2016.wgsl
index f075b9d..8bdaca3 100644
--- a/test/tint/builtins/gen/var/textureLoad/1f2016.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/1f2016.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureLoad(texture: texture_3d<f32>, coords: vec3<i32>, level: i32) -> vec4<f32>
 fn textureLoad_1f2016() {
-  var arg_1 = vec3<i32>();
+  var arg_1 = vec3<i32>(1i);
   var arg_2 = 1i;
   var res: vec4<f32> = textureLoad(arg_0, arg_1, arg_2);
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/1f2016.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/1f2016.wgsl.expected.dxc.hlsl
index 391759d..7bd7b08 100644
--- a/test/tint/builtins/gen/var/textureLoad/1f2016.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/1f2016.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 Texture3D<float4> arg_0 : register(t0, space1);
 
 void textureLoad_1f2016() {
-  int3 arg_1 = (0).xxx;
+  int3 arg_1 = (1).xxx;
   int arg_2 = 1;
   float4 res = arg_0.Load(int4(arg_1, arg_2));
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/1f2016.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/1f2016.wgsl.expected.fxc.hlsl
index 391759d..7bd7b08 100644
--- a/test/tint/builtins/gen/var/textureLoad/1f2016.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/1f2016.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 Texture3D<float4> arg_0 : register(t0, space1);
 
 void textureLoad_1f2016() {
-  int3 arg_1 = (0).xxx;
+  int3 arg_1 = (1).xxx;
   int arg_2 = 1;
   float4 res = arg_0.Load(int4(arg_1, arg_2));
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/1f2016.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/1f2016.wgsl.expected.glsl
index 57b8362..d9d2ec2 100644
--- a/test/tint/builtins/gen/var/textureLoad/1f2016.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/1f2016.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 uniform highp sampler3D arg_0_1;
 void textureLoad_1f2016() {
-  ivec3 arg_1 = ivec3(0);
+  ivec3 arg_1 = ivec3(1);
   int arg_2 = 1;
   vec4 res = texelFetch(arg_0_1, arg_1, arg_2);
 }
@@ -25,7 +25,7 @@
 
 uniform highp sampler3D arg_0_1;
 void textureLoad_1f2016() {
-  ivec3 arg_1 = ivec3(0);
+  ivec3 arg_1 = ivec3(1);
   int arg_2 = 1;
   vec4 res = texelFetch(arg_0_1, arg_1, arg_2);
 }
@@ -42,7 +42,7 @@
 
 uniform highp sampler3D arg_0_1;
 void textureLoad_1f2016() {
-  ivec3 arg_1 = ivec3(0);
+  ivec3 arg_1 = ivec3(1);
   int arg_2 = 1;
   vec4 res = texelFetch(arg_0_1, arg_1, arg_2);
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/1f2016.wgsl.expected.msl b/test/tint/builtins/gen/var/textureLoad/1f2016.wgsl.expected.msl
index 3448c42..77871f5 100644
--- a/test/tint/builtins/gen/var/textureLoad/1f2016.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureLoad/1f2016.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureLoad_1f2016(texture3d<float, access::sample> tint_symbol_1) {
-  int3 arg_1 = int3(0);
+  int3 arg_1 = int3(1);
   int arg_2 = 1;
   float4 res = tint_symbol_1.read(uint3(arg_1), arg_2);
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/1f2016.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/1f2016.wgsl.expected.spvasm
index cc9edd3..e23cbd2 100644
--- a/test/tint/builtins/gen/var/textureLoad/1f2016.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/1f2016.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 45
+; Bound: 46
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -40,47 +40,48 @@
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
-         %18 = OpConstantNull %v3int
-%_ptr_Function_v3int = OpTypePointer Function %v3int
       %int_1 = OpConstant %int 1
+         %19 = OpConstantComposite %v3int %int_1 %int_1 %int_1
+%_ptr_Function_v3int = OpTypePointer Function %v3int
+         %22 = OpConstantNull %v3int
 %_ptr_Function_int = OpTypePointer Function %int
-         %24 = OpConstantNull %int
+         %25 = OpConstantNull %int
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %31 = OpTypeFunction %v4float
+         %32 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_1f2016 = OpFunction %void None %12
          %15 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v3int Function %18
-      %arg_2 = OpVariable %_ptr_Function_int Function %24
+      %arg_1 = OpVariable %_ptr_Function_v3int Function %22
+      %arg_2 = OpVariable %_ptr_Function_int Function %25
         %res = OpVariable %_ptr_Function_v4float Function %5
-               OpStore %arg_1 %18
+               OpStore %arg_1 %19
                OpStore %arg_2 %int_1
-         %26 = OpLoad %11 %arg_0
-         %27 = OpLoad %v3int %arg_1
-         %28 = OpLoad %int %arg_2
-         %25 = OpImageFetch %v4float %26 %27 Lod %28
-               OpStore %res %25
+         %27 = OpLoad %11 %arg_0
+         %28 = OpLoad %v3int %arg_1
+         %29 = OpLoad %int %arg_2
+         %26 = OpImageFetch %v4float %27 %28 Lod %29
+               OpStore %res %26
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %31
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureLoad_1f2016
+%vertex_main_inner = OpFunction %v4float None %32
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %textureLoad_1f2016
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %37
+         %37 = OpLabel
+         %38 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %38
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureLoad_1f2016
+         %41 = OpLabel
+         %42 = OpFunctionCall %void %textureLoad_1f2016
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %43 = OpLabel
-         %44 = OpFunctionCall %void %textureLoad_1f2016
+         %44 = OpLabel
+         %45 = OpFunctionCall %void %textureLoad_1f2016
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureLoad/1f2016.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/1f2016.wgsl.expected.wgsl
index 6b1d5be..75c7236 100644
--- a/test/tint/builtins/gen/var/textureLoad/1f2016.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/1f2016.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_3d<f32>;
 
 fn textureLoad_1f2016() {
-  var arg_1 = vec3<i32>();
+  var arg_1 = vec3<i32>(1i);
   var arg_2 = 1i;
   var res : vec4<f32> = textureLoad(arg_0, arg_1, arg_2);
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/21d1c4.wgsl b/test/tint/builtins/gen/var/textureLoad/21d1c4.wgsl
index 39593e8..3ef6188 100644
--- a/test/tint/builtins/gen/var/textureLoad/21d1c4.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/21d1c4.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureLoad(texture: texture_3d<f32>, coords: vec3<u32>, level: u32) -> vec4<f32>
 fn textureLoad_21d1c4() {
-  var arg_1 = vec3<u32>();
+  var arg_1 = vec3<u32>(1u);
   var arg_2 = 1u;
   var res: vec4<f32> = textureLoad(arg_0, arg_1, arg_2);
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/21d1c4.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/21d1c4.wgsl.expected.dxc.hlsl
index 28c9d44..e640c93 100644
--- a/test/tint/builtins/gen/var/textureLoad/21d1c4.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/21d1c4.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 Texture3D<float4> arg_0 : register(t0, space1);
 
 void textureLoad_21d1c4() {
-  uint3 arg_1 = (0u).xxx;
+  uint3 arg_1 = (1u).xxx;
   uint arg_2 = 1u;
   float4 res = arg_0.Load(uint4(arg_1, arg_2));
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/21d1c4.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/21d1c4.wgsl.expected.fxc.hlsl
index 28c9d44..e640c93 100644
--- a/test/tint/builtins/gen/var/textureLoad/21d1c4.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/21d1c4.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 Texture3D<float4> arg_0 : register(t0, space1);
 
 void textureLoad_21d1c4() {
-  uint3 arg_1 = (0u).xxx;
+  uint3 arg_1 = (1u).xxx;
   uint arg_2 = 1u;
   float4 res = arg_0.Load(uint4(arg_1, arg_2));
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/21d1c4.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/21d1c4.wgsl.expected.glsl
index addbf63..68354e2 100644
--- a/test/tint/builtins/gen/var/textureLoad/21d1c4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/21d1c4.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 uniform highp sampler3D arg_0_1;
 void textureLoad_21d1c4() {
-  uvec3 arg_1 = uvec3(0u);
+  uvec3 arg_1 = uvec3(1u);
   uint arg_2 = 1u;
   vec4 res = texelFetch(arg_0_1, ivec3(arg_1), int(arg_2));
 }
@@ -25,7 +25,7 @@
 
 uniform highp sampler3D arg_0_1;
 void textureLoad_21d1c4() {
-  uvec3 arg_1 = uvec3(0u);
+  uvec3 arg_1 = uvec3(1u);
   uint arg_2 = 1u;
   vec4 res = texelFetch(arg_0_1, ivec3(arg_1), int(arg_2));
 }
@@ -42,7 +42,7 @@
 
 uniform highp sampler3D arg_0_1;
 void textureLoad_21d1c4() {
-  uvec3 arg_1 = uvec3(0u);
+  uvec3 arg_1 = uvec3(1u);
   uint arg_2 = 1u;
   vec4 res = texelFetch(arg_0_1, ivec3(arg_1), int(arg_2));
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/21d1c4.wgsl.expected.msl b/test/tint/builtins/gen/var/textureLoad/21d1c4.wgsl.expected.msl
index c3441bf..c9d0473 100644
--- a/test/tint/builtins/gen/var/textureLoad/21d1c4.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureLoad/21d1c4.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureLoad_21d1c4(texture3d<float, access::sample> tint_symbol_1) {
-  uint3 arg_1 = uint3(0u);
+  uint3 arg_1 = uint3(1u);
   uint arg_2 = 1u;
   float4 res = tint_symbol_1.read(uint3(arg_1), arg_2);
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/21d1c4.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/21d1c4.wgsl.expected.spvasm
index 6d18184..1f7c324 100644
--- a/test/tint/builtins/gen/var/textureLoad/21d1c4.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/21d1c4.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 45
+; Bound: 46
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -40,47 +40,48 @@
          %12 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
-         %18 = OpConstantNull %v3uint
-%_ptr_Function_v3uint = OpTypePointer Function %v3uint
      %uint_1 = OpConstant %uint 1
+         %19 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
+%_ptr_Function_v3uint = OpTypePointer Function %v3uint
+         %22 = OpConstantNull %v3uint
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %24 = OpConstantNull %uint
+         %25 = OpConstantNull %uint
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %31 = OpTypeFunction %v4float
+         %32 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_21d1c4 = OpFunction %void None %12
          %15 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v3uint Function %18
-      %arg_2 = OpVariable %_ptr_Function_uint Function %24
+      %arg_1 = OpVariable %_ptr_Function_v3uint Function %22
+      %arg_2 = OpVariable %_ptr_Function_uint Function %25
         %res = OpVariable %_ptr_Function_v4float Function %5
-               OpStore %arg_1 %18
+               OpStore %arg_1 %19
                OpStore %arg_2 %uint_1
-         %26 = OpLoad %11 %arg_0
-         %27 = OpLoad %v3uint %arg_1
-         %28 = OpLoad %uint %arg_2
-         %25 = OpImageFetch %v4float %26 %27 Lod %28
-               OpStore %res %25
+         %27 = OpLoad %11 %arg_0
+         %28 = OpLoad %v3uint %arg_1
+         %29 = OpLoad %uint %arg_2
+         %26 = OpImageFetch %v4float %27 %28 Lod %29
+               OpStore %res %26
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %31
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureLoad_21d1c4
+%vertex_main_inner = OpFunction %v4float None %32
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %textureLoad_21d1c4
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %37
+         %37 = OpLabel
+         %38 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %38
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureLoad_21d1c4
+         %41 = OpLabel
+         %42 = OpFunctionCall %void %textureLoad_21d1c4
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %43 = OpLabel
-         %44 = OpFunctionCall %void %textureLoad_21d1c4
+         %44 = OpLabel
+         %45 = OpFunctionCall %void %textureLoad_21d1c4
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureLoad/21d1c4.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/21d1c4.wgsl.expected.wgsl
index f363fde..5bcf246 100644
--- a/test/tint/builtins/gen/var/textureLoad/21d1c4.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/21d1c4.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_3d<f32>;
 
 fn textureLoad_21d1c4() {
-  var arg_1 = vec3<u32>();
+  var arg_1 = vec3<u32>(1u);
   var arg_2 = 1u;
   var res : vec4<f32> = textureLoad(arg_0, arg_1, arg_2);
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/223246.wgsl b/test/tint/builtins/gen/var/textureLoad/223246.wgsl
index 732e25a..2cb9d28 100644
--- a/test/tint/builtins/gen/var/textureLoad/223246.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/223246.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureLoad(texture: texture_3d<i32>, coords: vec3<u32>, level: i32) -> vec4<i32>
 fn textureLoad_223246() {
-  var arg_1 = vec3<u32>();
+  var arg_1 = vec3<u32>(1u);
   var arg_2 = 1i;
   var res: vec4<i32> = textureLoad(arg_0, arg_1, arg_2);
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/223246.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/223246.wgsl.expected.dxc.hlsl
index 1589eae..91694ca 100644
--- a/test/tint/builtins/gen/var/textureLoad/223246.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/223246.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 Texture3D<int4> arg_0 : register(t0, space1);
 
 void textureLoad_223246() {
-  uint3 arg_1 = (0u).xxx;
+  uint3 arg_1 = (1u).xxx;
   int arg_2 = 1;
   int4 res = arg_0.Load(uint4(arg_1, uint(arg_2)));
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/223246.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/223246.wgsl.expected.fxc.hlsl
index 1589eae..91694ca 100644
--- a/test/tint/builtins/gen/var/textureLoad/223246.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/223246.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 Texture3D<int4> arg_0 : register(t0, space1);
 
 void textureLoad_223246() {
-  uint3 arg_1 = (0u).xxx;
+  uint3 arg_1 = (1u).xxx;
   int arg_2 = 1;
   int4 res = arg_0.Load(uint4(arg_1, uint(arg_2)));
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/223246.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/223246.wgsl.expected.glsl
index 127badd..364d598 100644
--- a/test/tint/builtins/gen/var/textureLoad/223246.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/223246.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 uniform highp isampler3D arg_0_1;
 void textureLoad_223246() {
-  uvec3 arg_1 = uvec3(0u);
+  uvec3 arg_1 = uvec3(1u);
   int arg_2 = 1;
   ivec4 res = texelFetch(arg_0_1, ivec3(arg_1), arg_2);
 }
@@ -25,7 +25,7 @@
 
 uniform highp isampler3D arg_0_1;
 void textureLoad_223246() {
-  uvec3 arg_1 = uvec3(0u);
+  uvec3 arg_1 = uvec3(1u);
   int arg_2 = 1;
   ivec4 res = texelFetch(arg_0_1, ivec3(arg_1), arg_2);
 }
@@ -42,7 +42,7 @@
 
 uniform highp isampler3D arg_0_1;
 void textureLoad_223246() {
-  uvec3 arg_1 = uvec3(0u);
+  uvec3 arg_1 = uvec3(1u);
   int arg_2 = 1;
   ivec4 res = texelFetch(arg_0_1, ivec3(arg_1), arg_2);
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/223246.wgsl.expected.msl b/test/tint/builtins/gen/var/textureLoad/223246.wgsl.expected.msl
index 324ebe6..cd54745 100644
--- a/test/tint/builtins/gen/var/textureLoad/223246.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureLoad/223246.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureLoad_223246(texture3d<int, access::sample> tint_symbol_1) {
-  uint3 arg_1 = uint3(0u);
+  uint3 arg_1 = uint3(1u);
   int arg_2 = 1;
   int4 res = tint_symbol_1.read(uint3(arg_1), arg_2);
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/223246.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/223246.wgsl.expected.spvasm
index a5ebb89..2d7fb32 100644
--- a/test/tint/builtins/gen/var/textureLoad/223246.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/223246.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 48
+; Bound: 50
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -41,49 +41,51 @@
          %13 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
-         %19 = OpConstantNull %v3uint
+     %uint_1 = OpConstant %uint 1
+         %20 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
 %_ptr_Function_v3uint = OpTypePointer Function %v3uint
+         %23 = OpConstantNull %v3uint
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
-         %25 = OpConstantNull %int
+         %27 = OpConstantNull %int
       %v4int = OpTypeVector %int 4
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %33 = OpConstantNull %v4int
-         %34 = OpTypeFunction %v4float
+         %35 = OpConstantNull %v4int
+         %36 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_223246 = OpFunction %void None %13
          %16 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v3uint Function %19
-      %arg_2 = OpVariable %_ptr_Function_int Function %25
-        %res = OpVariable %_ptr_Function_v4int Function %33
-               OpStore %arg_1 %19
+      %arg_1 = OpVariable %_ptr_Function_v3uint Function %23
+      %arg_2 = OpVariable %_ptr_Function_int Function %27
+        %res = OpVariable %_ptr_Function_v4int Function %35
+               OpStore %arg_1 %20
                OpStore %arg_2 %int_1
-         %28 = OpLoad %11 %arg_0
-         %29 = OpLoad %v3uint %arg_1
-         %30 = OpLoad %int %arg_2
-         %26 = OpImageFetch %v4int %28 %29 Lod %30
-               OpStore %res %26
+         %30 = OpLoad %11 %arg_0
+         %31 = OpLoad %v3uint %arg_1
+         %32 = OpLoad %int %arg_2
+         %28 = OpImageFetch %v4int %30 %31 Lod %32
+               OpStore %res %28
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %34
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureLoad_223246
+%vertex_main_inner = OpFunction %v4float None %36
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %textureLoad_223246
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %40
+         %41 = OpLabel
+         %42 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %42
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %43 = OpLabel
-         %44 = OpFunctionCall %void %textureLoad_223246
+         %45 = OpLabel
+         %46 = OpFunctionCall %void %textureLoad_223246
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %46 = OpLabel
-         %47 = OpFunctionCall %void %textureLoad_223246
+         %48 = OpLabel
+         %49 = OpFunctionCall %void %textureLoad_223246
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureLoad/223246.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/223246.wgsl.expected.wgsl
index 119a40b..646ea84 100644
--- a/test/tint/builtins/gen/var/textureLoad/223246.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/223246.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_3d<i32>;
 
 fn textureLoad_223246() {
-  var arg_1 = vec3<u32>();
+  var arg_1 = vec3<u32>(1u);
   var arg_2 = 1i;
   var res : vec4<i32> = textureLoad(arg_0, arg_1, arg_2);
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/2363be.wgsl b/test/tint/builtins/gen/var/textureLoad/2363be.wgsl
index 99b25df..70494bc 100644
--- a/test/tint/builtins/gen/var/textureLoad/2363be.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/2363be.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureLoad(texture: texture_2d_array<i32>, coords: vec2<u32>, array_index: i32, level: u32) -> vec4<i32>
 fn textureLoad_2363be() {
-  var arg_1 = vec2<u32>();
+  var arg_1 = vec2<u32>(1u);
   var arg_2 = 1i;
   var arg_3 = 1u;
   var res: vec4<i32> = textureLoad(arg_0, arg_1, arg_2, arg_3);
diff --git a/test/tint/builtins/gen/var/textureLoad/2363be.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/2363be.wgsl.expected.dxc.hlsl
index b3099c3..2f03a64 100644
--- a/test/tint/builtins/gen/var/textureLoad/2363be.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/2363be.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 void textureLoad_2363be() {
-  uint2 arg_1 = (0u).xx;
+  uint2 arg_1 = (1u).xx;
   int arg_2 = 1;
   uint arg_3 = 1u;
   int4 res = arg_0.Load(uint4(uint3(arg_1, uint(arg_2)), arg_3));
diff --git a/test/tint/builtins/gen/var/textureLoad/2363be.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/2363be.wgsl.expected.fxc.hlsl
index b3099c3..2f03a64 100644
--- a/test/tint/builtins/gen/var/textureLoad/2363be.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/2363be.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 void textureLoad_2363be() {
-  uint2 arg_1 = (0u).xx;
+  uint2 arg_1 = (1u).xx;
   int arg_2 = 1;
   uint arg_3 = 1u;
   int4 res = arg_0.Load(uint4(uint3(arg_1, uint(arg_2)), arg_3));
diff --git a/test/tint/builtins/gen/var/textureLoad/2363be.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/2363be.wgsl.expected.glsl
index 56f9130..1251723 100644
--- a/test/tint/builtins/gen/var/textureLoad/2363be.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/2363be.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 uniform highp isampler2DArray arg_0_1;
 void textureLoad_2363be() {
-  uvec2 arg_1 = uvec2(0u);
+  uvec2 arg_1 = uvec2(1u);
   int arg_2 = 1;
   uint arg_3 = 1u;
   ivec4 res = texelFetch(arg_0_1, ivec3(uvec3(arg_1, uint(arg_2))), int(arg_3));
@@ -26,7 +26,7 @@
 
 uniform highp isampler2DArray arg_0_1;
 void textureLoad_2363be() {
-  uvec2 arg_1 = uvec2(0u);
+  uvec2 arg_1 = uvec2(1u);
   int arg_2 = 1;
   uint arg_3 = 1u;
   ivec4 res = texelFetch(arg_0_1, ivec3(uvec3(arg_1, uint(arg_2))), int(arg_3));
@@ -44,7 +44,7 @@
 
 uniform highp isampler2DArray arg_0_1;
 void textureLoad_2363be() {
-  uvec2 arg_1 = uvec2(0u);
+  uvec2 arg_1 = uvec2(1u);
   int arg_2 = 1;
   uint arg_3 = 1u;
   ivec4 res = texelFetch(arg_0_1, ivec3(uvec3(arg_1, uint(arg_2))), int(arg_3));
diff --git a/test/tint/builtins/gen/var/textureLoad/2363be.wgsl.expected.msl b/test/tint/builtins/gen/var/textureLoad/2363be.wgsl.expected.msl
index 74c4e16..2a955c5 100644
--- a/test/tint/builtins/gen/var/textureLoad/2363be.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureLoad/2363be.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureLoad_2363be(texture2d_array<int, access::sample> tint_symbol_1) {
-  uint2 arg_1 = uint2(0u);
+  uint2 arg_1 = uint2(1u);
   int arg_2 = 1;
   uint arg_3 = 1u;
   int4 res = tint_symbol_1.read(uint2(arg_1), arg_2, arg_3);
diff --git a/test/tint/builtins/gen/var/textureLoad/2363be.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/2363be.wgsl.expected.spvasm
index 7995b70..ee273d8 100644
--- a/test/tint/builtins/gen/var/textureLoad/2363be.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/2363be.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 58
+; Bound: 59
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -42,60 +42,61 @@
          %13 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
-         %19 = OpConstantNull %v2uint
+     %uint_1 = OpConstant %uint 1
+         %20 = OpConstantComposite %v2uint %uint_1 %uint_1
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
+         %23 = OpConstantNull %v2uint
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
-         %25 = OpConstantNull %int
-     %uint_1 = OpConstant %uint 1
+         %27 = OpConstantNull %int
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %29 = OpConstantNull %uint
+         %30 = OpConstantNull %uint
       %v4int = OpTypeVector %int 4
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %43 = OpConstantNull %v4int
-         %44 = OpTypeFunction %v4float
+         %44 = OpConstantNull %v4int
+         %45 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_2363be = OpFunction %void None %13
          %16 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2uint Function %19
-      %arg_2 = OpVariable %_ptr_Function_int Function %25
-      %arg_3 = OpVariable %_ptr_Function_uint Function %29
-        %res = OpVariable %_ptr_Function_v4int Function %43
-               OpStore %arg_1 %19
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %23
+      %arg_2 = OpVariable %_ptr_Function_int Function %27
+      %arg_3 = OpVariable %_ptr_Function_uint Function %30
+        %res = OpVariable %_ptr_Function_v4int Function %44
+               OpStore %arg_1 %20
                OpStore %arg_2 %int_1
                OpStore %arg_3 %uint_1
-         %32 = OpLoad %11 %arg_0
-         %34 = OpLoad %v2uint %arg_1
-         %35 = OpCompositeExtract %uint %34 0
-         %36 = OpCompositeExtract %uint %34 1
-         %38 = OpLoad %int %arg_2
-         %37 = OpBitcast %uint %38
-         %39 = OpCompositeConstruct %v3uint %35 %36 %37
-         %40 = OpLoad %uint %arg_3
-         %30 = OpImageFetch %v4int %32 %39 Lod %40
-               OpStore %res %30
+         %33 = OpLoad %11 %arg_0
+         %35 = OpLoad %v2uint %arg_1
+         %36 = OpCompositeExtract %uint %35 0
+         %37 = OpCompositeExtract %uint %35 1
+         %39 = OpLoad %int %arg_2
+         %38 = OpBitcast %uint %39
+         %40 = OpCompositeConstruct %v3uint %36 %37 %38
+         %41 = OpLoad %uint %arg_3
+         %31 = OpImageFetch %v4int %33 %40 Lod %41
+               OpStore %res %31
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %44
-         %46 = OpLabel
-         %47 = OpFunctionCall %void %textureLoad_2363be
+%vertex_main_inner = OpFunction %v4float None %45
+         %47 = OpLabel
+         %48 = OpFunctionCall %void %textureLoad_2363be
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %49 = OpLabel
-         %50 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %50
+         %50 = OpLabel
+         %51 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %51
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %53 = OpLabel
-         %54 = OpFunctionCall %void %textureLoad_2363be
+         %54 = OpLabel
+         %55 = OpFunctionCall %void %textureLoad_2363be
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %56 = OpLabel
-         %57 = OpFunctionCall %void %textureLoad_2363be
+         %57 = OpLabel
+         %58 = OpFunctionCall %void %textureLoad_2363be
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureLoad/2363be.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/2363be.wgsl.expected.wgsl
index 35157c0..3a453a7 100644
--- a/test/tint/builtins/gen/var/textureLoad/2363be.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/2363be.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_2d_array<i32>;
 
 fn textureLoad_2363be() {
-  var arg_1 = vec2<u32>();
+  var arg_1 = vec2<u32>(1u);
   var arg_2 = 1i;
   var arg_3 = 1u;
   var res : vec4<i32> = textureLoad(arg_0, arg_1, arg_2, arg_3);
diff --git a/test/tint/builtins/gen/var/textureLoad/2d479c.wgsl b/test/tint/builtins/gen/var/textureLoad/2d479c.wgsl
index 69b005c..2365ade 100644
--- a/test/tint/builtins/gen/var/textureLoad/2d479c.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/2d479c.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureLoad(texture: texture_2d<f32>, coords: vec2<i32>, level: u32) -> vec4<f32>
 fn textureLoad_2d479c() {
-  var arg_1 = vec2<i32>();
+  var arg_1 = vec2<i32>(1i);
   var arg_2 = 1u;
   var res: vec4<f32> = textureLoad(arg_0, arg_1, arg_2);
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/2d479c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/2d479c.wgsl.expected.dxc.hlsl
index 364f342..b92c9e2 100644
--- a/test/tint/builtins/gen/var/textureLoad/2d479c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/2d479c.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 Texture2D<float4> arg_0 : register(t0, space1);
 
 void textureLoad_2d479c() {
-  int2 arg_1 = (0).xx;
+  int2 arg_1 = (1).xx;
   uint arg_2 = 1u;
   float4 res = arg_0.Load(int3(arg_1, int(arg_2)));
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/2d479c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/2d479c.wgsl.expected.fxc.hlsl
index 364f342..b92c9e2 100644
--- a/test/tint/builtins/gen/var/textureLoad/2d479c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/2d479c.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 Texture2D<float4> arg_0 : register(t0, space1);
 
 void textureLoad_2d479c() {
-  int2 arg_1 = (0).xx;
+  int2 arg_1 = (1).xx;
   uint arg_2 = 1u;
   float4 res = arg_0.Load(int3(arg_1, int(arg_2)));
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/2d479c.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/2d479c.wgsl.expected.glsl
index 87a8fd9..c8adc02 100644
--- a/test/tint/builtins/gen/var/textureLoad/2d479c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/2d479c.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 uniform highp sampler2D arg_0_1;
 void textureLoad_2d479c() {
-  ivec2 arg_1 = ivec2(0);
+  ivec2 arg_1 = ivec2(1);
   uint arg_2 = 1u;
   vec4 res = texelFetch(arg_0_1, arg_1, int(arg_2));
 }
@@ -25,7 +25,7 @@
 
 uniform highp sampler2D arg_0_1;
 void textureLoad_2d479c() {
-  ivec2 arg_1 = ivec2(0);
+  ivec2 arg_1 = ivec2(1);
   uint arg_2 = 1u;
   vec4 res = texelFetch(arg_0_1, arg_1, int(arg_2));
 }
@@ -42,7 +42,7 @@
 
 uniform highp sampler2D arg_0_1;
 void textureLoad_2d479c() {
-  ivec2 arg_1 = ivec2(0);
+  ivec2 arg_1 = ivec2(1);
   uint arg_2 = 1u;
   vec4 res = texelFetch(arg_0_1, arg_1, int(arg_2));
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/2d479c.wgsl.expected.msl b/test/tint/builtins/gen/var/textureLoad/2d479c.wgsl.expected.msl
index fa0fc90..c55a8c2 100644
--- a/test/tint/builtins/gen/var/textureLoad/2d479c.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureLoad/2d479c.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureLoad_2d479c(texture2d<float, access::sample> tint_symbol_1) {
-  int2 arg_1 = int2(0);
+  int2 arg_1 = int2(1);
   uint arg_2 = 1u;
   float4 res = tint_symbol_1.read(uint2(arg_1), arg_2);
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/2d479c.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/2d479c.wgsl.expected.spvasm
index 59d6c52..998c827 100644
--- a/test/tint/builtins/gen/var/textureLoad/2d479c.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/2d479c.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 46
+; Bound: 48
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -40,48 +40,50 @@
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
-         %18 = OpConstantNull %v2int
+      %int_1 = OpConstant %int 1
+         %19 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v2int = OpTypePointer Function %v2int
+         %22 = OpConstantNull %v2int
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %25 = OpConstantNull %uint
+         %27 = OpConstantNull %uint
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %32 = OpTypeFunction %v4float
+         %34 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_2d479c = OpFunction %void None %12
          %15 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2int Function %18
-      %arg_2 = OpVariable %_ptr_Function_uint Function %25
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %22
+      %arg_2 = OpVariable %_ptr_Function_uint Function %27
         %res = OpVariable %_ptr_Function_v4float Function %5
-               OpStore %arg_1 %18
+               OpStore %arg_1 %19
                OpStore %arg_2 %uint_1
-         %27 = OpLoad %11 %arg_0
-         %28 = OpLoad %v2int %arg_1
-         %29 = OpLoad %uint %arg_2
-         %26 = OpImageFetch %v4float %27 %28 Lod %29
-               OpStore %res %26
+         %29 = OpLoad %11 %arg_0
+         %30 = OpLoad %v2int %arg_1
+         %31 = OpLoad %uint %arg_2
+         %28 = OpImageFetch %v4float %29 %30 Lod %31
+               OpStore %res %28
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %32
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureLoad_2d479c
+%vertex_main_inner = OpFunction %v4float None %34
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureLoad_2d479c
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %37 = OpLabel
-         %38 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %38
+         %39 = OpLabel
+         %40 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %40
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureLoad_2d479c
+         %43 = OpLabel
+         %44 = OpFunctionCall %void %textureLoad_2d479c
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %44 = OpLabel
-         %45 = OpFunctionCall %void %textureLoad_2d479c
+         %46 = OpLabel
+         %47 = OpFunctionCall %void %textureLoad_2d479c
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureLoad/2d479c.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/2d479c.wgsl.expected.wgsl
index 1740e11..d29f519 100644
--- a/test/tint/builtins/gen/var/textureLoad/2d479c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/2d479c.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_2d<f32>;
 
 fn textureLoad_2d479c() {
-  var arg_1 = vec2<i32>();
+  var arg_1 = vec2<i32>(1i);
   var arg_2 = 1u;
   var res : vec4<f32> = textureLoad(arg_0, arg_1, arg_2);
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/2e09aa.wgsl b/test/tint/builtins/gen/var/textureLoad/2e09aa.wgsl
index 9a79fe2..27f61c6 100644
--- a/test/tint/builtins/gen/var/textureLoad/2e09aa.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/2e09aa.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureLoad(texture: texture_multisampled_2d<f32>, coords: vec2<u32>, sample_index: u32) -> vec4<f32>
 fn textureLoad_2e09aa() {
-  var arg_1 = vec2<u32>();
+  var arg_1 = vec2<u32>(1u);
   var arg_2 = 1u;
   var res: vec4<f32> = textureLoad(arg_0, arg_1, arg_2);
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/2e09aa.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/2e09aa.wgsl.expected.dxc.hlsl
index 0219fc6..fa848d3 100644
--- a/test/tint/builtins/gen/var/textureLoad/2e09aa.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/2e09aa.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DMS<float4> arg_0 : register(t0, space1);
 
 void textureLoad_2e09aa() {
-  uint2 arg_1 = (0u).xx;
+  uint2 arg_1 = (1u).xx;
   uint arg_2 = 1u;
   float4 res = arg_0.Load(arg_1, arg_2);
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/2e09aa.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/2e09aa.wgsl.expected.fxc.hlsl
index 0219fc6..fa848d3 100644
--- a/test/tint/builtins/gen/var/textureLoad/2e09aa.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/2e09aa.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DMS<float4> arg_0 : register(t0, space1);
 
 void textureLoad_2e09aa() {
-  uint2 arg_1 = (0u).xx;
+  uint2 arg_1 = (1u).xx;
   uint arg_2 = 1u;
   float4 res = arg_0.Load(arg_1, arg_2);
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/2e09aa.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/2e09aa.wgsl.expected.glsl
index e6b2a00..237f311 100644
--- a/test/tint/builtins/gen/var/textureLoad/2e09aa.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/2e09aa.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 uniform highp sampler2DMS arg_0_1;
 void textureLoad_2e09aa() {
-  uvec2 arg_1 = uvec2(0u);
+  uvec2 arg_1 = uvec2(1u);
   uint arg_2 = 1u;
   vec4 res = texelFetch(arg_0_1, ivec2(arg_1), int(arg_2));
 }
@@ -25,7 +25,7 @@
 
 uniform highp sampler2DMS arg_0_1;
 void textureLoad_2e09aa() {
-  uvec2 arg_1 = uvec2(0u);
+  uvec2 arg_1 = uvec2(1u);
   uint arg_2 = 1u;
   vec4 res = texelFetch(arg_0_1, ivec2(arg_1), int(arg_2));
 }
@@ -42,7 +42,7 @@
 
 uniform highp sampler2DMS arg_0_1;
 void textureLoad_2e09aa() {
-  uvec2 arg_1 = uvec2(0u);
+  uvec2 arg_1 = uvec2(1u);
   uint arg_2 = 1u;
   vec4 res = texelFetch(arg_0_1, ivec2(arg_1), int(arg_2));
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/2e09aa.wgsl.expected.msl b/test/tint/builtins/gen/var/textureLoad/2e09aa.wgsl.expected.msl
index f1ec214..b7cc5d0 100644
--- a/test/tint/builtins/gen/var/textureLoad/2e09aa.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureLoad/2e09aa.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureLoad_2e09aa(texture2d_ms<float, access::read> tint_symbol_1) {
-  uint2 arg_1 = uint2(0u);
+  uint2 arg_1 = uint2(1u);
   uint arg_2 = 1u;
   float4 res = tint_symbol_1.read(uint2(arg_1), arg_2);
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/2e09aa.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/2e09aa.wgsl.expected.spvasm
index 751b31e..58dcfbb 100644
--- a/test/tint/builtins/gen/var/textureLoad/2e09aa.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/2e09aa.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 45
+; Bound: 46
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -40,47 +40,48 @@
          %12 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
-         %18 = OpConstantNull %v2uint
-%_ptr_Function_v2uint = OpTypePointer Function %v2uint
      %uint_1 = OpConstant %uint 1
+         %19 = OpConstantComposite %v2uint %uint_1 %uint_1
+%_ptr_Function_v2uint = OpTypePointer Function %v2uint
+         %22 = OpConstantNull %v2uint
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %24 = OpConstantNull %uint
+         %25 = OpConstantNull %uint
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %31 = OpTypeFunction %v4float
+         %32 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_2e09aa = OpFunction %void None %12
          %15 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2uint Function %18
-      %arg_2 = OpVariable %_ptr_Function_uint Function %24
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %22
+      %arg_2 = OpVariable %_ptr_Function_uint Function %25
         %res = OpVariable %_ptr_Function_v4float Function %5
-               OpStore %arg_1 %18
+               OpStore %arg_1 %19
                OpStore %arg_2 %uint_1
-         %26 = OpLoad %11 %arg_0
-         %27 = OpLoad %v2uint %arg_1
-         %28 = OpLoad %uint %arg_2
-         %25 = OpImageFetch %v4float %26 %27 Sample %28
-               OpStore %res %25
+         %27 = OpLoad %11 %arg_0
+         %28 = OpLoad %v2uint %arg_1
+         %29 = OpLoad %uint %arg_2
+         %26 = OpImageFetch %v4float %27 %28 Sample %29
+               OpStore %res %26
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %31
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureLoad_2e09aa
+%vertex_main_inner = OpFunction %v4float None %32
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %textureLoad_2e09aa
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %37
+         %37 = OpLabel
+         %38 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %38
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureLoad_2e09aa
+         %41 = OpLabel
+         %42 = OpFunctionCall %void %textureLoad_2e09aa
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %43 = OpLabel
-         %44 = OpFunctionCall %void %textureLoad_2e09aa
+         %44 = OpLabel
+         %45 = OpFunctionCall %void %textureLoad_2e09aa
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureLoad/2e09aa.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/2e09aa.wgsl.expected.wgsl
index 22a0a70..2a0781b 100644
--- a/test/tint/builtins/gen/var/textureLoad/2e09aa.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/2e09aa.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_multisampled_2d<f32>;
 
 fn textureLoad_2e09aa() {
-  var arg_1 = vec2<u32>();
+  var arg_1 = vec2<u32>(1u);
   var arg_2 = 1u;
   var res : vec4<f32> = textureLoad(arg_0, arg_1, arg_2);
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/38f8ab.wgsl b/test/tint/builtins/gen/var/textureLoad/38f8ab.wgsl
index dc74980..526039a 100644
--- a/test/tint/builtins/gen/var/textureLoad/38f8ab.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/38f8ab.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureLoad(texture: texture_multisampled_2d<i32>, coords: vec2<i32>, sample_index: u32) -> vec4<i32>
 fn textureLoad_38f8ab() {
-  var arg_1 = vec2<i32>();
+  var arg_1 = vec2<i32>(1i);
   var arg_2 = 1u;
   var res: vec4<i32> = textureLoad(arg_0, arg_1, arg_2);
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/38f8ab.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/38f8ab.wgsl.expected.dxc.hlsl
index 775c51a..ee90bc4 100644
--- a/test/tint/builtins/gen/var/textureLoad/38f8ab.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/38f8ab.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DMS<int4> arg_0 : register(t0, space1);
 
 void textureLoad_38f8ab() {
-  int2 arg_1 = (0).xx;
+  int2 arg_1 = (1).xx;
   uint arg_2 = 1u;
   int4 res = arg_0.Load(arg_1, arg_2);
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/38f8ab.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/38f8ab.wgsl.expected.fxc.hlsl
index 775c51a..ee90bc4 100644
--- a/test/tint/builtins/gen/var/textureLoad/38f8ab.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/38f8ab.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DMS<int4> arg_0 : register(t0, space1);
 
 void textureLoad_38f8ab() {
-  int2 arg_1 = (0).xx;
+  int2 arg_1 = (1).xx;
   uint arg_2 = 1u;
   int4 res = arg_0.Load(arg_1, arg_2);
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/38f8ab.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/38f8ab.wgsl.expected.glsl
index be03c72..4499324 100644
--- a/test/tint/builtins/gen/var/textureLoad/38f8ab.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/38f8ab.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 uniform highp isampler2DMS arg_0_1;
 void textureLoad_38f8ab() {
-  ivec2 arg_1 = ivec2(0);
+  ivec2 arg_1 = ivec2(1);
   uint arg_2 = 1u;
   ivec4 res = texelFetch(arg_0_1, arg_1, int(arg_2));
 }
@@ -25,7 +25,7 @@
 
 uniform highp isampler2DMS arg_0_1;
 void textureLoad_38f8ab() {
-  ivec2 arg_1 = ivec2(0);
+  ivec2 arg_1 = ivec2(1);
   uint arg_2 = 1u;
   ivec4 res = texelFetch(arg_0_1, arg_1, int(arg_2));
 }
@@ -42,7 +42,7 @@
 
 uniform highp isampler2DMS arg_0_1;
 void textureLoad_38f8ab() {
-  ivec2 arg_1 = ivec2(0);
+  ivec2 arg_1 = ivec2(1);
   uint arg_2 = 1u;
   ivec4 res = texelFetch(arg_0_1, arg_1, int(arg_2));
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/38f8ab.wgsl.expected.msl b/test/tint/builtins/gen/var/textureLoad/38f8ab.wgsl.expected.msl
index fb04229..6749f45 100644
--- a/test/tint/builtins/gen/var/textureLoad/38f8ab.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureLoad/38f8ab.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureLoad_38f8ab(texture2d_ms<int, access::read> tint_symbol_1) {
-  int2 arg_1 = int2(0);
+  int2 arg_1 = int2(1);
   uint arg_2 = 1u;
   int4 res = tint_symbol_1.read(uint2(arg_1), arg_2);
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/38f8ab.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/38f8ab.wgsl.expected.spvasm
index 426ee5b..7c8c28a 100644
--- a/test/tint/builtins/gen/var/textureLoad/38f8ab.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/38f8ab.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 48
+; Bound: 50
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -40,50 +40,52 @@
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
       %v2int = OpTypeVector %int 2
-         %18 = OpConstantNull %v2int
+      %int_1 = OpConstant %int 1
+         %19 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v2int = OpTypePointer Function %v2int
+         %22 = OpConstantNull %v2int
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %25 = OpConstantNull %uint
+         %27 = OpConstantNull %uint
       %v4int = OpTypeVector %int 4
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %33 = OpConstantNull %v4int
-         %34 = OpTypeFunction %v4float
+         %35 = OpConstantNull %v4int
+         %36 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_38f8ab = OpFunction %void None %13
          %16 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2int Function %18
-      %arg_2 = OpVariable %_ptr_Function_uint Function %25
-        %res = OpVariable %_ptr_Function_v4int Function %33
-               OpStore %arg_1 %18
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %22
+      %arg_2 = OpVariable %_ptr_Function_uint Function %27
+        %res = OpVariable %_ptr_Function_v4int Function %35
+               OpStore %arg_1 %19
                OpStore %arg_2 %uint_1
-         %28 = OpLoad %11 %arg_0
-         %29 = OpLoad %v2int %arg_1
-         %30 = OpLoad %uint %arg_2
-         %26 = OpImageFetch %v4int %28 %29 Sample %30
-               OpStore %res %26
+         %30 = OpLoad %11 %arg_0
+         %31 = OpLoad %v2int %arg_1
+         %32 = OpLoad %uint %arg_2
+         %28 = OpImageFetch %v4int %30 %31 Sample %32
+               OpStore %res %28
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %34
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureLoad_38f8ab
+%vertex_main_inner = OpFunction %v4float None %36
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %textureLoad_38f8ab
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %40
+         %41 = OpLabel
+         %42 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %42
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %43 = OpLabel
-         %44 = OpFunctionCall %void %textureLoad_38f8ab
+         %45 = OpLabel
+         %46 = OpFunctionCall %void %textureLoad_38f8ab
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %46 = OpLabel
-         %47 = OpFunctionCall %void %textureLoad_38f8ab
+         %48 = OpLabel
+         %49 = OpFunctionCall %void %textureLoad_38f8ab
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureLoad/38f8ab.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/38f8ab.wgsl.expected.wgsl
index c09340e..33fdb48 100644
--- a/test/tint/builtins/gen/var/textureLoad/38f8ab.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/38f8ab.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_multisampled_2d<i32>;
 
 fn textureLoad_38f8ab() {
-  var arg_1 = vec2<i32>();
+  var arg_1 = vec2<i32>(1i);
   var arg_2 = 1u;
   var res : vec4<i32> = textureLoad(arg_0, arg_1, arg_2);
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/3c96e8.wgsl b/test/tint/builtins/gen/var/textureLoad/3c96e8.wgsl
index 9a60cf5..212e8f0 100644
--- a/test/tint/builtins/gen/var/textureLoad/3c96e8.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/3c96e8.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureLoad(texture: texture_2d_array<f32>, coords: vec2<i32>, array_index: u32, level: u32) -> vec4<f32>
 fn textureLoad_3c96e8() {
-  var arg_1 = vec2<i32>();
+  var arg_1 = vec2<i32>(1i);
   var arg_2 = 1u;
   var arg_3 = 1u;
   var res: vec4<f32> = textureLoad(arg_0, arg_1, arg_2, arg_3);
diff --git a/test/tint/builtins/gen/var/textureLoad/3c96e8.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/3c96e8.wgsl.expected.dxc.hlsl
index 4a6573b..5fbc79d 100644
--- a/test/tint/builtins/gen/var/textureLoad/3c96e8.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/3c96e8.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 void textureLoad_3c96e8() {
-  int2 arg_1 = (0).xx;
+  int2 arg_1 = (1).xx;
   uint arg_2 = 1u;
   uint arg_3 = 1u;
   float4 res = arg_0.Load(int4(int3(arg_1, int(arg_2)), int(arg_3)));
diff --git a/test/tint/builtins/gen/var/textureLoad/3c96e8.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/3c96e8.wgsl.expected.fxc.hlsl
index 4a6573b..5fbc79d 100644
--- a/test/tint/builtins/gen/var/textureLoad/3c96e8.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/3c96e8.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 void textureLoad_3c96e8() {
-  int2 arg_1 = (0).xx;
+  int2 arg_1 = (1).xx;
   uint arg_2 = 1u;
   uint arg_3 = 1u;
   float4 res = arg_0.Load(int4(int3(arg_1, int(arg_2)), int(arg_3)));
diff --git a/test/tint/builtins/gen/var/textureLoad/3c96e8.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/3c96e8.wgsl.expected.glsl
index 4c840ce..764dd98 100644
--- a/test/tint/builtins/gen/var/textureLoad/3c96e8.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/3c96e8.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 uniform highp sampler2DArray arg_0_1;
 void textureLoad_3c96e8() {
-  ivec2 arg_1 = ivec2(0);
+  ivec2 arg_1 = ivec2(1);
   uint arg_2 = 1u;
   uint arg_3 = 1u;
   vec4 res = texelFetch(arg_0_1, ivec3(arg_1, int(arg_2)), int(arg_3));
@@ -26,7 +26,7 @@
 
 uniform highp sampler2DArray arg_0_1;
 void textureLoad_3c96e8() {
-  ivec2 arg_1 = ivec2(0);
+  ivec2 arg_1 = ivec2(1);
   uint arg_2 = 1u;
   uint arg_3 = 1u;
   vec4 res = texelFetch(arg_0_1, ivec3(arg_1, int(arg_2)), int(arg_3));
@@ -44,7 +44,7 @@
 
 uniform highp sampler2DArray arg_0_1;
 void textureLoad_3c96e8() {
-  ivec2 arg_1 = ivec2(0);
+  ivec2 arg_1 = ivec2(1);
   uint arg_2 = 1u;
   uint arg_3 = 1u;
   vec4 res = texelFetch(arg_0_1, ivec3(arg_1, int(arg_2)), int(arg_3));
diff --git a/test/tint/builtins/gen/var/textureLoad/3c96e8.wgsl.expected.msl b/test/tint/builtins/gen/var/textureLoad/3c96e8.wgsl.expected.msl
index f9c58d0..61f0a95 100644
--- a/test/tint/builtins/gen/var/textureLoad/3c96e8.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureLoad/3c96e8.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureLoad_3c96e8(texture2d_array<float, access::sample> tint_symbol_1) {
-  int2 arg_1 = int2(0);
+  int2 arg_1 = int2(1);
   uint arg_2 = 1u;
   uint arg_3 = 1u;
   float4 res = tint_symbol_1.read(uint2(arg_1), arg_2, arg_3);
diff --git a/test/tint/builtins/gen/var/textureLoad/3c96e8.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/3c96e8.wgsl.expected.spvasm
index fe674a3..5729843 100644
--- a/test/tint/builtins/gen/var/textureLoad/3c96e8.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/3c96e8.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 53
+; Bound: 55
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -41,56 +41,58 @@
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
-         %18 = OpConstantNull %v2int
+      %int_1 = OpConstant %int 1
+         %19 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v2int = OpTypePointer Function %v2int
+         %22 = OpConstantNull %v2int
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %25 = OpConstantNull %uint
+         %27 = OpConstantNull %uint
       %v3int = OpTypeVector %int 3
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %39 = OpTypeFunction %v4float
+         %41 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_3c96e8 = OpFunction %void None %12
          %15 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2int Function %18
-      %arg_2 = OpVariable %_ptr_Function_uint Function %25
-      %arg_3 = OpVariable %_ptr_Function_uint Function %25
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %22
+      %arg_2 = OpVariable %_ptr_Function_uint Function %27
+      %arg_3 = OpVariable %_ptr_Function_uint Function %27
         %res = OpVariable %_ptr_Function_v4float Function %5
-               OpStore %arg_1 %18
+               OpStore %arg_1 %19
                OpStore %arg_2 %uint_1
                OpStore %arg_3 %uint_1
-         %28 = OpLoad %11 %arg_0
-         %30 = OpLoad %v2int %arg_1
-         %31 = OpCompositeExtract %int %30 0
-         %32 = OpCompositeExtract %int %30 1
-         %34 = OpLoad %uint %arg_2
-         %33 = OpBitcast %int %34
-         %35 = OpCompositeConstruct %v3int %31 %32 %33
-         %36 = OpLoad %uint %arg_3
-         %27 = OpImageFetch %v4float %28 %35 Lod %36
-               OpStore %res %27
+         %30 = OpLoad %11 %arg_0
+         %32 = OpLoad %v2int %arg_1
+         %33 = OpCompositeExtract %int %32 0
+         %34 = OpCompositeExtract %int %32 1
+         %36 = OpLoad %uint %arg_2
+         %35 = OpBitcast %int %36
+         %37 = OpCompositeConstruct %v3int %33 %34 %35
+         %38 = OpLoad %uint %arg_3
+         %29 = OpImageFetch %v4float %30 %37 Lod %38
+               OpStore %res %29
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %39
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureLoad_3c96e8
+%vertex_main_inner = OpFunction %v4float None %41
+         %43 = OpLabel
+         %44 = OpFunctionCall %void %textureLoad_3c96e8
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %44 = OpLabel
-         %45 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %45
+         %46 = OpLabel
+         %47 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %47
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %48 = OpLabel
-         %49 = OpFunctionCall %void %textureLoad_3c96e8
+         %50 = OpLabel
+         %51 = OpFunctionCall %void %textureLoad_3c96e8
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %51 = OpLabel
-         %52 = OpFunctionCall %void %textureLoad_3c96e8
+         %53 = OpLabel
+         %54 = OpFunctionCall %void %textureLoad_3c96e8
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureLoad/3c96e8.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/3c96e8.wgsl.expected.wgsl
index 7ef60df..989fcd1 100644
--- a/test/tint/builtins/gen/var/textureLoad/3c96e8.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/3c96e8.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_2d_array<f32>;
 
 fn textureLoad_3c96e8() {
-  var arg_1 = vec2<i32>();
+  var arg_1 = vec2<i32>(1i);
   var arg_2 = 1u;
   var arg_3 = 1u;
   var res : vec4<f32> = textureLoad(arg_0, arg_1, arg_2, arg_3);
diff --git a/test/tint/builtins/gen/var/textureLoad/3d3fd1.wgsl b/test/tint/builtins/gen/var/textureLoad/3d3fd1.wgsl
index 6db9486..a334be3 100644
--- a/test/tint/builtins/gen/var/textureLoad/3d3fd1.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/3d3fd1.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureLoad(texture: texture_2d_array<i32>, coords: vec2<u32>, array_index: u32, level: i32) -> vec4<i32>
 fn textureLoad_3d3fd1() {
-  var arg_1 = vec2<u32>();
+  var arg_1 = vec2<u32>(1u);
   var arg_2 = 1u;
   var arg_3 = 1i;
   var res: vec4<i32> = textureLoad(arg_0, arg_1, arg_2, arg_3);
diff --git a/test/tint/builtins/gen/var/textureLoad/3d3fd1.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/3d3fd1.wgsl.expected.dxc.hlsl
index e2bc144..0bcbf5d 100644
--- a/test/tint/builtins/gen/var/textureLoad/3d3fd1.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/3d3fd1.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 void textureLoad_3d3fd1() {
-  uint2 arg_1 = (0u).xx;
+  uint2 arg_1 = (1u).xx;
   uint arg_2 = 1u;
   int arg_3 = 1;
   int4 res = arg_0.Load(uint4(uint3(arg_1, arg_2), uint(arg_3)));
diff --git a/test/tint/builtins/gen/var/textureLoad/3d3fd1.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/3d3fd1.wgsl.expected.fxc.hlsl
index e2bc144..0bcbf5d 100644
--- a/test/tint/builtins/gen/var/textureLoad/3d3fd1.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/3d3fd1.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 void textureLoad_3d3fd1() {
-  uint2 arg_1 = (0u).xx;
+  uint2 arg_1 = (1u).xx;
   uint arg_2 = 1u;
   int arg_3 = 1;
   int4 res = arg_0.Load(uint4(uint3(arg_1, arg_2), uint(arg_3)));
diff --git a/test/tint/builtins/gen/var/textureLoad/3d3fd1.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/3d3fd1.wgsl.expected.glsl
index 7b27d90..d6c9668 100644
--- a/test/tint/builtins/gen/var/textureLoad/3d3fd1.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/3d3fd1.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 uniform highp isampler2DArray arg_0_1;
 void textureLoad_3d3fd1() {
-  uvec2 arg_1 = uvec2(0u);
+  uvec2 arg_1 = uvec2(1u);
   uint arg_2 = 1u;
   int arg_3 = 1;
   ivec4 res = texelFetch(arg_0_1, ivec3(uvec3(arg_1, arg_2)), arg_3);
@@ -26,7 +26,7 @@
 
 uniform highp isampler2DArray arg_0_1;
 void textureLoad_3d3fd1() {
-  uvec2 arg_1 = uvec2(0u);
+  uvec2 arg_1 = uvec2(1u);
   uint arg_2 = 1u;
   int arg_3 = 1;
   ivec4 res = texelFetch(arg_0_1, ivec3(uvec3(arg_1, arg_2)), arg_3);
@@ -44,7 +44,7 @@
 
 uniform highp isampler2DArray arg_0_1;
 void textureLoad_3d3fd1() {
-  uvec2 arg_1 = uvec2(0u);
+  uvec2 arg_1 = uvec2(1u);
   uint arg_2 = 1u;
   int arg_3 = 1;
   ivec4 res = texelFetch(arg_0_1, ivec3(uvec3(arg_1, arg_2)), arg_3);
diff --git a/test/tint/builtins/gen/var/textureLoad/3d3fd1.wgsl.expected.msl b/test/tint/builtins/gen/var/textureLoad/3d3fd1.wgsl.expected.msl
index 96fb2e5..a8b111d 100644
--- a/test/tint/builtins/gen/var/textureLoad/3d3fd1.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureLoad/3d3fd1.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureLoad_3d3fd1(texture2d_array<int, access::sample> tint_symbol_1) {
-  uint2 arg_1 = uint2(0u);
+  uint2 arg_1 = uint2(1u);
   uint arg_2 = 1u;
   int arg_3 = 1;
   int4 res = tint_symbol_1.read(uint2(arg_1), arg_2, arg_3);
diff --git a/test/tint/builtins/gen/var/textureLoad/3d3fd1.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/3d3fd1.wgsl.expected.spvasm
index 75c9dbb..bead114 100644
--- a/test/tint/builtins/gen/var/textureLoad/3d3fd1.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/3d3fd1.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 57
+; Bound: 58
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -42,59 +42,60 @@
          %13 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
-         %19 = OpConstantNull %v2uint
-%_ptr_Function_v2uint = OpTypePointer Function %v2uint
      %uint_1 = OpConstant %uint 1
+         %20 = OpConstantComposite %v2uint %uint_1 %uint_1
+%_ptr_Function_v2uint = OpTypePointer Function %v2uint
+         %23 = OpConstantNull %v2uint
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %25 = OpConstantNull %uint
+         %26 = OpConstantNull %uint
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
-         %29 = OpConstantNull %int
+         %30 = OpConstantNull %int
       %v4int = OpTypeVector %int 4
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %42 = OpConstantNull %v4int
-         %43 = OpTypeFunction %v4float
+         %43 = OpConstantNull %v4int
+         %44 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_3d3fd1 = OpFunction %void None %13
          %16 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2uint Function %19
-      %arg_2 = OpVariable %_ptr_Function_uint Function %25
-      %arg_3 = OpVariable %_ptr_Function_int Function %29
-        %res = OpVariable %_ptr_Function_v4int Function %42
-               OpStore %arg_1 %19
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %23
+      %arg_2 = OpVariable %_ptr_Function_uint Function %26
+      %arg_3 = OpVariable %_ptr_Function_int Function %30
+        %res = OpVariable %_ptr_Function_v4int Function %43
+               OpStore %arg_1 %20
                OpStore %arg_2 %uint_1
                OpStore %arg_3 %int_1
-         %32 = OpLoad %11 %arg_0
-         %34 = OpLoad %v2uint %arg_1
-         %35 = OpCompositeExtract %uint %34 0
-         %36 = OpCompositeExtract %uint %34 1
-         %37 = OpLoad %uint %arg_2
-         %38 = OpCompositeConstruct %v3uint %35 %36 %37
-         %39 = OpLoad %int %arg_3
-         %30 = OpImageFetch %v4int %32 %38 Lod %39
-               OpStore %res %30
+         %33 = OpLoad %11 %arg_0
+         %35 = OpLoad %v2uint %arg_1
+         %36 = OpCompositeExtract %uint %35 0
+         %37 = OpCompositeExtract %uint %35 1
+         %38 = OpLoad %uint %arg_2
+         %39 = OpCompositeConstruct %v3uint %36 %37 %38
+         %40 = OpLoad %int %arg_3
+         %31 = OpImageFetch %v4int %33 %39 Lod %40
+               OpStore %res %31
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %43
-         %45 = OpLabel
-         %46 = OpFunctionCall %void %textureLoad_3d3fd1
+%vertex_main_inner = OpFunction %v4float None %44
+         %46 = OpLabel
+         %47 = OpFunctionCall %void %textureLoad_3d3fd1
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %48 = OpLabel
-         %49 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %49
+         %49 = OpLabel
+         %50 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %50
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %52 = OpLabel
-         %53 = OpFunctionCall %void %textureLoad_3d3fd1
+         %53 = OpLabel
+         %54 = OpFunctionCall %void %textureLoad_3d3fd1
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %55 = OpLabel
-         %56 = OpFunctionCall %void %textureLoad_3d3fd1
+         %56 = OpLabel
+         %57 = OpFunctionCall %void %textureLoad_3d3fd1
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureLoad/3d3fd1.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/3d3fd1.wgsl.expected.wgsl
index 600e3fd..cb5a986 100644
--- a/test/tint/builtins/gen/var/textureLoad/3d3fd1.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/3d3fd1.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_2d_array<i32>;
 
 fn textureLoad_3d3fd1() {
-  var arg_1 = vec2<u32>();
+  var arg_1 = vec2<u32>(1u);
   var arg_2 = 1u;
   var arg_3 = 1i;
   var res : vec4<i32> = textureLoad(arg_0, arg_1, arg_2, arg_3);
diff --git a/test/tint/builtins/gen/var/textureLoad/439e2a.wgsl b/test/tint/builtins/gen/var/textureLoad/439e2a.wgsl
index e14788e..b143637 100644
--- a/test/tint/builtins/gen/var/textureLoad/439e2a.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/439e2a.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureLoad(texture: texture_2d<f32>, coords: vec2<u32>, level: i32) -> vec4<f32>
 fn textureLoad_439e2a() {
-  var arg_1 = vec2<u32>();
+  var arg_1 = vec2<u32>(1u);
   var arg_2 = 1i;
   var res: vec4<f32> = textureLoad(arg_0, arg_1, arg_2);
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/439e2a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/439e2a.wgsl.expected.dxc.hlsl
index a1ae75e..4a20f15 100644
--- a/test/tint/builtins/gen/var/textureLoad/439e2a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/439e2a.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 Texture2D<float4> arg_0 : register(t0, space1);
 
 void textureLoad_439e2a() {
-  uint2 arg_1 = (0u).xx;
+  uint2 arg_1 = (1u).xx;
   int arg_2 = 1;
   float4 res = arg_0.Load(uint3(arg_1, uint(arg_2)));
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/439e2a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/439e2a.wgsl.expected.fxc.hlsl
index a1ae75e..4a20f15 100644
--- a/test/tint/builtins/gen/var/textureLoad/439e2a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/439e2a.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 Texture2D<float4> arg_0 : register(t0, space1);
 
 void textureLoad_439e2a() {
-  uint2 arg_1 = (0u).xx;
+  uint2 arg_1 = (1u).xx;
   int arg_2 = 1;
   float4 res = arg_0.Load(uint3(arg_1, uint(arg_2)));
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/439e2a.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/439e2a.wgsl.expected.glsl
index a22fd5a..43a6e79 100644
--- a/test/tint/builtins/gen/var/textureLoad/439e2a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/439e2a.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 uniform highp sampler2D arg_0_1;
 void textureLoad_439e2a() {
-  uvec2 arg_1 = uvec2(0u);
+  uvec2 arg_1 = uvec2(1u);
   int arg_2 = 1;
   vec4 res = texelFetch(arg_0_1, ivec2(arg_1), arg_2);
 }
@@ -25,7 +25,7 @@
 
 uniform highp sampler2D arg_0_1;
 void textureLoad_439e2a() {
-  uvec2 arg_1 = uvec2(0u);
+  uvec2 arg_1 = uvec2(1u);
   int arg_2 = 1;
   vec4 res = texelFetch(arg_0_1, ivec2(arg_1), arg_2);
 }
@@ -42,7 +42,7 @@
 
 uniform highp sampler2D arg_0_1;
 void textureLoad_439e2a() {
-  uvec2 arg_1 = uvec2(0u);
+  uvec2 arg_1 = uvec2(1u);
   int arg_2 = 1;
   vec4 res = texelFetch(arg_0_1, ivec2(arg_1), arg_2);
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/439e2a.wgsl.expected.msl b/test/tint/builtins/gen/var/textureLoad/439e2a.wgsl.expected.msl
index 5a3246d..cb28c38 100644
--- a/test/tint/builtins/gen/var/textureLoad/439e2a.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureLoad/439e2a.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureLoad_439e2a(texture2d<float, access::sample> tint_symbol_1) {
-  uint2 arg_1 = uint2(0u);
+  uint2 arg_1 = uint2(1u);
   int arg_2 = 1;
   float4 res = tint_symbol_1.read(uint2(arg_1), arg_2);
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/439e2a.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/439e2a.wgsl.expected.spvasm
index f7cc6a4..0244e8f 100644
--- a/test/tint/builtins/gen/var/textureLoad/439e2a.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/439e2a.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 46
+; Bound: 48
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -40,48 +40,50 @@
          %12 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
-         %18 = OpConstantNull %v2uint
+     %uint_1 = OpConstant %uint 1
+         %19 = OpConstantComposite %v2uint %uint_1 %uint_1
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
+         %22 = OpConstantNull %v2uint
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
-         %25 = OpConstantNull %int
+         %27 = OpConstantNull %int
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %32 = OpTypeFunction %v4float
+         %34 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_439e2a = OpFunction %void None %12
          %15 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2uint Function %18
-      %arg_2 = OpVariable %_ptr_Function_int Function %25
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %22
+      %arg_2 = OpVariable %_ptr_Function_int Function %27
         %res = OpVariable %_ptr_Function_v4float Function %5
-               OpStore %arg_1 %18
+               OpStore %arg_1 %19
                OpStore %arg_2 %int_1
-         %27 = OpLoad %11 %arg_0
-         %28 = OpLoad %v2uint %arg_1
-         %29 = OpLoad %int %arg_2
-         %26 = OpImageFetch %v4float %27 %28 Lod %29
-               OpStore %res %26
+         %29 = OpLoad %11 %arg_0
+         %30 = OpLoad %v2uint %arg_1
+         %31 = OpLoad %int %arg_2
+         %28 = OpImageFetch %v4float %29 %30 Lod %31
+               OpStore %res %28
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %32
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureLoad_439e2a
+%vertex_main_inner = OpFunction %v4float None %34
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureLoad_439e2a
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %37 = OpLabel
-         %38 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %38
+         %39 = OpLabel
+         %40 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %40
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureLoad_439e2a
+         %43 = OpLabel
+         %44 = OpFunctionCall %void %textureLoad_439e2a
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %44 = OpLabel
-         %45 = OpFunctionCall %void %textureLoad_439e2a
+         %46 = OpLabel
+         %47 = OpFunctionCall %void %textureLoad_439e2a
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureLoad/439e2a.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/439e2a.wgsl.expected.wgsl
index a46785f..49c8ef6 100644
--- a/test/tint/builtins/gen/var/textureLoad/439e2a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/439e2a.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_2d<f32>;
 
 fn textureLoad_439e2a() {
-  var arg_1 = vec2<u32>();
+  var arg_1 = vec2<u32>(1u);
   var arg_2 = 1i;
   var res : vec4<f32> = textureLoad(arg_0, arg_1, arg_2);
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/46a93f.wgsl b/test/tint/builtins/gen/var/textureLoad/46a93f.wgsl
index 466e57b..ecd9e2d 100644
--- a/test/tint/builtins/gen/var/textureLoad/46a93f.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/46a93f.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureLoad(texture: texture_2d_array<f32>, coords: vec2<u32>, array_index: i32, level: u32) -> vec4<f32>
 fn textureLoad_46a93f() {
-  var arg_1 = vec2<u32>();
+  var arg_1 = vec2<u32>(1u);
   var arg_2 = 1i;
   var arg_3 = 1u;
   var res: vec4<f32> = textureLoad(arg_0, arg_1, arg_2, arg_3);
diff --git a/test/tint/builtins/gen/var/textureLoad/46a93f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/46a93f.wgsl.expected.dxc.hlsl
index 765ad54..a304c23 100644
--- a/test/tint/builtins/gen/var/textureLoad/46a93f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/46a93f.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 void textureLoad_46a93f() {
-  uint2 arg_1 = (0u).xx;
+  uint2 arg_1 = (1u).xx;
   int arg_2 = 1;
   uint arg_3 = 1u;
   float4 res = arg_0.Load(uint4(uint3(arg_1, uint(arg_2)), arg_3));
diff --git a/test/tint/builtins/gen/var/textureLoad/46a93f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/46a93f.wgsl.expected.fxc.hlsl
index 765ad54..a304c23 100644
--- a/test/tint/builtins/gen/var/textureLoad/46a93f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/46a93f.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 void textureLoad_46a93f() {
-  uint2 arg_1 = (0u).xx;
+  uint2 arg_1 = (1u).xx;
   int arg_2 = 1;
   uint arg_3 = 1u;
   float4 res = arg_0.Load(uint4(uint3(arg_1, uint(arg_2)), arg_3));
diff --git a/test/tint/builtins/gen/var/textureLoad/46a93f.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/46a93f.wgsl.expected.glsl
index c048820..6679489 100644
--- a/test/tint/builtins/gen/var/textureLoad/46a93f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/46a93f.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 uniform highp sampler2DArray arg_0_1;
 void textureLoad_46a93f() {
-  uvec2 arg_1 = uvec2(0u);
+  uvec2 arg_1 = uvec2(1u);
   int arg_2 = 1;
   uint arg_3 = 1u;
   vec4 res = texelFetch(arg_0_1, ivec3(uvec3(arg_1, uint(arg_2))), int(arg_3));
@@ -26,7 +26,7 @@
 
 uniform highp sampler2DArray arg_0_1;
 void textureLoad_46a93f() {
-  uvec2 arg_1 = uvec2(0u);
+  uvec2 arg_1 = uvec2(1u);
   int arg_2 = 1;
   uint arg_3 = 1u;
   vec4 res = texelFetch(arg_0_1, ivec3(uvec3(arg_1, uint(arg_2))), int(arg_3));
@@ -44,7 +44,7 @@
 
 uniform highp sampler2DArray arg_0_1;
 void textureLoad_46a93f() {
-  uvec2 arg_1 = uvec2(0u);
+  uvec2 arg_1 = uvec2(1u);
   int arg_2 = 1;
   uint arg_3 = 1u;
   vec4 res = texelFetch(arg_0_1, ivec3(uvec3(arg_1, uint(arg_2))), int(arg_3));
diff --git a/test/tint/builtins/gen/var/textureLoad/46a93f.wgsl.expected.msl b/test/tint/builtins/gen/var/textureLoad/46a93f.wgsl.expected.msl
index 2116606..71ac80d 100644
--- a/test/tint/builtins/gen/var/textureLoad/46a93f.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureLoad/46a93f.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureLoad_46a93f(texture2d_array<float, access::sample> tint_symbol_1) {
-  uint2 arg_1 = uint2(0u);
+  uint2 arg_1 = uint2(1u);
   int arg_2 = 1;
   uint arg_3 = 1u;
   float4 res = tint_symbol_1.read(uint2(arg_1), arg_2, arg_3);
diff --git a/test/tint/builtins/gen/var/textureLoad/46a93f.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/46a93f.wgsl.expected.spvasm
index 009e43c..c227fb8 100644
--- a/test/tint/builtins/gen/var/textureLoad/46a93f.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/46a93f.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 56
+; Bound: 57
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -41,59 +41,60 @@
          %12 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
-         %18 = OpConstantNull %v2uint
+     %uint_1 = OpConstant %uint 1
+         %19 = OpConstantComposite %v2uint %uint_1 %uint_1
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
+         %22 = OpConstantNull %v2uint
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
-         %25 = OpConstantNull %int
-     %uint_1 = OpConstant %uint 1
+         %27 = OpConstantNull %int
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %29 = OpConstantNull %uint
+         %30 = OpConstantNull %uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %42 = OpTypeFunction %v4float
+         %43 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_46a93f = OpFunction %void None %12
          %15 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2uint Function %18
-      %arg_2 = OpVariable %_ptr_Function_int Function %25
-      %arg_3 = OpVariable %_ptr_Function_uint Function %29
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %22
+      %arg_2 = OpVariable %_ptr_Function_int Function %27
+      %arg_3 = OpVariable %_ptr_Function_uint Function %30
         %res = OpVariable %_ptr_Function_v4float Function %5
-               OpStore %arg_1 %18
+               OpStore %arg_1 %19
                OpStore %arg_2 %int_1
                OpStore %arg_3 %uint_1
-         %31 = OpLoad %11 %arg_0
-         %33 = OpLoad %v2uint %arg_1
-         %34 = OpCompositeExtract %uint %33 0
-         %35 = OpCompositeExtract %uint %33 1
-         %37 = OpLoad %int %arg_2
-         %36 = OpBitcast %uint %37
-         %38 = OpCompositeConstruct %v3uint %34 %35 %36
-         %39 = OpLoad %uint %arg_3
-         %30 = OpImageFetch %v4float %31 %38 Lod %39
-               OpStore %res %30
+         %32 = OpLoad %11 %arg_0
+         %34 = OpLoad %v2uint %arg_1
+         %35 = OpCompositeExtract %uint %34 0
+         %36 = OpCompositeExtract %uint %34 1
+         %38 = OpLoad %int %arg_2
+         %37 = OpBitcast %uint %38
+         %39 = OpCompositeConstruct %v3uint %35 %36 %37
+         %40 = OpLoad %uint %arg_3
+         %31 = OpImageFetch %v4float %32 %39 Lod %40
+               OpStore %res %31
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %42
-         %44 = OpLabel
-         %45 = OpFunctionCall %void %textureLoad_46a93f
+%vertex_main_inner = OpFunction %v4float None %43
+         %45 = OpLabel
+         %46 = OpFunctionCall %void %textureLoad_46a93f
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %47 = OpLabel
-         %48 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %48
+         %48 = OpLabel
+         %49 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %49
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %51 = OpLabel
-         %52 = OpFunctionCall %void %textureLoad_46a93f
+         %52 = OpLabel
+         %53 = OpFunctionCall %void %textureLoad_46a93f
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %54 = OpLabel
-         %55 = OpFunctionCall %void %textureLoad_46a93f
+         %55 = OpLabel
+         %56 = OpFunctionCall %void %textureLoad_46a93f
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureLoad/46a93f.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/46a93f.wgsl.expected.wgsl
index 54c6d9e..5397895 100644
--- a/test/tint/builtins/gen/var/textureLoad/46a93f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/46a93f.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_2d_array<f32>;
 
 fn textureLoad_46a93f() {
-  var arg_1 = vec2<u32>();
+  var arg_1 = vec2<u32>(1u);
   var arg_2 = 1i;
   var arg_3 = 1u;
   var res : vec4<f32> = textureLoad(arg_0, arg_1, arg_2, arg_3);
diff --git a/test/tint/builtins/gen/var/textureLoad/47e818.wgsl b/test/tint/builtins/gen/var/textureLoad/47e818.wgsl
index 98c9832..031a744 100644
--- a/test/tint/builtins/gen/var/textureLoad/47e818.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/47e818.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureLoad(texture: texture_3d<i32>, coords: vec3<u32>, level: u32) -> vec4<i32>
 fn textureLoad_47e818() {
-  var arg_1 = vec3<u32>();
+  var arg_1 = vec3<u32>(1u);
   var arg_2 = 1u;
   var res: vec4<i32> = textureLoad(arg_0, arg_1, arg_2);
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/47e818.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/47e818.wgsl.expected.dxc.hlsl
index 71c7aac..47f141f 100644
--- a/test/tint/builtins/gen/var/textureLoad/47e818.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/47e818.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 Texture3D<int4> arg_0 : register(t0, space1);
 
 void textureLoad_47e818() {
-  uint3 arg_1 = (0u).xxx;
+  uint3 arg_1 = (1u).xxx;
   uint arg_2 = 1u;
   int4 res = arg_0.Load(uint4(arg_1, arg_2));
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/47e818.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/47e818.wgsl.expected.fxc.hlsl
index 71c7aac..47f141f 100644
--- a/test/tint/builtins/gen/var/textureLoad/47e818.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/47e818.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 Texture3D<int4> arg_0 : register(t0, space1);
 
 void textureLoad_47e818() {
-  uint3 arg_1 = (0u).xxx;
+  uint3 arg_1 = (1u).xxx;
   uint arg_2 = 1u;
   int4 res = arg_0.Load(uint4(arg_1, arg_2));
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/47e818.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/47e818.wgsl.expected.glsl
index a734ffb..fc24559 100644
--- a/test/tint/builtins/gen/var/textureLoad/47e818.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/47e818.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 uniform highp isampler3D arg_0_1;
 void textureLoad_47e818() {
-  uvec3 arg_1 = uvec3(0u);
+  uvec3 arg_1 = uvec3(1u);
   uint arg_2 = 1u;
   ivec4 res = texelFetch(arg_0_1, ivec3(arg_1), int(arg_2));
 }
@@ -25,7 +25,7 @@
 
 uniform highp isampler3D arg_0_1;
 void textureLoad_47e818() {
-  uvec3 arg_1 = uvec3(0u);
+  uvec3 arg_1 = uvec3(1u);
   uint arg_2 = 1u;
   ivec4 res = texelFetch(arg_0_1, ivec3(arg_1), int(arg_2));
 }
@@ -42,7 +42,7 @@
 
 uniform highp isampler3D arg_0_1;
 void textureLoad_47e818() {
-  uvec3 arg_1 = uvec3(0u);
+  uvec3 arg_1 = uvec3(1u);
   uint arg_2 = 1u;
   ivec4 res = texelFetch(arg_0_1, ivec3(arg_1), int(arg_2));
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/47e818.wgsl.expected.msl b/test/tint/builtins/gen/var/textureLoad/47e818.wgsl.expected.msl
index 7f3d122..56a4c7f 100644
--- a/test/tint/builtins/gen/var/textureLoad/47e818.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureLoad/47e818.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureLoad_47e818(texture3d<int, access::sample> tint_symbol_1) {
-  uint3 arg_1 = uint3(0u);
+  uint3 arg_1 = uint3(1u);
   uint arg_2 = 1u;
   int4 res = tint_symbol_1.read(uint3(arg_1), arg_2);
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/47e818.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/47e818.wgsl.expected.spvasm
index b4a1420..4e54df7 100644
--- a/test/tint/builtins/gen/var/textureLoad/47e818.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/47e818.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 48
+; Bound: 49
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -41,49 +41,50 @@
          %13 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
-         %19 = OpConstantNull %v3uint
-%_ptr_Function_v3uint = OpTypePointer Function %v3uint
      %uint_1 = OpConstant %uint 1
+         %20 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
+%_ptr_Function_v3uint = OpTypePointer Function %v3uint
+         %23 = OpConstantNull %v3uint
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %25 = OpConstantNull %uint
+         %26 = OpConstantNull %uint
       %v4int = OpTypeVector %int 4
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %33 = OpConstantNull %v4int
-         %34 = OpTypeFunction %v4float
+         %34 = OpConstantNull %v4int
+         %35 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_47e818 = OpFunction %void None %13
          %16 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v3uint Function %19
-      %arg_2 = OpVariable %_ptr_Function_uint Function %25
-        %res = OpVariable %_ptr_Function_v4int Function %33
-               OpStore %arg_1 %19
+      %arg_1 = OpVariable %_ptr_Function_v3uint Function %23
+      %arg_2 = OpVariable %_ptr_Function_uint Function %26
+        %res = OpVariable %_ptr_Function_v4int Function %34
+               OpStore %arg_1 %20
                OpStore %arg_2 %uint_1
-         %28 = OpLoad %11 %arg_0
-         %29 = OpLoad %v3uint %arg_1
-         %30 = OpLoad %uint %arg_2
-         %26 = OpImageFetch %v4int %28 %29 Lod %30
-               OpStore %res %26
+         %29 = OpLoad %11 %arg_0
+         %30 = OpLoad %v3uint %arg_1
+         %31 = OpLoad %uint %arg_2
+         %27 = OpImageFetch %v4int %29 %30 Lod %31
+               OpStore %res %27
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %34
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureLoad_47e818
+%vertex_main_inner = OpFunction %v4float None %35
+         %37 = OpLabel
+         %38 = OpFunctionCall %void %textureLoad_47e818
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %40
+         %40 = OpLabel
+         %41 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %41
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %43 = OpLabel
-         %44 = OpFunctionCall %void %textureLoad_47e818
+         %44 = OpLabel
+         %45 = OpFunctionCall %void %textureLoad_47e818
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %46 = OpLabel
-         %47 = OpFunctionCall %void %textureLoad_47e818
+         %47 = OpLabel
+         %48 = OpFunctionCall %void %textureLoad_47e818
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureLoad/47e818.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/47e818.wgsl.expected.wgsl
index 1086f04..a12e28a 100644
--- a/test/tint/builtins/gen/var/textureLoad/47e818.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/47e818.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_3d<i32>;
 
 fn textureLoad_47e818() {
-  var arg_1 = vec3<u32>();
+  var arg_1 = vec3<u32>(1u);
   var arg_2 = 1u;
   var res : vec4<i32> = textureLoad(arg_0, arg_1, arg_2);
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/484344.wgsl b/test/tint/builtins/gen/var/textureLoad/484344.wgsl
index 2c2009fa..552b7df 100644
--- a/test/tint/builtins/gen/var/textureLoad/484344.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/484344.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureLoad(texture: texture_2d<f32>, coords: vec2<i32>, level: i32) -> vec4<f32>
 fn textureLoad_484344() {
-  var arg_1 = vec2<i32>();
+  var arg_1 = vec2<i32>(1i);
   var arg_2 = 1i;
   var res: vec4<f32> = textureLoad(arg_0, arg_1, arg_2);
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/484344.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/484344.wgsl.expected.dxc.hlsl
index 0a3f447..f3fe7c7 100644
--- a/test/tint/builtins/gen/var/textureLoad/484344.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/484344.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 Texture2D<float4> arg_0 : register(t0, space1);
 
 void textureLoad_484344() {
-  int2 arg_1 = (0).xx;
+  int2 arg_1 = (1).xx;
   int arg_2 = 1;
   float4 res = arg_0.Load(int3(arg_1, arg_2));
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/484344.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/484344.wgsl.expected.fxc.hlsl
index 0a3f447..f3fe7c7 100644
--- a/test/tint/builtins/gen/var/textureLoad/484344.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/484344.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 Texture2D<float4> arg_0 : register(t0, space1);
 
 void textureLoad_484344() {
-  int2 arg_1 = (0).xx;
+  int2 arg_1 = (1).xx;
   int arg_2 = 1;
   float4 res = arg_0.Load(int3(arg_1, arg_2));
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/484344.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/484344.wgsl.expected.glsl
index d9fbf92..81960e3 100644
--- a/test/tint/builtins/gen/var/textureLoad/484344.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/484344.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 uniform highp sampler2D arg_0_1;
 void textureLoad_484344() {
-  ivec2 arg_1 = ivec2(0);
+  ivec2 arg_1 = ivec2(1);
   int arg_2 = 1;
   vec4 res = texelFetch(arg_0_1, arg_1, arg_2);
 }
@@ -25,7 +25,7 @@
 
 uniform highp sampler2D arg_0_1;
 void textureLoad_484344() {
-  ivec2 arg_1 = ivec2(0);
+  ivec2 arg_1 = ivec2(1);
   int arg_2 = 1;
   vec4 res = texelFetch(arg_0_1, arg_1, arg_2);
 }
@@ -42,7 +42,7 @@
 
 uniform highp sampler2D arg_0_1;
 void textureLoad_484344() {
-  ivec2 arg_1 = ivec2(0);
+  ivec2 arg_1 = ivec2(1);
   int arg_2 = 1;
   vec4 res = texelFetch(arg_0_1, arg_1, arg_2);
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/484344.wgsl.expected.msl b/test/tint/builtins/gen/var/textureLoad/484344.wgsl.expected.msl
index f940852..6697cc8 100644
--- a/test/tint/builtins/gen/var/textureLoad/484344.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureLoad/484344.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureLoad_484344(texture2d<float, access::sample> tint_symbol_1) {
-  int2 arg_1 = int2(0);
+  int2 arg_1 = int2(1);
   int arg_2 = 1;
   float4 res = tint_symbol_1.read(uint2(arg_1), arg_2);
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/484344.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/484344.wgsl.expected.spvasm
index a94e4a0..19acab1 100644
--- a/test/tint/builtins/gen/var/textureLoad/484344.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/484344.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 45
+; Bound: 46
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -40,47 +40,48 @@
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
-         %18 = OpConstantNull %v2int
-%_ptr_Function_v2int = OpTypePointer Function %v2int
       %int_1 = OpConstant %int 1
+         %19 = OpConstantComposite %v2int %int_1 %int_1
+%_ptr_Function_v2int = OpTypePointer Function %v2int
+         %22 = OpConstantNull %v2int
 %_ptr_Function_int = OpTypePointer Function %int
-         %24 = OpConstantNull %int
+         %25 = OpConstantNull %int
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %31 = OpTypeFunction %v4float
+         %32 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_484344 = OpFunction %void None %12
          %15 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2int Function %18
-      %arg_2 = OpVariable %_ptr_Function_int Function %24
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %22
+      %arg_2 = OpVariable %_ptr_Function_int Function %25
         %res = OpVariable %_ptr_Function_v4float Function %5
-               OpStore %arg_1 %18
+               OpStore %arg_1 %19
                OpStore %arg_2 %int_1
-         %26 = OpLoad %11 %arg_0
-         %27 = OpLoad %v2int %arg_1
-         %28 = OpLoad %int %arg_2
-         %25 = OpImageFetch %v4float %26 %27 Lod %28
-               OpStore %res %25
+         %27 = OpLoad %11 %arg_0
+         %28 = OpLoad %v2int %arg_1
+         %29 = OpLoad %int %arg_2
+         %26 = OpImageFetch %v4float %27 %28 Lod %29
+               OpStore %res %26
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %31
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureLoad_484344
+%vertex_main_inner = OpFunction %v4float None %32
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %textureLoad_484344
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %37
+         %37 = OpLabel
+         %38 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %38
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureLoad_484344
+         %41 = OpLabel
+         %42 = OpFunctionCall %void %textureLoad_484344
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %43 = OpLabel
-         %44 = OpFunctionCall %void %textureLoad_484344
+         %44 = OpLabel
+         %45 = OpFunctionCall %void %textureLoad_484344
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureLoad/484344.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/484344.wgsl.expected.wgsl
index a11fc7e..7cf5e98 100644
--- a/test/tint/builtins/gen/var/textureLoad/484344.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/484344.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_2d<f32>;
 
 fn textureLoad_484344() {
-  var arg_1 = vec2<i32>();
+  var arg_1 = vec2<i32>(1i);
   var arg_2 = 1i;
   var res : vec4<f32> = textureLoad(arg_0, arg_1, arg_2);
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/49f76f.wgsl b/test/tint/builtins/gen/var/textureLoad/49f76f.wgsl
index 034fef4..feebbc1 100644
--- a/test/tint/builtins/gen/var/textureLoad/49f76f.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/49f76f.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureLoad(texture: texture_multisampled_2d<u32>, coords: vec2<u32>, sample_index: u32) -> vec4<u32>
 fn textureLoad_49f76f() {
-  var arg_1 = vec2<u32>();
+  var arg_1 = vec2<u32>(1u);
   var arg_2 = 1u;
   var res: vec4<u32> = textureLoad(arg_0, arg_1, arg_2);
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/49f76f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/49f76f.wgsl.expected.dxc.hlsl
index 16d7d8d..675a966 100644
--- a/test/tint/builtins/gen/var/textureLoad/49f76f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/49f76f.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DMS<uint4> arg_0 : register(t0, space1);
 
 void textureLoad_49f76f() {
-  uint2 arg_1 = (0u).xx;
+  uint2 arg_1 = (1u).xx;
   uint arg_2 = 1u;
   uint4 res = arg_0.Load(arg_1, arg_2);
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/49f76f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/49f76f.wgsl.expected.fxc.hlsl
index 16d7d8d..675a966 100644
--- a/test/tint/builtins/gen/var/textureLoad/49f76f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/49f76f.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DMS<uint4> arg_0 : register(t0, space1);
 
 void textureLoad_49f76f() {
-  uint2 arg_1 = (0u).xx;
+  uint2 arg_1 = (1u).xx;
   uint arg_2 = 1u;
   uint4 res = arg_0.Load(arg_1, arg_2);
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/49f76f.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/49f76f.wgsl.expected.glsl
index 7e0cd86..2da3218 100644
--- a/test/tint/builtins/gen/var/textureLoad/49f76f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/49f76f.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 uniform highp usampler2DMS arg_0_1;
 void textureLoad_49f76f() {
-  uvec2 arg_1 = uvec2(0u);
+  uvec2 arg_1 = uvec2(1u);
   uint arg_2 = 1u;
   uvec4 res = texelFetch(arg_0_1, ivec2(arg_1), int(arg_2));
 }
@@ -25,7 +25,7 @@
 
 uniform highp usampler2DMS arg_0_1;
 void textureLoad_49f76f() {
-  uvec2 arg_1 = uvec2(0u);
+  uvec2 arg_1 = uvec2(1u);
   uint arg_2 = 1u;
   uvec4 res = texelFetch(arg_0_1, ivec2(arg_1), int(arg_2));
 }
@@ -42,7 +42,7 @@
 
 uniform highp usampler2DMS arg_0_1;
 void textureLoad_49f76f() {
-  uvec2 arg_1 = uvec2(0u);
+  uvec2 arg_1 = uvec2(1u);
   uint arg_2 = 1u;
   uvec4 res = texelFetch(arg_0_1, ivec2(arg_1), int(arg_2));
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/49f76f.wgsl.expected.msl b/test/tint/builtins/gen/var/textureLoad/49f76f.wgsl.expected.msl
index af663e0..d02c066 100644
--- a/test/tint/builtins/gen/var/textureLoad/49f76f.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureLoad/49f76f.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureLoad_49f76f(texture2d_ms<uint, access::read> tint_symbol_1) {
-  uint2 arg_1 = uint2(0u);
+  uint2 arg_1 = uint2(1u);
   uint arg_2 = 1u;
   uint4 res = tint_symbol_1.read(uint2(arg_1), arg_2);
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/49f76f.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/49f76f.wgsl.expected.spvasm
index 51c8570..fce5a33 100644
--- a/test/tint/builtins/gen/var/textureLoad/49f76f.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/49f76f.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 47
+; Bound: 48
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -40,49 +40,50 @@
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
      %v2uint = OpTypeVector %uint 2
-         %18 = OpConstantNull %v2uint
-%_ptr_Function_v2uint = OpTypePointer Function %v2uint
      %uint_1 = OpConstant %uint 1
+         %19 = OpConstantComposite %v2uint %uint_1 %uint_1
+%_ptr_Function_v2uint = OpTypePointer Function %v2uint
+         %22 = OpConstantNull %v2uint
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %24 = OpConstantNull %uint
+         %25 = OpConstantNull %uint
      %v4uint = OpTypeVector %uint 4
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %32 = OpConstantNull %v4uint
-         %33 = OpTypeFunction %v4float
+         %33 = OpConstantNull %v4uint
+         %34 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_49f76f = OpFunction %void None %13
          %16 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2uint Function %18
-      %arg_2 = OpVariable %_ptr_Function_uint Function %24
-        %res = OpVariable %_ptr_Function_v4uint Function %32
-               OpStore %arg_1 %18
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %22
+      %arg_2 = OpVariable %_ptr_Function_uint Function %25
+        %res = OpVariable %_ptr_Function_v4uint Function %33
+               OpStore %arg_1 %19
                OpStore %arg_2 %uint_1
-         %27 = OpLoad %11 %arg_0
-         %28 = OpLoad %v2uint %arg_1
-         %29 = OpLoad %uint %arg_2
-         %25 = OpImageFetch %v4uint %27 %28 Sample %29
-               OpStore %res %25
+         %28 = OpLoad %11 %arg_0
+         %29 = OpLoad %v2uint %arg_1
+         %30 = OpLoad %uint %arg_2
+         %26 = OpImageFetch %v4uint %28 %29 Sample %30
+               OpStore %res %26
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %33
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureLoad_49f76f
+%vertex_main_inner = OpFunction %v4float None %34
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureLoad_49f76f
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %38 = OpLabel
-         %39 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %39
+         %39 = OpLabel
+         %40 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %40
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureLoad_49f76f
+         %43 = OpLabel
+         %44 = OpFunctionCall %void %textureLoad_49f76f
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %45 = OpLabel
-         %46 = OpFunctionCall %void %textureLoad_49f76f
+         %46 = OpLabel
+         %47 = OpFunctionCall %void %textureLoad_49f76f
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureLoad/49f76f.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/49f76f.wgsl.expected.wgsl
index 9a6fcc7..44b947f 100644
--- a/test/tint/builtins/gen/var/textureLoad/49f76f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/49f76f.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_multisampled_2d<u32>;
 
 fn textureLoad_49f76f() {
-  var arg_1 = vec2<u32>();
+  var arg_1 = vec2<u32>(1u);
   var arg_2 = 1u;
   var res : vec4<u32> = textureLoad(arg_0, arg_1, arg_2);
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/4acb64.wgsl b/test/tint/builtins/gen/var/textureLoad/4acb64.wgsl
index 845846a..19e2c4c 100644
--- a/test/tint/builtins/gen/var/textureLoad/4acb64.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/4acb64.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureLoad(texture: texture_2d_array<f32>, coords: vec2<i32>, array_index: u32, level: i32) -> vec4<f32>
 fn textureLoad_4acb64() {
-  var arg_1 = vec2<i32>();
+  var arg_1 = vec2<i32>(1i);
   var arg_2 = 1u;
   var arg_3 = 1i;
   var res: vec4<f32> = textureLoad(arg_0, arg_1, arg_2, arg_3);
diff --git a/test/tint/builtins/gen/var/textureLoad/4acb64.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/4acb64.wgsl.expected.dxc.hlsl
index 20e8d8a..fa29f2f 100644
--- a/test/tint/builtins/gen/var/textureLoad/4acb64.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/4acb64.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 void textureLoad_4acb64() {
-  int2 arg_1 = (0).xx;
+  int2 arg_1 = (1).xx;
   uint arg_2 = 1u;
   int arg_3 = 1;
   float4 res = arg_0.Load(int4(int3(arg_1, int(arg_2)), arg_3));
diff --git a/test/tint/builtins/gen/var/textureLoad/4acb64.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/4acb64.wgsl.expected.fxc.hlsl
index 20e8d8a..fa29f2f 100644
--- a/test/tint/builtins/gen/var/textureLoad/4acb64.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/4acb64.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 void textureLoad_4acb64() {
-  int2 arg_1 = (0).xx;
+  int2 arg_1 = (1).xx;
   uint arg_2 = 1u;
   int arg_3 = 1;
   float4 res = arg_0.Load(int4(int3(arg_1, int(arg_2)), arg_3));
diff --git a/test/tint/builtins/gen/var/textureLoad/4acb64.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/4acb64.wgsl.expected.glsl
index beae394..01aa8a1 100644
--- a/test/tint/builtins/gen/var/textureLoad/4acb64.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/4acb64.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 uniform highp sampler2DArray arg_0_1;
 void textureLoad_4acb64() {
-  ivec2 arg_1 = ivec2(0);
+  ivec2 arg_1 = ivec2(1);
   uint arg_2 = 1u;
   int arg_3 = 1;
   vec4 res = texelFetch(arg_0_1, ivec3(arg_1, int(arg_2)), arg_3);
@@ -26,7 +26,7 @@
 
 uniform highp sampler2DArray arg_0_1;
 void textureLoad_4acb64() {
-  ivec2 arg_1 = ivec2(0);
+  ivec2 arg_1 = ivec2(1);
   uint arg_2 = 1u;
   int arg_3 = 1;
   vec4 res = texelFetch(arg_0_1, ivec3(arg_1, int(arg_2)), arg_3);
@@ -44,7 +44,7 @@
 
 uniform highp sampler2DArray arg_0_1;
 void textureLoad_4acb64() {
-  ivec2 arg_1 = ivec2(0);
+  ivec2 arg_1 = ivec2(1);
   uint arg_2 = 1u;
   int arg_3 = 1;
   vec4 res = texelFetch(arg_0_1, ivec3(arg_1, int(arg_2)), arg_3);
diff --git a/test/tint/builtins/gen/var/textureLoad/4acb64.wgsl.expected.msl b/test/tint/builtins/gen/var/textureLoad/4acb64.wgsl.expected.msl
index 51b9fe8..35052ec 100644
--- a/test/tint/builtins/gen/var/textureLoad/4acb64.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureLoad/4acb64.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureLoad_4acb64(texture2d_array<float, access::sample> tint_symbol_1) {
-  int2 arg_1 = int2(0);
+  int2 arg_1 = int2(1);
   uint arg_2 = 1u;
   int arg_3 = 1;
   float4 res = tint_symbol_1.read(uint2(arg_1), arg_2, arg_3);
diff --git a/test/tint/builtins/gen/var/textureLoad/4acb64.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/4acb64.wgsl.expected.spvasm
index b9042cc..0c418eb 100644
--- a/test/tint/builtins/gen/var/textureLoad/4acb64.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/4acb64.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 56
+; Bound: 57
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -41,59 +41,60 @@
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
-         %18 = OpConstantNull %v2int
+      %int_1 = OpConstant %int 1
+         %19 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v2int = OpTypePointer Function %v2int
+         %22 = OpConstantNull %v2int
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %25 = OpConstantNull %uint
-      %int_1 = OpConstant %int 1
+         %27 = OpConstantNull %uint
 %_ptr_Function_int = OpTypePointer Function %int
-         %29 = OpConstantNull %int
+         %30 = OpConstantNull %int
       %v3int = OpTypeVector %int 3
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %42 = OpTypeFunction %v4float
+         %43 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_4acb64 = OpFunction %void None %12
          %15 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2int Function %18
-      %arg_2 = OpVariable %_ptr_Function_uint Function %25
-      %arg_3 = OpVariable %_ptr_Function_int Function %29
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %22
+      %arg_2 = OpVariable %_ptr_Function_uint Function %27
+      %arg_3 = OpVariable %_ptr_Function_int Function %30
         %res = OpVariable %_ptr_Function_v4float Function %5
-               OpStore %arg_1 %18
+               OpStore %arg_1 %19
                OpStore %arg_2 %uint_1
                OpStore %arg_3 %int_1
-         %31 = OpLoad %11 %arg_0
-         %33 = OpLoad %v2int %arg_1
-         %34 = OpCompositeExtract %int %33 0
-         %35 = OpCompositeExtract %int %33 1
-         %37 = OpLoad %uint %arg_2
-         %36 = OpBitcast %int %37
-         %38 = OpCompositeConstruct %v3int %34 %35 %36
-         %39 = OpLoad %int %arg_3
-         %30 = OpImageFetch %v4float %31 %38 Lod %39
-               OpStore %res %30
+         %32 = OpLoad %11 %arg_0
+         %34 = OpLoad %v2int %arg_1
+         %35 = OpCompositeExtract %int %34 0
+         %36 = OpCompositeExtract %int %34 1
+         %38 = OpLoad %uint %arg_2
+         %37 = OpBitcast %int %38
+         %39 = OpCompositeConstruct %v3int %35 %36 %37
+         %40 = OpLoad %int %arg_3
+         %31 = OpImageFetch %v4float %32 %39 Lod %40
+               OpStore %res %31
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %42
-         %44 = OpLabel
-         %45 = OpFunctionCall %void %textureLoad_4acb64
+%vertex_main_inner = OpFunction %v4float None %43
+         %45 = OpLabel
+         %46 = OpFunctionCall %void %textureLoad_4acb64
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %47 = OpLabel
-         %48 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %48
+         %48 = OpLabel
+         %49 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %49
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %51 = OpLabel
-         %52 = OpFunctionCall %void %textureLoad_4acb64
+         %52 = OpLabel
+         %53 = OpFunctionCall %void %textureLoad_4acb64
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %54 = OpLabel
-         %55 = OpFunctionCall %void %textureLoad_4acb64
+         %55 = OpLabel
+         %56 = OpFunctionCall %void %textureLoad_4acb64
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureLoad/4acb64.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/4acb64.wgsl.expected.wgsl
index 95aa108..a959800 100644
--- a/test/tint/builtins/gen/var/textureLoad/4acb64.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/4acb64.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_2d_array<f32>;
 
 fn textureLoad_4acb64() {
-  var arg_1 = vec2<i32>();
+  var arg_1 = vec2<i32>(1i);
   var arg_2 = 1u;
   var arg_3 = 1i;
   var res : vec4<f32> = textureLoad(arg_0, arg_1, arg_2, arg_3);
diff --git a/test/tint/builtins/gen/var/textureLoad/4db25c.wgsl b/test/tint/builtins/gen/var/textureLoad/4db25c.wgsl
index 2c2af13..fe98496 100644
--- a/test/tint/builtins/gen/var/textureLoad/4db25c.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/4db25c.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureLoad(texture: texture_depth_multisampled_2d, coords: vec2<u32>, sample_index: u32) -> f32
 fn textureLoad_4db25c() {
-  var arg_1 = vec2<u32>();
+  var arg_1 = vec2<u32>(1u);
   var arg_2 = 1u;
   var res: f32 = textureLoad(arg_0, arg_1, arg_2);
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/4db25c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/4db25c.wgsl.expected.dxc.hlsl
index d6596af..b38c843 100644
--- a/test/tint/builtins/gen/var/textureLoad/4db25c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/4db25c.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DMS<float4> arg_0 : register(t0, space1);
 
 void textureLoad_4db25c() {
-  uint2 arg_1 = (0u).xx;
+  uint2 arg_1 = (1u).xx;
   uint arg_2 = 1u;
   float res = arg_0.Load(uint3(arg_1, uint(0)), arg_2).x;
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/4db25c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/4db25c.wgsl.expected.fxc.hlsl
index d6596af..b38c843 100644
--- a/test/tint/builtins/gen/var/textureLoad/4db25c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/4db25c.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DMS<float4> arg_0 : register(t0, space1);
 
 void textureLoad_4db25c() {
-  uint2 arg_1 = (0u).xx;
+  uint2 arg_1 = (1u).xx;
   uint arg_2 = 1u;
   float res = arg_0.Load(uint3(arg_1, uint(0)), arg_2).x;
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/4db25c.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/4db25c.wgsl.expected.glsl
index 9c82b7f..831ec04 100644
--- a/test/tint/builtins/gen/var/textureLoad/4db25c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/4db25c.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 uniform highp sampler2DMS arg_0_1;
 void textureLoad_4db25c() {
-  uvec2 arg_1 = uvec2(0u);
+  uvec2 arg_1 = uvec2(1u);
   uint arg_2 = 1u;
   float res = texelFetch(arg_0_1, ivec2(arg_1), int(arg_2)).x;
 }
@@ -25,7 +25,7 @@
 
 uniform highp sampler2DMS arg_0_1;
 void textureLoad_4db25c() {
-  uvec2 arg_1 = uvec2(0u);
+  uvec2 arg_1 = uvec2(1u);
   uint arg_2 = 1u;
   float res = texelFetch(arg_0_1, ivec2(arg_1), int(arg_2)).x;
 }
@@ -42,7 +42,7 @@
 
 uniform highp sampler2DMS arg_0_1;
 void textureLoad_4db25c() {
-  uvec2 arg_1 = uvec2(0u);
+  uvec2 arg_1 = uvec2(1u);
   uint arg_2 = 1u;
   float res = texelFetch(arg_0_1, ivec2(arg_1), int(arg_2)).x;
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/4db25c.wgsl.expected.msl b/test/tint/builtins/gen/var/textureLoad/4db25c.wgsl.expected.msl
index f6283ca..5bb1794 100644
--- a/test/tint/builtins/gen/var/textureLoad/4db25c.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureLoad/4db25c.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureLoad_4db25c(depth2d_ms<float, access::read> tint_symbol_1) {
-  uint2 arg_1 = uint2(0u);
+  uint2 arg_1 = uint2(1u);
   uint arg_2 = 1u;
   float res = tint_symbol_1.read(uint2(arg_1), arg_2);
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/4db25c.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/4db25c.wgsl.expected.spvasm
index 5e540a9..9894a92 100644
--- a/test/tint/builtins/gen/var/textureLoad/4db25c.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/4db25c.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 46
+; Bound: 47
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -40,48 +40,49 @@
          %12 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
-         %18 = OpConstantNull %v2uint
-%_ptr_Function_v2uint = OpTypePointer Function %v2uint
      %uint_1 = OpConstant %uint 1
+         %19 = OpConstantComposite %v2uint %uint_1 %uint_1
+%_ptr_Function_v2uint = OpTypePointer Function %v2uint
+         %22 = OpConstantNull %v2uint
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %24 = OpConstantNull %uint
+         %25 = OpConstantNull %uint
 %_ptr_Function_float = OpTypePointer Function %float
-         %32 = OpTypeFunction %v4float
+         %33 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_4db25c = OpFunction %void None %12
          %15 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2uint Function %18
-      %arg_2 = OpVariable %_ptr_Function_uint Function %24
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %22
+      %arg_2 = OpVariable %_ptr_Function_uint Function %25
         %res = OpVariable %_ptr_Function_float Function %8
-               OpStore %arg_1 %18
+               OpStore %arg_1 %19
                OpStore %arg_2 %uint_1
-         %27 = OpLoad %11 %arg_0
-         %28 = OpLoad %v2uint %arg_1
-         %29 = OpLoad %uint %arg_2
-         %26 = OpImageFetch %v4float %27 %28 Sample %29
-         %25 = OpCompositeExtract %float %26 0
-               OpStore %res %25
+         %28 = OpLoad %11 %arg_0
+         %29 = OpLoad %v2uint %arg_1
+         %30 = OpLoad %uint %arg_2
+         %27 = OpImageFetch %v4float %28 %29 Sample %30
+         %26 = OpCompositeExtract %float %27 0
+               OpStore %res %26
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %32
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureLoad_4db25c
+%vertex_main_inner = OpFunction %v4float None %33
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureLoad_4db25c
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %37 = OpLabel
-         %38 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %38
+         %38 = OpLabel
+         %39 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %39
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureLoad_4db25c
+         %42 = OpLabel
+         %43 = OpFunctionCall %void %textureLoad_4db25c
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %44 = OpLabel
-         %45 = OpFunctionCall %void %textureLoad_4db25c
+         %45 = OpLabel
+         %46 = OpFunctionCall %void %textureLoad_4db25c
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureLoad/4db25c.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/4db25c.wgsl.expected.wgsl
index fd9b07f..5148d2c 100644
--- a/test/tint/builtins/gen/var/textureLoad/4db25c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/4db25c.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_depth_multisampled_2d;
 
 fn textureLoad_4db25c() {
-  var arg_1 = vec2<u32>();
+  var arg_1 = vec2<u32>(1u);
   var arg_2 = 1u;
   var res : f32 = textureLoad(arg_0, arg_1, arg_2);
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/4fd803.wgsl b/test/tint/builtins/gen/var/textureLoad/4fd803.wgsl
index a028aab..d07e878 100644
--- a/test/tint/builtins/gen/var/textureLoad/4fd803.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/4fd803.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureLoad(texture: texture_3d<i32>, coords: vec3<i32>, level: i32) -> vec4<i32>
 fn textureLoad_4fd803() {
-  var arg_1 = vec3<i32>();
+  var arg_1 = vec3<i32>(1i);
   var arg_2 = 1i;
   var res: vec4<i32> = textureLoad(arg_0, arg_1, arg_2);
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/4fd803.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/4fd803.wgsl.expected.dxc.hlsl
index 6e41378..4388cd3 100644
--- a/test/tint/builtins/gen/var/textureLoad/4fd803.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/4fd803.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 Texture3D<int4> arg_0 : register(t0, space1);
 
 void textureLoad_4fd803() {
-  int3 arg_1 = (0).xxx;
+  int3 arg_1 = (1).xxx;
   int arg_2 = 1;
   int4 res = arg_0.Load(int4(arg_1, arg_2));
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/4fd803.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/4fd803.wgsl.expected.fxc.hlsl
index 6e41378..4388cd3 100644
--- a/test/tint/builtins/gen/var/textureLoad/4fd803.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/4fd803.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 Texture3D<int4> arg_0 : register(t0, space1);
 
 void textureLoad_4fd803() {
-  int3 arg_1 = (0).xxx;
+  int3 arg_1 = (1).xxx;
   int arg_2 = 1;
   int4 res = arg_0.Load(int4(arg_1, arg_2));
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/4fd803.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/4fd803.wgsl.expected.glsl
index 4a3b6e7..363fa48 100644
--- a/test/tint/builtins/gen/var/textureLoad/4fd803.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/4fd803.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 uniform highp isampler3D arg_0_1;
 void textureLoad_4fd803() {
-  ivec3 arg_1 = ivec3(0);
+  ivec3 arg_1 = ivec3(1);
   int arg_2 = 1;
   ivec4 res = texelFetch(arg_0_1, arg_1, arg_2);
 }
@@ -25,7 +25,7 @@
 
 uniform highp isampler3D arg_0_1;
 void textureLoad_4fd803() {
-  ivec3 arg_1 = ivec3(0);
+  ivec3 arg_1 = ivec3(1);
   int arg_2 = 1;
   ivec4 res = texelFetch(arg_0_1, arg_1, arg_2);
 }
@@ -42,7 +42,7 @@
 
 uniform highp isampler3D arg_0_1;
 void textureLoad_4fd803() {
-  ivec3 arg_1 = ivec3(0);
+  ivec3 arg_1 = ivec3(1);
   int arg_2 = 1;
   ivec4 res = texelFetch(arg_0_1, arg_1, arg_2);
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/4fd803.wgsl.expected.msl b/test/tint/builtins/gen/var/textureLoad/4fd803.wgsl.expected.msl
index 3ec7fc1..c659fd7 100644
--- a/test/tint/builtins/gen/var/textureLoad/4fd803.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureLoad/4fd803.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureLoad_4fd803(texture3d<int, access::sample> tint_symbol_1) {
-  int3 arg_1 = int3(0);
+  int3 arg_1 = int3(1);
   int arg_2 = 1;
   int4 res = tint_symbol_1.read(uint3(arg_1), arg_2);
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/4fd803.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/4fd803.wgsl.expected.spvasm
index 1a59a53..53ff43f 100644
--- a/test/tint/builtins/gen/var/textureLoad/4fd803.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/4fd803.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 47
+; Bound: 48
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -40,49 +40,50 @@
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
       %v3int = OpTypeVector %int 3
-         %18 = OpConstantNull %v3int
-%_ptr_Function_v3int = OpTypePointer Function %v3int
       %int_1 = OpConstant %int 1
+         %19 = OpConstantComposite %v3int %int_1 %int_1 %int_1
+%_ptr_Function_v3int = OpTypePointer Function %v3int
+         %22 = OpConstantNull %v3int
 %_ptr_Function_int = OpTypePointer Function %int
-         %24 = OpConstantNull %int
+         %25 = OpConstantNull %int
       %v4int = OpTypeVector %int 4
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %32 = OpConstantNull %v4int
-         %33 = OpTypeFunction %v4float
+         %33 = OpConstantNull %v4int
+         %34 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_4fd803 = OpFunction %void None %13
          %16 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v3int Function %18
-      %arg_2 = OpVariable %_ptr_Function_int Function %24
-        %res = OpVariable %_ptr_Function_v4int Function %32
-               OpStore %arg_1 %18
+      %arg_1 = OpVariable %_ptr_Function_v3int Function %22
+      %arg_2 = OpVariable %_ptr_Function_int Function %25
+        %res = OpVariable %_ptr_Function_v4int Function %33
+               OpStore %arg_1 %19
                OpStore %arg_2 %int_1
-         %27 = OpLoad %11 %arg_0
-         %28 = OpLoad %v3int %arg_1
-         %29 = OpLoad %int %arg_2
-         %25 = OpImageFetch %v4int %27 %28 Lod %29
-               OpStore %res %25
+         %28 = OpLoad %11 %arg_0
+         %29 = OpLoad %v3int %arg_1
+         %30 = OpLoad %int %arg_2
+         %26 = OpImageFetch %v4int %28 %29 Lod %30
+               OpStore %res %26
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %33
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureLoad_4fd803
+%vertex_main_inner = OpFunction %v4float None %34
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureLoad_4fd803
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %38 = OpLabel
-         %39 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %39
+         %39 = OpLabel
+         %40 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %40
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureLoad_4fd803
+         %43 = OpLabel
+         %44 = OpFunctionCall %void %textureLoad_4fd803
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %45 = OpLabel
-         %46 = OpFunctionCall %void %textureLoad_4fd803
+         %46 = OpLabel
+         %47 = OpFunctionCall %void %textureLoad_4fd803
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureLoad/4fd803.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/4fd803.wgsl.expected.wgsl
index 26a33f0..028a4e9 100644
--- a/test/tint/builtins/gen/var/textureLoad/4fd803.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/4fd803.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_3d<i32>;
 
 fn textureLoad_4fd803() {
-  var arg_1 = vec3<i32>();
+  var arg_1 = vec3<i32>(1i);
   var arg_2 = 1i;
   var res : vec4<i32> = textureLoad(arg_0, arg_1, arg_2);
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/53e142.wgsl b/test/tint/builtins/gen/var/textureLoad/53e142.wgsl
index bdf813a..988e28f 100644
--- a/test/tint/builtins/gen/var/textureLoad/53e142.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/53e142.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureLoad(texture: texture_2d_array<u32>, coords: vec2<u32>, array_index: i32, level: i32) -> vec4<u32>
 fn textureLoad_53e142() {
-  var arg_1 = vec2<u32>();
+  var arg_1 = vec2<u32>(1u);
   var arg_2 = 1i;
   var arg_3 = 1i;
   var res: vec4<u32> = textureLoad(arg_0, arg_1, arg_2, arg_3);
diff --git a/test/tint/builtins/gen/var/textureLoad/53e142.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/53e142.wgsl.expected.dxc.hlsl
index a93753d..684cb98 100644
--- a/test/tint/builtins/gen/var/textureLoad/53e142.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/53e142.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 void textureLoad_53e142() {
-  uint2 arg_1 = (0u).xx;
+  uint2 arg_1 = (1u).xx;
   int arg_2 = 1;
   int arg_3 = 1;
   uint4 res = arg_0.Load(uint4(uint3(arg_1, uint(arg_2)), uint(arg_3)));
diff --git a/test/tint/builtins/gen/var/textureLoad/53e142.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/53e142.wgsl.expected.fxc.hlsl
index a93753d..684cb98 100644
--- a/test/tint/builtins/gen/var/textureLoad/53e142.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/53e142.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 void textureLoad_53e142() {
-  uint2 arg_1 = (0u).xx;
+  uint2 arg_1 = (1u).xx;
   int arg_2 = 1;
   int arg_3 = 1;
   uint4 res = arg_0.Load(uint4(uint3(arg_1, uint(arg_2)), uint(arg_3)));
diff --git a/test/tint/builtins/gen/var/textureLoad/53e142.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/53e142.wgsl.expected.glsl
index c0bcb18..76d9c91 100644
--- a/test/tint/builtins/gen/var/textureLoad/53e142.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/53e142.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 uniform highp usampler2DArray arg_0_1;
 void textureLoad_53e142() {
-  uvec2 arg_1 = uvec2(0u);
+  uvec2 arg_1 = uvec2(1u);
   int arg_2 = 1;
   int arg_3 = 1;
   uvec4 res = texelFetch(arg_0_1, ivec3(uvec3(arg_1, uint(arg_2))), arg_3);
@@ -26,7 +26,7 @@
 
 uniform highp usampler2DArray arg_0_1;
 void textureLoad_53e142() {
-  uvec2 arg_1 = uvec2(0u);
+  uvec2 arg_1 = uvec2(1u);
   int arg_2 = 1;
   int arg_3 = 1;
   uvec4 res = texelFetch(arg_0_1, ivec3(uvec3(arg_1, uint(arg_2))), arg_3);
@@ -44,7 +44,7 @@
 
 uniform highp usampler2DArray arg_0_1;
 void textureLoad_53e142() {
-  uvec2 arg_1 = uvec2(0u);
+  uvec2 arg_1 = uvec2(1u);
   int arg_2 = 1;
   int arg_3 = 1;
   uvec4 res = texelFetch(arg_0_1, ivec3(uvec3(arg_1, uint(arg_2))), arg_3);
diff --git a/test/tint/builtins/gen/var/textureLoad/53e142.wgsl.expected.msl b/test/tint/builtins/gen/var/textureLoad/53e142.wgsl.expected.msl
index 5bf13f9..a026705 100644
--- a/test/tint/builtins/gen/var/textureLoad/53e142.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureLoad/53e142.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureLoad_53e142(texture2d_array<uint, access::sample> tint_symbol_1) {
-  uint2 arg_1 = uint2(0u);
+  uint2 arg_1 = uint2(1u);
   int arg_2 = 1;
   int arg_3 = 1;
   uint4 res = tint_symbol_1.read(uint2(arg_1), arg_2, arg_3);
diff --git a/test/tint/builtins/gen/var/textureLoad/53e142.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/53e142.wgsl.expected.spvasm
index 5d5ccfa..bea8836 100644
--- a/test/tint/builtins/gen/var/textureLoad/53e142.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/53e142.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 55
+; Bound: 57
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -41,58 +41,60 @@
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
      %v2uint = OpTypeVector %uint 2
-         %18 = OpConstantNull %v2uint
+     %uint_1 = OpConstant %uint 1
+         %19 = OpConstantComposite %v2uint %uint_1 %uint_1
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
+         %22 = OpConstantNull %v2uint
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
-         %25 = OpConstantNull %int
+         %27 = OpConstantNull %int
      %v4uint = OpTypeVector %uint 4
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %40 = OpConstantNull %v4uint
-         %41 = OpTypeFunction %v4float
+         %42 = OpConstantNull %v4uint
+         %43 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_53e142 = OpFunction %void None %13
          %16 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2uint Function %18
-      %arg_2 = OpVariable %_ptr_Function_int Function %25
-      %arg_3 = OpVariable %_ptr_Function_int Function %25
-        %res = OpVariable %_ptr_Function_v4uint Function %40
-               OpStore %arg_1 %18
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %22
+      %arg_2 = OpVariable %_ptr_Function_int Function %27
+      %arg_3 = OpVariable %_ptr_Function_int Function %27
+        %res = OpVariable %_ptr_Function_v4uint Function %42
+               OpStore %arg_1 %19
                OpStore %arg_2 %int_1
                OpStore %arg_3 %int_1
-         %29 = OpLoad %11 %arg_0
-         %31 = OpLoad %v2uint %arg_1
-         %32 = OpCompositeExtract %uint %31 0
-         %33 = OpCompositeExtract %uint %31 1
-         %35 = OpLoad %int %arg_2
-         %34 = OpBitcast %uint %35
-         %36 = OpCompositeConstruct %v3uint %32 %33 %34
-         %37 = OpLoad %int %arg_3
-         %27 = OpImageFetch %v4uint %29 %36 Lod %37
-               OpStore %res %27
+         %31 = OpLoad %11 %arg_0
+         %33 = OpLoad %v2uint %arg_1
+         %34 = OpCompositeExtract %uint %33 0
+         %35 = OpCompositeExtract %uint %33 1
+         %37 = OpLoad %int %arg_2
+         %36 = OpBitcast %uint %37
+         %38 = OpCompositeConstruct %v3uint %34 %35 %36
+         %39 = OpLoad %int %arg_3
+         %29 = OpImageFetch %v4uint %31 %38 Lod %39
+               OpStore %res %29
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %41
-         %43 = OpLabel
-         %44 = OpFunctionCall %void %textureLoad_53e142
+%vertex_main_inner = OpFunction %v4float None %43
+         %45 = OpLabel
+         %46 = OpFunctionCall %void %textureLoad_53e142
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %46 = OpLabel
-         %47 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %47
+         %48 = OpLabel
+         %49 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %49
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %50 = OpLabel
-         %51 = OpFunctionCall %void %textureLoad_53e142
+         %52 = OpLabel
+         %53 = OpFunctionCall %void %textureLoad_53e142
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %53 = OpLabel
-         %54 = OpFunctionCall %void %textureLoad_53e142
+         %55 = OpLabel
+         %56 = OpFunctionCall %void %textureLoad_53e142
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureLoad/53e142.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/53e142.wgsl.expected.wgsl
index e6a62b7..fd73d38 100644
--- a/test/tint/builtins/gen/var/textureLoad/53e142.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/53e142.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_2d_array<u32>;
 
 fn textureLoad_53e142() {
-  var arg_1 = vec2<u32>();
+  var arg_1 = vec2<u32>(1u);
   var arg_2 = 1i;
   var arg_3 = 1i;
   var res : vec4<u32> = textureLoad(arg_0, arg_1, arg_2, arg_3);
diff --git a/test/tint/builtins/gen/var/textureLoad/54a59b.wgsl b/test/tint/builtins/gen/var/textureLoad/54a59b.wgsl
index 36e38cf..abb95bd 100644
--- a/test/tint/builtins/gen/var/textureLoad/54a59b.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/54a59b.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureLoad(texture: texture_2d_array<f32>, coords: vec2<u32>, array_index: i32, level: i32) -> vec4<f32>
 fn textureLoad_54a59b() {
-  var arg_1 = vec2<u32>();
+  var arg_1 = vec2<u32>(1u);
   var arg_2 = 1i;
   var arg_3 = 1i;
   var res: vec4<f32> = textureLoad(arg_0, arg_1, arg_2, arg_3);
diff --git a/test/tint/builtins/gen/var/textureLoad/54a59b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/54a59b.wgsl.expected.dxc.hlsl
index 95f5246..6ab0fca 100644
--- a/test/tint/builtins/gen/var/textureLoad/54a59b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/54a59b.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 void textureLoad_54a59b() {
-  uint2 arg_1 = (0u).xx;
+  uint2 arg_1 = (1u).xx;
   int arg_2 = 1;
   int arg_3 = 1;
   float4 res = arg_0.Load(uint4(uint3(arg_1, uint(arg_2)), uint(arg_3)));
diff --git a/test/tint/builtins/gen/var/textureLoad/54a59b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/54a59b.wgsl.expected.fxc.hlsl
index 95f5246..6ab0fca 100644
--- a/test/tint/builtins/gen/var/textureLoad/54a59b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/54a59b.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 void textureLoad_54a59b() {
-  uint2 arg_1 = (0u).xx;
+  uint2 arg_1 = (1u).xx;
   int arg_2 = 1;
   int arg_3 = 1;
   float4 res = arg_0.Load(uint4(uint3(arg_1, uint(arg_2)), uint(arg_3)));
diff --git a/test/tint/builtins/gen/var/textureLoad/54a59b.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/54a59b.wgsl.expected.glsl
index 30ec30f..2d2fad5 100644
--- a/test/tint/builtins/gen/var/textureLoad/54a59b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/54a59b.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 uniform highp sampler2DArray arg_0_1;
 void textureLoad_54a59b() {
-  uvec2 arg_1 = uvec2(0u);
+  uvec2 arg_1 = uvec2(1u);
   int arg_2 = 1;
   int arg_3 = 1;
   vec4 res = texelFetch(arg_0_1, ivec3(uvec3(arg_1, uint(arg_2))), arg_3);
@@ -26,7 +26,7 @@
 
 uniform highp sampler2DArray arg_0_1;
 void textureLoad_54a59b() {
-  uvec2 arg_1 = uvec2(0u);
+  uvec2 arg_1 = uvec2(1u);
   int arg_2 = 1;
   int arg_3 = 1;
   vec4 res = texelFetch(arg_0_1, ivec3(uvec3(arg_1, uint(arg_2))), arg_3);
@@ -44,7 +44,7 @@
 
 uniform highp sampler2DArray arg_0_1;
 void textureLoad_54a59b() {
-  uvec2 arg_1 = uvec2(0u);
+  uvec2 arg_1 = uvec2(1u);
   int arg_2 = 1;
   int arg_3 = 1;
   vec4 res = texelFetch(arg_0_1, ivec3(uvec3(arg_1, uint(arg_2))), arg_3);
diff --git a/test/tint/builtins/gen/var/textureLoad/54a59b.wgsl.expected.msl b/test/tint/builtins/gen/var/textureLoad/54a59b.wgsl.expected.msl
index 54409a0..1319af9 100644
--- a/test/tint/builtins/gen/var/textureLoad/54a59b.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureLoad/54a59b.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureLoad_54a59b(texture2d_array<float, access::sample> tint_symbol_1) {
-  uint2 arg_1 = uint2(0u);
+  uint2 arg_1 = uint2(1u);
   int arg_2 = 1;
   int arg_3 = 1;
   float4 res = tint_symbol_1.read(uint2(arg_1), arg_2, arg_3);
diff --git a/test/tint/builtins/gen/var/textureLoad/54a59b.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/54a59b.wgsl.expected.spvasm
index 326d53c..6596d31 100644
--- a/test/tint/builtins/gen/var/textureLoad/54a59b.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/54a59b.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 53
+; Bound: 55
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -41,56 +41,58 @@
          %12 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
-         %18 = OpConstantNull %v2uint
+     %uint_1 = OpConstant %uint 1
+         %19 = OpConstantComposite %v2uint %uint_1 %uint_1
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
+         %22 = OpConstantNull %v2uint
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
-         %25 = OpConstantNull %int
+         %27 = OpConstantNull %int
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %39 = OpTypeFunction %v4float
+         %41 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_54a59b = OpFunction %void None %12
          %15 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2uint Function %18
-      %arg_2 = OpVariable %_ptr_Function_int Function %25
-      %arg_3 = OpVariable %_ptr_Function_int Function %25
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %22
+      %arg_2 = OpVariable %_ptr_Function_int Function %27
+      %arg_3 = OpVariable %_ptr_Function_int Function %27
         %res = OpVariable %_ptr_Function_v4float Function %5
-               OpStore %arg_1 %18
+               OpStore %arg_1 %19
                OpStore %arg_2 %int_1
                OpStore %arg_3 %int_1
-         %28 = OpLoad %11 %arg_0
-         %30 = OpLoad %v2uint %arg_1
-         %31 = OpCompositeExtract %uint %30 0
-         %32 = OpCompositeExtract %uint %30 1
-         %34 = OpLoad %int %arg_2
-         %33 = OpBitcast %uint %34
-         %35 = OpCompositeConstruct %v3uint %31 %32 %33
-         %36 = OpLoad %int %arg_3
-         %27 = OpImageFetch %v4float %28 %35 Lod %36
-               OpStore %res %27
+         %30 = OpLoad %11 %arg_0
+         %32 = OpLoad %v2uint %arg_1
+         %33 = OpCompositeExtract %uint %32 0
+         %34 = OpCompositeExtract %uint %32 1
+         %36 = OpLoad %int %arg_2
+         %35 = OpBitcast %uint %36
+         %37 = OpCompositeConstruct %v3uint %33 %34 %35
+         %38 = OpLoad %int %arg_3
+         %29 = OpImageFetch %v4float %30 %37 Lod %38
+               OpStore %res %29
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %39
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureLoad_54a59b
+%vertex_main_inner = OpFunction %v4float None %41
+         %43 = OpLabel
+         %44 = OpFunctionCall %void %textureLoad_54a59b
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %44 = OpLabel
-         %45 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %45
+         %46 = OpLabel
+         %47 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %47
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %48 = OpLabel
-         %49 = OpFunctionCall %void %textureLoad_54a59b
+         %50 = OpLabel
+         %51 = OpFunctionCall %void %textureLoad_54a59b
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %51 = OpLabel
-         %52 = OpFunctionCall %void %textureLoad_54a59b
+         %53 = OpLabel
+         %54 = OpFunctionCall %void %textureLoad_54a59b
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureLoad/54a59b.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/54a59b.wgsl.expected.wgsl
index 08cd7ac..ae4ba00 100644
--- a/test/tint/builtins/gen/var/textureLoad/54a59b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/54a59b.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_2d_array<f32>;
 
 fn textureLoad_54a59b() {
-  var arg_1 = vec2<u32>();
+  var arg_1 = vec2<u32>(1u);
   var arg_2 = 1i;
   var arg_3 = 1i;
   var res : vec4<f32> = textureLoad(arg_0, arg_1, arg_2, arg_3);
diff --git a/test/tint/builtins/gen/var/textureLoad/6154d4.wgsl b/test/tint/builtins/gen/var/textureLoad/6154d4.wgsl
index 7f00367..c3d80b7 100644
--- a/test/tint/builtins/gen/var/textureLoad/6154d4.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/6154d4.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureLoad(texture: texture_2d<u32>, coords: vec2<i32>, level: i32) -> vec4<u32>
 fn textureLoad_6154d4() {
-  var arg_1 = vec2<i32>();
+  var arg_1 = vec2<i32>(1i);
   var arg_2 = 1i;
   var res: vec4<u32> = textureLoad(arg_0, arg_1, arg_2);
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/6154d4.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/6154d4.wgsl.expected.dxc.hlsl
index fa30663..b6fbbac 100644
--- a/test/tint/builtins/gen/var/textureLoad/6154d4.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/6154d4.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 Texture2D<uint4> arg_0 : register(t0, space1);
 
 void textureLoad_6154d4() {
-  int2 arg_1 = (0).xx;
+  int2 arg_1 = (1).xx;
   int arg_2 = 1;
   uint4 res = arg_0.Load(int3(arg_1, arg_2));
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/6154d4.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/6154d4.wgsl.expected.fxc.hlsl
index fa30663..b6fbbac 100644
--- a/test/tint/builtins/gen/var/textureLoad/6154d4.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/6154d4.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 Texture2D<uint4> arg_0 : register(t0, space1);
 
 void textureLoad_6154d4() {
-  int2 arg_1 = (0).xx;
+  int2 arg_1 = (1).xx;
   int arg_2 = 1;
   uint4 res = arg_0.Load(int3(arg_1, arg_2));
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/6154d4.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/6154d4.wgsl.expected.glsl
index fbf9ef4..bab8886 100644
--- a/test/tint/builtins/gen/var/textureLoad/6154d4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/6154d4.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 uniform highp usampler2D arg_0_1;
 void textureLoad_6154d4() {
-  ivec2 arg_1 = ivec2(0);
+  ivec2 arg_1 = ivec2(1);
   int arg_2 = 1;
   uvec4 res = texelFetch(arg_0_1, arg_1, arg_2);
 }
@@ -25,7 +25,7 @@
 
 uniform highp usampler2D arg_0_1;
 void textureLoad_6154d4() {
-  ivec2 arg_1 = ivec2(0);
+  ivec2 arg_1 = ivec2(1);
   int arg_2 = 1;
   uvec4 res = texelFetch(arg_0_1, arg_1, arg_2);
 }
@@ -42,7 +42,7 @@
 
 uniform highp usampler2D arg_0_1;
 void textureLoad_6154d4() {
-  ivec2 arg_1 = ivec2(0);
+  ivec2 arg_1 = ivec2(1);
   int arg_2 = 1;
   uvec4 res = texelFetch(arg_0_1, arg_1, arg_2);
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/6154d4.wgsl.expected.msl b/test/tint/builtins/gen/var/textureLoad/6154d4.wgsl.expected.msl
index dbd0040..c3721ca 100644
--- a/test/tint/builtins/gen/var/textureLoad/6154d4.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureLoad/6154d4.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureLoad_6154d4(texture2d<uint, access::sample> tint_symbol_1) {
-  int2 arg_1 = int2(0);
+  int2 arg_1 = int2(1);
   int arg_2 = 1;
   uint4 res = tint_symbol_1.read(uint2(arg_1), arg_2);
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/6154d4.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/6154d4.wgsl.expected.spvasm
index a03ba99..7f24091 100644
--- a/test/tint/builtins/gen/var/textureLoad/6154d4.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/6154d4.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 48
+; Bound: 49
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -41,49 +41,50 @@
          %13 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
-         %19 = OpConstantNull %v2int
-%_ptr_Function_v2int = OpTypePointer Function %v2int
       %int_1 = OpConstant %int 1
+         %20 = OpConstantComposite %v2int %int_1 %int_1
+%_ptr_Function_v2int = OpTypePointer Function %v2int
+         %23 = OpConstantNull %v2int
 %_ptr_Function_int = OpTypePointer Function %int
-         %25 = OpConstantNull %int
+         %26 = OpConstantNull %int
      %v4uint = OpTypeVector %uint 4
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %33 = OpConstantNull %v4uint
-         %34 = OpTypeFunction %v4float
+         %34 = OpConstantNull %v4uint
+         %35 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_6154d4 = OpFunction %void None %13
          %16 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2int Function %19
-      %arg_2 = OpVariable %_ptr_Function_int Function %25
-        %res = OpVariable %_ptr_Function_v4uint Function %33
-               OpStore %arg_1 %19
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %23
+      %arg_2 = OpVariable %_ptr_Function_int Function %26
+        %res = OpVariable %_ptr_Function_v4uint Function %34
+               OpStore %arg_1 %20
                OpStore %arg_2 %int_1
-         %28 = OpLoad %11 %arg_0
-         %29 = OpLoad %v2int %arg_1
-         %30 = OpLoad %int %arg_2
-         %26 = OpImageFetch %v4uint %28 %29 Lod %30
-               OpStore %res %26
+         %29 = OpLoad %11 %arg_0
+         %30 = OpLoad %v2int %arg_1
+         %31 = OpLoad %int %arg_2
+         %27 = OpImageFetch %v4uint %29 %30 Lod %31
+               OpStore %res %27
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %34
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureLoad_6154d4
+%vertex_main_inner = OpFunction %v4float None %35
+         %37 = OpLabel
+         %38 = OpFunctionCall %void %textureLoad_6154d4
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %40
+         %40 = OpLabel
+         %41 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %41
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %43 = OpLabel
-         %44 = OpFunctionCall %void %textureLoad_6154d4
+         %44 = OpLabel
+         %45 = OpFunctionCall %void %textureLoad_6154d4
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %46 = OpLabel
-         %47 = OpFunctionCall %void %textureLoad_6154d4
+         %47 = OpLabel
+         %48 = OpFunctionCall %void %textureLoad_6154d4
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureLoad/6154d4.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/6154d4.wgsl.expected.wgsl
index 9be4066..e970a81 100644
--- a/test/tint/builtins/gen/var/textureLoad/6154d4.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/6154d4.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_2d<u32>;
 
 fn textureLoad_6154d4() {
-  var arg_1 = vec2<i32>();
+  var arg_1 = vec2<i32>(1i);
   var arg_2 = 1i;
   var res : vec4<u32> = textureLoad(arg_0, arg_1, arg_2);
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/6273b1.wgsl b/test/tint/builtins/gen/var/textureLoad/6273b1.wgsl
index ed10b36..6f3c159 100644
--- a/test/tint/builtins/gen/var/textureLoad/6273b1.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/6273b1.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureLoad(texture: texture_depth_multisampled_2d, coords: vec2<i32>, sample_index: i32) -> f32
 fn textureLoad_6273b1() {
-  var arg_1 = vec2<i32>();
+  var arg_1 = vec2<i32>(1i);
   var arg_2 = 1i;
   var res: f32 = textureLoad(arg_0, arg_1, arg_2);
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/6273b1.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/6273b1.wgsl.expected.dxc.hlsl
index b05e1bb..f7ddcb2 100644
--- a/test/tint/builtins/gen/var/textureLoad/6273b1.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/6273b1.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DMS<float4> arg_0 : register(t0, space1);
 
 void textureLoad_6273b1() {
-  int2 arg_1 = (0).xx;
+  int2 arg_1 = (1).xx;
   int arg_2 = 1;
   float res = arg_0.Load(int3(arg_1, 0), arg_2).x;
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/6273b1.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/6273b1.wgsl.expected.fxc.hlsl
index b05e1bb..f7ddcb2 100644
--- a/test/tint/builtins/gen/var/textureLoad/6273b1.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/6273b1.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DMS<float4> arg_0 : register(t0, space1);
 
 void textureLoad_6273b1() {
-  int2 arg_1 = (0).xx;
+  int2 arg_1 = (1).xx;
   int arg_2 = 1;
   float res = arg_0.Load(int3(arg_1, 0), arg_2).x;
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/6273b1.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/6273b1.wgsl.expected.glsl
index ae0115f..7a7419c 100644
--- a/test/tint/builtins/gen/var/textureLoad/6273b1.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/6273b1.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 uniform highp sampler2DMS arg_0_1;
 void textureLoad_6273b1() {
-  ivec2 arg_1 = ivec2(0);
+  ivec2 arg_1 = ivec2(1);
   int arg_2 = 1;
   float res = texelFetch(arg_0_1, arg_1, arg_2).x;
 }
@@ -25,7 +25,7 @@
 
 uniform highp sampler2DMS arg_0_1;
 void textureLoad_6273b1() {
-  ivec2 arg_1 = ivec2(0);
+  ivec2 arg_1 = ivec2(1);
   int arg_2 = 1;
   float res = texelFetch(arg_0_1, arg_1, arg_2).x;
 }
@@ -42,7 +42,7 @@
 
 uniform highp sampler2DMS arg_0_1;
 void textureLoad_6273b1() {
-  ivec2 arg_1 = ivec2(0);
+  ivec2 arg_1 = ivec2(1);
   int arg_2 = 1;
   float res = texelFetch(arg_0_1, arg_1, arg_2).x;
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/6273b1.wgsl.expected.msl b/test/tint/builtins/gen/var/textureLoad/6273b1.wgsl.expected.msl
index 05fb393..d6b255c 100644
--- a/test/tint/builtins/gen/var/textureLoad/6273b1.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureLoad/6273b1.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureLoad_6273b1(depth2d_ms<float, access::read> tint_symbol_1) {
-  int2 arg_1 = int2(0);
+  int2 arg_1 = int2(1);
   int arg_2 = 1;
   float res = tint_symbol_1.read(uint2(arg_1), arg_2);
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/6273b1.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/6273b1.wgsl.expected.spvasm
index 4ed02fb..a08e42a 100644
--- a/test/tint/builtins/gen/var/textureLoad/6273b1.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/6273b1.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 46
+; Bound: 47
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -40,48 +40,49 @@
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
-         %18 = OpConstantNull %v2int
-%_ptr_Function_v2int = OpTypePointer Function %v2int
       %int_1 = OpConstant %int 1
+         %19 = OpConstantComposite %v2int %int_1 %int_1
+%_ptr_Function_v2int = OpTypePointer Function %v2int
+         %22 = OpConstantNull %v2int
 %_ptr_Function_int = OpTypePointer Function %int
-         %24 = OpConstantNull %int
+         %25 = OpConstantNull %int
 %_ptr_Function_float = OpTypePointer Function %float
-         %32 = OpTypeFunction %v4float
+         %33 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_6273b1 = OpFunction %void None %12
          %15 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2int Function %18
-      %arg_2 = OpVariable %_ptr_Function_int Function %24
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %22
+      %arg_2 = OpVariable %_ptr_Function_int Function %25
         %res = OpVariable %_ptr_Function_float Function %8
-               OpStore %arg_1 %18
+               OpStore %arg_1 %19
                OpStore %arg_2 %int_1
-         %27 = OpLoad %11 %arg_0
-         %28 = OpLoad %v2int %arg_1
-         %29 = OpLoad %int %arg_2
-         %26 = OpImageFetch %v4float %27 %28 Sample %29
-         %25 = OpCompositeExtract %float %26 0
-               OpStore %res %25
+         %28 = OpLoad %11 %arg_0
+         %29 = OpLoad %v2int %arg_1
+         %30 = OpLoad %int %arg_2
+         %27 = OpImageFetch %v4float %28 %29 Sample %30
+         %26 = OpCompositeExtract %float %27 0
+               OpStore %res %26
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %32
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureLoad_6273b1
+%vertex_main_inner = OpFunction %v4float None %33
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureLoad_6273b1
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %37 = OpLabel
-         %38 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %38
+         %38 = OpLabel
+         %39 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %39
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureLoad_6273b1
+         %42 = OpLabel
+         %43 = OpFunctionCall %void %textureLoad_6273b1
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %44 = OpLabel
-         %45 = OpFunctionCall %void %textureLoad_6273b1
+         %45 = OpLabel
+         %46 = OpFunctionCall %void %textureLoad_6273b1
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureLoad/6273b1.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/6273b1.wgsl.expected.wgsl
index 7ef8de4..7cada9a 100644
--- a/test/tint/builtins/gen/var/textureLoad/6273b1.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/6273b1.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_depth_multisampled_2d;
 
 fn textureLoad_6273b1() {
-  var arg_1 = vec2<i32>();
+  var arg_1 = vec2<i32>(1i);
   var arg_2 = 1i;
   var res : f32 = textureLoad(arg_0, arg_1, arg_2);
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/639962.wgsl b/test/tint/builtins/gen/var/textureLoad/639962.wgsl
index 2336058..3d14ad5 100644
--- a/test/tint/builtins/gen/var/textureLoad/639962.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/639962.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureLoad(texture: texture_multisampled_2d<i32>, coords: vec2<u32>, sample_index: u32) -> vec4<i32>
 fn textureLoad_639962() {
-  var arg_1 = vec2<u32>();
+  var arg_1 = vec2<u32>(1u);
   var arg_2 = 1u;
   var res: vec4<i32> = textureLoad(arg_0, arg_1, arg_2);
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/639962.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/639962.wgsl.expected.dxc.hlsl
index b349fe4..ed58f3f 100644
--- a/test/tint/builtins/gen/var/textureLoad/639962.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/639962.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DMS<int4> arg_0 : register(t0, space1);
 
 void textureLoad_639962() {
-  uint2 arg_1 = (0u).xx;
+  uint2 arg_1 = (1u).xx;
   uint arg_2 = 1u;
   int4 res = arg_0.Load(arg_1, arg_2);
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/639962.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/639962.wgsl.expected.fxc.hlsl
index b349fe4..ed58f3f 100644
--- a/test/tint/builtins/gen/var/textureLoad/639962.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/639962.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DMS<int4> arg_0 : register(t0, space1);
 
 void textureLoad_639962() {
-  uint2 arg_1 = (0u).xx;
+  uint2 arg_1 = (1u).xx;
   uint arg_2 = 1u;
   int4 res = arg_0.Load(arg_1, arg_2);
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/639962.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/639962.wgsl.expected.glsl
index b273a8c..f5f8da9 100644
--- a/test/tint/builtins/gen/var/textureLoad/639962.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/639962.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 uniform highp isampler2DMS arg_0_1;
 void textureLoad_639962() {
-  uvec2 arg_1 = uvec2(0u);
+  uvec2 arg_1 = uvec2(1u);
   uint arg_2 = 1u;
   ivec4 res = texelFetch(arg_0_1, ivec2(arg_1), int(arg_2));
 }
@@ -25,7 +25,7 @@
 
 uniform highp isampler2DMS arg_0_1;
 void textureLoad_639962() {
-  uvec2 arg_1 = uvec2(0u);
+  uvec2 arg_1 = uvec2(1u);
   uint arg_2 = 1u;
   ivec4 res = texelFetch(arg_0_1, ivec2(arg_1), int(arg_2));
 }
@@ -42,7 +42,7 @@
 
 uniform highp isampler2DMS arg_0_1;
 void textureLoad_639962() {
-  uvec2 arg_1 = uvec2(0u);
+  uvec2 arg_1 = uvec2(1u);
   uint arg_2 = 1u;
   ivec4 res = texelFetch(arg_0_1, ivec2(arg_1), int(arg_2));
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/639962.wgsl.expected.msl b/test/tint/builtins/gen/var/textureLoad/639962.wgsl.expected.msl
index bd713c5..c3adfe6 100644
--- a/test/tint/builtins/gen/var/textureLoad/639962.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureLoad/639962.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureLoad_639962(texture2d_ms<int, access::read> tint_symbol_1) {
-  uint2 arg_1 = uint2(0u);
+  uint2 arg_1 = uint2(1u);
   uint arg_2 = 1u;
   int4 res = tint_symbol_1.read(uint2(arg_1), arg_2);
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/639962.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/639962.wgsl.expected.spvasm
index 307a6eb..7057d88 100644
--- a/test/tint/builtins/gen/var/textureLoad/639962.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/639962.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 48
+; Bound: 49
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -41,49 +41,50 @@
          %13 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
-         %19 = OpConstantNull %v2uint
-%_ptr_Function_v2uint = OpTypePointer Function %v2uint
      %uint_1 = OpConstant %uint 1
+         %20 = OpConstantComposite %v2uint %uint_1 %uint_1
+%_ptr_Function_v2uint = OpTypePointer Function %v2uint
+         %23 = OpConstantNull %v2uint
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %25 = OpConstantNull %uint
+         %26 = OpConstantNull %uint
       %v4int = OpTypeVector %int 4
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %33 = OpConstantNull %v4int
-         %34 = OpTypeFunction %v4float
+         %34 = OpConstantNull %v4int
+         %35 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_639962 = OpFunction %void None %13
          %16 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2uint Function %19
-      %arg_2 = OpVariable %_ptr_Function_uint Function %25
-        %res = OpVariable %_ptr_Function_v4int Function %33
-               OpStore %arg_1 %19
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %23
+      %arg_2 = OpVariable %_ptr_Function_uint Function %26
+        %res = OpVariable %_ptr_Function_v4int Function %34
+               OpStore %arg_1 %20
                OpStore %arg_2 %uint_1
-         %28 = OpLoad %11 %arg_0
-         %29 = OpLoad %v2uint %arg_1
-         %30 = OpLoad %uint %arg_2
-         %26 = OpImageFetch %v4int %28 %29 Sample %30
-               OpStore %res %26
+         %29 = OpLoad %11 %arg_0
+         %30 = OpLoad %v2uint %arg_1
+         %31 = OpLoad %uint %arg_2
+         %27 = OpImageFetch %v4int %29 %30 Sample %31
+               OpStore %res %27
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %34
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureLoad_639962
+%vertex_main_inner = OpFunction %v4float None %35
+         %37 = OpLabel
+         %38 = OpFunctionCall %void %textureLoad_639962
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %40
+         %40 = OpLabel
+         %41 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %41
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %43 = OpLabel
-         %44 = OpFunctionCall %void %textureLoad_639962
+         %44 = OpLabel
+         %45 = OpFunctionCall %void %textureLoad_639962
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %46 = OpLabel
-         %47 = OpFunctionCall %void %textureLoad_639962
+         %47 = OpLabel
+         %48 = OpFunctionCall %void %textureLoad_639962
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureLoad/639962.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/639962.wgsl.expected.wgsl
index 25ea34f..c02be59 100644
--- a/test/tint/builtins/gen/var/textureLoad/639962.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/639962.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_multisampled_2d<i32>;
 
 fn textureLoad_639962() {
-  var arg_1 = vec2<u32>();
+  var arg_1 = vec2<u32>(1u);
   var arg_2 = 1u;
   var res : vec4<i32> = textureLoad(arg_0, arg_1, arg_2);
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/656d76.wgsl b/test/tint/builtins/gen/var/textureLoad/656d76.wgsl
index 49a1afb..88e3094 100644
--- a/test/tint/builtins/gen/var/textureLoad/656d76.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/656d76.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureLoad(texture: texture_2d_array<u32>, coords: vec2<i32>, array_index: i32, level: u32) -> vec4<u32>
 fn textureLoad_656d76() {
-  var arg_1 = vec2<i32>();
+  var arg_1 = vec2<i32>(1i);
   var arg_2 = 1i;
   var arg_3 = 1u;
   var res: vec4<u32> = textureLoad(arg_0, arg_1, arg_2, arg_3);
diff --git a/test/tint/builtins/gen/var/textureLoad/656d76.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/656d76.wgsl.expected.dxc.hlsl
index 81de6fa..be46590 100644
--- a/test/tint/builtins/gen/var/textureLoad/656d76.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/656d76.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 void textureLoad_656d76() {
-  int2 arg_1 = (0).xx;
+  int2 arg_1 = (1).xx;
   int arg_2 = 1;
   uint arg_3 = 1u;
   uint4 res = arg_0.Load(int4(int3(arg_1, arg_2), int(arg_3)));
diff --git a/test/tint/builtins/gen/var/textureLoad/656d76.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/656d76.wgsl.expected.fxc.hlsl
index 81de6fa..be46590 100644
--- a/test/tint/builtins/gen/var/textureLoad/656d76.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/656d76.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 void textureLoad_656d76() {
-  int2 arg_1 = (0).xx;
+  int2 arg_1 = (1).xx;
   int arg_2 = 1;
   uint arg_3 = 1u;
   uint4 res = arg_0.Load(int4(int3(arg_1, arg_2), int(arg_3)));
diff --git a/test/tint/builtins/gen/var/textureLoad/656d76.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/656d76.wgsl.expected.glsl
index 2eb385b..c22ae85 100644
--- a/test/tint/builtins/gen/var/textureLoad/656d76.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/656d76.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 uniform highp usampler2DArray arg_0_1;
 void textureLoad_656d76() {
-  ivec2 arg_1 = ivec2(0);
+  ivec2 arg_1 = ivec2(1);
   int arg_2 = 1;
   uint arg_3 = 1u;
   uvec4 res = texelFetch(arg_0_1, ivec3(arg_1, arg_2), int(arg_3));
@@ -26,7 +26,7 @@
 
 uniform highp usampler2DArray arg_0_1;
 void textureLoad_656d76() {
-  ivec2 arg_1 = ivec2(0);
+  ivec2 arg_1 = ivec2(1);
   int arg_2 = 1;
   uint arg_3 = 1u;
   uvec4 res = texelFetch(arg_0_1, ivec3(arg_1, arg_2), int(arg_3));
@@ -44,7 +44,7 @@
 
 uniform highp usampler2DArray arg_0_1;
 void textureLoad_656d76() {
-  ivec2 arg_1 = ivec2(0);
+  ivec2 arg_1 = ivec2(1);
   int arg_2 = 1;
   uint arg_3 = 1u;
   uvec4 res = texelFetch(arg_0_1, ivec3(arg_1, arg_2), int(arg_3));
diff --git a/test/tint/builtins/gen/var/textureLoad/656d76.wgsl.expected.msl b/test/tint/builtins/gen/var/textureLoad/656d76.wgsl.expected.msl
index 11b7b65..5565e44 100644
--- a/test/tint/builtins/gen/var/textureLoad/656d76.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureLoad/656d76.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureLoad_656d76(texture2d_array<uint, access::sample> tint_symbol_1) {
-  int2 arg_1 = int2(0);
+  int2 arg_1 = int2(1);
   int arg_2 = 1;
   uint arg_3 = 1u;
   uint4 res = tint_symbol_1.read(uint2(arg_1), arg_2, arg_3);
diff --git a/test/tint/builtins/gen/var/textureLoad/656d76.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/656d76.wgsl.expected.spvasm
index 2fd38ea..112215f 100644
--- a/test/tint/builtins/gen/var/textureLoad/656d76.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/656d76.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 57
+; Bound: 58
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -42,59 +42,60 @@
          %13 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
-         %19 = OpConstantNull %v2int
-%_ptr_Function_v2int = OpTypePointer Function %v2int
       %int_1 = OpConstant %int 1
+         %20 = OpConstantComposite %v2int %int_1 %int_1
+%_ptr_Function_v2int = OpTypePointer Function %v2int
+         %23 = OpConstantNull %v2int
 %_ptr_Function_int = OpTypePointer Function %int
-         %25 = OpConstantNull %int
+         %26 = OpConstantNull %int
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %29 = OpConstantNull %uint
+         %30 = OpConstantNull %uint
      %v4uint = OpTypeVector %uint 4
       %v3int = OpTypeVector %int 3
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %42 = OpConstantNull %v4uint
-         %43 = OpTypeFunction %v4float
+         %43 = OpConstantNull %v4uint
+         %44 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_656d76 = OpFunction %void None %13
          %16 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2int Function %19
-      %arg_2 = OpVariable %_ptr_Function_int Function %25
-      %arg_3 = OpVariable %_ptr_Function_uint Function %29
-        %res = OpVariable %_ptr_Function_v4uint Function %42
-               OpStore %arg_1 %19
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %23
+      %arg_2 = OpVariable %_ptr_Function_int Function %26
+      %arg_3 = OpVariable %_ptr_Function_uint Function %30
+        %res = OpVariable %_ptr_Function_v4uint Function %43
+               OpStore %arg_1 %20
                OpStore %arg_2 %int_1
                OpStore %arg_3 %uint_1
-         %32 = OpLoad %11 %arg_0
-         %34 = OpLoad %v2int %arg_1
-         %35 = OpCompositeExtract %int %34 0
-         %36 = OpCompositeExtract %int %34 1
-         %37 = OpLoad %int %arg_2
-         %38 = OpCompositeConstruct %v3int %35 %36 %37
-         %39 = OpLoad %uint %arg_3
-         %30 = OpImageFetch %v4uint %32 %38 Lod %39
-               OpStore %res %30
+         %33 = OpLoad %11 %arg_0
+         %35 = OpLoad %v2int %arg_1
+         %36 = OpCompositeExtract %int %35 0
+         %37 = OpCompositeExtract %int %35 1
+         %38 = OpLoad %int %arg_2
+         %39 = OpCompositeConstruct %v3int %36 %37 %38
+         %40 = OpLoad %uint %arg_3
+         %31 = OpImageFetch %v4uint %33 %39 Lod %40
+               OpStore %res %31
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %43
-         %45 = OpLabel
-         %46 = OpFunctionCall %void %textureLoad_656d76
+%vertex_main_inner = OpFunction %v4float None %44
+         %46 = OpLabel
+         %47 = OpFunctionCall %void %textureLoad_656d76
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %48 = OpLabel
-         %49 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %49
+         %49 = OpLabel
+         %50 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %50
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %52 = OpLabel
-         %53 = OpFunctionCall %void %textureLoad_656d76
+         %53 = OpLabel
+         %54 = OpFunctionCall %void %textureLoad_656d76
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %55 = OpLabel
-         %56 = OpFunctionCall %void %textureLoad_656d76
+         %56 = OpLabel
+         %57 = OpFunctionCall %void %textureLoad_656d76
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureLoad/656d76.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/656d76.wgsl.expected.wgsl
index 3957ee6..9452773 100644
--- a/test/tint/builtins/gen/var/textureLoad/656d76.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/656d76.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_2d_array<u32>;
 
 fn textureLoad_656d76() {
-  var arg_1 = vec2<i32>();
+  var arg_1 = vec2<i32>(1i);
   var arg_2 = 1i;
   var arg_3 = 1u;
   var res : vec4<u32> = textureLoad(arg_0, arg_1, arg_2, arg_3);
diff --git a/test/tint/builtins/gen/var/textureLoad/66be47.wgsl b/test/tint/builtins/gen/var/textureLoad/66be47.wgsl
index cf9675b..cddd126 100644
--- a/test/tint/builtins/gen/var/textureLoad/66be47.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/66be47.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureLoad(texture: texture_depth_2d_array, coords: vec2<i32>, array_index: u32, level: u32) -> f32
 fn textureLoad_66be47() {
-  var arg_1 = vec2<i32>();
+  var arg_1 = vec2<i32>(1i);
   var arg_2 = 1u;
   var arg_3 = 1u;
   var res: f32 = textureLoad(arg_0, arg_1, arg_2, arg_3);
diff --git a/test/tint/builtins/gen/var/textureLoad/66be47.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/66be47.wgsl.expected.dxc.hlsl
index e21edcd..663ca3a 100644
--- a/test/tint/builtins/gen/var/textureLoad/66be47.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/66be47.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DArray arg_0 : register(t0, space1);
 
 void textureLoad_66be47() {
-  int2 arg_1 = (0).xx;
+  int2 arg_1 = (1).xx;
   uint arg_2 = 1u;
   uint arg_3 = 1u;
   float res = arg_0.Load(int4(int3(arg_1, int(arg_2)), int(arg_3))).x;
diff --git a/test/tint/builtins/gen/var/textureLoad/66be47.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/66be47.wgsl.expected.fxc.hlsl
index e21edcd..663ca3a 100644
--- a/test/tint/builtins/gen/var/textureLoad/66be47.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/66be47.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DArray arg_0 : register(t0, space1);
 
 void textureLoad_66be47() {
-  int2 arg_1 = (0).xx;
+  int2 arg_1 = (1).xx;
   uint arg_2 = 1u;
   uint arg_3 = 1u;
   float res = arg_0.Load(int4(int3(arg_1, int(arg_2)), int(arg_3))).x;
diff --git a/test/tint/builtins/gen/var/textureLoad/66be47.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/66be47.wgsl.expected.glsl
index 4aa7bd4..191f682 100644
--- a/test/tint/builtins/gen/var/textureLoad/66be47.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/66be47.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 uniform highp sampler2DArray arg_0_1;
 void textureLoad_66be47() {
-  ivec2 arg_1 = ivec2(0);
+  ivec2 arg_1 = ivec2(1);
   uint arg_2 = 1u;
   uint arg_3 = 1u;
   float res = texelFetch(arg_0_1, ivec3(arg_1, int(arg_2)), int(arg_3)).x;
@@ -26,7 +26,7 @@
 
 uniform highp sampler2DArray arg_0_1;
 void textureLoad_66be47() {
-  ivec2 arg_1 = ivec2(0);
+  ivec2 arg_1 = ivec2(1);
   uint arg_2 = 1u;
   uint arg_3 = 1u;
   float res = texelFetch(arg_0_1, ivec3(arg_1, int(arg_2)), int(arg_3)).x;
@@ -44,7 +44,7 @@
 
 uniform highp sampler2DArray arg_0_1;
 void textureLoad_66be47() {
-  ivec2 arg_1 = ivec2(0);
+  ivec2 arg_1 = ivec2(1);
   uint arg_2 = 1u;
   uint arg_3 = 1u;
   float res = texelFetch(arg_0_1, ivec3(arg_1, int(arg_2)), int(arg_3)).x;
diff --git a/test/tint/builtins/gen/var/textureLoad/66be47.wgsl.expected.msl b/test/tint/builtins/gen/var/textureLoad/66be47.wgsl.expected.msl
index e64f0f0..8fefeea 100644
--- a/test/tint/builtins/gen/var/textureLoad/66be47.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureLoad/66be47.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureLoad_66be47(depth2d_array<float, access::sample> tint_symbol_1) {
-  int2 arg_1 = int2(0);
+  int2 arg_1 = int2(1);
   uint arg_2 = 1u;
   uint arg_3 = 1u;
   float res = tint_symbol_1.read(uint2(arg_1), arg_2, arg_3);
diff --git a/test/tint/builtins/gen/var/textureLoad/66be47.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/66be47.wgsl.expected.spvasm
index b97083d..5a3d224 100644
--- a/test/tint/builtins/gen/var/textureLoad/66be47.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/66be47.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 54
+; Bound: 56
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -41,57 +41,59 @@
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
-         %18 = OpConstantNull %v2int
+      %int_1 = OpConstant %int 1
+         %19 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v2int = OpTypePointer Function %v2int
+         %22 = OpConstantNull %v2int
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %25 = OpConstantNull %uint
+         %27 = OpConstantNull %uint
       %v3int = OpTypeVector %int 3
 %_ptr_Function_float = OpTypePointer Function %float
-         %40 = OpTypeFunction %v4float
+         %42 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_66be47 = OpFunction %void None %12
          %15 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2int Function %18
-      %arg_2 = OpVariable %_ptr_Function_uint Function %25
-      %arg_3 = OpVariable %_ptr_Function_uint Function %25
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %22
+      %arg_2 = OpVariable %_ptr_Function_uint Function %27
+      %arg_3 = OpVariable %_ptr_Function_uint Function %27
         %res = OpVariable %_ptr_Function_float Function %8
-               OpStore %arg_1 %18
+               OpStore %arg_1 %19
                OpStore %arg_2 %uint_1
                OpStore %arg_3 %uint_1
-         %29 = OpLoad %11 %arg_0
-         %31 = OpLoad %v2int %arg_1
-         %32 = OpCompositeExtract %int %31 0
-         %33 = OpCompositeExtract %int %31 1
-         %35 = OpLoad %uint %arg_2
-         %34 = OpBitcast %int %35
-         %36 = OpCompositeConstruct %v3int %32 %33 %34
-         %37 = OpLoad %uint %arg_3
-         %28 = OpImageFetch %v4float %29 %36 Lod %37
-         %27 = OpCompositeExtract %float %28 0
-               OpStore %res %27
+         %31 = OpLoad %11 %arg_0
+         %33 = OpLoad %v2int %arg_1
+         %34 = OpCompositeExtract %int %33 0
+         %35 = OpCompositeExtract %int %33 1
+         %37 = OpLoad %uint %arg_2
+         %36 = OpBitcast %int %37
+         %38 = OpCompositeConstruct %v3int %34 %35 %36
+         %39 = OpLoad %uint %arg_3
+         %30 = OpImageFetch %v4float %31 %38 Lod %39
+         %29 = OpCompositeExtract %float %30 0
+               OpStore %res %29
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %40
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureLoad_66be47
+%vertex_main_inner = OpFunction %v4float None %42
+         %44 = OpLabel
+         %45 = OpFunctionCall %void %textureLoad_66be47
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %45 = OpLabel
-         %46 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %46
+         %47 = OpLabel
+         %48 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %48
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %49 = OpLabel
-         %50 = OpFunctionCall %void %textureLoad_66be47
+         %51 = OpLabel
+         %52 = OpFunctionCall %void %textureLoad_66be47
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %52 = OpLabel
-         %53 = OpFunctionCall %void %textureLoad_66be47
+         %54 = OpLabel
+         %55 = OpFunctionCall %void %textureLoad_66be47
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureLoad/66be47.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/66be47.wgsl.expected.wgsl
index 24d1011..01a2ec9 100644
--- a/test/tint/builtins/gen/var/textureLoad/66be47.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/66be47.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_depth_2d_array;
 
 fn textureLoad_66be47() {
-  var arg_1 = vec2<i32>();
+  var arg_1 = vec2<i32>(1i);
   var arg_2 = 1u;
   var arg_3 = 1u;
   var res : f32 = textureLoad(arg_0, arg_1, arg_2, arg_3);
diff --git a/test/tint/builtins/gen/var/textureLoad/6925bc.wgsl b/test/tint/builtins/gen/var/textureLoad/6925bc.wgsl
index 975fbb8..51a4254 100644
--- a/test/tint/builtins/gen/var/textureLoad/6925bc.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/6925bc.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureLoad(texture: texture_depth_multisampled_2d, coords: vec2<i32>, sample_index: u32) -> f32
 fn textureLoad_6925bc() {
-  var arg_1 = vec2<i32>();
+  var arg_1 = vec2<i32>(1i);
   var arg_2 = 1u;
   var res: f32 = textureLoad(arg_0, arg_1, arg_2);
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/6925bc.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/6925bc.wgsl.expected.dxc.hlsl
index 4ce3b6e..86b8281 100644
--- a/test/tint/builtins/gen/var/textureLoad/6925bc.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/6925bc.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DMS<float4> arg_0 : register(t0, space1);
 
 void textureLoad_6925bc() {
-  int2 arg_1 = (0).xx;
+  int2 arg_1 = (1).xx;
   uint arg_2 = 1u;
   float res = arg_0.Load(int3(arg_1, 0), arg_2).x;
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/6925bc.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/6925bc.wgsl.expected.fxc.hlsl
index 4ce3b6e..86b8281 100644
--- a/test/tint/builtins/gen/var/textureLoad/6925bc.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/6925bc.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DMS<float4> arg_0 : register(t0, space1);
 
 void textureLoad_6925bc() {
-  int2 arg_1 = (0).xx;
+  int2 arg_1 = (1).xx;
   uint arg_2 = 1u;
   float res = arg_0.Load(int3(arg_1, 0), arg_2).x;
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/6925bc.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/6925bc.wgsl.expected.glsl
index 6a5b9c2..baf9eff 100644
--- a/test/tint/builtins/gen/var/textureLoad/6925bc.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/6925bc.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 uniform highp sampler2DMS arg_0_1;
 void textureLoad_6925bc() {
-  ivec2 arg_1 = ivec2(0);
+  ivec2 arg_1 = ivec2(1);
   uint arg_2 = 1u;
   float res = texelFetch(arg_0_1, arg_1, int(arg_2)).x;
 }
@@ -25,7 +25,7 @@
 
 uniform highp sampler2DMS arg_0_1;
 void textureLoad_6925bc() {
-  ivec2 arg_1 = ivec2(0);
+  ivec2 arg_1 = ivec2(1);
   uint arg_2 = 1u;
   float res = texelFetch(arg_0_1, arg_1, int(arg_2)).x;
 }
@@ -42,7 +42,7 @@
 
 uniform highp sampler2DMS arg_0_1;
 void textureLoad_6925bc() {
-  ivec2 arg_1 = ivec2(0);
+  ivec2 arg_1 = ivec2(1);
   uint arg_2 = 1u;
   float res = texelFetch(arg_0_1, arg_1, int(arg_2)).x;
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/6925bc.wgsl.expected.msl b/test/tint/builtins/gen/var/textureLoad/6925bc.wgsl.expected.msl
index 5512c42..739dc4a 100644
--- a/test/tint/builtins/gen/var/textureLoad/6925bc.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureLoad/6925bc.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureLoad_6925bc(depth2d_ms<float, access::read> tint_symbol_1) {
-  int2 arg_1 = int2(0);
+  int2 arg_1 = int2(1);
   uint arg_2 = 1u;
   float res = tint_symbol_1.read(uint2(arg_1), arg_2);
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/6925bc.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/6925bc.wgsl.expected.spvasm
index ce6b52e..dcf7546 100644
--- a/test/tint/builtins/gen/var/textureLoad/6925bc.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/6925bc.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 47
+; Bound: 49
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -40,49 +40,51 @@
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
-         %18 = OpConstantNull %v2int
+      %int_1 = OpConstant %int 1
+         %19 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v2int = OpTypePointer Function %v2int
+         %22 = OpConstantNull %v2int
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %25 = OpConstantNull %uint
+         %27 = OpConstantNull %uint
 %_ptr_Function_float = OpTypePointer Function %float
-         %33 = OpTypeFunction %v4float
+         %35 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_6925bc = OpFunction %void None %12
          %15 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2int Function %18
-      %arg_2 = OpVariable %_ptr_Function_uint Function %25
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %22
+      %arg_2 = OpVariable %_ptr_Function_uint Function %27
         %res = OpVariable %_ptr_Function_float Function %8
-               OpStore %arg_1 %18
+               OpStore %arg_1 %19
                OpStore %arg_2 %uint_1
-         %28 = OpLoad %11 %arg_0
-         %29 = OpLoad %v2int %arg_1
-         %30 = OpLoad %uint %arg_2
-         %27 = OpImageFetch %v4float %28 %29 Sample %30
-         %26 = OpCompositeExtract %float %27 0
-               OpStore %res %26
+         %30 = OpLoad %11 %arg_0
+         %31 = OpLoad %v2int %arg_1
+         %32 = OpLoad %uint %arg_2
+         %29 = OpImageFetch %v4float %30 %31 Sample %32
+         %28 = OpCompositeExtract %float %29 0
+               OpStore %res %28
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %33
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureLoad_6925bc
+%vertex_main_inner = OpFunction %v4float None %35
+         %37 = OpLabel
+         %38 = OpFunctionCall %void %textureLoad_6925bc
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %38 = OpLabel
-         %39 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %39
+         %40 = OpLabel
+         %41 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %41
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureLoad_6925bc
+         %44 = OpLabel
+         %45 = OpFunctionCall %void %textureLoad_6925bc
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %45 = OpLabel
-         %46 = OpFunctionCall %void %textureLoad_6925bc
+         %47 = OpLabel
+         %48 = OpFunctionCall %void %textureLoad_6925bc
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureLoad/6925bc.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/6925bc.wgsl.expected.wgsl
index f673c8f..d399100 100644
--- a/test/tint/builtins/gen/var/textureLoad/6925bc.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/6925bc.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_depth_multisampled_2d;
 
 fn textureLoad_6925bc() {
-  var arg_1 = vec2<i32>();
+  var arg_1 = vec2<i32>(1i);
   var arg_2 = 1u;
   var res : f32 = textureLoad(arg_0, arg_1, arg_2);
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/6bf4b7.wgsl b/test/tint/builtins/gen/var/textureLoad/6bf4b7.wgsl
index 899de73..892cd17 100644
--- a/test/tint/builtins/gen/var/textureLoad/6bf4b7.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/6bf4b7.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureLoad(texture: texture_3d<u32>, coords: vec3<i32>, level: u32) -> vec4<u32>
 fn textureLoad_6bf4b7() {
-  var arg_1 = vec3<i32>();
+  var arg_1 = vec3<i32>(1i);
   var arg_2 = 1u;
   var res: vec4<u32> = textureLoad(arg_0, arg_1, arg_2);
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/6bf4b7.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/6bf4b7.wgsl.expected.dxc.hlsl
index a18bddf..e35052f 100644
--- a/test/tint/builtins/gen/var/textureLoad/6bf4b7.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/6bf4b7.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 Texture3D<uint4> arg_0 : register(t0, space1);
 
 void textureLoad_6bf4b7() {
-  int3 arg_1 = (0).xxx;
+  int3 arg_1 = (1).xxx;
   uint arg_2 = 1u;
   uint4 res = arg_0.Load(int4(arg_1, int(arg_2)));
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/6bf4b7.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/6bf4b7.wgsl.expected.fxc.hlsl
index a18bddf..e35052f 100644
--- a/test/tint/builtins/gen/var/textureLoad/6bf4b7.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/6bf4b7.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 Texture3D<uint4> arg_0 : register(t0, space1);
 
 void textureLoad_6bf4b7() {
-  int3 arg_1 = (0).xxx;
+  int3 arg_1 = (1).xxx;
   uint arg_2 = 1u;
   uint4 res = arg_0.Load(int4(arg_1, int(arg_2)));
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/6bf4b7.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/6bf4b7.wgsl.expected.glsl
index 710efc8..240d3b6 100644
--- a/test/tint/builtins/gen/var/textureLoad/6bf4b7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/6bf4b7.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 uniform highp usampler3D arg_0_1;
 void textureLoad_6bf4b7() {
-  ivec3 arg_1 = ivec3(0);
+  ivec3 arg_1 = ivec3(1);
   uint arg_2 = 1u;
   uvec4 res = texelFetch(arg_0_1, arg_1, int(arg_2));
 }
@@ -25,7 +25,7 @@
 
 uniform highp usampler3D arg_0_1;
 void textureLoad_6bf4b7() {
-  ivec3 arg_1 = ivec3(0);
+  ivec3 arg_1 = ivec3(1);
   uint arg_2 = 1u;
   uvec4 res = texelFetch(arg_0_1, arg_1, int(arg_2));
 }
@@ -42,7 +42,7 @@
 
 uniform highp usampler3D arg_0_1;
 void textureLoad_6bf4b7() {
-  ivec3 arg_1 = ivec3(0);
+  ivec3 arg_1 = ivec3(1);
   uint arg_2 = 1u;
   uvec4 res = texelFetch(arg_0_1, arg_1, int(arg_2));
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/6bf4b7.wgsl.expected.msl b/test/tint/builtins/gen/var/textureLoad/6bf4b7.wgsl.expected.msl
index 4696cef..e46344f 100644
--- a/test/tint/builtins/gen/var/textureLoad/6bf4b7.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureLoad/6bf4b7.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureLoad_6bf4b7(texture3d<uint, access::sample> tint_symbol_1) {
-  int3 arg_1 = int3(0);
+  int3 arg_1 = int3(1);
   uint arg_2 = 1u;
   uint4 res = tint_symbol_1.read(uint3(arg_1), arg_2);
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/6bf4b7.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/6bf4b7.wgsl.expected.spvasm
index 78fe0c9..f390c9e 100644
--- a/test/tint/builtins/gen/var/textureLoad/6bf4b7.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/6bf4b7.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 48
+; Bound: 50
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -41,49 +41,51 @@
          %13 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
-         %19 = OpConstantNull %v3int
+      %int_1 = OpConstant %int 1
+         %20 = OpConstantComposite %v3int %int_1 %int_1 %int_1
 %_ptr_Function_v3int = OpTypePointer Function %v3int
+         %23 = OpConstantNull %v3int
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %25 = OpConstantNull %uint
+         %27 = OpConstantNull %uint
      %v4uint = OpTypeVector %uint 4
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %33 = OpConstantNull %v4uint
-         %34 = OpTypeFunction %v4float
+         %35 = OpConstantNull %v4uint
+         %36 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_6bf4b7 = OpFunction %void None %13
          %16 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v3int Function %19
-      %arg_2 = OpVariable %_ptr_Function_uint Function %25
-        %res = OpVariable %_ptr_Function_v4uint Function %33
-               OpStore %arg_1 %19
+      %arg_1 = OpVariable %_ptr_Function_v3int Function %23
+      %arg_2 = OpVariable %_ptr_Function_uint Function %27
+        %res = OpVariable %_ptr_Function_v4uint Function %35
+               OpStore %arg_1 %20
                OpStore %arg_2 %uint_1
-         %28 = OpLoad %11 %arg_0
-         %29 = OpLoad %v3int %arg_1
-         %30 = OpLoad %uint %arg_2
-         %26 = OpImageFetch %v4uint %28 %29 Lod %30
-               OpStore %res %26
+         %30 = OpLoad %11 %arg_0
+         %31 = OpLoad %v3int %arg_1
+         %32 = OpLoad %uint %arg_2
+         %28 = OpImageFetch %v4uint %30 %31 Lod %32
+               OpStore %res %28
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %34
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureLoad_6bf4b7
+%vertex_main_inner = OpFunction %v4float None %36
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %textureLoad_6bf4b7
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %40
+         %41 = OpLabel
+         %42 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %42
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %43 = OpLabel
-         %44 = OpFunctionCall %void %textureLoad_6bf4b7
+         %45 = OpLabel
+         %46 = OpFunctionCall %void %textureLoad_6bf4b7
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %46 = OpLabel
-         %47 = OpFunctionCall %void %textureLoad_6bf4b7
+         %48 = OpLabel
+         %49 = OpFunctionCall %void %textureLoad_6bf4b7
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureLoad/6bf4b7.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/6bf4b7.wgsl.expected.wgsl
index e9564fa..697bc95 100644
--- a/test/tint/builtins/gen/var/textureLoad/6bf4b7.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/6bf4b7.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_3d<u32>;
 
 fn textureLoad_6bf4b7() {
-  var arg_1 = vec3<i32>();
+  var arg_1 = vec3<i32>(1i);
   var arg_2 = 1u;
   var res : vec4<u32> = textureLoad(arg_0, arg_1, arg_2);
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/714471.wgsl b/test/tint/builtins/gen/var/textureLoad/714471.wgsl
index bd1f65c..18510fd 100644
--- a/test/tint/builtins/gen/var/textureLoad/714471.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/714471.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureLoad(texture: texture_2d<i32>, coords: vec2<u32>, level: u32) -> vec4<i32>
 fn textureLoad_714471() {
-  var arg_1 = vec2<u32>();
+  var arg_1 = vec2<u32>(1u);
   var arg_2 = 1u;
   var res: vec4<i32> = textureLoad(arg_0, arg_1, arg_2);
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/714471.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/714471.wgsl.expected.dxc.hlsl
index 0c18883..17f1e85 100644
--- a/test/tint/builtins/gen/var/textureLoad/714471.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/714471.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 Texture2D<int4> arg_0 : register(t0, space1);
 
 void textureLoad_714471() {
-  uint2 arg_1 = (0u).xx;
+  uint2 arg_1 = (1u).xx;
   uint arg_2 = 1u;
   int4 res = arg_0.Load(uint3(arg_1, arg_2));
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/714471.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/714471.wgsl.expected.fxc.hlsl
index 0c18883..17f1e85 100644
--- a/test/tint/builtins/gen/var/textureLoad/714471.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/714471.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 Texture2D<int4> arg_0 : register(t0, space1);
 
 void textureLoad_714471() {
-  uint2 arg_1 = (0u).xx;
+  uint2 arg_1 = (1u).xx;
   uint arg_2 = 1u;
   int4 res = arg_0.Load(uint3(arg_1, arg_2));
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/714471.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/714471.wgsl.expected.glsl
index 2c17c62..ecf3485 100644
--- a/test/tint/builtins/gen/var/textureLoad/714471.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/714471.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 uniform highp isampler2D arg_0_1;
 void textureLoad_714471() {
-  uvec2 arg_1 = uvec2(0u);
+  uvec2 arg_1 = uvec2(1u);
   uint arg_2 = 1u;
   ivec4 res = texelFetch(arg_0_1, ivec2(arg_1), int(arg_2));
 }
@@ -25,7 +25,7 @@
 
 uniform highp isampler2D arg_0_1;
 void textureLoad_714471() {
-  uvec2 arg_1 = uvec2(0u);
+  uvec2 arg_1 = uvec2(1u);
   uint arg_2 = 1u;
   ivec4 res = texelFetch(arg_0_1, ivec2(arg_1), int(arg_2));
 }
@@ -42,7 +42,7 @@
 
 uniform highp isampler2D arg_0_1;
 void textureLoad_714471() {
-  uvec2 arg_1 = uvec2(0u);
+  uvec2 arg_1 = uvec2(1u);
   uint arg_2 = 1u;
   ivec4 res = texelFetch(arg_0_1, ivec2(arg_1), int(arg_2));
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/714471.wgsl.expected.msl b/test/tint/builtins/gen/var/textureLoad/714471.wgsl.expected.msl
index d147934..73e4327 100644
--- a/test/tint/builtins/gen/var/textureLoad/714471.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureLoad/714471.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureLoad_714471(texture2d<int, access::sample> tint_symbol_1) {
-  uint2 arg_1 = uint2(0u);
+  uint2 arg_1 = uint2(1u);
   uint arg_2 = 1u;
   int4 res = tint_symbol_1.read(uint2(arg_1), arg_2);
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/714471.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/714471.wgsl.expected.spvasm
index 791435e..f42c3b4 100644
--- a/test/tint/builtins/gen/var/textureLoad/714471.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/714471.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 48
+; Bound: 49
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -41,49 +41,50 @@
          %13 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
-         %19 = OpConstantNull %v2uint
-%_ptr_Function_v2uint = OpTypePointer Function %v2uint
      %uint_1 = OpConstant %uint 1
+         %20 = OpConstantComposite %v2uint %uint_1 %uint_1
+%_ptr_Function_v2uint = OpTypePointer Function %v2uint
+         %23 = OpConstantNull %v2uint
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %25 = OpConstantNull %uint
+         %26 = OpConstantNull %uint
       %v4int = OpTypeVector %int 4
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %33 = OpConstantNull %v4int
-         %34 = OpTypeFunction %v4float
+         %34 = OpConstantNull %v4int
+         %35 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_714471 = OpFunction %void None %13
          %16 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2uint Function %19
-      %arg_2 = OpVariable %_ptr_Function_uint Function %25
-        %res = OpVariable %_ptr_Function_v4int Function %33
-               OpStore %arg_1 %19
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %23
+      %arg_2 = OpVariable %_ptr_Function_uint Function %26
+        %res = OpVariable %_ptr_Function_v4int Function %34
+               OpStore %arg_1 %20
                OpStore %arg_2 %uint_1
-         %28 = OpLoad %11 %arg_0
-         %29 = OpLoad %v2uint %arg_1
-         %30 = OpLoad %uint %arg_2
-         %26 = OpImageFetch %v4int %28 %29 Lod %30
-               OpStore %res %26
+         %29 = OpLoad %11 %arg_0
+         %30 = OpLoad %v2uint %arg_1
+         %31 = OpLoad %uint %arg_2
+         %27 = OpImageFetch %v4int %29 %30 Lod %31
+               OpStore %res %27
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %34
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureLoad_714471
+%vertex_main_inner = OpFunction %v4float None %35
+         %37 = OpLabel
+         %38 = OpFunctionCall %void %textureLoad_714471
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %40
+         %40 = OpLabel
+         %41 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %41
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %43 = OpLabel
-         %44 = OpFunctionCall %void %textureLoad_714471
+         %44 = OpLabel
+         %45 = OpFunctionCall %void %textureLoad_714471
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %46 = OpLabel
-         %47 = OpFunctionCall %void %textureLoad_714471
+         %47 = OpLabel
+         %48 = OpFunctionCall %void %textureLoad_714471
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureLoad/714471.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/714471.wgsl.expected.wgsl
index 6692a20..327caa3 100644
--- a/test/tint/builtins/gen/var/textureLoad/714471.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/714471.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_2d<i32>;
 
 fn textureLoad_714471() {
-  var arg_1 = vec2<u32>();
+  var arg_1 = vec2<u32>(1u);
   var arg_2 = 1u;
   var res : vec4<i32> = textureLoad(arg_0, arg_1, arg_2);
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/789045.wgsl b/test/tint/builtins/gen/var/textureLoad/789045.wgsl
index fafee55..d0bdcc2 100644
--- a/test/tint/builtins/gen/var/textureLoad/789045.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/789045.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureLoad(texture: texture_2d_array<f32>, coords: vec2<i32>, array_index: i32, level: u32) -> vec4<f32>
 fn textureLoad_789045() {
-  var arg_1 = vec2<i32>();
+  var arg_1 = vec2<i32>(1i);
   var arg_2 = 1i;
   var arg_3 = 1u;
   var res: vec4<f32> = textureLoad(arg_0, arg_1, arg_2, arg_3);
diff --git a/test/tint/builtins/gen/var/textureLoad/789045.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/789045.wgsl.expected.dxc.hlsl
index ba39885..eac78bd 100644
--- a/test/tint/builtins/gen/var/textureLoad/789045.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/789045.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 void textureLoad_789045() {
-  int2 arg_1 = (0).xx;
+  int2 arg_1 = (1).xx;
   int arg_2 = 1;
   uint arg_3 = 1u;
   float4 res = arg_0.Load(int4(int3(arg_1, arg_2), int(arg_3)));
diff --git a/test/tint/builtins/gen/var/textureLoad/789045.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/789045.wgsl.expected.fxc.hlsl
index ba39885..eac78bd 100644
--- a/test/tint/builtins/gen/var/textureLoad/789045.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/789045.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 void textureLoad_789045() {
-  int2 arg_1 = (0).xx;
+  int2 arg_1 = (1).xx;
   int arg_2 = 1;
   uint arg_3 = 1u;
   float4 res = arg_0.Load(int4(int3(arg_1, arg_2), int(arg_3)));
diff --git a/test/tint/builtins/gen/var/textureLoad/789045.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/789045.wgsl.expected.glsl
index 93e95e9..baf4b50 100644
--- a/test/tint/builtins/gen/var/textureLoad/789045.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/789045.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 uniform highp sampler2DArray arg_0_1;
 void textureLoad_789045() {
-  ivec2 arg_1 = ivec2(0);
+  ivec2 arg_1 = ivec2(1);
   int arg_2 = 1;
   uint arg_3 = 1u;
   vec4 res = texelFetch(arg_0_1, ivec3(arg_1, arg_2), int(arg_3));
@@ -26,7 +26,7 @@
 
 uniform highp sampler2DArray arg_0_1;
 void textureLoad_789045() {
-  ivec2 arg_1 = ivec2(0);
+  ivec2 arg_1 = ivec2(1);
   int arg_2 = 1;
   uint arg_3 = 1u;
   vec4 res = texelFetch(arg_0_1, ivec3(arg_1, arg_2), int(arg_3));
@@ -44,7 +44,7 @@
 
 uniform highp sampler2DArray arg_0_1;
 void textureLoad_789045() {
-  ivec2 arg_1 = ivec2(0);
+  ivec2 arg_1 = ivec2(1);
   int arg_2 = 1;
   uint arg_3 = 1u;
   vec4 res = texelFetch(arg_0_1, ivec3(arg_1, arg_2), int(arg_3));
diff --git a/test/tint/builtins/gen/var/textureLoad/789045.wgsl.expected.msl b/test/tint/builtins/gen/var/textureLoad/789045.wgsl.expected.msl
index 267981b..0d93156 100644
--- a/test/tint/builtins/gen/var/textureLoad/789045.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureLoad/789045.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureLoad_789045(texture2d_array<float, access::sample> tint_symbol_1) {
-  int2 arg_1 = int2(0);
+  int2 arg_1 = int2(1);
   int arg_2 = 1;
   uint arg_3 = 1u;
   float4 res = tint_symbol_1.read(uint2(arg_1), arg_2, arg_3);
diff --git a/test/tint/builtins/gen/var/textureLoad/789045.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/789045.wgsl.expected.spvasm
index 6e4a503..aca45c0 100644
--- a/test/tint/builtins/gen/var/textureLoad/789045.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/789045.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 55
+; Bound: 56
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -41,58 +41,59 @@
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
-         %18 = OpConstantNull %v2int
-%_ptr_Function_v2int = OpTypePointer Function %v2int
       %int_1 = OpConstant %int 1
+         %19 = OpConstantComposite %v2int %int_1 %int_1
+%_ptr_Function_v2int = OpTypePointer Function %v2int
+         %22 = OpConstantNull %v2int
 %_ptr_Function_int = OpTypePointer Function %int
-         %24 = OpConstantNull %int
+         %25 = OpConstantNull %int
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %29 = OpConstantNull %uint
+         %30 = OpConstantNull %uint
       %v3int = OpTypeVector %int 3
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %41 = OpTypeFunction %v4float
+         %42 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_789045 = OpFunction %void None %12
          %15 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2int Function %18
-      %arg_2 = OpVariable %_ptr_Function_int Function %24
-      %arg_3 = OpVariable %_ptr_Function_uint Function %29
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %22
+      %arg_2 = OpVariable %_ptr_Function_int Function %25
+      %arg_3 = OpVariable %_ptr_Function_uint Function %30
         %res = OpVariable %_ptr_Function_v4float Function %5
-               OpStore %arg_1 %18
+               OpStore %arg_1 %19
                OpStore %arg_2 %int_1
                OpStore %arg_3 %uint_1
-         %31 = OpLoad %11 %arg_0
-         %33 = OpLoad %v2int %arg_1
-         %34 = OpCompositeExtract %int %33 0
-         %35 = OpCompositeExtract %int %33 1
-         %36 = OpLoad %int %arg_2
-         %37 = OpCompositeConstruct %v3int %34 %35 %36
-         %38 = OpLoad %uint %arg_3
-         %30 = OpImageFetch %v4float %31 %37 Lod %38
-               OpStore %res %30
+         %32 = OpLoad %11 %arg_0
+         %34 = OpLoad %v2int %arg_1
+         %35 = OpCompositeExtract %int %34 0
+         %36 = OpCompositeExtract %int %34 1
+         %37 = OpLoad %int %arg_2
+         %38 = OpCompositeConstruct %v3int %35 %36 %37
+         %39 = OpLoad %uint %arg_3
+         %31 = OpImageFetch %v4float %32 %38 Lod %39
+               OpStore %res %31
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %41
-         %43 = OpLabel
-         %44 = OpFunctionCall %void %textureLoad_789045
+%vertex_main_inner = OpFunction %v4float None %42
+         %44 = OpLabel
+         %45 = OpFunctionCall %void %textureLoad_789045
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %46 = OpLabel
-         %47 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %47
+         %47 = OpLabel
+         %48 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %48
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %50 = OpLabel
-         %51 = OpFunctionCall %void %textureLoad_789045
+         %51 = OpLabel
+         %52 = OpFunctionCall %void %textureLoad_789045
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %53 = OpLabel
-         %54 = OpFunctionCall %void %textureLoad_789045
+         %54 = OpLabel
+         %55 = OpFunctionCall %void %textureLoad_789045
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureLoad/789045.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/789045.wgsl.expected.wgsl
index b1a15dd..865b428 100644
--- a/test/tint/builtins/gen/var/textureLoad/789045.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/789045.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_2d_array<f32>;
 
 fn textureLoad_789045() {
-  var arg_1 = vec2<i32>();
+  var arg_1 = vec2<i32>(1i);
   var arg_2 = 1i;
   var arg_3 = 1u;
   var res : vec4<f32> = textureLoad(arg_0, arg_1, arg_2, arg_3);
diff --git a/test/tint/builtins/gen/var/textureLoad/79e697.wgsl b/test/tint/builtins/gen/var/textureLoad/79e697.wgsl
index ca542b2..37a5c29 100644
--- a/test/tint/builtins/gen/var/textureLoad/79e697.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/79e697.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureLoad(texture: texture_2d_array<i32>, coords: vec2<i32>, array_index: i32, level: i32) -> vec4<i32>
 fn textureLoad_79e697() {
-  var arg_1 = vec2<i32>();
+  var arg_1 = vec2<i32>(1i);
   var arg_2 = 1i;
   var arg_3 = 1i;
   var res: vec4<i32> = textureLoad(arg_0, arg_1, arg_2, arg_3);
diff --git a/test/tint/builtins/gen/var/textureLoad/79e697.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/79e697.wgsl.expected.dxc.hlsl
index 25d7208..5532fe6 100644
--- a/test/tint/builtins/gen/var/textureLoad/79e697.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/79e697.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 void textureLoad_79e697() {
-  int2 arg_1 = (0).xx;
+  int2 arg_1 = (1).xx;
   int arg_2 = 1;
   int arg_3 = 1;
   int4 res = arg_0.Load(int4(int3(arg_1, arg_2), arg_3));
diff --git a/test/tint/builtins/gen/var/textureLoad/79e697.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/79e697.wgsl.expected.fxc.hlsl
index 25d7208..5532fe6 100644
--- a/test/tint/builtins/gen/var/textureLoad/79e697.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/79e697.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 void textureLoad_79e697() {
-  int2 arg_1 = (0).xx;
+  int2 arg_1 = (1).xx;
   int arg_2 = 1;
   int arg_3 = 1;
   int4 res = arg_0.Load(int4(int3(arg_1, arg_2), arg_3));
diff --git a/test/tint/builtins/gen/var/textureLoad/79e697.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/79e697.wgsl.expected.glsl
index 5e89dce..2392cd7 100644
--- a/test/tint/builtins/gen/var/textureLoad/79e697.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/79e697.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 uniform highp isampler2DArray arg_0_1;
 void textureLoad_79e697() {
-  ivec2 arg_1 = ivec2(0);
+  ivec2 arg_1 = ivec2(1);
   int arg_2 = 1;
   int arg_3 = 1;
   ivec4 res = texelFetch(arg_0_1, ivec3(arg_1, arg_2), arg_3);
@@ -26,7 +26,7 @@
 
 uniform highp isampler2DArray arg_0_1;
 void textureLoad_79e697() {
-  ivec2 arg_1 = ivec2(0);
+  ivec2 arg_1 = ivec2(1);
   int arg_2 = 1;
   int arg_3 = 1;
   ivec4 res = texelFetch(arg_0_1, ivec3(arg_1, arg_2), arg_3);
@@ -44,7 +44,7 @@
 
 uniform highp isampler2DArray arg_0_1;
 void textureLoad_79e697() {
-  ivec2 arg_1 = ivec2(0);
+  ivec2 arg_1 = ivec2(1);
   int arg_2 = 1;
   int arg_3 = 1;
   ivec4 res = texelFetch(arg_0_1, ivec3(arg_1, arg_2), arg_3);
diff --git a/test/tint/builtins/gen/var/textureLoad/79e697.wgsl.expected.msl b/test/tint/builtins/gen/var/textureLoad/79e697.wgsl.expected.msl
index 402b25d..dd36d93 100644
--- a/test/tint/builtins/gen/var/textureLoad/79e697.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureLoad/79e697.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureLoad_79e697(texture2d_array<int, access::sample> tint_symbol_1) {
-  int2 arg_1 = int2(0);
+  int2 arg_1 = int2(1);
   int arg_2 = 1;
   int arg_3 = 1;
   int4 res = tint_symbol_1.read(uint2(arg_1), arg_2, arg_3);
diff --git a/test/tint/builtins/gen/var/textureLoad/79e697.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/79e697.wgsl.expected.spvasm
index 450bbd2..9d9cb9e 100644
--- a/test/tint/builtins/gen/var/textureLoad/79e697.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/79e697.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 53
+; Bound: 54
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -41,56 +41,57 @@
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
       %v2int = OpTypeVector %int 2
-         %18 = OpConstantNull %v2int
-%_ptr_Function_v2int = OpTypePointer Function %v2int
       %int_1 = OpConstant %int 1
+         %19 = OpConstantComposite %v2int %int_1 %int_1
+%_ptr_Function_v2int = OpTypePointer Function %v2int
+         %22 = OpConstantNull %v2int
 %_ptr_Function_int = OpTypePointer Function %int
-         %24 = OpConstantNull %int
+         %25 = OpConstantNull %int
       %v4int = OpTypeVector %int 4
       %v3int = OpTypeVector %int 3
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %38 = OpConstantNull %v4int
-         %39 = OpTypeFunction %v4float
+         %39 = OpConstantNull %v4int
+         %40 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_79e697 = OpFunction %void None %13
          %16 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2int Function %18
-      %arg_2 = OpVariable %_ptr_Function_int Function %24
-      %arg_3 = OpVariable %_ptr_Function_int Function %24
-        %res = OpVariable %_ptr_Function_v4int Function %38
-               OpStore %arg_1 %18
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %22
+      %arg_2 = OpVariable %_ptr_Function_int Function %25
+      %arg_3 = OpVariable %_ptr_Function_int Function %25
+        %res = OpVariable %_ptr_Function_v4int Function %39
+               OpStore %arg_1 %19
                OpStore %arg_2 %int_1
                OpStore %arg_3 %int_1
-         %28 = OpLoad %11 %arg_0
-         %30 = OpLoad %v2int %arg_1
-         %31 = OpCompositeExtract %int %30 0
-         %32 = OpCompositeExtract %int %30 1
-         %33 = OpLoad %int %arg_2
-         %34 = OpCompositeConstruct %v3int %31 %32 %33
-         %35 = OpLoad %int %arg_3
-         %26 = OpImageFetch %v4int %28 %34 Lod %35
-               OpStore %res %26
+         %29 = OpLoad %11 %arg_0
+         %31 = OpLoad %v2int %arg_1
+         %32 = OpCompositeExtract %int %31 0
+         %33 = OpCompositeExtract %int %31 1
+         %34 = OpLoad %int %arg_2
+         %35 = OpCompositeConstruct %v3int %32 %33 %34
+         %36 = OpLoad %int %arg_3
+         %27 = OpImageFetch %v4int %29 %35 Lod %36
+               OpStore %res %27
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %39
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureLoad_79e697
+%vertex_main_inner = OpFunction %v4float None %40
+         %42 = OpLabel
+         %43 = OpFunctionCall %void %textureLoad_79e697
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %44 = OpLabel
-         %45 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %45
+         %45 = OpLabel
+         %46 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %46
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %48 = OpLabel
-         %49 = OpFunctionCall %void %textureLoad_79e697
+         %49 = OpLabel
+         %50 = OpFunctionCall %void %textureLoad_79e697
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %51 = OpLabel
-         %52 = OpFunctionCall %void %textureLoad_79e697
+         %52 = OpLabel
+         %53 = OpFunctionCall %void %textureLoad_79e697
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureLoad/79e697.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/79e697.wgsl.expected.wgsl
index 9058ac4..bdb2708 100644
--- a/test/tint/builtins/gen/var/textureLoad/79e697.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/79e697.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_2d_array<i32>;
 
 fn textureLoad_79e697() {
-  var arg_1 = vec2<i32>();
+  var arg_1 = vec2<i32>(1i);
   var arg_2 = 1i;
   var arg_3 = 1i;
   var res : vec4<i32> = textureLoad(arg_0, arg_1, arg_2, arg_3);
diff --git a/test/tint/builtins/gen/var/textureLoad/7ab4df.wgsl b/test/tint/builtins/gen/var/textureLoad/7ab4df.wgsl
index 5fe7c16..c1d6e7e 100644
--- a/test/tint/builtins/gen/var/textureLoad/7ab4df.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/7ab4df.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureLoad(texture: texture_2d_array<u32>, coords: vec2<i32>, array_index: u32, level: i32) -> vec4<u32>
 fn textureLoad_7ab4df() {
-  var arg_1 = vec2<i32>();
+  var arg_1 = vec2<i32>(1i);
   var arg_2 = 1u;
   var arg_3 = 1i;
   var res: vec4<u32> = textureLoad(arg_0, arg_1, arg_2, arg_3);
diff --git a/test/tint/builtins/gen/var/textureLoad/7ab4df.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/7ab4df.wgsl.expected.dxc.hlsl
index ec196f0..0ebf675 100644
--- a/test/tint/builtins/gen/var/textureLoad/7ab4df.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/7ab4df.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 void textureLoad_7ab4df() {
-  int2 arg_1 = (0).xx;
+  int2 arg_1 = (1).xx;
   uint arg_2 = 1u;
   int arg_3 = 1;
   uint4 res = arg_0.Load(int4(int3(arg_1, int(arg_2)), arg_3));
diff --git a/test/tint/builtins/gen/var/textureLoad/7ab4df.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/7ab4df.wgsl.expected.fxc.hlsl
index ec196f0..0ebf675 100644
--- a/test/tint/builtins/gen/var/textureLoad/7ab4df.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/7ab4df.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 void textureLoad_7ab4df() {
-  int2 arg_1 = (0).xx;
+  int2 arg_1 = (1).xx;
   uint arg_2 = 1u;
   int arg_3 = 1;
   uint4 res = arg_0.Load(int4(int3(arg_1, int(arg_2)), arg_3));
diff --git a/test/tint/builtins/gen/var/textureLoad/7ab4df.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/7ab4df.wgsl.expected.glsl
index d1ac243..04a6f05 100644
--- a/test/tint/builtins/gen/var/textureLoad/7ab4df.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/7ab4df.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 uniform highp usampler2DArray arg_0_1;
 void textureLoad_7ab4df() {
-  ivec2 arg_1 = ivec2(0);
+  ivec2 arg_1 = ivec2(1);
   uint arg_2 = 1u;
   int arg_3 = 1;
   uvec4 res = texelFetch(arg_0_1, ivec3(arg_1, int(arg_2)), arg_3);
@@ -26,7 +26,7 @@
 
 uniform highp usampler2DArray arg_0_1;
 void textureLoad_7ab4df() {
-  ivec2 arg_1 = ivec2(0);
+  ivec2 arg_1 = ivec2(1);
   uint arg_2 = 1u;
   int arg_3 = 1;
   uvec4 res = texelFetch(arg_0_1, ivec3(arg_1, int(arg_2)), arg_3);
@@ -44,7 +44,7 @@
 
 uniform highp usampler2DArray arg_0_1;
 void textureLoad_7ab4df() {
-  ivec2 arg_1 = ivec2(0);
+  ivec2 arg_1 = ivec2(1);
   uint arg_2 = 1u;
   int arg_3 = 1;
   uvec4 res = texelFetch(arg_0_1, ivec3(arg_1, int(arg_2)), arg_3);
diff --git a/test/tint/builtins/gen/var/textureLoad/7ab4df.wgsl.expected.msl b/test/tint/builtins/gen/var/textureLoad/7ab4df.wgsl.expected.msl
index 1cacb69..2c10622 100644
--- a/test/tint/builtins/gen/var/textureLoad/7ab4df.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureLoad/7ab4df.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureLoad_7ab4df(texture2d_array<uint, access::sample> tint_symbol_1) {
-  int2 arg_1 = int2(0);
+  int2 arg_1 = int2(1);
   uint arg_2 = 1u;
   int arg_3 = 1;
   uint4 res = tint_symbol_1.read(uint2(arg_1), arg_2, arg_3);
diff --git a/test/tint/builtins/gen/var/textureLoad/7ab4df.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/7ab4df.wgsl.expected.spvasm
index e118067..a753d7a 100644
--- a/test/tint/builtins/gen/var/textureLoad/7ab4df.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/7ab4df.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 58
+; Bound: 59
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -42,60 +42,61 @@
          %13 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
-         %19 = OpConstantNull %v2int
+      %int_1 = OpConstant %int 1
+         %20 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v2int = OpTypePointer Function %v2int
+         %23 = OpConstantNull %v2int
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %25 = OpConstantNull %uint
-      %int_1 = OpConstant %int 1
+         %27 = OpConstantNull %uint
 %_ptr_Function_int = OpTypePointer Function %int
-         %29 = OpConstantNull %int
+         %30 = OpConstantNull %int
      %v4uint = OpTypeVector %uint 4
       %v3int = OpTypeVector %int 3
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %43 = OpConstantNull %v4uint
-         %44 = OpTypeFunction %v4float
+         %44 = OpConstantNull %v4uint
+         %45 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_7ab4df = OpFunction %void None %13
          %16 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2int Function %19
-      %arg_2 = OpVariable %_ptr_Function_uint Function %25
-      %arg_3 = OpVariable %_ptr_Function_int Function %29
-        %res = OpVariable %_ptr_Function_v4uint Function %43
-               OpStore %arg_1 %19
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %23
+      %arg_2 = OpVariable %_ptr_Function_uint Function %27
+      %arg_3 = OpVariable %_ptr_Function_int Function %30
+        %res = OpVariable %_ptr_Function_v4uint Function %44
+               OpStore %arg_1 %20
                OpStore %arg_2 %uint_1
                OpStore %arg_3 %int_1
-         %32 = OpLoad %11 %arg_0
-         %34 = OpLoad %v2int %arg_1
-         %35 = OpCompositeExtract %int %34 0
-         %36 = OpCompositeExtract %int %34 1
-         %38 = OpLoad %uint %arg_2
-         %37 = OpBitcast %int %38
-         %39 = OpCompositeConstruct %v3int %35 %36 %37
-         %40 = OpLoad %int %arg_3
-         %30 = OpImageFetch %v4uint %32 %39 Lod %40
-               OpStore %res %30
+         %33 = OpLoad %11 %arg_0
+         %35 = OpLoad %v2int %arg_1
+         %36 = OpCompositeExtract %int %35 0
+         %37 = OpCompositeExtract %int %35 1
+         %39 = OpLoad %uint %arg_2
+         %38 = OpBitcast %int %39
+         %40 = OpCompositeConstruct %v3int %36 %37 %38
+         %41 = OpLoad %int %arg_3
+         %31 = OpImageFetch %v4uint %33 %40 Lod %41
+               OpStore %res %31
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %44
-         %46 = OpLabel
-         %47 = OpFunctionCall %void %textureLoad_7ab4df
+%vertex_main_inner = OpFunction %v4float None %45
+         %47 = OpLabel
+         %48 = OpFunctionCall %void %textureLoad_7ab4df
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %49 = OpLabel
-         %50 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %50
+         %50 = OpLabel
+         %51 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %51
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %53 = OpLabel
-         %54 = OpFunctionCall %void %textureLoad_7ab4df
+         %54 = OpLabel
+         %55 = OpFunctionCall %void %textureLoad_7ab4df
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %56 = OpLabel
-         %57 = OpFunctionCall %void %textureLoad_7ab4df
+         %57 = OpLabel
+         %58 = OpFunctionCall %void %textureLoad_7ab4df
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureLoad/7ab4df.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/7ab4df.wgsl.expected.wgsl
index f4aa72e..a11042c 100644
--- a/test/tint/builtins/gen/var/textureLoad/7ab4df.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/7ab4df.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_2d_array<u32>;
 
 fn textureLoad_7ab4df() {
-  var arg_1 = vec2<i32>();
+  var arg_1 = vec2<i32>(1i);
   var arg_2 = 1u;
   var arg_3 = 1i;
   var res : vec4<u32> = textureLoad(arg_0, arg_1, arg_2, arg_3);
diff --git a/test/tint/builtins/gen/var/textureLoad/7b63e0.wgsl b/test/tint/builtins/gen/var/textureLoad/7b63e0.wgsl
index 19901a0..a3ef4db 100644
--- a/test/tint/builtins/gen/var/textureLoad/7b63e0.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/7b63e0.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureLoad(texture: texture_depth_2d_array, coords: vec2<u32>, array_index: u32, level: u32) -> f32
 fn textureLoad_7b63e0() {
-  var arg_1 = vec2<u32>();
+  var arg_1 = vec2<u32>(1u);
   var arg_2 = 1u;
   var arg_3 = 1u;
   var res: f32 = textureLoad(arg_0, arg_1, arg_2, arg_3);
diff --git a/test/tint/builtins/gen/var/textureLoad/7b63e0.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/7b63e0.wgsl.expected.dxc.hlsl
index 54f384a..7c6acb6 100644
--- a/test/tint/builtins/gen/var/textureLoad/7b63e0.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/7b63e0.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DArray arg_0 : register(t0, space1);
 
 void textureLoad_7b63e0() {
-  uint2 arg_1 = (0u).xx;
+  uint2 arg_1 = (1u).xx;
   uint arg_2 = 1u;
   uint arg_3 = 1u;
   float res = arg_0.Load(uint4(uint3(arg_1, arg_2), arg_3)).x;
diff --git a/test/tint/builtins/gen/var/textureLoad/7b63e0.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/7b63e0.wgsl.expected.fxc.hlsl
index 54f384a..7c6acb6 100644
--- a/test/tint/builtins/gen/var/textureLoad/7b63e0.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/7b63e0.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DArray arg_0 : register(t0, space1);
 
 void textureLoad_7b63e0() {
-  uint2 arg_1 = (0u).xx;
+  uint2 arg_1 = (1u).xx;
   uint arg_2 = 1u;
   uint arg_3 = 1u;
   float res = arg_0.Load(uint4(uint3(arg_1, arg_2), arg_3)).x;
diff --git a/test/tint/builtins/gen/var/textureLoad/7b63e0.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/7b63e0.wgsl.expected.glsl
index a024f9c..c9a432b 100644
--- a/test/tint/builtins/gen/var/textureLoad/7b63e0.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/7b63e0.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 uniform highp sampler2DArray arg_0_1;
 void textureLoad_7b63e0() {
-  uvec2 arg_1 = uvec2(0u);
+  uvec2 arg_1 = uvec2(1u);
   uint arg_2 = 1u;
   uint arg_3 = 1u;
   float res = texelFetch(arg_0_1, ivec3(uvec3(arg_1, arg_2)), int(arg_3)).x;
@@ -26,7 +26,7 @@
 
 uniform highp sampler2DArray arg_0_1;
 void textureLoad_7b63e0() {
-  uvec2 arg_1 = uvec2(0u);
+  uvec2 arg_1 = uvec2(1u);
   uint arg_2 = 1u;
   uint arg_3 = 1u;
   float res = texelFetch(arg_0_1, ivec3(uvec3(arg_1, arg_2)), int(arg_3)).x;
@@ -44,7 +44,7 @@
 
 uniform highp sampler2DArray arg_0_1;
 void textureLoad_7b63e0() {
-  uvec2 arg_1 = uvec2(0u);
+  uvec2 arg_1 = uvec2(1u);
   uint arg_2 = 1u;
   uint arg_3 = 1u;
   float res = texelFetch(arg_0_1, ivec3(uvec3(arg_1, arg_2)), int(arg_3)).x;
diff --git a/test/tint/builtins/gen/var/textureLoad/7b63e0.wgsl.expected.msl b/test/tint/builtins/gen/var/textureLoad/7b63e0.wgsl.expected.msl
index 31ac2eb..dc75d16 100644
--- a/test/tint/builtins/gen/var/textureLoad/7b63e0.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureLoad/7b63e0.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureLoad_7b63e0(depth2d_array<float, access::sample> tint_symbol_1) {
-  uint2 arg_1 = uint2(0u);
+  uint2 arg_1 = uint2(1u);
   uint arg_2 = 1u;
   uint arg_3 = 1u;
   float res = tint_symbol_1.read(uint2(arg_1), arg_2, arg_3);
diff --git a/test/tint/builtins/gen/var/textureLoad/7b63e0.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/7b63e0.wgsl.expected.spvasm
index ae0386b..2409080 100644
--- a/test/tint/builtins/gen/var/textureLoad/7b63e0.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/7b63e0.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 52
+; Bound: 53
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -41,55 +41,56 @@
          %12 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
-         %18 = OpConstantNull %v2uint
-%_ptr_Function_v2uint = OpTypePointer Function %v2uint
      %uint_1 = OpConstant %uint 1
+         %19 = OpConstantComposite %v2uint %uint_1 %uint_1
+%_ptr_Function_v2uint = OpTypePointer Function %v2uint
+         %22 = OpConstantNull %v2uint
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %24 = OpConstantNull %uint
+         %25 = OpConstantNull %uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_float = OpTypePointer Function %float
-         %38 = OpTypeFunction %v4float
+         %39 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_7b63e0 = OpFunction %void None %12
          %15 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2uint Function %18
-      %arg_2 = OpVariable %_ptr_Function_uint Function %24
-      %arg_3 = OpVariable %_ptr_Function_uint Function %24
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %22
+      %arg_2 = OpVariable %_ptr_Function_uint Function %25
+      %arg_3 = OpVariable %_ptr_Function_uint Function %25
         %res = OpVariable %_ptr_Function_float Function %8
-               OpStore %arg_1 %18
+               OpStore %arg_1 %19
                OpStore %arg_2 %uint_1
                OpStore %arg_3 %uint_1
-         %28 = OpLoad %11 %arg_0
-         %30 = OpLoad %v2uint %arg_1
-         %31 = OpCompositeExtract %uint %30 0
-         %32 = OpCompositeExtract %uint %30 1
-         %33 = OpLoad %uint %arg_2
-         %34 = OpCompositeConstruct %v3uint %31 %32 %33
-         %35 = OpLoad %uint %arg_3
-         %27 = OpImageFetch %v4float %28 %34 Lod %35
-         %26 = OpCompositeExtract %float %27 0
-               OpStore %res %26
+         %29 = OpLoad %11 %arg_0
+         %31 = OpLoad %v2uint %arg_1
+         %32 = OpCompositeExtract %uint %31 0
+         %33 = OpCompositeExtract %uint %31 1
+         %34 = OpLoad %uint %arg_2
+         %35 = OpCompositeConstruct %v3uint %32 %33 %34
+         %36 = OpLoad %uint %arg_3
+         %28 = OpImageFetch %v4float %29 %35 Lod %36
+         %27 = OpCompositeExtract %float %28 0
+               OpStore %res %27
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %38
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureLoad_7b63e0
+%vertex_main_inner = OpFunction %v4float None %39
+         %41 = OpLabel
+         %42 = OpFunctionCall %void %textureLoad_7b63e0
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %43 = OpLabel
-         %44 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %44
+         %44 = OpLabel
+         %45 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %45
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %47 = OpLabel
-         %48 = OpFunctionCall %void %textureLoad_7b63e0
+         %48 = OpLabel
+         %49 = OpFunctionCall %void %textureLoad_7b63e0
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %50 = OpLabel
-         %51 = OpFunctionCall %void %textureLoad_7b63e0
+         %51 = OpLabel
+         %52 = OpFunctionCall %void %textureLoad_7b63e0
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureLoad/7b63e0.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/7b63e0.wgsl.expected.wgsl
index 6839f8c..c888b5a 100644
--- a/test/tint/builtins/gen/var/textureLoad/7b63e0.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/7b63e0.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_depth_2d_array;
 
 fn textureLoad_7b63e0() {
-  var arg_1 = vec2<u32>();
+  var arg_1 = vec2<u32>(1u);
   var arg_2 = 1u;
   var arg_3 = 1u;
   var res : f32 = textureLoad(arg_0, arg_1, arg_2, arg_3);
diff --git a/test/tint/builtins/gen/var/textureLoad/7bee94.wgsl b/test/tint/builtins/gen/var/textureLoad/7bee94.wgsl
index d6db0ca..4c32497 100644
--- a/test/tint/builtins/gen/var/textureLoad/7bee94.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/7bee94.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureLoad(texture: texture_multisampled_2d<i32>, coords: vec2<u32>, sample_index: i32) -> vec4<i32>
 fn textureLoad_7bee94() {
-  var arg_1 = vec2<u32>();
+  var arg_1 = vec2<u32>(1u);
   var arg_2 = 1i;
   var res: vec4<i32> = textureLoad(arg_0, arg_1, arg_2);
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/7bee94.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/7bee94.wgsl.expected.dxc.hlsl
index d9e0566..31352a9 100644
--- a/test/tint/builtins/gen/var/textureLoad/7bee94.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/7bee94.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DMS<int4> arg_0 : register(t0, space1);
 
 void textureLoad_7bee94() {
-  uint2 arg_1 = (0u).xx;
+  uint2 arg_1 = (1u).xx;
   int arg_2 = 1;
   int4 res = arg_0.Load(arg_1, arg_2);
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/7bee94.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/7bee94.wgsl.expected.fxc.hlsl
index d9e0566..31352a9 100644
--- a/test/tint/builtins/gen/var/textureLoad/7bee94.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/7bee94.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DMS<int4> arg_0 : register(t0, space1);
 
 void textureLoad_7bee94() {
-  uint2 arg_1 = (0u).xx;
+  uint2 arg_1 = (1u).xx;
   int arg_2 = 1;
   int4 res = arg_0.Load(arg_1, arg_2);
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/7bee94.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/7bee94.wgsl.expected.glsl
index e876cbe..424a6ef 100644
--- a/test/tint/builtins/gen/var/textureLoad/7bee94.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/7bee94.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 uniform highp isampler2DMS arg_0_1;
 void textureLoad_7bee94() {
-  uvec2 arg_1 = uvec2(0u);
+  uvec2 arg_1 = uvec2(1u);
   int arg_2 = 1;
   ivec4 res = texelFetch(arg_0_1, ivec2(arg_1), arg_2);
 }
@@ -25,7 +25,7 @@
 
 uniform highp isampler2DMS arg_0_1;
 void textureLoad_7bee94() {
-  uvec2 arg_1 = uvec2(0u);
+  uvec2 arg_1 = uvec2(1u);
   int arg_2 = 1;
   ivec4 res = texelFetch(arg_0_1, ivec2(arg_1), arg_2);
 }
@@ -42,7 +42,7 @@
 
 uniform highp isampler2DMS arg_0_1;
 void textureLoad_7bee94() {
-  uvec2 arg_1 = uvec2(0u);
+  uvec2 arg_1 = uvec2(1u);
   int arg_2 = 1;
   ivec4 res = texelFetch(arg_0_1, ivec2(arg_1), arg_2);
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/7bee94.wgsl.expected.msl b/test/tint/builtins/gen/var/textureLoad/7bee94.wgsl.expected.msl
index 19eca23..0f5165f 100644
--- a/test/tint/builtins/gen/var/textureLoad/7bee94.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureLoad/7bee94.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureLoad_7bee94(texture2d_ms<int, access::read> tint_symbol_1) {
-  uint2 arg_1 = uint2(0u);
+  uint2 arg_1 = uint2(1u);
   int arg_2 = 1;
   int4 res = tint_symbol_1.read(uint2(arg_1), arg_2);
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/7bee94.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/7bee94.wgsl.expected.spvasm
index e191d64..3018fee 100644
--- a/test/tint/builtins/gen/var/textureLoad/7bee94.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/7bee94.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 48
+; Bound: 50
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -41,49 +41,51 @@
          %13 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
-         %19 = OpConstantNull %v2uint
+     %uint_1 = OpConstant %uint 1
+         %20 = OpConstantComposite %v2uint %uint_1 %uint_1
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
+         %23 = OpConstantNull %v2uint
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
-         %25 = OpConstantNull %int
+         %27 = OpConstantNull %int
       %v4int = OpTypeVector %int 4
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %33 = OpConstantNull %v4int
-         %34 = OpTypeFunction %v4float
+         %35 = OpConstantNull %v4int
+         %36 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_7bee94 = OpFunction %void None %13
          %16 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2uint Function %19
-      %arg_2 = OpVariable %_ptr_Function_int Function %25
-        %res = OpVariable %_ptr_Function_v4int Function %33
-               OpStore %arg_1 %19
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %23
+      %arg_2 = OpVariable %_ptr_Function_int Function %27
+        %res = OpVariable %_ptr_Function_v4int Function %35
+               OpStore %arg_1 %20
                OpStore %arg_2 %int_1
-         %28 = OpLoad %11 %arg_0
-         %29 = OpLoad %v2uint %arg_1
-         %30 = OpLoad %int %arg_2
-         %26 = OpImageFetch %v4int %28 %29 Sample %30
-               OpStore %res %26
+         %30 = OpLoad %11 %arg_0
+         %31 = OpLoad %v2uint %arg_1
+         %32 = OpLoad %int %arg_2
+         %28 = OpImageFetch %v4int %30 %31 Sample %32
+               OpStore %res %28
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %34
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureLoad_7bee94
+%vertex_main_inner = OpFunction %v4float None %36
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %textureLoad_7bee94
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %40
+         %41 = OpLabel
+         %42 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %42
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %43 = OpLabel
-         %44 = OpFunctionCall %void %textureLoad_7bee94
+         %45 = OpLabel
+         %46 = OpFunctionCall %void %textureLoad_7bee94
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %46 = OpLabel
-         %47 = OpFunctionCall %void %textureLoad_7bee94
+         %48 = OpLabel
+         %49 = OpFunctionCall %void %textureLoad_7bee94
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureLoad/7bee94.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/7bee94.wgsl.expected.wgsl
index 7cc012f..ef3b813 100644
--- a/test/tint/builtins/gen/var/textureLoad/7bee94.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/7bee94.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_multisampled_2d<i32>;
 
 fn textureLoad_7bee94() {
-  var arg_1 = vec2<u32>();
+  var arg_1 = vec2<u32>(1u);
   var arg_2 = 1i;
   var res : vec4<i32> = textureLoad(arg_0, arg_1, arg_2);
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/7c90e5.wgsl b/test/tint/builtins/gen/var/textureLoad/7c90e5.wgsl
index e27eaa7..c2ea7d2 100644
--- a/test/tint/builtins/gen/var/textureLoad/7c90e5.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/7c90e5.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureLoad(texture: texture_2d_array<u32>, coords: vec2<i32>, array_index: i32, level: i32) -> vec4<u32>
 fn textureLoad_7c90e5() {
-  var arg_1 = vec2<i32>();
+  var arg_1 = vec2<i32>(1i);
   var arg_2 = 1i;
   var arg_3 = 1i;
   var res: vec4<u32> = textureLoad(arg_0, arg_1, arg_2, arg_3);
diff --git a/test/tint/builtins/gen/var/textureLoad/7c90e5.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/7c90e5.wgsl.expected.dxc.hlsl
index 8ba2978..d017a03 100644
--- a/test/tint/builtins/gen/var/textureLoad/7c90e5.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/7c90e5.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 void textureLoad_7c90e5() {
-  int2 arg_1 = (0).xx;
+  int2 arg_1 = (1).xx;
   int arg_2 = 1;
   int arg_3 = 1;
   uint4 res = arg_0.Load(int4(int3(arg_1, arg_2), arg_3));
diff --git a/test/tint/builtins/gen/var/textureLoad/7c90e5.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/7c90e5.wgsl.expected.fxc.hlsl
index 8ba2978..d017a03 100644
--- a/test/tint/builtins/gen/var/textureLoad/7c90e5.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/7c90e5.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 void textureLoad_7c90e5() {
-  int2 arg_1 = (0).xx;
+  int2 arg_1 = (1).xx;
   int arg_2 = 1;
   int arg_3 = 1;
   uint4 res = arg_0.Load(int4(int3(arg_1, arg_2), arg_3));
diff --git a/test/tint/builtins/gen/var/textureLoad/7c90e5.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/7c90e5.wgsl.expected.glsl
index 4be88a2..cbc50b7 100644
--- a/test/tint/builtins/gen/var/textureLoad/7c90e5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/7c90e5.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 uniform highp usampler2DArray arg_0_1;
 void textureLoad_7c90e5() {
-  ivec2 arg_1 = ivec2(0);
+  ivec2 arg_1 = ivec2(1);
   int arg_2 = 1;
   int arg_3 = 1;
   uvec4 res = texelFetch(arg_0_1, ivec3(arg_1, arg_2), arg_3);
@@ -26,7 +26,7 @@
 
 uniform highp usampler2DArray arg_0_1;
 void textureLoad_7c90e5() {
-  ivec2 arg_1 = ivec2(0);
+  ivec2 arg_1 = ivec2(1);
   int arg_2 = 1;
   int arg_3 = 1;
   uvec4 res = texelFetch(arg_0_1, ivec3(arg_1, arg_2), arg_3);
@@ -44,7 +44,7 @@
 
 uniform highp usampler2DArray arg_0_1;
 void textureLoad_7c90e5() {
-  ivec2 arg_1 = ivec2(0);
+  ivec2 arg_1 = ivec2(1);
   int arg_2 = 1;
   int arg_3 = 1;
   uvec4 res = texelFetch(arg_0_1, ivec3(arg_1, arg_2), arg_3);
diff --git a/test/tint/builtins/gen/var/textureLoad/7c90e5.wgsl.expected.msl b/test/tint/builtins/gen/var/textureLoad/7c90e5.wgsl.expected.msl
index d84b8ed..126dc80 100644
--- a/test/tint/builtins/gen/var/textureLoad/7c90e5.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureLoad/7c90e5.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureLoad_7c90e5(texture2d_array<uint, access::sample> tint_symbol_1) {
-  int2 arg_1 = int2(0);
+  int2 arg_1 = int2(1);
   int arg_2 = 1;
   int arg_3 = 1;
   uint4 res = tint_symbol_1.read(uint2(arg_1), arg_2, arg_3);
diff --git a/test/tint/builtins/gen/var/textureLoad/7c90e5.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/7c90e5.wgsl.expected.spvasm
index 37a98bf..73dae19 100644
--- a/test/tint/builtins/gen/var/textureLoad/7c90e5.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/7c90e5.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 54
+; Bound: 55
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -42,56 +42,57 @@
          %13 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
-         %19 = OpConstantNull %v2int
-%_ptr_Function_v2int = OpTypePointer Function %v2int
       %int_1 = OpConstant %int 1
+         %20 = OpConstantComposite %v2int %int_1 %int_1
+%_ptr_Function_v2int = OpTypePointer Function %v2int
+         %23 = OpConstantNull %v2int
 %_ptr_Function_int = OpTypePointer Function %int
-         %25 = OpConstantNull %int
+         %26 = OpConstantNull %int
      %v4uint = OpTypeVector %uint 4
       %v3int = OpTypeVector %int 3
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %39 = OpConstantNull %v4uint
-         %40 = OpTypeFunction %v4float
+         %40 = OpConstantNull %v4uint
+         %41 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_7c90e5 = OpFunction %void None %13
          %16 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2int Function %19
-      %arg_2 = OpVariable %_ptr_Function_int Function %25
-      %arg_3 = OpVariable %_ptr_Function_int Function %25
-        %res = OpVariable %_ptr_Function_v4uint Function %39
-               OpStore %arg_1 %19
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %23
+      %arg_2 = OpVariable %_ptr_Function_int Function %26
+      %arg_3 = OpVariable %_ptr_Function_int Function %26
+        %res = OpVariable %_ptr_Function_v4uint Function %40
+               OpStore %arg_1 %20
                OpStore %arg_2 %int_1
                OpStore %arg_3 %int_1
-         %29 = OpLoad %11 %arg_0
-         %31 = OpLoad %v2int %arg_1
-         %32 = OpCompositeExtract %int %31 0
-         %33 = OpCompositeExtract %int %31 1
-         %34 = OpLoad %int %arg_2
-         %35 = OpCompositeConstruct %v3int %32 %33 %34
-         %36 = OpLoad %int %arg_3
-         %27 = OpImageFetch %v4uint %29 %35 Lod %36
-               OpStore %res %27
+         %30 = OpLoad %11 %arg_0
+         %32 = OpLoad %v2int %arg_1
+         %33 = OpCompositeExtract %int %32 0
+         %34 = OpCompositeExtract %int %32 1
+         %35 = OpLoad %int %arg_2
+         %36 = OpCompositeConstruct %v3int %33 %34 %35
+         %37 = OpLoad %int %arg_3
+         %28 = OpImageFetch %v4uint %30 %36 Lod %37
+               OpStore %res %28
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %40
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureLoad_7c90e5
+%vertex_main_inner = OpFunction %v4float None %41
+         %43 = OpLabel
+         %44 = OpFunctionCall %void %textureLoad_7c90e5
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %45 = OpLabel
-         %46 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %46
+         %46 = OpLabel
+         %47 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %47
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %49 = OpLabel
-         %50 = OpFunctionCall %void %textureLoad_7c90e5
+         %50 = OpLabel
+         %51 = OpFunctionCall %void %textureLoad_7c90e5
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %52 = OpLabel
-         %53 = OpFunctionCall %void %textureLoad_7c90e5
+         %53 = OpLabel
+         %54 = OpFunctionCall %void %textureLoad_7c90e5
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureLoad/7c90e5.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/7c90e5.wgsl.expected.wgsl
index d6a9286..e4c7106 100644
--- a/test/tint/builtins/gen/var/textureLoad/7c90e5.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/7c90e5.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_2d_array<u32>;
 
 fn textureLoad_7c90e5() {
-  var arg_1 = vec2<i32>();
+  var arg_1 = vec2<i32>(1i);
   var arg_2 = 1i;
   var arg_3 = 1i;
   var res : vec4<u32> = textureLoad(arg_0, arg_1, arg_2, arg_3);
diff --git a/test/tint/builtins/gen/var/textureLoad/7fd822.wgsl b/test/tint/builtins/gen/var/textureLoad/7fd822.wgsl
index 40c0104..7d7c93a 100644
--- a/test/tint/builtins/gen/var/textureLoad/7fd822.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/7fd822.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureLoad(texture: texture_depth_2d, coords: vec2<u32>, level: i32) -> f32
 fn textureLoad_7fd822() {
-  var arg_1 = vec2<u32>();
+  var arg_1 = vec2<u32>(1u);
   var arg_2 = 1i;
   var res: f32 = textureLoad(arg_0, arg_1, arg_2);
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/7fd822.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/7fd822.wgsl.expected.dxc.hlsl
index 56cd912..3fbe2bb 100644
--- a/test/tint/builtins/gen/var/textureLoad/7fd822.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/7fd822.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 Texture2D arg_0 : register(t0, space1);
 
 void textureLoad_7fd822() {
-  uint2 arg_1 = (0u).xx;
+  uint2 arg_1 = (1u).xx;
   int arg_2 = 1;
   float res = arg_0.Load(uint3(arg_1, uint(arg_2))).x;
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/7fd822.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/7fd822.wgsl.expected.fxc.hlsl
index 56cd912..3fbe2bb 100644
--- a/test/tint/builtins/gen/var/textureLoad/7fd822.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/7fd822.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 Texture2D arg_0 : register(t0, space1);
 
 void textureLoad_7fd822() {
-  uint2 arg_1 = (0u).xx;
+  uint2 arg_1 = (1u).xx;
   int arg_2 = 1;
   float res = arg_0.Load(uint3(arg_1, uint(arg_2))).x;
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/7fd822.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/7fd822.wgsl.expected.glsl
index 5525b53..0b1843c 100644
--- a/test/tint/builtins/gen/var/textureLoad/7fd822.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/7fd822.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 uniform highp sampler2D arg_0_1;
 void textureLoad_7fd822() {
-  uvec2 arg_1 = uvec2(0u);
+  uvec2 arg_1 = uvec2(1u);
   int arg_2 = 1;
   float res = texelFetch(arg_0_1, ivec2(arg_1), arg_2).x;
 }
@@ -25,7 +25,7 @@
 
 uniform highp sampler2D arg_0_1;
 void textureLoad_7fd822() {
-  uvec2 arg_1 = uvec2(0u);
+  uvec2 arg_1 = uvec2(1u);
   int arg_2 = 1;
   float res = texelFetch(arg_0_1, ivec2(arg_1), arg_2).x;
 }
@@ -42,7 +42,7 @@
 
 uniform highp sampler2D arg_0_1;
 void textureLoad_7fd822() {
-  uvec2 arg_1 = uvec2(0u);
+  uvec2 arg_1 = uvec2(1u);
   int arg_2 = 1;
   float res = texelFetch(arg_0_1, ivec2(arg_1), arg_2).x;
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/7fd822.wgsl.expected.msl b/test/tint/builtins/gen/var/textureLoad/7fd822.wgsl.expected.msl
index fbc1807c..7b23746 100644
--- a/test/tint/builtins/gen/var/textureLoad/7fd822.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureLoad/7fd822.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureLoad_7fd822(depth2d<float, access::sample> tint_symbol_1) {
-  uint2 arg_1 = uint2(0u);
+  uint2 arg_1 = uint2(1u);
   int arg_2 = 1;
   float res = tint_symbol_1.read(uint2(arg_1), arg_2);
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/7fd822.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/7fd822.wgsl.expected.spvasm
index dcd33ae..ded61b9 100644
--- a/test/tint/builtins/gen/var/textureLoad/7fd822.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/7fd822.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 47
+; Bound: 49
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -40,49 +40,51 @@
          %12 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
-         %18 = OpConstantNull %v2uint
+     %uint_1 = OpConstant %uint 1
+         %19 = OpConstantComposite %v2uint %uint_1 %uint_1
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
+         %22 = OpConstantNull %v2uint
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
-         %25 = OpConstantNull %int
+         %27 = OpConstantNull %int
 %_ptr_Function_float = OpTypePointer Function %float
-         %33 = OpTypeFunction %v4float
+         %35 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_7fd822 = OpFunction %void None %12
          %15 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2uint Function %18
-      %arg_2 = OpVariable %_ptr_Function_int Function %25
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %22
+      %arg_2 = OpVariable %_ptr_Function_int Function %27
         %res = OpVariable %_ptr_Function_float Function %8
-               OpStore %arg_1 %18
+               OpStore %arg_1 %19
                OpStore %arg_2 %int_1
-         %28 = OpLoad %11 %arg_0
-         %29 = OpLoad %v2uint %arg_1
-         %30 = OpLoad %int %arg_2
-         %27 = OpImageFetch %v4float %28 %29 Lod %30
-         %26 = OpCompositeExtract %float %27 0
-               OpStore %res %26
+         %30 = OpLoad %11 %arg_0
+         %31 = OpLoad %v2uint %arg_1
+         %32 = OpLoad %int %arg_2
+         %29 = OpImageFetch %v4float %30 %31 Lod %32
+         %28 = OpCompositeExtract %float %29 0
+               OpStore %res %28
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %33
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureLoad_7fd822
+%vertex_main_inner = OpFunction %v4float None %35
+         %37 = OpLabel
+         %38 = OpFunctionCall %void %textureLoad_7fd822
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %38 = OpLabel
-         %39 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %39
+         %40 = OpLabel
+         %41 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %41
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureLoad_7fd822
+         %44 = OpLabel
+         %45 = OpFunctionCall %void %textureLoad_7fd822
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %45 = OpLabel
-         %46 = OpFunctionCall %void %textureLoad_7fd822
+         %47 = OpLabel
+         %48 = OpFunctionCall %void %textureLoad_7fd822
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureLoad/7fd822.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/7fd822.wgsl.expected.wgsl
index 90a4a66..64bd80e 100644
--- a/test/tint/builtins/gen/var/textureLoad/7fd822.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/7fd822.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_depth_2d;
 
 fn textureLoad_7fd822() {
-  var arg_1 = vec2<u32>();
+  var arg_1 = vec2<u32>(1u);
   var arg_2 = 1i;
   var res : f32 = textureLoad(arg_0, arg_1, arg_2);
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/84dee1.wgsl b/test/tint/builtins/gen/var/textureLoad/84dee1.wgsl
index 4ef1d0b..b9a6c49 100644
--- a/test/tint/builtins/gen/var/textureLoad/84dee1.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/84dee1.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureLoad(texture: texture_2d<f32>, coords: vec2<u32>, level: u32) -> vec4<f32>
 fn textureLoad_84dee1() {
-  var arg_1 = vec2<u32>();
+  var arg_1 = vec2<u32>(1u);
   var arg_2 = 1u;
   var res: vec4<f32> = textureLoad(arg_0, arg_1, arg_2);
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/84dee1.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/84dee1.wgsl.expected.dxc.hlsl
index 7ab5799..ddbcaca 100644
--- a/test/tint/builtins/gen/var/textureLoad/84dee1.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/84dee1.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 Texture2D<float4> arg_0 : register(t0, space1);
 
 void textureLoad_84dee1() {
-  uint2 arg_1 = (0u).xx;
+  uint2 arg_1 = (1u).xx;
   uint arg_2 = 1u;
   float4 res = arg_0.Load(uint3(arg_1, arg_2));
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/84dee1.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/84dee1.wgsl.expected.fxc.hlsl
index 7ab5799..ddbcaca 100644
--- a/test/tint/builtins/gen/var/textureLoad/84dee1.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/84dee1.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 Texture2D<float4> arg_0 : register(t0, space1);
 
 void textureLoad_84dee1() {
-  uint2 arg_1 = (0u).xx;
+  uint2 arg_1 = (1u).xx;
   uint arg_2 = 1u;
   float4 res = arg_0.Load(uint3(arg_1, arg_2));
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/84dee1.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/84dee1.wgsl.expected.glsl
index 6706ec1..0cf1692 100644
--- a/test/tint/builtins/gen/var/textureLoad/84dee1.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/84dee1.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 uniform highp sampler2D arg_0_1;
 void textureLoad_84dee1() {
-  uvec2 arg_1 = uvec2(0u);
+  uvec2 arg_1 = uvec2(1u);
   uint arg_2 = 1u;
   vec4 res = texelFetch(arg_0_1, ivec2(arg_1), int(arg_2));
 }
@@ -25,7 +25,7 @@
 
 uniform highp sampler2D arg_0_1;
 void textureLoad_84dee1() {
-  uvec2 arg_1 = uvec2(0u);
+  uvec2 arg_1 = uvec2(1u);
   uint arg_2 = 1u;
   vec4 res = texelFetch(arg_0_1, ivec2(arg_1), int(arg_2));
 }
@@ -42,7 +42,7 @@
 
 uniform highp sampler2D arg_0_1;
 void textureLoad_84dee1() {
-  uvec2 arg_1 = uvec2(0u);
+  uvec2 arg_1 = uvec2(1u);
   uint arg_2 = 1u;
   vec4 res = texelFetch(arg_0_1, ivec2(arg_1), int(arg_2));
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/84dee1.wgsl.expected.msl b/test/tint/builtins/gen/var/textureLoad/84dee1.wgsl.expected.msl
index 545f668..c2a83c6 100644
--- a/test/tint/builtins/gen/var/textureLoad/84dee1.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureLoad/84dee1.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureLoad_84dee1(texture2d<float, access::sample> tint_symbol_1) {
-  uint2 arg_1 = uint2(0u);
+  uint2 arg_1 = uint2(1u);
   uint arg_2 = 1u;
   float4 res = tint_symbol_1.read(uint2(arg_1), arg_2);
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/84dee1.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/84dee1.wgsl.expected.spvasm
index d1c06a6..8126b56 100644
--- a/test/tint/builtins/gen/var/textureLoad/84dee1.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/84dee1.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 45
+; Bound: 46
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -40,47 +40,48 @@
          %12 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
-         %18 = OpConstantNull %v2uint
-%_ptr_Function_v2uint = OpTypePointer Function %v2uint
      %uint_1 = OpConstant %uint 1
+         %19 = OpConstantComposite %v2uint %uint_1 %uint_1
+%_ptr_Function_v2uint = OpTypePointer Function %v2uint
+         %22 = OpConstantNull %v2uint
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %24 = OpConstantNull %uint
+         %25 = OpConstantNull %uint
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %31 = OpTypeFunction %v4float
+         %32 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_84dee1 = OpFunction %void None %12
          %15 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2uint Function %18
-      %arg_2 = OpVariable %_ptr_Function_uint Function %24
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %22
+      %arg_2 = OpVariable %_ptr_Function_uint Function %25
         %res = OpVariable %_ptr_Function_v4float Function %5
-               OpStore %arg_1 %18
+               OpStore %arg_1 %19
                OpStore %arg_2 %uint_1
-         %26 = OpLoad %11 %arg_0
-         %27 = OpLoad %v2uint %arg_1
-         %28 = OpLoad %uint %arg_2
-         %25 = OpImageFetch %v4float %26 %27 Lod %28
-               OpStore %res %25
+         %27 = OpLoad %11 %arg_0
+         %28 = OpLoad %v2uint %arg_1
+         %29 = OpLoad %uint %arg_2
+         %26 = OpImageFetch %v4float %27 %28 Lod %29
+               OpStore %res %26
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %31
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureLoad_84dee1
+%vertex_main_inner = OpFunction %v4float None %32
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %textureLoad_84dee1
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %37
+         %37 = OpLabel
+         %38 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %38
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureLoad_84dee1
+         %41 = OpLabel
+         %42 = OpFunctionCall %void %textureLoad_84dee1
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %43 = OpLabel
-         %44 = OpFunctionCall %void %textureLoad_84dee1
+         %44 = OpLabel
+         %45 = OpFunctionCall %void %textureLoad_84dee1
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureLoad/84dee1.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/84dee1.wgsl.expected.wgsl
index 850b0fe..20c09d3 100644
--- a/test/tint/builtins/gen/var/textureLoad/84dee1.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/84dee1.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_2d<f32>;
 
 fn textureLoad_84dee1() {
-  var arg_1 = vec2<u32>();
+  var arg_1 = vec2<u32>(1u);
   var arg_2 = 1u;
   var res : vec4<f32> = textureLoad(arg_0, arg_1, arg_2);
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/8527b1.wgsl b/test/tint/builtins/gen/var/textureLoad/8527b1.wgsl
index 3e96430..9bcc0f9 100644
--- a/test/tint/builtins/gen/var/textureLoad/8527b1.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/8527b1.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureLoad(texture: texture_2d_array<u32>, coords: vec2<u32>, array_index: u32, level: u32) -> vec4<u32>
 fn textureLoad_8527b1() {
-  var arg_1 = vec2<u32>();
+  var arg_1 = vec2<u32>(1u);
   var arg_2 = 1u;
   var arg_3 = 1u;
   var res: vec4<u32> = textureLoad(arg_0, arg_1, arg_2, arg_3);
diff --git a/test/tint/builtins/gen/var/textureLoad/8527b1.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/8527b1.wgsl.expected.dxc.hlsl
index e084b64..a8eedff 100644
--- a/test/tint/builtins/gen/var/textureLoad/8527b1.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/8527b1.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 void textureLoad_8527b1() {
-  uint2 arg_1 = (0u).xx;
+  uint2 arg_1 = (1u).xx;
   uint arg_2 = 1u;
   uint arg_3 = 1u;
   uint4 res = arg_0.Load(uint4(uint3(arg_1, arg_2), arg_3));
diff --git a/test/tint/builtins/gen/var/textureLoad/8527b1.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/8527b1.wgsl.expected.fxc.hlsl
index e084b64..a8eedff 100644
--- a/test/tint/builtins/gen/var/textureLoad/8527b1.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/8527b1.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 void textureLoad_8527b1() {
-  uint2 arg_1 = (0u).xx;
+  uint2 arg_1 = (1u).xx;
   uint arg_2 = 1u;
   uint arg_3 = 1u;
   uint4 res = arg_0.Load(uint4(uint3(arg_1, arg_2), arg_3));
diff --git a/test/tint/builtins/gen/var/textureLoad/8527b1.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/8527b1.wgsl.expected.glsl
index 01a6c24..3a7abdc 100644
--- a/test/tint/builtins/gen/var/textureLoad/8527b1.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/8527b1.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 uniform highp usampler2DArray arg_0_1;
 void textureLoad_8527b1() {
-  uvec2 arg_1 = uvec2(0u);
+  uvec2 arg_1 = uvec2(1u);
   uint arg_2 = 1u;
   uint arg_3 = 1u;
   uvec4 res = texelFetch(arg_0_1, ivec3(uvec3(arg_1, arg_2)), int(arg_3));
@@ -26,7 +26,7 @@
 
 uniform highp usampler2DArray arg_0_1;
 void textureLoad_8527b1() {
-  uvec2 arg_1 = uvec2(0u);
+  uvec2 arg_1 = uvec2(1u);
   uint arg_2 = 1u;
   uint arg_3 = 1u;
   uvec4 res = texelFetch(arg_0_1, ivec3(uvec3(arg_1, arg_2)), int(arg_3));
@@ -44,7 +44,7 @@
 
 uniform highp usampler2DArray arg_0_1;
 void textureLoad_8527b1() {
-  uvec2 arg_1 = uvec2(0u);
+  uvec2 arg_1 = uvec2(1u);
   uint arg_2 = 1u;
   uint arg_3 = 1u;
   uvec4 res = texelFetch(arg_0_1, ivec3(uvec3(arg_1, arg_2)), int(arg_3));
diff --git a/test/tint/builtins/gen/var/textureLoad/8527b1.wgsl.expected.msl b/test/tint/builtins/gen/var/textureLoad/8527b1.wgsl.expected.msl
index c84a237..b8f246d 100644
--- a/test/tint/builtins/gen/var/textureLoad/8527b1.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureLoad/8527b1.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureLoad_8527b1(texture2d_array<uint, access::sample> tint_symbol_1) {
-  uint2 arg_1 = uint2(0u);
+  uint2 arg_1 = uint2(1u);
   uint arg_2 = 1u;
   uint arg_3 = 1u;
   uint4 res = tint_symbol_1.read(uint2(arg_1), arg_2, arg_3);
diff --git a/test/tint/builtins/gen/var/textureLoad/8527b1.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/8527b1.wgsl.expected.spvasm
index e8edef0..7894494 100644
--- a/test/tint/builtins/gen/var/textureLoad/8527b1.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/8527b1.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 53
+; Bound: 54
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -41,56 +41,57 @@
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
      %v2uint = OpTypeVector %uint 2
-         %18 = OpConstantNull %v2uint
-%_ptr_Function_v2uint = OpTypePointer Function %v2uint
      %uint_1 = OpConstant %uint 1
+         %19 = OpConstantComposite %v2uint %uint_1 %uint_1
+%_ptr_Function_v2uint = OpTypePointer Function %v2uint
+         %22 = OpConstantNull %v2uint
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %24 = OpConstantNull %uint
+         %25 = OpConstantNull %uint
      %v4uint = OpTypeVector %uint 4
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %38 = OpConstantNull %v4uint
-         %39 = OpTypeFunction %v4float
+         %39 = OpConstantNull %v4uint
+         %40 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_8527b1 = OpFunction %void None %13
          %16 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2uint Function %18
-      %arg_2 = OpVariable %_ptr_Function_uint Function %24
-      %arg_3 = OpVariable %_ptr_Function_uint Function %24
-        %res = OpVariable %_ptr_Function_v4uint Function %38
-               OpStore %arg_1 %18
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %22
+      %arg_2 = OpVariable %_ptr_Function_uint Function %25
+      %arg_3 = OpVariable %_ptr_Function_uint Function %25
+        %res = OpVariable %_ptr_Function_v4uint Function %39
+               OpStore %arg_1 %19
                OpStore %arg_2 %uint_1
                OpStore %arg_3 %uint_1
-         %28 = OpLoad %11 %arg_0
-         %30 = OpLoad %v2uint %arg_1
-         %31 = OpCompositeExtract %uint %30 0
-         %32 = OpCompositeExtract %uint %30 1
-         %33 = OpLoad %uint %arg_2
-         %34 = OpCompositeConstruct %v3uint %31 %32 %33
-         %35 = OpLoad %uint %arg_3
-         %26 = OpImageFetch %v4uint %28 %34 Lod %35
-               OpStore %res %26
+         %29 = OpLoad %11 %arg_0
+         %31 = OpLoad %v2uint %arg_1
+         %32 = OpCompositeExtract %uint %31 0
+         %33 = OpCompositeExtract %uint %31 1
+         %34 = OpLoad %uint %arg_2
+         %35 = OpCompositeConstruct %v3uint %32 %33 %34
+         %36 = OpLoad %uint %arg_3
+         %27 = OpImageFetch %v4uint %29 %35 Lod %36
+               OpStore %res %27
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %39
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureLoad_8527b1
+%vertex_main_inner = OpFunction %v4float None %40
+         %42 = OpLabel
+         %43 = OpFunctionCall %void %textureLoad_8527b1
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %44 = OpLabel
-         %45 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %45
+         %45 = OpLabel
+         %46 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %46
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %48 = OpLabel
-         %49 = OpFunctionCall %void %textureLoad_8527b1
+         %49 = OpLabel
+         %50 = OpFunctionCall %void %textureLoad_8527b1
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %51 = OpLabel
-         %52 = OpFunctionCall %void %textureLoad_8527b1
+         %52 = OpLabel
+         %53 = OpFunctionCall %void %textureLoad_8527b1
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureLoad/8527b1.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/8527b1.wgsl.expected.wgsl
index 2f2f110..68a89fe 100644
--- a/test/tint/builtins/gen/var/textureLoad/8527b1.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/8527b1.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_2d_array<u32>;
 
 fn textureLoad_8527b1() {
-  var arg_1 = vec2<u32>();
+  var arg_1 = vec2<u32>(1u);
   var arg_2 = 1u;
   var arg_3 = 1u;
   var res : vec4<u32> = textureLoad(arg_0, arg_1, arg_2, arg_3);
diff --git a/test/tint/builtins/gen/var/textureLoad/87be85.wgsl b/test/tint/builtins/gen/var/textureLoad/87be85.wgsl
index 9f3e2bc..703671b 100644
--- a/test/tint/builtins/gen/var/textureLoad/87be85.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/87be85.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureLoad(texture: texture_2d_array<f32>, coords: vec2<i32>, array_index: i32, level: i32) -> vec4<f32>
 fn textureLoad_87be85() {
-  var arg_1 = vec2<i32>();
+  var arg_1 = vec2<i32>(1i);
   var arg_2 = 1i;
   var arg_3 = 1i;
   var res: vec4<f32> = textureLoad(arg_0, arg_1, arg_2, arg_3);
diff --git a/test/tint/builtins/gen/var/textureLoad/87be85.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/87be85.wgsl.expected.dxc.hlsl
index 4957401..e2e2ecc 100644
--- a/test/tint/builtins/gen/var/textureLoad/87be85.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/87be85.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 void textureLoad_87be85() {
-  int2 arg_1 = (0).xx;
+  int2 arg_1 = (1).xx;
   int arg_2 = 1;
   int arg_3 = 1;
   float4 res = arg_0.Load(int4(int3(arg_1, arg_2), arg_3));
diff --git a/test/tint/builtins/gen/var/textureLoad/87be85.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/87be85.wgsl.expected.fxc.hlsl
index 4957401..e2e2ecc 100644
--- a/test/tint/builtins/gen/var/textureLoad/87be85.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/87be85.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 void textureLoad_87be85() {
-  int2 arg_1 = (0).xx;
+  int2 arg_1 = (1).xx;
   int arg_2 = 1;
   int arg_3 = 1;
   float4 res = arg_0.Load(int4(int3(arg_1, arg_2), arg_3));
diff --git a/test/tint/builtins/gen/var/textureLoad/87be85.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/87be85.wgsl.expected.glsl
index 3bea7e30..46621b3 100644
--- a/test/tint/builtins/gen/var/textureLoad/87be85.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/87be85.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 uniform highp sampler2DArray arg_0_1;
 void textureLoad_87be85() {
-  ivec2 arg_1 = ivec2(0);
+  ivec2 arg_1 = ivec2(1);
   int arg_2 = 1;
   int arg_3 = 1;
   vec4 res = texelFetch(arg_0_1, ivec3(arg_1, arg_2), arg_3);
@@ -26,7 +26,7 @@
 
 uniform highp sampler2DArray arg_0_1;
 void textureLoad_87be85() {
-  ivec2 arg_1 = ivec2(0);
+  ivec2 arg_1 = ivec2(1);
   int arg_2 = 1;
   int arg_3 = 1;
   vec4 res = texelFetch(arg_0_1, ivec3(arg_1, arg_2), arg_3);
@@ -44,7 +44,7 @@
 
 uniform highp sampler2DArray arg_0_1;
 void textureLoad_87be85() {
-  ivec2 arg_1 = ivec2(0);
+  ivec2 arg_1 = ivec2(1);
   int arg_2 = 1;
   int arg_3 = 1;
   vec4 res = texelFetch(arg_0_1, ivec3(arg_1, arg_2), arg_3);
diff --git a/test/tint/builtins/gen/var/textureLoad/87be85.wgsl.expected.msl b/test/tint/builtins/gen/var/textureLoad/87be85.wgsl.expected.msl
index c0f13cf..5c043b9 100644
--- a/test/tint/builtins/gen/var/textureLoad/87be85.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureLoad/87be85.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureLoad_87be85(texture2d_array<float, access::sample> tint_symbol_1) {
-  int2 arg_1 = int2(0);
+  int2 arg_1 = int2(1);
   int arg_2 = 1;
   int arg_3 = 1;
   float4 res = tint_symbol_1.read(uint2(arg_1), arg_2, arg_3);
diff --git a/test/tint/builtins/gen/var/textureLoad/87be85.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/87be85.wgsl.expected.spvasm
index aebef8a..fa7cb5c 100644
--- a/test/tint/builtins/gen/var/textureLoad/87be85.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/87be85.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 51
+; Bound: 52
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -41,54 +41,55 @@
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
-         %18 = OpConstantNull %v2int
-%_ptr_Function_v2int = OpTypePointer Function %v2int
       %int_1 = OpConstant %int 1
+         %19 = OpConstantComposite %v2int %int_1 %int_1
+%_ptr_Function_v2int = OpTypePointer Function %v2int
+         %22 = OpConstantNull %v2int
 %_ptr_Function_int = OpTypePointer Function %int
-         %24 = OpConstantNull %int
+         %25 = OpConstantNull %int
       %v3int = OpTypeVector %int 3
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %37 = OpTypeFunction %v4float
+         %38 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_87be85 = OpFunction %void None %12
          %15 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2int Function %18
-      %arg_2 = OpVariable %_ptr_Function_int Function %24
-      %arg_3 = OpVariable %_ptr_Function_int Function %24
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %22
+      %arg_2 = OpVariable %_ptr_Function_int Function %25
+      %arg_3 = OpVariable %_ptr_Function_int Function %25
         %res = OpVariable %_ptr_Function_v4float Function %5
-               OpStore %arg_1 %18
+               OpStore %arg_1 %19
                OpStore %arg_2 %int_1
                OpStore %arg_3 %int_1
-         %27 = OpLoad %11 %arg_0
-         %29 = OpLoad %v2int %arg_1
-         %30 = OpCompositeExtract %int %29 0
-         %31 = OpCompositeExtract %int %29 1
-         %32 = OpLoad %int %arg_2
-         %33 = OpCompositeConstruct %v3int %30 %31 %32
-         %34 = OpLoad %int %arg_3
-         %26 = OpImageFetch %v4float %27 %33 Lod %34
-               OpStore %res %26
+         %28 = OpLoad %11 %arg_0
+         %30 = OpLoad %v2int %arg_1
+         %31 = OpCompositeExtract %int %30 0
+         %32 = OpCompositeExtract %int %30 1
+         %33 = OpLoad %int %arg_2
+         %34 = OpCompositeConstruct %v3int %31 %32 %33
+         %35 = OpLoad %int %arg_3
+         %27 = OpImageFetch %v4float %28 %34 Lod %35
+               OpStore %res %27
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %37
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureLoad_87be85
+%vertex_main_inner = OpFunction %v4float None %38
+         %40 = OpLabel
+         %41 = OpFunctionCall %void %textureLoad_87be85
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %42 = OpLabel
-         %43 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %43
+         %43 = OpLabel
+         %44 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %44
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %46 = OpLabel
-         %47 = OpFunctionCall %void %textureLoad_87be85
+         %47 = OpLabel
+         %48 = OpFunctionCall %void %textureLoad_87be85
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %49 = OpLabel
-         %50 = OpFunctionCall %void %textureLoad_87be85
+         %50 = OpLabel
+         %51 = OpFunctionCall %void %textureLoad_87be85
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureLoad/87be85.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/87be85.wgsl.expected.wgsl
index a98432a..79c6137 100644
--- a/test/tint/builtins/gen/var/textureLoad/87be85.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/87be85.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_2d_array<f32>;
 
 fn textureLoad_87be85() {
-  var arg_1 = vec2<i32>();
+  var arg_1 = vec2<i32>(1i);
   var arg_2 = 1i;
   var arg_3 = 1i;
   var res : vec4<f32> = textureLoad(arg_0, arg_1, arg_2, arg_3);
diff --git a/test/tint/builtins/gen/var/textureLoad/897cf3.wgsl b/test/tint/builtins/gen/var/textureLoad/897cf3.wgsl
index cf0ac23..d2e7b87 100644
--- a/test/tint/builtins/gen/var/textureLoad/897cf3.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/897cf3.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureLoad(texture: texture_2d<u32>, coords: vec2<u32>, level: u32) -> vec4<u32>
 fn textureLoad_897cf3() {
-  var arg_1 = vec2<u32>();
+  var arg_1 = vec2<u32>(1u);
   var arg_2 = 1u;
   var res: vec4<u32> = textureLoad(arg_0, arg_1, arg_2);
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/897cf3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/897cf3.wgsl.expected.dxc.hlsl
index 7f68c6d..e943ee4 100644
--- a/test/tint/builtins/gen/var/textureLoad/897cf3.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/897cf3.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 Texture2D<uint4> arg_0 : register(t0, space1);
 
 void textureLoad_897cf3() {
-  uint2 arg_1 = (0u).xx;
+  uint2 arg_1 = (1u).xx;
   uint arg_2 = 1u;
   uint4 res = arg_0.Load(uint3(arg_1, arg_2));
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/897cf3.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/897cf3.wgsl.expected.fxc.hlsl
index 7f68c6d..e943ee4 100644
--- a/test/tint/builtins/gen/var/textureLoad/897cf3.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/897cf3.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 Texture2D<uint4> arg_0 : register(t0, space1);
 
 void textureLoad_897cf3() {
-  uint2 arg_1 = (0u).xx;
+  uint2 arg_1 = (1u).xx;
   uint arg_2 = 1u;
   uint4 res = arg_0.Load(uint3(arg_1, arg_2));
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/897cf3.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/897cf3.wgsl.expected.glsl
index 4c8f3f2..603face 100644
--- a/test/tint/builtins/gen/var/textureLoad/897cf3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/897cf3.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 uniform highp usampler2D arg_0_1;
 void textureLoad_897cf3() {
-  uvec2 arg_1 = uvec2(0u);
+  uvec2 arg_1 = uvec2(1u);
   uint arg_2 = 1u;
   uvec4 res = texelFetch(arg_0_1, ivec2(arg_1), int(arg_2));
 }
@@ -25,7 +25,7 @@
 
 uniform highp usampler2D arg_0_1;
 void textureLoad_897cf3() {
-  uvec2 arg_1 = uvec2(0u);
+  uvec2 arg_1 = uvec2(1u);
   uint arg_2 = 1u;
   uvec4 res = texelFetch(arg_0_1, ivec2(arg_1), int(arg_2));
 }
@@ -42,7 +42,7 @@
 
 uniform highp usampler2D arg_0_1;
 void textureLoad_897cf3() {
-  uvec2 arg_1 = uvec2(0u);
+  uvec2 arg_1 = uvec2(1u);
   uint arg_2 = 1u;
   uvec4 res = texelFetch(arg_0_1, ivec2(arg_1), int(arg_2));
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/897cf3.wgsl.expected.msl b/test/tint/builtins/gen/var/textureLoad/897cf3.wgsl.expected.msl
index 004547d..4ebbf9b 100644
--- a/test/tint/builtins/gen/var/textureLoad/897cf3.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureLoad/897cf3.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureLoad_897cf3(texture2d<uint, access::sample> tint_symbol_1) {
-  uint2 arg_1 = uint2(0u);
+  uint2 arg_1 = uint2(1u);
   uint arg_2 = 1u;
   uint4 res = tint_symbol_1.read(uint2(arg_1), arg_2);
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/897cf3.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/897cf3.wgsl.expected.spvasm
index 43e8cfb..b62cf69 100644
--- a/test/tint/builtins/gen/var/textureLoad/897cf3.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/897cf3.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 47
+; Bound: 48
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -40,49 +40,50 @@
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
      %v2uint = OpTypeVector %uint 2
-         %18 = OpConstantNull %v2uint
-%_ptr_Function_v2uint = OpTypePointer Function %v2uint
      %uint_1 = OpConstant %uint 1
+         %19 = OpConstantComposite %v2uint %uint_1 %uint_1
+%_ptr_Function_v2uint = OpTypePointer Function %v2uint
+         %22 = OpConstantNull %v2uint
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %24 = OpConstantNull %uint
+         %25 = OpConstantNull %uint
      %v4uint = OpTypeVector %uint 4
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %32 = OpConstantNull %v4uint
-         %33 = OpTypeFunction %v4float
+         %33 = OpConstantNull %v4uint
+         %34 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_897cf3 = OpFunction %void None %13
          %16 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2uint Function %18
-      %arg_2 = OpVariable %_ptr_Function_uint Function %24
-        %res = OpVariable %_ptr_Function_v4uint Function %32
-               OpStore %arg_1 %18
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %22
+      %arg_2 = OpVariable %_ptr_Function_uint Function %25
+        %res = OpVariable %_ptr_Function_v4uint Function %33
+               OpStore %arg_1 %19
                OpStore %arg_2 %uint_1
-         %27 = OpLoad %11 %arg_0
-         %28 = OpLoad %v2uint %arg_1
-         %29 = OpLoad %uint %arg_2
-         %25 = OpImageFetch %v4uint %27 %28 Lod %29
-               OpStore %res %25
+         %28 = OpLoad %11 %arg_0
+         %29 = OpLoad %v2uint %arg_1
+         %30 = OpLoad %uint %arg_2
+         %26 = OpImageFetch %v4uint %28 %29 Lod %30
+               OpStore %res %26
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %33
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureLoad_897cf3
+%vertex_main_inner = OpFunction %v4float None %34
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureLoad_897cf3
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %38 = OpLabel
-         %39 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %39
+         %39 = OpLabel
+         %40 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %40
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureLoad_897cf3
+         %43 = OpLabel
+         %44 = OpFunctionCall %void %textureLoad_897cf3
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %45 = OpLabel
-         %46 = OpFunctionCall %void %textureLoad_897cf3
+         %46 = OpLabel
+         %47 = OpFunctionCall %void %textureLoad_897cf3
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureLoad/897cf3.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/897cf3.wgsl.expected.wgsl
index a690f92..5739639 100644
--- a/test/tint/builtins/gen/var/textureLoad/897cf3.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/897cf3.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_2d<u32>;
 
 fn textureLoad_897cf3() {
-  var arg_1 = vec2<u32>();
+  var arg_1 = vec2<u32>(1u);
   var arg_2 = 1u;
   var res : vec4<u32> = textureLoad(arg_0, arg_1, arg_2);
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/8acf41.wgsl b/test/tint/builtins/gen/var/textureLoad/8acf41.wgsl
index fe47513..4fd4ae8 100644
--- a/test/tint/builtins/gen/var/textureLoad/8acf41.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/8acf41.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureLoad(texture: texture_external, coords: vec2<i32>) -> vec4<f32>
 fn textureLoad_8acf41() {
-  var arg_1 = vec2<i32>();
+  var arg_1 = vec2<i32>(1i);
   var res: vec4<f32> = textureLoad(arg_0, arg_1);
 }
 
diff --git a/test/tint/builtins/gen/var/textureLoad/8acf41.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/8acf41.wgsl.expected.dxc.hlsl
index 4661657..6b42460 100644
--- a/test/tint/builtins/gen/var/textureLoad/8acf41.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/8acf41.wgsl.expected.dxc.hlsl
@@ -80,7 +80,7 @@
 }
 
 void textureLoad_8acf41() {
-  int2 arg_1 = (0).xx;
+  int2 arg_1 = (1).xx;
   float4 res = textureLoadExternal(arg_0, ext_tex_plane_1, arg_1, tint_symbol_1(ext_tex_params, 0u));
 }
 
diff --git a/test/tint/builtins/gen/var/textureLoad/8acf41.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/8acf41.wgsl.expected.fxc.hlsl
index 4661657..6b42460 100644
--- a/test/tint/builtins/gen/var/textureLoad/8acf41.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/8acf41.wgsl.expected.fxc.hlsl
@@ -80,7 +80,7 @@
 }
 
 void textureLoad_8acf41() {
-  int2 arg_1 = (0).xx;
+  int2 arg_1 = (1).xx;
   float4 res = textureLoadExternal(arg_0, ext_tex_plane_1, arg_1, tint_symbol_1(ext_tex_params, 0u));
 }
 
diff --git a/test/tint/builtins/gen/var/textureLoad/8acf41.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/8acf41.wgsl.expected.glsl
index e81af14..0a17c67 100644
--- a/test/tint/builtins/gen/var/textureLoad/8acf41.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/8acf41.wgsl.expected.glsl
@@ -49,7 +49,7 @@
 uniform highp sampler2D arg_0_1;
 uniform highp sampler2D ext_tex_plane_1_1;
 void textureLoad_8acf41() {
-  ivec2 arg_1 = ivec2(0);
+  ivec2 arg_1 = ivec2(1);
   vec4 res = textureLoadExternal(arg_0_1, ext_tex_plane_1_1, arg_1, ext_tex_params.inner);
 }
 
@@ -118,7 +118,7 @@
 uniform highp sampler2D arg_0_1;
 uniform highp sampler2D ext_tex_plane_1_1;
 void textureLoad_8acf41() {
-  ivec2 arg_1 = ivec2(0);
+  ivec2 arg_1 = ivec2(1);
   vec4 res = textureLoadExternal(arg_0_1, ext_tex_plane_1_1, arg_1, ext_tex_params.inner);
 }
 
@@ -181,7 +181,7 @@
 uniform highp sampler2D arg_0_1;
 uniform highp sampler2D ext_tex_plane_1_1;
 void textureLoad_8acf41() {
-  ivec2 arg_1 = ivec2(0);
+  ivec2 arg_1 = ivec2(1);
   vec4 res = textureLoadExternal(arg_0_1, ext_tex_plane_1_1, arg_1, ext_tex_params.inner);
 }
 
diff --git a/test/tint/builtins/gen/var/textureLoad/8acf41.wgsl.expected.msl b/test/tint/builtins/gen/var/textureLoad/8acf41.wgsl.expected.msl
index d6fff77..8806d2f 100644
--- a/test/tint/builtins/gen/var/textureLoad/8acf41.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureLoad/8acf41.wgsl.expected.msl
@@ -58,7 +58,7 @@
 }
 
 void textureLoad_8acf41(texture2d<float, access::sample> tint_symbol_1, texture2d<float, access::sample> tint_symbol_2, const constant ExternalTextureParams* const tint_symbol_3) {
-  int2 arg_1 = int2(0);
+  int2 arg_1 = int2(1);
   float4 res = textureLoadExternal(tint_symbol_1, tint_symbol_2, arg_1, *(tint_symbol_3));
 }
 
diff --git a/test/tint/builtins/gen/var/textureLoad/8acf41.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/8acf41.wgsl.expected.spvasm
index 350a201..41ba458 100644
--- a/test/tint/builtins/gen/var/textureLoad/8acf41.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/8acf41.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 141
+; Bound: 143
 ; Schema: 0
                OpCapability Shader
          %28 = OpExtInstImport "GLSL.std.450"
@@ -115,12 +115,14 @@
          %93 = OpConstantNull %uint
        %void = OpTypeVoid
         %111 = OpTypeFunction %void
-        %115 = OpConstantNull %v2int
+      %int_1 = OpConstant %int 1
+        %116 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v2int = OpTypePointer Function %v2int
+        %119 = OpConstantNull %v2int
      %uint_0 = OpConstant %uint 0
 %_ptr_Uniform_ExternalTextureParams = OpTypePointer Uniform %ExternalTextureParams
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-        %128 = OpTypeFunction %v4float
+        %130 = OpTypeFunction %v4float
 %gammaCorrection = OpFunction %v3float None %22
           %v = OpFunctionParameter %v3float
      %params = OpFunctionParameter %GammaTransferParams
@@ -214,37 +216,37 @@
                OpFunctionEnd
 %textureLoad_8acf41 = OpFunction %void None %111
         %114 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2int Function %115
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %119
         %res = OpVariable %_ptr_Function_v4float Function %5
-               OpStore %arg_1 %115
-        %119 = OpLoad %11 %arg_0
-        %120 = OpLoad %11 %ext_tex_plane_1
-        %121 = OpLoad %v2int %arg_1
-        %124 = OpAccessChain %_ptr_Uniform_ExternalTextureParams %ext_tex_params %uint_0
-        %125 = OpLoad %ExternalTextureParams %124
-        %118 = OpFunctionCall %v4float %textureLoadExternal %119 %120 %121 %125
-               OpStore %res %118
+               OpStore %arg_1 %116
+        %121 = OpLoad %11 %arg_0
+        %122 = OpLoad %11 %ext_tex_plane_1
+        %123 = OpLoad %v2int %arg_1
+        %126 = OpAccessChain %_ptr_Uniform_ExternalTextureParams %ext_tex_params %uint_0
+        %127 = OpLoad %ExternalTextureParams %126
+        %120 = OpFunctionCall %v4float %textureLoadExternal %121 %122 %123 %127
+               OpStore %res %120
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %128
-        %130 = OpLabel
-        %131 = OpFunctionCall %void %textureLoad_8acf41
+%vertex_main_inner = OpFunction %v4float None %130
+        %132 = OpLabel
+        %133 = OpFunctionCall %void %textureLoad_8acf41
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %111
-        %133 = OpLabel
-        %134 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %134
+        %135 = OpLabel
+        %136 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %136
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %111
-        %136 = OpLabel
-        %137 = OpFunctionCall %void %textureLoad_8acf41
+        %138 = OpLabel
+        %139 = OpFunctionCall %void %textureLoad_8acf41
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %111
-        %139 = OpLabel
-        %140 = OpFunctionCall %void %textureLoad_8acf41
+        %141 = OpLabel
+        %142 = OpFunctionCall %void %textureLoad_8acf41
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureLoad/8acf41.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/8acf41.wgsl.expected.wgsl
index 09bc012..90bedea 100644
--- a/test/tint/builtins/gen/var/textureLoad/8acf41.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/8acf41.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_external;
 
 fn textureLoad_8acf41() {
-  var arg_1 = vec2<i32>();
+  var arg_1 = vec2<i32>(1i);
   var res : vec4<f32> = textureLoad(arg_0, arg_1);
 }
 
diff --git a/test/tint/builtins/gen/var/textureLoad/8ccbe3.wgsl b/test/tint/builtins/gen/var/textureLoad/8ccbe3.wgsl
index 63dcd78..4db4f0f 100644
--- a/test/tint/builtins/gen/var/textureLoad/8ccbe3.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/8ccbe3.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureLoad(texture: texture_depth_2d, coords: vec2<i32>, level: u32) -> f32
 fn textureLoad_8ccbe3() {
-  var arg_1 = vec2<i32>();
+  var arg_1 = vec2<i32>(1i);
   var arg_2 = 1u;
   var res: f32 = textureLoad(arg_0, arg_1, arg_2);
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/8ccbe3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/8ccbe3.wgsl.expected.dxc.hlsl
index 5eb8359..cfaa745 100644
--- a/test/tint/builtins/gen/var/textureLoad/8ccbe3.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/8ccbe3.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 Texture2D arg_0 : register(t0, space1);
 
 void textureLoad_8ccbe3() {
-  int2 arg_1 = (0).xx;
+  int2 arg_1 = (1).xx;
   uint arg_2 = 1u;
   float res = arg_0.Load(int3(arg_1, int(arg_2))).x;
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/8ccbe3.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/8ccbe3.wgsl.expected.fxc.hlsl
index 5eb8359..cfaa745 100644
--- a/test/tint/builtins/gen/var/textureLoad/8ccbe3.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/8ccbe3.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 Texture2D arg_0 : register(t0, space1);
 
 void textureLoad_8ccbe3() {
-  int2 arg_1 = (0).xx;
+  int2 arg_1 = (1).xx;
   uint arg_2 = 1u;
   float res = arg_0.Load(int3(arg_1, int(arg_2))).x;
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/8ccbe3.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/8ccbe3.wgsl.expected.glsl
index b4a68c5..658298a 100644
--- a/test/tint/builtins/gen/var/textureLoad/8ccbe3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/8ccbe3.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 uniform highp sampler2D arg_0_1;
 void textureLoad_8ccbe3() {
-  ivec2 arg_1 = ivec2(0);
+  ivec2 arg_1 = ivec2(1);
   uint arg_2 = 1u;
   float res = texelFetch(arg_0_1, arg_1, int(arg_2)).x;
 }
@@ -25,7 +25,7 @@
 
 uniform highp sampler2D arg_0_1;
 void textureLoad_8ccbe3() {
-  ivec2 arg_1 = ivec2(0);
+  ivec2 arg_1 = ivec2(1);
   uint arg_2 = 1u;
   float res = texelFetch(arg_0_1, arg_1, int(arg_2)).x;
 }
@@ -42,7 +42,7 @@
 
 uniform highp sampler2D arg_0_1;
 void textureLoad_8ccbe3() {
-  ivec2 arg_1 = ivec2(0);
+  ivec2 arg_1 = ivec2(1);
   uint arg_2 = 1u;
   float res = texelFetch(arg_0_1, arg_1, int(arg_2)).x;
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/8ccbe3.wgsl.expected.msl b/test/tint/builtins/gen/var/textureLoad/8ccbe3.wgsl.expected.msl
index 0dcde10..c2a25ed 100644
--- a/test/tint/builtins/gen/var/textureLoad/8ccbe3.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureLoad/8ccbe3.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureLoad_8ccbe3(depth2d<float, access::sample> tint_symbol_1) {
-  int2 arg_1 = int2(0);
+  int2 arg_1 = int2(1);
   uint arg_2 = 1u;
   float res = tint_symbol_1.read(uint2(arg_1), arg_2);
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/8ccbe3.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/8ccbe3.wgsl.expected.spvasm
index fdd0962..28a28a5 100644
--- a/test/tint/builtins/gen/var/textureLoad/8ccbe3.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/8ccbe3.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 47
+; Bound: 49
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -40,49 +40,51 @@
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
-         %18 = OpConstantNull %v2int
+      %int_1 = OpConstant %int 1
+         %19 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v2int = OpTypePointer Function %v2int
+         %22 = OpConstantNull %v2int
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %25 = OpConstantNull %uint
+         %27 = OpConstantNull %uint
 %_ptr_Function_float = OpTypePointer Function %float
-         %33 = OpTypeFunction %v4float
+         %35 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_8ccbe3 = OpFunction %void None %12
          %15 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2int Function %18
-      %arg_2 = OpVariable %_ptr_Function_uint Function %25
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %22
+      %arg_2 = OpVariable %_ptr_Function_uint Function %27
         %res = OpVariable %_ptr_Function_float Function %8
-               OpStore %arg_1 %18
+               OpStore %arg_1 %19
                OpStore %arg_2 %uint_1
-         %28 = OpLoad %11 %arg_0
-         %29 = OpLoad %v2int %arg_1
-         %30 = OpLoad %uint %arg_2
-         %27 = OpImageFetch %v4float %28 %29 Lod %30
-         %26 = OpCompositeExtract %float %27 0
-               OpStore %res %26
+         %30 = OpLoad %11 %arg_0
+         %31 = OpLoad %v2int %arg_1
+         %32 = OpLoad %uint %arg_2
+         %29 = OpImageFetch %v4float %30 %31 Lod %32
+         %28 = OpCompositeExtract %float %29 0
+               OpStore %res %28
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %33
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureLoad_8ccbe3
+%vertex_main_inner = OpFunction %v4float None %35
+         %37 = OpLabel
+         %38 = OpFunctionCall %void %textureLoad_8ccbe3
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %38 = OpLabel
-         %39 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %39
+         %40 = OpLabel
+         %41 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %41
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureLoad_8ccbe3
+         %44 = OpLabel
+         %45 = OpFunctionCall %void %textureLoad_8ccbe3
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %45 = OpLabel
-         %46 = OpFunctionCall %void %textureLoad_8ccbe3
+         %47 = OpLabel
+         %48 = OpFunctionCall %void %textureLoad_8ccbe3
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureLoad/8ccbe3.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/8ccbe3.wgsl.expected.wgsl
index 570441e..0277d7e 100644
--- a/test/tint/builtins/gen/var/textureLoad/8ccbe3.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/8ccbe3.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_depth_2d;
 
 fn textureLoad_8ccbe3() {
-  var arg_1 = vec2<i32>();
+  var arg_1 = vec2<i32>(1i);
   var arg_2 = 1u;
   var res : f32 = textureLoad(arg_0, arg_1, arg_2);
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/92eb1f.wgsl b/test/tint/builtins/gen/var/textureLoad/92eb1f.wgsl
index 3b82476..cf4aad9 100644
--- a/test/tint/builtins/gen/var/textureLoad/92eb1f.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/92eb1f.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureLoad(texture: texture_3d<u32>, coords: vec3<u32>, level: i32) -> vec4<u32>
 fn textureLoad_92eb1f() {
-  var arg_1 = vec3<u32>();
+  var arg_1 = vec3<u32>(1u);
   var arg_2 = 1i;
   var res: vec4<u32> = textureLoad(arg_0, arg_1, arg_2);
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/92eb1f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/92eb1f.wgsl.expected.dxc.hlsl
index a369376..fc35c27 100644
--- a/test/tint/builtins/gen/var/textureLoad/92eb1f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/92eb1f.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 Texture3D<uint4> arg_0 : register(t0, space1);
 
 void textureLoad_92eb1f() {
-  uint3 arg_1 = (0u).xxx;
+  uint3 arg_1 = (1u).xxx;
   int arg_2 = 1;
   uint4 res = arg_0.Load(uint4(arg_1, uint(arg_2)));
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/92eb1f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/92eb1f.wgsl.expected.fxc.hlsl
index a369376..fc35c27 100644
--- a/test/tint/builtins/gen/var/textureLoad/92eb1f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/92eb1f.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 Texture3D<uint4> arg_0 : register(t0, space1);
 
 void textureLoad_92eb1f() {
-  uint3 arg_1 = (0u).xxx;
+  uint3 arg_1 = (1u).xxx;
   int arg_2 = 1;
   uint4 res = arg_0.Load(uint4(arg_1, uint(arg_2)));
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/92eb1f.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/92eb1f.wgsl.expected.glsl
index 6784cfe..50d73c1 100644
--- a/test/tint/builtins/gen/var/textureLoad/92eb1f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/92eb1f.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 uniform highp usampler3D arg_0_1;
 void textureLoad_92eb1f() {
-  uvec3 arg_1 = uvec3(0u);
+  uvec3 arg_1 = uvec3(1u);
   int arg_2 = 1;
   uvec4 res = texelFetch(arg_0_1, ivec3(arg_1), arg_2);
 }
@@ -25,7 +25,7 @@
 
 uniform highp usampler3D arg_0_1;
 void textureLoad_92eb1f() {
-  uvec3 arg_1 = uvec3(0u);
+  uvec3 arg_1 = uvec3(1u);
   int arg_2 = 1;
   uvec4 res = texelFetch(arg_0_1, ivec3(arg_1), arg_2);
 }
@@ -42,7 +42,7 @@
 
 uniform highp usampler3D arg_0_1;
 void textureLoad_92eb1f() {
-  uvec3 arg_1 = uvec3(0u);
+  uvec3 arg_1 = uvec3(1u);
   int arg_2 = 1;
   uvec4 res = texelFetch(arg_0_1, ivec3(arg_1), arg_2);
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/92eb1f.wgsl.expected.msl b/test/tint/builtins/gen/var/textureLoad/92eb1f.wgsl.expected.msl
index b31aa86..d6f31ed 100644
--- a/test/tint/builtins/gen/var/textureLoad/92eb1f.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureLoad/92eb1f.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureLoad_92eb1f(texture3d<uint, access::sample> tint_symbol_1) {
-  uint3 arg_1 = uint3(0u);
+  uint3 arg_1 = uint3(1u);
   int arg_2 = 1;
   uint4 res = tint_symbol_1.read(uint3(arg_1), arg_2);
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/92eb1f.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/92eb1f.wgsl.expected.spvasm
index 279e593..185df10 100644
--- a/test/tint/builtins/gen/var/textureLoad/92eb1f.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/92eb1f.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 48
+; Bound: 50
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -40,50 +40,52 @@
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
      %v3uint = OpTypeVector %uint 3
-         %18 = OpConstantNull %v3uint
+     %uint_1 = OpConstant %uint 1
+         %19 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
 %_ptr_Function_v3uint = OpTypePointer Function %v3uint
+         %22 = OpConstantNull %v3uint
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
-         %25 = OpConstantNull %int
+         %27 = OpConstantNull %int
      %v4uint = OpTypeVector %uint 4
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %33 = OpConstantNull %v4uint
-         %34 = OpTypeFunction %v4float
+         %35 = OpConstantNull %v4uint
+         %36 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_92eb1f = OpFunction %void None %13
          %16 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v3uint Function %18
-      %arg_2 = OpVariable %_ptr_Function_int Function %25
-        %res = OpVariable %_ptr_Function_v4uint Function %33
-               OpStore %arg_1 %18
+      %arg_1 = OpVariable %_ptr_Function_v3uint Function %22
+      %arg_2 = OpVariable %_ptr_Function_int Function %27
+        %res = OpVariable %_ptr_Function_v4uint Function %35
+               OpStore %arg_1 %19
                OpStore %arg_2 %int_1
-         %28 = OpLoad %11 %arg_0
-         %29 = OpLoad %v3uint %arg_1
-         %30 = OpLoad %int %arg_2
-         %26 = OpImageFetch %v4uint %28 %29 Lod %30
-               OpStore %res %26
+         %30 = OpLoad %11 %arg_0
+         %31 = OpLoad %v3uint %arg_1
+         %32 = OpLoad %int %arg_2
+         %28 = OpImageFetch %v4uint %30 %31 Lod %32
+               OpStore %res %28
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %34
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureLoad_92eb1f
+%vertex_main_inner = OpFunction %v4float None %36
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %textureLoad_92eb1f
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %40
+         %41 = OpLabel
+         %42 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %42
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %43 = OpLabel
-         %44 = OpFunctionCall %void %textureLoad_92eb1f
+         %45 = OpLabel
+         %46 = OpFunctionCall %void %textureLoad_92eb1f
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %46 = OpLabel
-         %47 = OpFunctionCall %void %textureLoad_92eb1f
+         %48 = OpLabel
+         %49 = OpFunctionCall %void %textureLoad_92eb1f
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureLoad/92eb1f.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/92eb1f.wgsl.expected.wgsl
index 4a8be7f..8180d4b 100644
--- a/test/tint/builtins/gen/var/textureLoad/92eb1f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/92eb1f.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_3d<u32>;
 
 fn textureLoad_92eb1f() {
-  var arg_1 = vec3<u32>();
+  var arg_1 = vec3<u32>(1u);
   var arg_2 = 1i;
   var res : vec4<u32> = textureLoad(arg_0, arg_1, arg_2);
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/96efd5.wgsl b/test/tint/builtins/gen/var/textureLoad/96efd5.wgsl
index 7dd1032..a7c6f4c 100644
--- a/test/tint/builtins/gen/var/textureLoad/96efd5.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/96efd5.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureLoad(texture: texture_2d_array<f32>, coords: vec2<u32>, array_index: u32, level: u32) -> vec4<f32>
 fn textureLoad_96efd5() {
-  var arg_1 = vec2<u32>();
+  var arg_1 = vec2<u32>(1u);
   var arg_2 = 1u;
   var arg_3 = 1u;
   var res: vec4<f32> = textureLoad(arg_0, arg_1, arg_2, arg_3);
diff --git a/test/tint/builtins/gen/var/textureLoad/96efd5.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/96efd5.wgsl.expected.dxc.hlsl
index 06c757a..f4d0e5d 100644
--- a/test/tint/builtins/gen/var/textureLoad/96efd5.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/96efd5.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 void textureLoad_96efd5() {
-  uint2 arg_1 = (0u).xx;
+  uint2 arg_1 = (1u).xx;
   uint arg_2 = 1u;
   uint arg_3 = 1u;
   float4 res = arg_0.Load(uint4(uint3(arg_1, arg_2), arg_3));
diff --git a/test/tint/builtins/gen/var/textureLoad/96efd5.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/96efd5.wgsl.expected.fxc.hlsl
index 06c757a..f4d0e5d 100644
--- a/test/tint/builtins/gen/var/textureLoad/96efd5.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/96efd5.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 void textureLoad_96efd5() {
-  uint2 arg_1 = (0u).xx;
+  uint2 arg_1 = (1u).xx;
   uint arg_2 = 1u;
   uint arg_3 = 1u;
   float4 res = arg_0.Load(uint4(uint3(arg_1, arg_2), arg_3));
diff --git a/test/tint/builtins/gen/var/textureLoad/96efd5.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/96efd5.wgsl.expected.glsl
index 1949301..6503ab3 100644
--- a/test/tint/builtins/gen/var/textureLoad/96efd5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/96efd5.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 uniform highp sampler2DArray arg_0_1;
 void textureLoad_96efd5() {
-  uvec2 arg_1 = uvec2(0u);
+  uvec2 arg_1 = uvec2(1u);
   uint arg_2 = 1u;
   uint arg_3 = 1u;
   vec4 res = texelFetch(arg_0_1, ivec3(uvec3(arg_1, arg_2)), int(arg_3));
@@ -26,7 +26,7 @@
 
 uniform highp sampler2DArray arg_0_1;
 void textureLoad_96efd5() {
-  uvec2 arg_1 = uvec2(0u);
+  uvec2 arg_1 = uvec2(1u);
   uint arg_2 = 1u;
   uint arg_3 = 1u;
   vec4 res = texelFetch(arg_0_1, ivec3(uvec3(arg_1, arg_2)), int(arg_3));
@@ -44,7 +44,7 @@
 
 uniform highp sampler2DArray arg_0_1;
 void textureLoad_96efd5() {
-  uvec2 arg_1 = uvec2(0u);
+  uvec2 arg_1 = uvec2(1u);
   uint arg_2 = 1u;
   uint arg_3 = 1u;
   vec4 res = texelFetch(arg_0_1, ivec3(uvec3(arg_1, arg_2)), int(arg_3));
diff --git a/test/tint/builtins/gen/var/textureLoad/96efd5.wgsl.expected.msl b/test/tint/builtins/gen/var/textureLoad/96efd5.wgsl.expected.msl
index 56325e3..2ab66e7 100644
--- a/test/tint/builtins/gen/var/textureLoad/96efd5.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureLoad/96efd5.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureLoad_96efd5(texture2d_array<float, access::sample> tint_symbol_1) {
-  uint2 arg_1 = uint2(0u);
+  uint2 arg_1 = uint2(1u);
   uint arg_2 = 1u;
   uint arg_3 = 1u;
   float4 res = tint_symbol_1.read(uint2(arg_1), arg_2, arg_3);
diff --git a/test/tint/builtins/gen/var/textureLoad/96efd5.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/96efd5.wgsl.expected.spvasm
index 7529e7e..296c3a2 100644
--- a/test/tint/builtins/gen/var/textureLoad/96efd5.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/96efd5.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 51
+; Bound: 52
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -41,54 +41,55 @@
          %12 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
-         %18 = OpConstantNull %v2uint
-%_ptr_Function_v2uint = OpTypePointer Function %v2uint
      %uint_1 = OpConstant %uint 1
+         %19 = OpConstantComposite %v2uint %uint_1 %uint_1
+%_ptr_Function_v2uint = OpTypePointer Function %v2uint
+         %22 = OpConstantNull %v2uint
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %24 = OpConstantNull %uint
+         %25 = OpConstantNull %uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %37 = OpTypeFunction %v4float
+         %38 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_96efd5 = OpFunction %void None %12
          %15 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2uint Function %18
-      %arg_2 = OpVariable %_ptr_Function_uint Function %24
-      %arg_3 = OpVariable %_ptr_Function_uint Function %24
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %22
+      %arg_2 = OpVariable %_ptr_Function_uint Function %25
+      %arg_3 = OpVariable %_ptr_Function_uint Function %25
         %res = OpVariable %_ptr_Function_v4float Function %5
-               OpStore %arg_1 %18
+               OpStore %arg_1 %19
                OpStore %arg_2 %uint_1
                OpStore %arg_3 %uint_1
-         %27 = OpLoad %11 %arg_0
-         %29 = OpLoad %v2uint %arg_1
-         %30 = OpCompositeExtract %uint %29 0
-         %31 = OpCompositeExtract %uint %29 1
-         %32 = OpLoad %uint %arg_2
-         %33 = OpCompositeConstruct %v3uint %30 %31 %32
-         %34 = OpLoad %uint %arg_3
-         %26 = OpImageFetch %v4float %27 %33 Lod %34
-               OpStore %res %26
+         %28 = OpLoad %11 %arg_0
+         %30 = OpLoad %v2uint %arg_1
+         %31 = OpCompositeExtract %uint %30 0
+         %32 = OpCompositeExtract %uint %30 1
+         %33 = OpLoad %uint %arg_2
+         %34 = OpCompositeConstruct %v3uint %31 %32 %33
+         %35 = OpLoad %uint %arg_3
+         %27 = OpImageFetch %v4float %28 %34 Lod %35
+               OpStore %res %27
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %37
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureLoad_96efd5
+%vertex_main_inner = OpFunction %v4float None %38
+         %40 = OpLabel
+         %41 = OpFunctionCall %void %textureLoad_96efd5
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %42 = OpLabel
-         %43 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %43
+         %43 = OpLabel
+         %44 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %44
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %46 = OpLabel
-         %47 = OpFunctionCall %void %textureLoad_96efd5
+         %47 = OpLabel
+         %48 = OpFunctionCall %void %textureLoad_96efd5
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %49 = OpLabel
-         %50 = OpFunctionCall %void %textureLoad_96efd5
+         %50 = OpLabel
+         %51 = OpFunctionCall %void %textureLoad_96efd5
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureLoad/96efd5.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/96efd5.wgsl.expected.wgsl
index 1dd4f6c..11a80a3 100644
--- a/test/tint/builtins/gen/var/textureLoad/96efd5.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/96efd5.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_2d_array<f32>;
 
 fn textureLoad_96efd5() {
-  var arg_1 = vec2<u32>();
+  var arg_1 = vec2<u32>(1u);
   var arg_2 = 1u;
   var arg_3 = 1u;
   var res : vec4<f32> = textureLoad(arg_0, arg_1, arg_2, arg_3);
diff --git a/test/tint/builtins/gen/var/textureLoad/9885b0.wgsl b/test/tint/builtins/gen/var/textureLoad/9885b0.wgsl
index 61e56bd..d762cb6 100644
--- a/test/tint/builtins/gen/var/textureLoad/9885b0.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/9885b0.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureLoad(texture: texture_2d_array<i32>, coords: vec2<u32>, array_index: u32, level: u32) -> vec4<i32>
 fn textureLoad_9885b0() {
-  var arg_1 = vec2<u32>();
+  var arg_1 = vec2<u32>(1u);
   var arg_2 = 1u;
   var arg_3 = 1u;
   var res: vec4<i32> = textureLoad(arg_0, arg_1, arg_2, arg_3);
diff --git a/test/tint/builtins/gen/var/textureLoad/9885b0.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/9885b0.wgsl.expected.dxc.hlsl
index 70b8ef5..a6ce9eb 100644
--- a/test/tint/builtins/gen/var/textureLoad/9885b0.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/9885b0.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 void textureLoad_9885b0() {
-  uint2 arg_1 = (0u).xx;
+  uint2 arg_1 = (1u).xx;
   uint arg_2 = 1u;
   uint arg_3 = 1u;
   int4 res = arg_0.Load(uint4(uint3(arg_1, arg_2), arg_3));
diff --git a/test/tint/builtins/gen/var/textureLoad/9885b0.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/9885b0.wgsl.expected.fxc.hlsl
index 70b8ef5..a6ce9eb 100644
--- a/test/tint/builtins/gen/var/textureLoad/9885b0.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/9885b0.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 void textureLoad_9885b0() {
-  uint2 arg_1 = (0u).xx;
+  uint2 arg_1 = (1u).xx;
   uint arg_2 = 1u;
   uint arg_3 = 1u;
   int4 res = arg_0.Load(uint4(uint3(arg_1, arg_2), arg_3));
diff --git a/test/tint/builtins/gen/var/textureLoad/9885b0.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/9885b0.wgsl.expected.glsl
index 6ecf66c..65bdb59 100644
--- a/test/tint/builtins/gen/var/textureLoad/9885b0.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/9885b0.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 uniform highp isampler2DArray arg_0_1;
 void textureLoad_9885b0() {
-  uvec2 arg_1 = uvec2(0u);
+  uvec2 arg_1 = uvec2(1u);
   uint arg_2 = 1u;
   uint arg_3 = 1u;
   ivec4 res = texelFetch(arg_0_1, ivec3(uvec3(arg_1, arg_2)), int(arg_3));
@@ -26,7 +26,7 @@
 
 uniform highp isampler2DArray arg_0_1;
 void textureLoad_9885b0() {
-  uvec2 arg_1 = uvec2(0u);
+  uvec2 arg_1 = uvec2(1u);
   uint arg_2 = 1u;
   uint arg_3 = 1u;
   ivec4 res = texelFetch(arg_0_1, ivec3(uvec3(arg_1, arg_2)), int(arg_3));
@@ -44,7 +44,7 @@
 
 uniform highp isampler2DArray arg_0_1;
 void textureLoad_9885b0() {
-  uvec2 arg_1 = uvec2(0u);
+  uvec2 arg_1 = uvec2(1u);
   uint arg_2 = 1u;
   uint arg_3 = 1u;
   ivec4 res = texelFetch(arg_0_1, ivec3(uvec3(arg_1, arg_2)), int(arg_3));
diff --git a/test/tint/builtins/gen/var/textureLoad/9885b0.wgsl.expected.msl b/test/tint/builtins/gen/var/textureLoad/9885b0.wgsl.expected.msl
index 2f75ea8..58b45be 100644
--- a/test/tint/builtins/gen/var/textureLoad/9885b0.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureLoad/9885b0.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureLoad_9885b0(texture2d_array<int, access::sample> tint_symbol_1) {
-  uint2 arg_1 = uint2(0u);
+  uint2 arg_1 = uint2(1u);
   uint arg_2 = 1u;
   uint arg_3 = 1u;
   int4 res = tint_symbol_1.read(uint2(arg_1), arg_2, arg_3);
diff --git a/test/tint/builtins/gen/var/textureLoad/9885b0.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/9885b0.wgsl.expected.spvasm
index 6faf53b..bae79ed 100644
--- a/test/tint/builtins/gen/var/textureLoad/9885b0.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/9885b0.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 54
+; Bound: 55
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -42,56 +42,57 @@
          %13 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
-         %19 = OpConstantNull %v2uint
-%_ptr_Function_v2uint = OpTypePointer Function %v2uint
      %uint_1 = OpConstant %uint 1
+         %20 = OpConstantComposite %v2uint %uint_1 %uint_1
+%_ptr_Function_v2uint = OpTypePointer Function %v2uint
+         %23 = OpConstantNull %v2uint
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %25 = OpConstantNull %uint
+         %26 = OpConstantNull %uint
       %v4int = OpTypeVector %int 4
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %39 = OpConstantNull %v4int
-         %40 = OpTypeFunction %v4float
+         %40 = OpConstantNull %v4int
+         %41 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_9885b0 = OpFunction %void None %13
          %16 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2uint Function %19
-      %arg_2 = OpVariable %_ptr_Function_uint Function %25
-      %arg_3 = OpVariable %_ptr_Function_uint Function %25
-        %res = OpVariable %_ptr_Function_v4int Function %39
-               OpStore %arg_1 %19
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %23
+      %arg_2 = OpVariable %_ptr_Function_uint Function %26
+      %arg_3 = OpVariable %_ptr_Function_uint Function %26
+        %res = OpVariable %_ptr_Function_v4int Function %40
+               OpStore %arg_1 %20
                OpStore %arg_2 %uint_1
                OpStore %arg_3 %uint_1
-         %29 = OpLoad %11 %arg_0
-         %31 = OpLoad %v2uint %arg_1
-         %32 = OpCompositeExtract %uint %31 0
-         %33 = OpCompositeExtract %uint %31 1
-         %34 = OpLoad %uint %arg_2
-         %35 = OpCompositeConstruct %v3uint %32 %33 %34
-         %36 = OpLoad %uint %arg_3
-         %27 = OpImageFetch %v4int %29 %35 Lod %36
-               OpStore %res %27
+         %30 = OpLoad %11 %arg_0
+         %32 = OpLoad %v2uint %arg_1
+         %33 = OpCompositeExtract %uint %32 0
+         %34 = OpCompositeExtract %uint %32 1
+         %35 = OpLoad %uint %arg_2
+         %36 = OpCompositeConstruct %v3uint %33 %34 %35
+         %37 = OpLoad %uint %arg_3
+         %28 = OpImageFetch %v4int %30 %36 Lod %37
+               OpStore %res %28
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %40
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureLoad_9885b0
+%vertex_main_inner = OpFunction %v4float None %41
+         %43 = OpLabel
+         %44 = OpFunctionCall %void %textureLoad_9885b0
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %45 = OpLabel
-         %46 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %46
+         %46 = OpLabel
+         %47 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %47
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %49 = OpLabel
-         %50 = OpFunctionCall %void %textureLoad_9885b0
+         %50 = OpLabel
+         %51 = OpFunctionCall %void %textureLoad_9885b0
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %52 = OpLabel
-         %53 = OpFunctionCall %void %textureLoad_9885b0
+         %53 = OpLabel
+         %54 = OpFunctionCall %void %textureLoad_9885b0
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureLoad/9885b0.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/9885b0.wgsl.expected.wgsl
index 0ac0400..a7fa0f5 100644
--- a/test/tint/builtins/gen/var/textureLoad/9885b0.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/9885b0.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_2d_array<i32>;
 
 fn textureLoad_9885b0() {
-  var arg_1 = vec2<u32>();
+  var arg_1 = vec2<u32>(1u);
   var arg_2 = 1u;
   var arg_3 = 1u;
   var res : vec4<i32> = textureLoad(arg_0, arg_1, arg_2, arg_3);
diff --git a/test/tint/builtins/gen/var/textureLoad/9aa733.wgsl b/test/tint/builtins/gen/var/textureLoad/9aa733.wgsl
index 8e27058..9311ce9 100644
--- a/test/tint/builtins/gen/var/textureLoad/9aa733.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/9aa733.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureLoad(texture: texture_2d<i32>, coords: vec2<u32>, level: i32) -> vec4<i32>
 fn textureLoad_9aa733() {
-  var arg_1 = vec2<u32>();
+  var arg_1 = vec2<u32>(1u);
   var arg_2 = 1i;
   var res: vec4<i32> = textureLoad(arg_0, arg_1, arg_2);
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/9aa733.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/9aa733.wgsl.expected.dxc.hlsl
index 34e1a1c..25e382b 100644
--- a/test/tint/builtins/gen/var/textureLoad/9aa733.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/9aa733.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 Texture2D<int4> arg_0 : register(t0, space1);
 
 void textureLoad_9aa733() {
-  uint2 arg_1 = (0u).xx;
+  uint2 arg_1 = (1u).xx;
   int arg_2 = 1;
   int4 res = arg_0.Load(uint3(arg_1, uint(arg_2)));
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/9aa733.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/9aa733.wgsl.expected.fxc.hlsl
index 34e1a1c..25e382b 100644
--- a/test/tint/builtins/gen/var/textureLoad/9aa733.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/9aa733.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 Texture2D<int4> arg_0 : register(t0, space1);
 
 void textureLoad_9aa733() {
-  uint2 arg_1 = (0u).xx;
+  uint2 arg_1 = (1u).xx;
   int arg_2 = 1;
   int4 res = arg_0.Load(uint3(arg_1, uint(arg_2)));
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/9aa733.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/9aa733.wgsl.expected.glsl
index cec5f4b..1681f07 100644
--- a/test/tint/builtins/gen/var/textureLoad/9aa733.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/9aa733.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 uniform highp isampler2D arg_0_1;
 void textureLoad_9aa733() {
-  uvec2 arg_1 = uvec2(0u);
+  uvec2 arg_1 = uvec2(1u);
   int arg_2 = 1;
   ivec4 res = texelFetch(arg_0_1, ivec2(arg_1), arg_2);
 }
@@ -25,7 +25,7 @@
 
 uniform highp isampler2D arg_0_1;
 void textureLoad_9aa733() {
-  uvec2 arg_1 = uvec2(0u);
+  uvec2 arg_1 = uvec2(1u);
   int arg_2 = 1;
   ivec4 res = texelFetch(arg_0_1, ivec2(arg_1), arg_2);
 }
@@ -42,7 +42,7 @@
 
 uniform highp isampler2D arg_0_1;
 void textureLoad_9aa733() {
-  uvec2 arg_1 = uvec2(0u);
+  uvec2 arg_1 = uvec2(1u);
   int arg_2 = 1;
   ivec4 res = texelFetch(arg_0_1, ivec2(arg_1), arg_2);
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/9aa733.wgsl.expected.msl b/test/tint/builtins/gen/var/textureLoad/9aa733.wgsl.expected.msl
index 31eb5f5..4afc04a 100644
--- a/test/tint/builtins/gen/var/textureLoad/9aa733.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureLoad/9aa733.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureLoad_9aa733(texture2d<int, access::sample> tint_symbol_1) {
-  uint2 arg_1 = uint2(0u);
+  uint2 arg_1 = uint2(1u);
   int arg_2 = 1;
   int4 res = tint_symbol_1.read(uint2(arg_1), arg_2);
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/9aa733.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/9aa733.wgsl.expected.spvasm
index 1c67aef..4e86f2f 100644
--- a/test/tint/builtins/gen/var/textureLoad/9aa733.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/9aa733.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 48
+; Bound: 50
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -41,49 +41,51 @@
          %13 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
-         %19 = OpConstantNull %v2uint
+     %uint_1 = OpConstant %uint 1
+         %20 = OpConstantComposite %v2uint %uint_1 %uint_1
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
+         %23 = OpConstantNull %v2uint
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
-         %25 = OpConstantNull %int
+         %27 = OpConstantNull %int
       %v4int = OpTypeVector %int 4
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %33 = OpConstantNull %v4int
-         %34 = OpTypeFunction %v4float
+         %35 = OpConstantNull %v4int
+         %36 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_9aa733 = OpFunction %void None %13
          %16 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2uint Function %19
-      %arg_2 = OpVariable %_ptr_Function_int Function %25
-        %res = OpVariable %_ptr_Function_v4int Function %33
-               OpStore %arg_1 %19
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %23
+      %arg_2 = OpVariable %_ptr_Function_int Function %27
+        %res = OpVariable %_ptr_Function_v4int Function %35
+               OpStore %arg_1 %20
                OpStore %arg_2 %int_1
-         %28 = OpLoad %11 %arg_0
-         %29 = OpLoad %v2uint %arg_1
-         %30 = OpLoad %int %arg_2
-         %26 = OpImageFetch %v4int %28 %29 Lod %30
-               OpStore %res %26
+         %30 = OpLoad %11 %arg_0
+         %31 = OpLoad %v2uint %arg_1
+         %32 = OpLoad %int %arg_2
+         %28 = OpImageFetch %v4int %30 %31 Lod %32
+               OpStore %res %28
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %34
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureLoad_9aa733
+%vertex_main_inner = OpFunction %v4float None %36
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %textureLoad_9aa733
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %40
+         %41 = OpLabel
+         %42 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %42
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %43 = OpLabel
-         %44 = OpFunctionCall %void %textureLoad_9aa733
+         %45 = OpLabel
+         %46 = OpFunctionCall %void %textureLoad_9aa733
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %46 = OpLabel
-         %47 = OpFunctionCall %void %textureLoad_9aa733
+         %48 = OpLabel
+         %49 = OpFunctionCall %void %textureLoad_9aa733
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureLoad/9aa733.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/9aa733.wgsl.expected.wgsl
index 2b8e1a8..26e1377 100644
--- a/test/tint/builtins/gen/var/textureLoad/9aa733.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/9aa733.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_2d<i32>;
 
 fn textureLoad_9aa733() {
-  var arg_1 = vec2<u32>();
+  var arg_1 = vec2<u32>(1u);
   var arg_2 = 1i;
   var res : vec4<i32> = textureLoad(arg_0, arg_1, arg_2);
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/9b2667.wgsl b/test/tint/builtins/gen/var/textureLoad/9b2667.wgsl
index d9e6797..f471aef 100644
--- a/test/tint/builtins/gen/var/textureLoad/9b2667.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/9b2667.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureLoad(texture: texture_depth_2d_array, coords: vec2<i32>, array_index: i32, level: i32) -> f32
 fn textureLoad_9b2667() {
-  var arg_1 = vec2<i32>();
+  var arg_1 = vec2<i32>(1i);
   var arg_2 = 1i;
   var arg_3 = 1i;
   var res: f32 = textureLoad(arg_0, arg_1, arg_2, arg_3);
diff --git a/test/tint/builtins/gen/var/textureLoad/9b2667.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/9b2667.wgsl.expected.dxc.hlsl
index e2a1981..9376a83 100644
--- a/test/tint/builtins/gen/var/textureLoad/9b2667.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/9b2667.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DArray arg_0 : register(t0, space1);
 
 void textureLoad_9b2667() {
-  int2 arg_1 = (0).xx;
+  int2 arg_1 = (1).xx;
   int arg_2 = 1;
   int arg_3 = 1;
   float res = arg_0.Load(int4(int3(arg_1, arg_2), arg_3)).x;
diff --git a/test/tint/builtins/gen/var/textureLoad/9b2667.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/9b2667.wgsl.expected.fxc.hlsl
index e2a1981..9376a83 100644
--- a/test/tint/builtins/gen/var/textureLoad/9b2667.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/9b2667.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DArray arg_0 : register(t0, space1);
 
 void textureLoad_9b2667() {
-  int2 arg_1 = (0).xx;
+  int2 arg_1 = (1).xx;
   int arg_2 = 1;
   int arg_3 = 1;
   float res = arg_0.Load(int4(int3(arg_1, arg_2), arg_3)).x;
diff --git a/test/tint/builtins/gen/var/textureLoad/9b2667.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/9b2667.wgsl.expected.glsl
index b234f6f..b488ee0 100644
--- a/test/tint/builtins/gen/var/textureLoad/9b2667.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/9b2667.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 uniform highp sampler2DArray arg_0_1;
 void textureLoad_9b2667() {
-  ivec2 arg_1 = ivec2(0);
+  ivec2 arg_1 = ivec2(1);
   int arg_2 = 1;
   int arg_3 = 1;
   float res = texelFetch(arg_0_1, ivec3(arg_1, arg_2), arg_3).x;
@@ -26,7 +26,7 @@
 
 uniform highp sampler2DArray arg_0_1;
 void textureLoad_9b2667() {
-  ivec2 arg_1 = ivec2(0);
+  ivec2 arg_1 = ivec2(1);
   int arg_2 = 1;
   int arg_3 = 1;
   float res = texelFetch(arg_0_1, ivec3(arg_1, arg_2), arg_3).x;
@@ -44,7 +44,7 @@
 
 uniform highp sampler2DArray arg_0_1;
 void textureLoad_9b2667() {
-  ivec2 arg_1 = ivec2(0);
+  ivec2 arg_1 = ivec2(1);
   int arg_2 = 1;
   int arg_3 = 1;
   float res = texelFetch(arg_0_1, ivec3(arg_1, arg_2), arg_3).x;
diff --git a/test/tint/builtins/gen/var/textureLoad/9b2667.wgsl.expected.msl b/test/tint/builtins/gen/var/textureLoad/9b2667.wgsl.expected.msl
index 6db3ff1..8208bb5 100644
--- a/test/tint/builtins/gen/var/textureLoad/9b2667.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureLoad/9b2667.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureLoad_9b2667(depth2d_array<float, access::sample> tint_symbol_1) {
-  int2 arg_1 = int2(0);
+  int2 arg_1 = int2(1);
   int arg_2 = 1;
   int arg_3 = 1;
   float res = tint_symbol_1.read(uint2(arg_1), arg_2, arg_3);
diff --git a/test/tint/builtins/gen/var/textureLoad/9b2667.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/9b2667.wgsl.expected.spvasm
index 7ceb14a..f42aff6 100644
--- a/test/tint/builtins/gen/var/textureLoad/9b2667.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/9b2667.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 52
+; Bound: 53
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -41,55 +41,56 @@
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
-         %18 = OpConstantNull %v2int
-%_ptr_Function_v2int = OpTypePointer Function %v2int
       %int_1 = OpConstant %int 1
+         %19 = OpConstantComposite %v2int %int_1 %int_1
+%_ptr_Function_v2int = OpTypePointer Function %v2int
+         %22 = OpConstantNull %v2int
 %_ptr_Function_int = OpTypePointer Function %int
-         %24 = OpConstantNull %int
+         %25 = OpConstantNull %int
       %v3int = OpTypeVector %int 3
 %_ptr_Function_float = OpTypePointer Function %float
-         %38 = OpTypeFunction %v4float
+         %39 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_9b2667 = OpFunction %void None %12
          %15 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2int Function %18
-      %arg_2 = OpVariable %_ptr_Function_int Function %24
-      %arg_3 = OpVariable %_ptr_Function_int Function %24
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %22
+      %arg_2 = OpVariable %_ptr_Function_int Function %25
+      %arg_3 = OpVariable %_ptr_Function_int Function %25
         %res = OpVariable %_ptr_Function_float Function %8
-               OpStore %arg_1 %18
+               OpStore %arg_1 %19
                OpStore %arg_2 %int_1
                OpStore %arg_3 %int_1
-         %28 = OpLoad %11 %arg_0
-         %30 = OpLoad %v2int %arg_1
-         %31 = OpCompositeExtract %int %30 0
-         %32 = OpCompositeExtract %int %30 1
-         %33 = OpLoad %int %arg_2
-         %34 = OpCompositeConstruct %v3int %31 %32 %33
-         %35 = OpLoad %int %arg_3
-         %27 = OpImageFetch %v4float %28 %34 Lod %35
-         %26 = OpCompositeExtract %float %27 0
-               OpStore %res %26
+         %29 = OpLoad %11 %arg_0
+         %31 = OpLoad %v2int %arg_1
+         %32 = OpCompositeExtract %int %31 0
+         %33 = OpCompositeExtract %int %31 1
+         %34 = OpLoad %int %arg_2
+         %35 = OpCompositeConstruct %v3int %32 %33 %34
+         %36 = OpLoad %int %arg_3
+         %28 = OpImageFetch %v4float %29 %35 Lod %36
+         %27 = OpCompositeExtract %float %28 0
+               OpStore %res %27
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %38
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureLoad_9b2667
+%vertex_main_inner = OpFunction %v4float None %39
+         %41 = OpLabel
+         %42 = OpFunctionCall %void %textureLoad_9b2667
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %43 = OpLabel
-         %44 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %44
+         %44 = OpLabel
+         %45 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %45
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %47 = OpLabel
-         %48 = OpFunctionCall %void %textureLoad_9b2667
+         %48 = OpLabel
+         %49 = OpFunctionCall %void %textureLoad_9b2667
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %50 = OpLabel
-         %51 = OpFunctionCall %void %textureLoad_9b2667
+         %51 = OpLabel
+         %52 = OpFunctionCall %void %textureLoad_9b2667
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureLoad/9b2667.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/9b2667.wgsl.expected.wgsl
index 4c86d49..9da65be 100644
--- a/test/tint/builtins/gen/var/textureLoad/9b2667.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/9b2667.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_depth_2d_array;
 
 fn textureLoad_9b2667() {
-  var arg_1 = vec2<i32>();
+  var arg_1 = vec2<i32>(1i);
   var arg_2 = 1i;
   var arg_3 = 1i;
   var res : f32 = textureLoad(arg_0, arg_1, arg_2, arg_3);
diff --git a/test/tint/builtins/gen/var/textureLoad/9d70e9.wgsl b/test/tint/builtins/gen/var/textureLoad/9d70e9.wgsl
index 530c1e1..b610e53 100644
--- a/test/tint/builtins/gen/var/textureLoad/9d70e9.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/9d70e9.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureLoad(texture: texture_2d_array<i32>, coords: vec2<i32>, array_index: i32, level: u32) -> vec4<i32>
 fn textureLoad_9d70e9() {
-  var arg_1 = vec2<i32>();
+  var arg_1 = vec2<i32>(1i);
   var arg_2 = 1i;
   var arg_3 = 1u;
   var res: vec4<i32> = textureLoad(arg_0, arg_1, arg_2, arg_3);
diff --git a/test/tint/builtins/gen/var/textureLoad/9d70e9.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/9d70e9.wgsl.expected.dxc.hlsl
index 3a3134e..e7d5bc4 100644
--- a/test/tint/builtins/gen/var/textureLoad/9d70e9.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/9d70e9.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 void textureLoad_9d70e9() {
-  int2 arg_1 = (0).xx;
+  int2 arg_1 = (1).xx;
   int arg_2 = 1;
   uint arg_3 = 1u;
   int4 res = arg_0.Load(int4(int3(arg_1, arg_2), int(arg_3)));
diff --git a/test/tint/builtins/gen/var/textureLoad/9d70e9.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/9d70e9.wgsl.expected.fxc.hlsl
index 3a3134e..e7d5bc4 100644
--- a/test/tint/builtins/gen/var/textureLoad/9d70e9.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/9d70e9.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 void textureLoad_9d70e9() {
-  int2 arg_1 = (0).xx;
+  int2 arg_1 = (1).xx;
   int arg_2 = 1;
   uint arg_3 = 1u;
   int4 res = arg_0.Load(int4(int3(arg_1, arg_2), int(arg_3)));
diff --git a/test/tint/builtins/gen/var/textureLoad/9d70e9.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/9d70e9.wgsl.expected.glsl
index 65a8f74..d3f7231 100644
--- a/test/tint/builtins/gen/var/textureLoad/9d70e9.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/9d70e9.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 uniform highp isampler2DArray arg_0_1;
 void textureLoad_9d70e9() {
-  ivec2 arg_1 = ivec2(0);
+  ivec2 arg_1 = ivec2(1);
   int arg_2 = 1;
   uint arg_3 = 1u;
   ivec4 res = texelFetch(arg_0_1, ivec3(arg_1, arg_2), int(arg_3));
@@ -26,7 +26,7 @@
 
 uniform highp isampler2DArray arg_0_1;
 void textureLoad_9d70e9() {
-  ivec2 arg_1 = ivec2(0);
+  ivec2 arg_1 = ivec2(1);
   int arg_2 = 1;
   uint arg_3 = 1u;
   ivec4 res = texelFetch(arg_0_1, ivec3(arg_1, arg_2), int(arg_3));
@@ -44,7 +44,7 @@
 
 uniform highp isampler2DArray arg_0_1;
 void textureLoad_9d70e9() {
-  ivec2 arg_1 = ivec2(0);
+  ivec2 arg_1 = ivec2(1);
   int arg_2 = 1;
   uint arg_3 = 1u;
   ivec4 res = texelFetch(arg_0_1, ivec3(arg_1, arg_2), int(arg_3));
diff --git a/test/tint/builtins/gen/var/textureLoad/9d70e9.wgsl.expected.msl b/test/tint/builtins/gen/var/textureLoad/9d70e9.wgsl.expected.msl
index 0bbe65d..f374faa 100644
--- a/test/tint/builtins/gen/var/textureLoad/9d70e9.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureLoad/9d70e9.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureLoad_9d70e9(texture2d_array<int, access::sample> tint_symbol_1) {
-  int2 arg_1 = int2(0);
+  int2 arg_1 = int2(1);
   int arg_2 = 1;
   uint arg_3 = 1u;
   int4 res = tint_symbol_1.read(uint2(arg_1), arg_2, arg_3);
diff --git a/test/tint/builtins/gen/var/textureLoad/9d70e9.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/9d70e9.wgsl.expected.spvasm
index d0c1157..dcd5718 100644
--- a/test/tint/builtins/gen/var/textureLoad/9d70e9.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/9d70e9.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 57
+; Bound: 58
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -41,60 +41,61 @@
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
       %v2int = OpTypeVector %int 2
-         %18 = OpConstantNull %v2int
-%_ptr_Function_v2int = OpTypePointer Function %v2int
       %int_1 = OpConstant %int 1
+         %19 = OpConstantComposite %v2int %int_1 %int_1
+%_ptr_Function_v2int = OpTypePointer Function %v2int
+         %22 = OpConstantNull %v2int
 %_ptr_Function_int = OpTypePointer Function %int
-         %24 = OpConstantNull %int
+         %25 = OpConstantNull %int
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %29 = OpConstantNull %uint
+         %30 = OpConstantNull %uint
       %v4int = OpTypeVector %int 4
       %v3int = OpTypeVector %int 3
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %42 = OpConstantNull %v4int
-         %43 = OpTypeFunction %v4float
+         %43 = OpConstantNull %v4int
+         %44 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_9d70e9 = OpFunction %void None %13
          %16 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2int Function %18
-      %arg_2 = OpVariable %_ptr_Function_int Function %24
-      %arg_3 = OpVariable %_ptr_Function_uint Function %29
-        %res = OpVariable %_ptr_Function_v4int Function %42
-               OpStore %arg_1 %18
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %22
+      %arg_2 = OpVariable %_ptr_Function_int Function %25
+      %arg_3 = OpVariable %_ptr_Function_uint Function %30
+        %res = OpVariable %_ptr_Function_v4int Function %43
+               OpStore %arg_1 %19
                OpStore %arg_2 %int_1
                OpStore %arg_3 %uint_1
-         %32 = OpLoad %11 %arg_0
-         %34 = OpLoad %v2int %arg_1
-         %35 = OpCompositeExtract %int %34 0
-         %36 = OpCompositeExtract %int %34 1
-         %37 = OpLoad %int %arg_2
-         %38 = OpCompositeConstruct %v3int %35 %36 %37
-         %39 = OpLoad %uint %arg_3
-         %30 = OpImageFetch %v4int %32 %38 Lod %39
-               OpStore %res %30
+         %33 = OpLoad %11 %arg_0
+         %35 = OpLoad %v2int %arg_1
+         %36 = OpCompositeExtract %int %35 0
+         %37 = OpCompositeExtract %int %35 1
+         %38 = OpLoad %int %arg_2
+         %39 = OpCompositeConstruct %v3int %36 %37 %38
+         %40 = OpLoad %uint %arg_3
+         %31 = OpImageFetch %v4int %33 %39 Lod %40
+               OpStore %res %31
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %43
-         %45 = OpLabel
-         %46 = OpFunctionCall %void %textureLoad_9d70e9
+%vertex_main_inner = OpFunction %v4float None %44
+         %46 = OpLabel
+         %47 = OpFunctionCall %void %textureLoad_9d70e9
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %48 = OpLabel
-         %49 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %49
+         %49 = OpLabel
+         %50 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %50
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %52 = OpLabel
-         %53 = OpFunctionCall %void %textureLoad_9d70e9
+         %53 = OpLabel
+         %54 = OpFunctionCall %void %textureLoad_9d70e9
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %55 = OpLabel
-         %56 = OpFunctionCall %void %textureLoad_9d70e9
+         %56 = OpLabel
+         %57 = OpFunctionCall %void %textureLoad_9d70e9
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureLoad/9d70e9.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/9d70e9.wgsl.expected.wgsl
index 6732768..ea77eb9 100644
--- a/test/tint/builtins/gen/var/textureLoad/9d70e9.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/9d70e9.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_2d_array<i32>;
 
 fn textureLoad_9d70e9() {
-  var arg_1 = vec2<i32>();
+  var arg_1 = vec2<i32>(1i);
   var arg_2 = 1i;
   var arg_3 = 1u;
   var res : vec4<i32> = textureLoad(arg_0, arg_1, arg_2, arg_3);
diff --git a/test/tint/builtins/gen/var/textureLoad/9ed19e.wgsl b/test/tint/builtins/gen/var/textureLoad/9ed19e.wgsl
index 48c2b12..9db0b27 100644
--- a/test/tint/builtins/gen/var/textureLoad/9ed19e.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/9ed19e.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureLoad(texture: texture_depth_2d, coords: vec2<u32>, level: u32) -> f32
 fn textureLoad_9ed19e() {
-  var arg_1 = vec2<u32>();
+  var arg_1 = vec2<u32>(1u);
   var arg_2 = 1u;
   var res: f32 = textureLoad(arg_0, arg_1, arg_2);
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/9ed19e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/9ed19e.wgsl.expected.dxc.hlsl
index 90bb9c3..37dbf5f 100644
--- a/test/tint/builtins/gen/var/textureLoad/9ed19e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/9ed19e.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 Texture2D arg_0 : register(t0, space1);
 
 void textureLoad_9ed19e() {
-  uint2 arg_1 = (0u).xx;
+  uint2 arg_1 = (1u).xx;
   uint arg_2 = 1u;
   float res = arg_0.Load(uint3(arg_1, arg_2)).x;
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/9ed19e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/9ed19e.wgsl.expected.fxc.hlsl
index 90bb9c3..37dbf5f 100644
--- a/test/tint/builtins/gen/var/textureLoad/9ed19e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/9ed19e.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 Texture2D arg_0 : register(t0, space1);
 
 void textureLoad_9ed19e() {
-  uint2 arg_1 = (0u).xx;
+  uint2 arg_1 = (1u).xx;
   uint arg_2 = 1u;
   float res = arg_0.Load(uint3(arg_1, arg_2)).x;
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/9ed19e.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/9ed19e.wgsl.expected.glsl
index 43575c6..6cb2a0e 100644
--- a/test/tint/builtins/gen/var/textureLoad/9ed19e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/9ed19e.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 uniform highp sampler2D arg_0_1;
 void textureLoad_9ed19e() {
-  uvec2 arg_1 = uvec2(0u);
+  uvec2 arg_1 = uvec2(1u);
   uint arg_2 = 1u;
   float res = texelFetch(arg_0_1, ivec2(arg_1), int(arg_2)).x;
 }
@@ -25,7 +25,7 @@
 
 uniform highp sampler2D arg_0_1;
 void textureLoad_9ed19e() {
-  uvec2 arg_1 = uvec2(0u);
+  uvec2 arg_1 = uvec2(1u);
   uint arg_2 = 1u;
   float res = texelFetch(arg_0_1, ivec2(arg_1), int(arg_2)).x;
 }
@@ -42,7 +42,7 @@
 
 uniform highp sampler2D arg_0_1;
 void textureLoad_9ed19e() {
-  uvec2 arg_1 = uvec2(0u);
+  uvec2 arg_1 = uvec2(1u);
   uint arg_2 = 1u;
   float res = texelFetch(arg_0_1, ivec2(arg_1), int(arg_2)).x;
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/9ed19e.wgsl.expected.msl b/test/tint/builtins/gen/var/textureLoad/9ed19e.wgsl.expected.msl
index e85b151..cea169f 100644
--- a/test/tint/builtins/gen/var/textureLoad/9ed19e.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureLoad/9ed19e.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureLoad_9ed19e(depth2d<float, access::sample> tint_symbol_1) {
-  uint2 arg_1 = uint2(0u);
+  uint2 arg_1 = uint2(1u);
   uint arg_2 = 1u;
   float res = tint_symbol_1.read(uint2(arg_1), arg_2);
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/9ed19e.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/9ed19e.wgsl.expected.spvasm
index aa66bcb..3e84bf3 100644
--- a/test/tint/builtins/gen/var/textureLoad/9ed19e.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/9ed19e.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 46
+; Bound: 47
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -40,48 +40,49 @@
          %12 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
-         %18 = OpConstantNull %v2uint
-%_ptr_Function_v2uint = OpTypePointer Function %v2uint
      %uint_1 = OpConstant %uint 1
+         %19 = OpConstantComposite %v2uint %uint_1 %uint_1
+%_ptr_Function_v2uint = OpTypePointer Function %v2uint
+         %22 = OpConstantNull %v2uint
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %24 = OpConstantNull %uint
+         %25 = OpConstantNull %uint
 %_ptr_Function_float = OpTypePointer Function %float
-         %32 = OpTypeFunction %v4float
+         %33 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_9ed19e = OpFunction %void None %12
          %15 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2uint Function %18
-      %arg_2 = OpVariable %_ptr_Function_uint Function %24
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %22
+      %arg_2 = OpVariable %_ptr_Function_uint Function %25
         %res = OpVariable %_ptr_Function_float Function %8
-               OpStore %arg_1 %18
+               OpStore %arg_1 %19
                OpStore %arg_2 %uint_1
-         %27 = OpLoad %11 %arg_0
-         %28 = OpLoad %v2uint %arg_1
-         %29 = OpLoad %uint %arg_2
-         %26 = OpImageFetch %v4float %27 %28 Lod %29
-         %25 = OpCompositeExtract %float %26 0
-               OpStore %res %25
+         %28 = OpLoad %11 %arg_0
+         %29 = OpLoad %v2uint %arg_1
+         %30 = OpLoad %uint %arg_2
+         %27 = OpImageFetch %v4float %28 %29 Lod %30
+         %26 = OpCompositeExtract %float %27 0
+               OpStore %res %26
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %32
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureLoad_9ed19e
+%vertex_main_inner = OpFunction %v4float None %33
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureLoad_9ed19e
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %37 = OpLabel
-         %38 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %38
+         %38 = OpLabel
+         %39 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %39
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureLoad_9ed19e
+         %42 = OpLabel
+         %43 = OpFunctionCall %void %textureLoad_9ed19e
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %44 = OpLabel
-         %45 = OpFunctionCall %void %textureLoad_9ed19e
+         %45 = OpLabel
+         %46 = OpFunctionCall %void %textureLoad_9ed19e
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureLoad/9ed19e.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/9ed19e.wgsl.expected.wgsl
index b50d5ff..3a370c0 100644
--- a/test/tint/builtins/gen/var/textureLoad/9ed19e.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/9ed19e.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_depth_2d;
 
 fn textureLoad_9ed19e() {
-  var arg_1 = vec2<u32>();
+  var arg_1 = vec2<u32>(1u);
   var arg_2 = 1u;
   var res : f32 = textureLoad(arg_0, arg_1, arg_2);
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/9fbfd9.wgsl b/test/tint/builtins/gen/var/textureLoad/9fbfd9.wgsl
index 02530d2..b58b2f9 100644
--- a/test/tint/builtins/gen/var/textureLoad/9fbfd9.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/9fbfd9.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureLoad(texture: texture_2d_array<i32>, coords: vec2<i32>, array_index: u32, level: u32) -> vec4<i32>
 fn textureLoad_9fbfd9() {
-  var arg_1 = vec2<i32>();
+  var arg_1 = vec2<i32>(1i);
   var arg_2 = 1u;
   var arg_3 = 1u;
   var res: vec4<i32> = textureLoad(arg_0, arg_1, arg_2, arg_3);
diff --git a/test/tint/builtins/gen/var/textureLoad/9fbfd9.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/9fbfd9.wgsl.expected.dxc.hlsl
index 6878a77..d289237 100644
--- a/test/tint/builtins/gen/var/textureLoad/9fbfd9.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/9fbfd9.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 void textureLoad_9fbfd9() {
-  int2 arg_1 = (0).xx;
+  int2 arg_1 = (1).xx;
   uint arg_2 = 1u;
   uint arg_3 = 1u;
   int4 res = arg_0.Load(int4(int3(arg_1, int(arg_2)), int(arg_3)));
diff --git a/test/tint/builtins/gen/var/textureLoad/9fbfd9.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/9fbfd9.wgsl.expected.fxc.hlsl
index 6878a77..d289237 100644
--- a/test/tint/builtins/gen/var/textureLoad/9fbfd9.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/9fbfd9.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 void textureLoad_9fbfd9() {
-  int2 arg_1 = (0).xx;
+  int2 arg_1 = (1).xx;
   uint arg_2 = 1u;
   uint arg_3 = 1u;
   int4 res = arg_0.Load(int4(int3(arg_1, int(arg_2)), int(arg_3)));
diff --git a/test/tint/builtins/gen/var/textureLoad/9fbfd9.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/9fbfd9.wgsl.expected.glsl
index 805dfe5..e5225ef 100644
--- a/test/tint/builtins/gen/var/textureLoad/9fbfd9.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/9fbfd9.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 uniform highp isampler2DArray arg_0_1;
 void textureLoad_9fbfd9() {
-  ivec2 arg_1 = ivec2(0);
+  ivec2 arg_1 = ivec2(1);
   uint arg_2 = 1u;
   uint arg_3 = 1u;
   ivec4 res = texelFetch(arg_0_1, ivec3(arg_1, int(arg_2)), int(arg_3));
@@ -26,7 +26,7 @@
 
 uniform highp isampler2DArray arg_0_1;
 void textureLoad_9fbfd9() {
-  ivec2 arg_1 = ivec2(0);
+  ivec2 arg_1 = ivec2(1);
   uint arg_2 = 1u;
   uint arg_3 = 1u;
   ivec4 res = texelFetch(arg_0_1, ivec3(arg_1, int(arg_2)), int(arg_3));
@@ -44,7 +44,7 @@
 
 uniform highp isampler2DArray arg_0_1;
 void textureLoad_9fbfd9() {
-  ivec2 arg_1 = ivec2(0);
+  ivec2 arg_1 = ivec2(1);
   uint arg_2 = 1u;
   uint arg_3 = 1u;
   ivec4 res = texelFetch(arg_0_1, ivec3(arg_1, int(arg_2)), int(arg_3));
diff --git a/test/tint/builtins/gen/var/textureLoad/9fbfd9.wgsl.expected.msl b/test/tint/builtins/gen/var/textureLoad/9fbfd9.wgsl.expected.msl
index 89526cc..e51e7d4 100644
--- a/test/tint/builtins/gen/var/textureLoad/9fbfd9.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureLoad/9fbfd9.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureLoad_9fbfd9(texture2d_array<int, access::sample> tint_symbol_1) {
-  int2 arg_1 = int2(0);
+  int2 arg_1 = int2(1);
   uint arg_2 = 1u;
   uint arg_3 = 1u;
   int4 res = tint_symbol_1.read(uint2(arg_1), arg_2, arg_3);
diff --git a/test/tint/builtins/gen/var/textureLoad/9fbfd9.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/9fbfd9.wgsl.expected.spvasm
index f5b5c54..66ff86b 100644
--- a/test/tint/builtins/gen/var/textureLoad/9fbfd9.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/9fbfd9.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 55
+; Bound: 57
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -41,58 +41,60 @@
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
       %v2int = OpTypeVector %int 2
-         %18 = OpConstantNull %v2int
+      %int_1 = OpConstant %int 1
+         %19 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v2int = OpTypePointer Function %v2int
+         %22 = OpConstantNull %v2int
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %25 = OpConstantNull %uint
+         %27 = OpConstantNull %uint
       %v4int = OpTypeVector %int 4
       %v3int = OpTypeVector %int 3
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %40 = OpConstantNull %v4int
-         %41 = OpTypeFunction %v4float
+         %42 = OpConstantNull %v4int
+         %43 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_9fbfd9 = OpFunction %void None %13
          %16 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2int Function %18
-      %arg_2 = OpVariable %_ptr_Function_uint Function %25
-      %arg_3 = OpVariable %_ptr_Function_uint Function %25
-        %res = OpVariable %_ptr_Function_v4int Function %40
-               OpStore %arg_1 %18
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %22
+      %arg_2 = OpVariable %_ptr_Function_uint Function %27
+      %arg_3 = OpVariable %_ptr_Function_uint Function %27
+        %res = OpVariable %_ptr_Function_v4int Function %42
+               OpStore %arg_1 %19
                OpStore %arg_2 %uint_1
                OpStore %arg_3 %uint_1
-         %29 = OpLoad %11 %arg_0
-         %31 = OpLoad %v2int %arg_1
-         %32 = OpCompositeExtract %int %31 0
-         %33 = OpCompositeExtract %int %31 1
-         %35 = OpLoad %uint %arg_2
-         %34 = OpBitcast %int %35
-         %36 = OpCompositeConstruct %v3int %32 %33 %34
-         %37 = OpLoad %uint %arg_3
-         %27 = OpImageFetch %v4int %29 %36 Lod %37
-               OpStore %res %27
+         %31 = OpLoad %11 %arg_0
+         %33 = OpLoad %v2int %arg_1
+         %34 = OpCompositeExtract %int %33 0
+         %35 = OpCompositeExtract %int %33 1
+         %37 = OpLoad %uint %arg_2
+         %36 = OpBitcast %int %37
+         %38 = OpCompositeConstruct %v3int %34 %35 %36
+         %39 = OpLoad %uint %arg_3
+         %29 = OpImageFetch %v4int %31 %38 Lod %39
+               OpStore %res %29
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %41
-         %43 = OpLabel
-         %44 = OpFunctionCall %void %textureLoad_9fbfd9
+%vertex_main_inner = OpFunction %v4float None %43
+         %45 = OpLabel
+         %46 = OpFunctionCall %void %textureLoad_9fbfd9
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %46 = OpLabel
-         %47 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %47
+         %48 = OpLabel
+         %49 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %49
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %50 = OpLabel
-         %51 = OpFunctionCall %void %textureLoad_9fbfd9
+         %52 = OpLabel
+         %53 = OpFunctionCall %void %textureLoad_9fbfd9
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %53 = OpLabel
-         %54 = OpFunctionCall %void %textureLoad_9fbfd9
+         %55 = OpLabel
+         %56 = OpFunctionCall %void %textureLoad_9fbfd9
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureLoad/9fbfd9.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/9fbfd9.wgsl.expected.wgsl
index 17e197a..2296540 100644
--- a/test/tint/builtins/gen/var/textureLoad/9fbfd9.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/9fbfd9.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_2d_array<i32>;
 
 fn textureLoad_9fbfd9() {
-  var arg_1 = vec2<i32>();
+  var arg_1 = vec2<i32>(1i);
   var arg_2 = 1u;
   var arg_3 = 1u;
   var res : vec4<i32> = textureLoad(arg_0, arg_1, arg_2, arg_3);
diff --git a/test/tint/builtins/gen/var/textureLoad/a24be1.wgsl b/test/tint/builtins/gen/var/textureLoad/a24be1.wgsl
index db3610e..948a8bd 100644
--- a/test/tint/builtins/gen/var/textureLoad/a24be1.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/a24be1.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureLoad(texture: texture_2d_array<u32>, coords: vec2<u32>, array_index: i32, level: u32) -> vec4<u32>
 fn textureLoad_a24be1() {
-  var arg_1 = vec2<u32>();
+  var arg_1 = vec2<u32>(1u);
   var arg_2 = 1i;
   var arg_3 = 1u;
   var res: vec4<u32> = textureLoad(arg_0, arg_1, arg_2, arg_3);
diff --git a/test/tint/builtins/gen/var/textureLoad/a24be1.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/a24be1.wgsl.expected.dxc.hlsl
index e5c26fb..077a798 100644
--- a/test/tint/builtins/gen/var/textureLoad/a24be1.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/a24be1.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 void textureLoad_a24be1() {
-  uint2 arg_1 = (0u).xx;
+  uint2 arg_1 = (1u).xx;
   int arg_2 = 1;
   uint arg_3 = 1u;
   uint4 res = arg_0.Load(uint4(uint3(arg_1, uint(arg_2)), arg_3));
diff --git a/test/tint/builtins/gen/var/textureLoad/a24be1.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/a24be1.wgsl.expected.fxc.hlsl
index e5c26fb..077a798 100644
--- a/test/tint/builtins/gen/var/textureLoad/a24be1.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/a24be1.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 void textureLoad_a24be1() {
-  uint2 arg_1 = (0u).xx;
+  uint2 arg_1 = (1u).xx;
   int arg_2 = 1;
   uint arg_3 = 1u;
   uint4 res = arg_0.Load(uint4(uint3(arg_1, uint(arg_2)), arg_3));
diff --git a/test/tint/builtins/gen/var/textureLoad/a24be1.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/a24be1.wgsl.expected.glsl
index 6f0bc3f..1fcbb32 100644
--- a/test/tint/builtins/gen/var/textureLoad/a24be1.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/a24be1.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 uniform highp usampler2DArray arg_0_1;
 void textureLoad_a24be1() {
-  uvec2 arg_1 = uvec2(0u);
+  uvec2 arg_1 = uvec2(1u);
   int arg_2 = 1;
   uint arg_3 = 1u;
   uvec4 res = texelFetch(arg_0_1, ivec3(uvec3(arg_1, uint(arg_2))), int(arg_3));
@@ -26,7 +26,7 @@
 
 uniform highp usampler2DArray arg_0_1;
 void textureLoad_a24be1() {
-  uvec2 arg_1 = uvec2(0u);
+  uvec2 arg_1 = uvec2(1u);
   int arg_2 = 1;
   uint arg_3 = 1u;
   uvec4 res = texelFetch(arg_0_1, ivec3(uvec3(arg_1, uint(arg_2))), int(arg_3));
@@ -44,7 +44,7 @@
 
 uniform highp usampler2DArray arg_0_1;
 void textureLoad_a24be1() {
-  uvec2 arg_1 = uvec2(0u);
+  uvec2 arg_1 = uvec2(1u);
   int arg_2 = 1;
   uint arg_3 = 1u;
   uvec4 res = texelFetch(arg_0_1, ivec3(uvec3(arg_1, uint(arg_2))), int(arg_3));
diff --git a/test/tint/builtins/gen/var/textureLoad/a24be1.wgsl.expected.msl b/test/tint/builtins/gen/var/textureLoad/a24be1.wgsl.expected.msl
index 062190a..8bceee3 100644
--- a/test/tint/builtins/gen/var/textureLoad/a24be1.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureLoad/a24be1.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureLoad_a24be1(texture2d_array<uint, access::sample> tint_symbol_1) {
-  uint2 arg_1 = uint2(0u);
+  uint2 arg_1 = uint2(1u);
   int arg_2 = 1;
   uint arg_3 = 1u;
   uint4 res = tint_symbol_1.read(uint2(arg_1), arg_2, arg_3);
diff --git a/test/tint/builtins/gen/var/textureLoad/a24be1.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/a24be1.wgsl.expected.spvasm
index 71d425b..a6228e3 100644
--- a/test/tint/builtins/gen/var/textureLoad/a24be1.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/a24be1.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 58
+; Bound: 59
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -41,61 +41,62 @@
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
      %v2uint = OpTypeVector %uint 2
-         %18 = OpConstantNull %v2uint
+     %uint_1 = OpConstant %uint 1
+         %19 = OpConstantComposite %v2uint %uint_1 %uint_1
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
+         %22 = OpConstantNull %v2uint
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
-         %25 = OpConstantNull %int
-     %uint_1 = OpConstant %uint 1
+         %27 = OpConstantNull %int
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %29 = OpConstantNull %uint
+         %30 = OpConstantNull %uint
      %v4uint = OpTypeVector %uint 4
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %43 = OpConstantNull %v4uint
-         %44 = OpTypeFunction %v4float
+         %44 = OpConstantNull %v4uint
+         %45 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_a24be1 = OpFunction %void None %13
          %16 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2uint Function %18
-      %arg_2 = OpVariable %_ptr_Function_int Function %25
-      %arg_3 = OpVariable %_ptr_Function_uint Function %29
-        %res = OpVariable %_ptr_Function_v4uint Function %43
-               OpStore %arg_1 %18
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %22
+      %arg_2 = OpVariable %_ptr_Function_int Function %27
+      %arg_3 = OpVariable %_ptr_Function_uint Function %30
+        %res = OpVariable %_ptr_Function_v4uint Function %44
+               OpStore %arg_1 %19
                OpStore %arg_2 %int_1
                OpStore %arg_3 %uint_1
-         %32 = OpLoad %11 %arg_0
-         %34 = OpLoad %v2uint %arg_1
-         %35 = OpCompositeExtract %uint %34 0
-         %36 = OpCompositeExtract %uint %34 1
-         %38 = OpLoad %int %arg_2
-         %37 = OpBitcast %uint %38
-         %39 = OpCompositeConstruct %v3uint %35 %36 %37
-         %40 = OpLoad %uint %arg_3
-         %30 = OpImageFetch %v4uint %32 %39 Lod %40
-               OpStore %res %30
+         %33 = OpLoad %11 %arg_0
+         %35 = OpLoad %v2uint %arg_1
+         %36 = OpCompositeExtract %uint %35 0
+         %37 = OpCompositeExtract %uint %35 1
+         %39 = OpLoad %int %arg_2
+         %38 = OpBitcast %uint %39
+         %40 = OpCompositeConstruct %v3uint %36 %37 %38
+         %41 = OpLoad %uint %arg_3
+         %31 = OpImageFetch %v4uint %33 %40 Lod %41
+               OpStore %res %31
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %44
-         %46 = OpLabel
-         %47 = OpFunctionCall %void %textureLoad_a24be1
+%vertex_main_inner = OpFunction %v4float None %45
+         %47 = OpLabel
+         %48 = OpFunctionCall %void %textureLoad_a24be1
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %49 = OpLabel
-         %50 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %50
+         %50 = OpLabel
+         %51 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %51
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %53 = OpLabel
-         %54 = OpFunctionCall %void %textureLoad_a24be1
+         %54 = OpLabel
+         %55 = OpFunctionCall %void %textureLoad_a24be1
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %56 = OpLabel
-         %57 = OpFunctionCall %void %textureLoad_a24be1
+         %57 = OpLabel
+         %58 = OpFunctionCall %void %textureLoad_a24be1
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureLoad/a24be1.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/a24be1.wgsl.expected.wgsl
index 024ec51..e321579 100644
--- a/test/tint/builtins/gen/var/textureLoad/a24be1.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/a24be1.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_2d_array<u32>;
 
 fn textureLoad_a24be1() {
-  var arg_1 = vec2<u32>();
+  var arg_1 = vec2<u32>(1u);
   var arg_2 = 1i;
   var arg_3 = 1u;
   var res : vec4<u32> = textureLoad(arg_0, arg_1, arg_2, arg_3);
diff --git a/test/tint/builtins/gen/var/textureLoad/a583c9.wgsl b/test/tint/builtins/gen/var/textureLoad/a583c9.wgsl
index 185b1bb..0692104 100644
--- a/test/tint/builtins/gen/var/textureLoad/a583c9.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/a583c9.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureLoad(texture: texture_multisampled_2d<f32>, coords: vec2<i32>, sample_index: i32) -> vec4<f32>
 fn textureLoad_a583c9() {
-  var arg_1 = vec2<i32>();
+  var arg_1 = vec2<i32>(1i);
   var arg_2 = 1i;
   var res: vec4<f32> = textureLoad(arg_0, arg_1, arg_2);
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/a583c9.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/a583c9.wgsl.expected.dxc.hlsl
index c8c40f9..cf72504 100644
--- a/test/tint/builtins/gen/var/textureLoad/a583c9.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/a583c9.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DMS<float4> arg_0 : register(t0, space1);
 
 void textureLoad_a583c9() {
-  int2 arg_1 = (0).xx;
+  int2 arg_1 = (1).xx;
   int arg_2 = 1;
   float4 res = arg_0.Load(arg_1, arg_2);
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/a583c9.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/a583c9.wgsl.expected.fxc.hlsl
index c8c40f9..cf72504 100644
--- a/test/tint/builtins/gen/var/textureLoad/a583c9.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/a583c9.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DMS<float4> arg_0 : register(t0, space1);
 
 void textureLoad_a583c9() {
-  int2 arg_1 = (0).xx;
+  int2 arg_1 = (1).xx;
   int arg_2 = 1;
   float4 res = arg_0.Load(arg_1, arg_2);
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/a583c9.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/a583c9.wgsl.expected.glsl
index 2d7faec..cd79930 100644
--- a/test/tint/builtins/gen/var/textureLoad/a583c9.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/a583c9.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 uniform highp sampler2DMS arg_0_1;
 void textureLoad_a583c9() {
-  ivec2 arg_1 = ivec2(0);
+  ivec2 arg_1 = ivec2(1);
   int arg_2 = 1;
   vec4 res = texelFetch(arg_0_1, arg_1, arg_2);
 }
@@ -25,7 +25,7 @@
 
 uniform highp sampler2DMS arg_0_1;
 void textureLoad_a583c9() {
-  ivec2 arg_1 = ivec2(0);
+  ivec2 arg_1 = ivec2(1);
   int arg_2 = 1;
   vec4 res = texelFetch(arg_0_1, arg_1, arg_2);
 }
@@ -42,7 +42,7 @@
 
 uniform highp sampler2DMS arg_0_1;
 void textureLoad_a583c9() {
-  ivec2 arg_1 = ivec2(0);
+  ivec2 arg_1 = ivec2(1);
   int arg_2 = 1;
   vec4 res = texelFetch(arg_0_1, arg_1, arg_2);
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/a583c9.wgsl.expected.msl b/test/tint/builtins/gen/var/textureLoad/a583c9.wgsl.expected.msl
index 666d009..285b756 100644
--- a/test/tint/builtins/gen/var/textureLoad/a583c9.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureLoad/a583c9.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureLoad_a583c9(texture2d_ms<float, access::read> tint_symbol_1) {
-  int2 arg_1 = int2(0);
+  int2 arg_1 = int2(1);
   int arg_2 = 1;
   float4 res = tint_symbol_1.read(uint2(arg_1), arg_2);
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/a583c9.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/a583c9.wgsl.expected.spvasm
index c9e24f9..b62cc21 100644
--- a/test/tint/builtins/gen/var/textureLoad/a583c9.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/a583c9.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 45
+; Bound: 46
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -40,47 +40,48 @@
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
-         %18 = OpConstantNull %v2int
-%_ptr_Function_v2int = OpTypePointer Function %v2int
       %int_1 = OpConstant %int 1
+         %19 = OpConstantComposite %v2int %int_1 %int_1
+%_ptr_Function_v2int = OpTypePointer Function %v2int
+         %22 = OpConstantNull %v2int
 %_ptr_Function_int = OpTypePointer Function %int
-         %24 = OpConstantNull %int
+         %25 = OpConstantNull %int
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %31 = OpTypeFunction %v4float
+         %32 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_a583c9 = OpFunction %void None %12
          %15 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2int Function %18
-      %arg_2 = OpVariable %_ptr_Function_int Function %24
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %22
+      %arg_2 = OpVariable %_ptr_Function_int Function %25
         %res = OpVariable %_ptr_Function_v4float Function %5
-               OpStore %arg_1 %18
+               OpStore %arg_1 %19
                OpStore %arg_2 %int_1
-         %26 = OpLoad %11 %arg_0
-         %27 = OpLoad %v2int %arg_1
-         %28 = OpLoad %int %arg_2
-         %25 = OpImageFetch %v4float %26 %27 Sample %28
-               OpStore %res %25
+         %27 = OpLoad %11 %arg_0
+         %28 = OpLoad %v2int %arg_1
+         %29 = OpLoad %int %arg_2
+         %26 = OpImageFetch %v4float %27 %28 Sample %29
+               OpStore %res %26
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %31
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %textureLoad_a583c9
+%vertex_main_inner = OpFunction %v4float None %32
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %textureLoad_a583c9
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %37
+         %37 = OpLabel
+         %38 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %38
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureLoad_a583c9
+         %41 = OpLabel
+         %42 = OpFunctionCall %void %textureLoad_a583c9
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %43 = OpLabel
-         %44 = OpFunctionCall %void %textureLoad_a583c9
+         %44 = OpLabel
+         %45 = OpFunctionCall %void %textureLoad_a583c9
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureLoad/a583c9.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/a583c9.wgsl.expected.wgsl
index 8a73dde..bae2e0d 100644
--- a/test/tint/builtins/gen/var/textureLoad/a583c9.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/a583c9.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_multisampled_2d<f32>;
 
 fn textureLoad_a583c9() {
-  var arg_1 = vec2<i32>();
+  var arg_1 = vec2<i32>(1i);
   var arg_2 = 1i;
   var res : vec4<f32> = textureLoad(arg_0, arg_1, arg_2);
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/a9a9f5.wgsl b/test/tint/builtins/gen/var/textureLoad/a9a9f5.wgsl
index dde727d..8769abe 100644
--- a/test/tint/builtins/gen/var/textureLoad/a9a9f5.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/a9a9f5.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureLoad(texture: texture_3d<u32>, coords: vec3<i32>, level: i32) -> vec4<u32>
 fn textureLoad_a9a9f5() {
-  var arg_1 = vec3<i32>();
+  var arg_1 = vec3<i32>(1i);
   var arg_2 = 1i;
   var res: vec4<u32> = textureLoad(arg_0, arg_1, arg_2);
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/a9a9f5.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/a9a9f5.wgsl.expected.dxc.hlsl
index 2d066b2..e3ec6e8 100644
--- a/test/tint/builtins/gen/var/textureLoad/a9a9f5.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/a9a9f5.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 Texture3D<uint4> arg_0 : register(t0, space1);
 
 void textureLoad_a9a9f5() {
-  int3 arg_1 = (0).xxx;
+  int3 arg_1 = (1).xxx;
   int arg_2 = 1;
   uint4 res = arg_0.Load(int4(arg_1, arg_2));
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/a9a9f5.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/a9a9f5.wgsl.expected.fxc.hlsl
index 2d066b2..e3ec6e8 100644
--- a/test/tint/builtins/gen/var/textureLoad/a9a9f5.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/a9a9f5.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 Texture3D<uint4> arg_0 : register(t0, space1);
 
 void textureLoad_a9a9f5() {
-  int3 arg_1 = (0).xxx;
+  int3 arg_1 = (1).xxx;
   int arg_2 = 1;
   uint4 res = arg_0.Load(int4(arg_1, arg_2));
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/a9a9f5.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/a9a9f5.wgsl.expected.glsl
index bc87058..cfa42c4 100644
--- a/test/tint/builtins/gen/var/textureLoad/a9a9f5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/a9a9f5.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 uniform highp usampler3D arg_0_1;
 void textureLoad_a9a9f5() {
-  ivec3 arg_1 = ivec3(0);
+  ivec3 arg_1 = ivec3(1);
   int arg_2 = 1;
   uvec4 res = texelFetch(arg_0_1, arg_1, arg_2);
 }
@@ -25,7 +25,7 @@
 
 uniform highp usampler3D arg_0_1;
 void textureLoad_a9a9f5() {
-  ivec3 arg_1 = ivec3(0);
+  ivec3 arg_1 = ivec3(1);
   int arg_2 = 1;
   uvec4 res = texelFetch(arg_0_1, arg_1, arg_2);
 }
@@ -42,7 +42,7 @@
 
 uniform highp usampler3D arg_0_1;
 void textureLoad_a9a9f5() {
-  ivec3 arg_1 = ivec3(0);
+  ivec3 arg_1 = ivec3(1);
   int arg_2 = 1;
   uvec4 res = texelFetch(arg_0_1, arg_1, arg_2);
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/a9a9f5.wgsl.expected.msl b/test/tint/builtins/gen/var/textureLoad/a9a9f5.wgsl.expected.msl
index 7362d1e..dd765b4 100644
--- a/test/tint/builtins/gen/var/textureLoad/a9a9f5.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureLoad/a9a9f5.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureLoad_a9a9f5(texture3d<uint, access::sample> tint_symbol_1) {
-  int3 arg_1 = int3(0);
+  int3 arg_1 = int3(1);
   int arg_2 = 1;
   uint4 res = tint_symbol_1.read(uint3(arg_1), arg_2);
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/a9a9f5.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/a9a9f5.wgsl.expected.spvasm
index 30a1913..51d5467 100644
--- a/test/tint/builtins/gen/var/textureLoad/a9a9f5.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/a9a9f5.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 48
+; Bound: 49
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -41,49 +41,50 @@
          %13 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
-         %19 = OpConstantNull %v3int
-%_ptr_Function_v3int = OpTypePointer Function %v3int
       %int_1 = OpConstant %int 1
+         %20 = OpConstantComposite %v3int %int_1 %int_1 %int_1
+%_ptr_Function_v3int = OpTypePointer Function %v3int
+         %23 = OpConstantNull %v3int
 %_ptr_Function_int = OpTypePointer Function %int
-         %25 = OpConstantNull %int
+         %26 = OpConstantNull %int
      %v4uint = OpTypeVector %uint 4
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %33 = OpConstantNull %v4uint
-         %34 = OpTypeFunction %v4float
+         %34 = OpConstantNull %v4uint
+         %35 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_a9a9f5 = OpFunction %void None %13
          %16 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v3int Function %19
-      %arg_2 = OpVariable %_ptr_Function_int Function %25
-        %res = OpVariable %_ptr_Function_v4uint Function %33
-               OpStore %arg_1 %19
+      %arg_1 = OpVariable %_ptr_Function_v3int Function %23
+      %arg_2 = OpVariable %_ptr_Function_int Function %26
+        %res = OpVariable %_ptr_Function_v4uint Function %34
+               OpStore %arg_1 %20
                OpStore %arg_2 %int_1
-         %28 = OpLoad %11 %arg_0
-         %29 = OpLoad %v3int %arg_1
-         %30 = OpLoad %int %arg_2
-         %26 = OpImageFetch %v4uint %28 %29 Lod %30
-               OpStore %res %26
+         %29 = OpLoad %11 %arg_0
+         %30 = OpLoad %v3int %arg_1
+         %31 = OpLoad %int %arg_2
+         %27 = OpImageFetch %v4uint %29 %30 Lod %31
+               OpStore %res %27
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %34
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureLoad_a9a9f5
+%vertex_main_inner = OpFunction %v4float None %35
+         %37 = OpLabel
+         %38 = OpFunctionCall %void %textureLoad_a9a9f5
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %40
+         %40 = OpLabel
+         %41 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %41
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %43 = OpLabel
-         %44 = OpFunctionCall %void %textureLoad_a9a9f5
+         %44 = OpLabel
+         %45 = OpFunctionCall %void %textureLoad_a9a9f5
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %46 = OpLabel
-         %47 = OpFunctionCall %void %textureLoad_a9a9f5
+         %47 = OpLabel
+         %48 = OpFunctionCall %void %textureLoad_a9a9f5
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureLoad/a9a9f5.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/a9a9f5.wgsl.expected.wgsl
index 6c0be9b..3b9b743 100644
--- a/test/tint/builtins/gen/var/textureLoad/a9a9f5.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/a9a9f5.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_3d<u32>;
 
 fn textureLoad_a9a9f5() {
-  var arg_1 = vec3<i32>();
+  var arg_1 = vec3<i32>(1i);
   var arg_2 = 1i;
   var res : vec4<u32> = textureLoad(arg_0, arg_1, arg_2);
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/b29f71.wgsl b/test/tint/builtins/gen/var/textureLoad/b29f71.wgsl
index 0160d1b..7030cca 100644
--- a/test/tint/builtins/gen/var/textureLoad/b29f71.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/b29f71.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureLoad(texture: texture_2d_array<i32>, coords: vec2<i32>, array_index: u32, level: i32) -> vec4<i32>
 fn textureLoad_b29f71() {
-  var arg_1 = vec2<i32>();
+  var arg_1 = vec2<i32>(1i);
   var arg_2 = 1u;
   var arg_3 = 1i;
   var res: vec4<i32> = textureLoad(arg_0, arg_1, arg_2, arg_3);
diff --git a/test/tint/builtins/gen/var/textureLoad/b29f71.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/b29f71.wgsl.expected.dxc.hlsl
index 5f94bd4..eb30fed 100644
--- a/test/tint/builtins/gen/var/textureLoad/b29f71.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/b29f71.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 void textureLoad_b29f71() {
-  int2 arg_1 = (0).xx;
+  int2 arg_1 = (1).xx;
   uint arg_2 = 1u;
   int arg_3 = 1;
   int4 res = arg_0.Load(int4(int3(arg_1, int(arg_2)), arg_3));
diff --git a/test/tint/builtins/gen/var/textureLoad/b29f71.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/b29f71.wgsl.expected.fxc.hlsl
index 5f94bd4..eb30fed 100644
--- a/test/tint/builtins/gen/var/textureLoad/b29f71.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/b29f71.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 void textureLoad_b29f71() {
-  int2 arg_1 = (0).xx;
+  int2 arg_1 = (1).xx;
   uint arg_2 = 1u;
   int arg_3 = 1;
   int4 res = arg_0.Load(int4(int3(arg_1, int(arg_2)), arg_3));
diff --git a/test/tint/builtins/gen/var/textureLoad/b29f71.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/b29f71.wgsl.expected.glsl
index 5ee7aa6..85fdeb5 100644
--- a/test/tint/builtins/gen/var/textureLoad/b29f71.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/b29f71.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 uniform highp isampler2DArray arg_0_1;
 void textureLoad_b29f71() {
-  ivec2 arg_1 = ivec2(0);
+  ivec2 arg_1 = ivec2(1);
   uint arg_2 = 1u;
   int arg_3 = 1;
   ivec4 res = texelFetch(arg_0_1, ivec3(arg_1, int(arg_2)), arg_3);
@@ -26,7 +26,7 @@
 
 uniform highp isampler2DArray arg_0_1;
 void textureLoad_b29f71() {
-  ivec2 arg_1 = ivec2(0);
+  ivec2 arg_1 = ivec2(1);
   uint arg_2 = 1u;
   int arg_3 = 1;
   ivec4 res = texelFetch(arg_0_1, ivec3(arg_1, int(arg_2)), arg_3);
@@ -44,7 +44,7 @@
 
 uniform highp isampler2DArray arg_0_1;
 void textureLoad_b29f71() {
-  ivec2 arg_1 = ivec2(0);
+  ivec2 arg_1 = ivec2(1);
   uint arg_2 = 1u;
   int arg_3 = 1;
   ivec4 res = texelFetch(arg_0_1, ivec3(arg_1, int(arg_2)), arg_3);
diff --git a/test/tint/builtins/gen/var/textureLoad/b29f71.wgsl.expected.msl b/test/tint/builtins/gen/var/textureLoad/b29f71.wgsl.expected.msl
index 223e7ec..2900129 100644
--- a/test/tint/builtins/gen/var/textureLoad/b29f71.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureLoad/b29f71.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureLoad_b29f71(texture2d_array<int, access::sample> tint_symbol_1) {
-  int2 arg_1 = int2(0);
+  int2 arg_1 = int2(1);
   uint arg_2 = 1u;
   int arg_3 = 1;
   int4 res = tint_symbol_1.read(uint2(arg_1), arg_2, arg_3);
diff --git a/test/tint/builtins/gen/var/textureLoad/b29f71.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/b29f71.wgsl.expected.spvasm
index b410a5b..b72126d 100644
--- a/test/tint/builtins/gen/var/textureLoad/b29f71.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/b29f71.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 58
+; Bound: 59
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -41,61 +41,62 @@
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
       %v2int = OpTypeVector %int 2
-         %18 = OpConstantNull %v2int
+      %int_1 = OpConstant %int 1
+         %19 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v2int = OpTypePointer Function %v2int
+         %22 = OpConstantNull %v2int
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %25 = OpConstantNull %uint
-      %int_1 = OpConstant %int 1
+         %27 = OpConstantNull %uint
 %_ptr_Function_int = OpTypePointer Function %int
-         %29 = OpConstantNull %int
+         %30 = OpConstantNull %int
       %v4int = OpTypeVector %int 4
       %v3int = OpTypeVector %int 3
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %43 = OpConstantNull %v4int
-         %44 = OpTypeFunction %v4float
+         %44 = OpConstantNull %v4int
+         %45 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_b29f71 = OpFunction %void None %13
          %16 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2int Function %18
-      %arg_2 = OpVariable %_ptr_Function_uint Function %25
-      %arg_3 = OpVariable %_ptr_Function_int Function %29
-        %res = OpVariable %_ptr_Function_v4int Function %43
-               OpStore %arg_1 %18
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %22
+      %arg_2 = OpVariable %_ptr_Function_uint Function %27
+      %arg_3 = OpVariable %_ptr_Function_int Function %30
+        %res = OpVariable %_ptr_Function_v4int Function %44
+               OpStore %arg_1 %19
                OpStore %arg_2 %uint_1
                OpStore %arg_3 %int_1
-         %32 = OpLoad %11 %arg_0
-         %34 = OpLoad %v2int %arg_1
-         %35 = OpCompositeExtract %int %34 0
-         %36 = OpCompositeExtract %int %34 1
-         %38 = OpLoad %uint %arg_2
-         %37 = OpBitcast %int %38
-         %39 = OpCompositeConstruct %v3int %35 %36 %37
-         %40 = OpLoad %int %arg_3
-         %30 = OpImageFetch %v4int %32 %39 Lod %40
-               OpStore %res %30
+         %33 = OpLoad %11 %arg_0
+         %35 = OpLoad %v2int %arg_1
+         %36 = OpCompositeExtract %int %35 0
+         %37 = OpCompositeExtract %int %35 1
+         %39 = OpLoad %uint %arg_2
+         %38 = OpBitcast %int %39
+         %40 = OpCompositeConstruct %v3int %36 %37 %38
+         %41 = OpLoad %int %arg_3
+         %31 = OpImageFetch %v4int %33 %40 Lod %41
+               OpStore %res %31
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %44
-         %46 = OpLabel
-         %47 = OpFunctionCall %void %textureLoad_b29f71
+%vertex_main_inner = OpFunction %v4float None %45
+         %47 = OpLabel
+         %48 = OpFunctionCall %void %textureLoad_b29f71
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %49 = OpLabel
-         %50 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %50
+         %50 = OpLabel
+         %51 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %51
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %53 = OpLabel
-         %54 = OpFunctionCall %void %textureLoad_b29f71
+         %54 = OpLabel
+         %55 = OpFunctionCall %void %textureLoad_b29f71
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %56 = OpLabel
-         %57 = OpFunctionCall %void %textureLoad_b29f71
+         %57 = OpLabel
+         %58 = OpFunctionCall %void %textureLoad_b29f71
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureLoad/b29f71.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/b29f71.wgsl.expected.wgsl
index 4e61327..fe9529b 100644
--- a/test/tint/builtins/gen/var/textureLoad/b29f71.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/b29f71.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_2d_array<i32>;
 
 fn textureLoad_b29f71() {
-  var arg_1 = vec2<i32>();
+  var arg_1 = vec2<i32>(1i);
   var arg_2 = 1u;
   var arg_3 = 1i;
   var res : vec4<i32> = textureLoad(arg_0, arg_1, arg_2, arg_3);
diff --git a/test/tint/builtins/gen/var/textureLoad/b6ba5d.wgsl b/test/tint/builtins/gen/var/textureLoad/b6ba5d.wgsl
index aa852d0..04014e1 100644
--- a/test/tint/builtins/gen/var/textureLoad/b6ba5d.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/b6ba5d.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureLoad(texture: texture_depth_2d_array, coords: vec2<u32>, array_index: i32, level: i32) -> f32
 fn textureLoad_b6ba5d() {
-  var arg_1 = vec2<u32>();
+  var arg_1 = vec2<u32>(1u);
   var arg_2 = 1i;
   var arg_3 = 1i;
   var res: f32 = textureLoad(arg_0, arg_1, arg_2, arg_3);
diff --git a/test/tint/builtins/gen/var/textureLoad/b6ba5d.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/b6ba5d.wgsl.expected.dxc.hlsl
index 3be54d2..3cf192a 100644
--- a/test/tint/builtins/gen/var/textureLoad/b6ba5d.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/b6ba5d.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DArray arg_0 : register(t0, space1);
 
 void textureLoad_b6ba5d() {
-  uint2 arg_1 = (0u).xx;
+  uint2 arg_1 = (1u).xx;
   int arg_2 = 1;
   int arg_3 = 1;
   float res = arg_0.Load(uint4(uint3(arg_1, uint(arg_2)), uint(arg_3))).x;
diff --git a/test/tint/builtins/gen/var/textureLoad/b6ba5d.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/b6ba5d.wgsl.expected.fxc.hlsl
index 3be54d2..3cf192a 100644
--- a/test/tint/builtins/gen/var/textureLoad/b6ba5d.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/b6ba5d.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DArray arg_0 : register(t0, space1);
 
 void textureLoad_b6ba5d() {
-  uint2 arg_1 = (0u).xx;
+  uint2 arg_1 = (1u).xx;
   int arg_2 = 1;
   int arg_3 = 1;
   float res = arg_0.Load(uint4(uint3(arg_1, uint(arg_2)), uint(arg_3))).x;
diff --git a/test/tint/builtins/gen/var/textureLoad/b6ba5d.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/b6ba5d.wgsl.expected.glsl
index 47755bc..551eb08 100644
--- a/test/tint/builtins/gen/var/textureLoad/b6ba5d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/b6ba5d.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 uniform highp sampler2DArray arg_0_1;
 void textureLoad_b6ba5d() {
-  uvec2 arg_1 = uvec2(0u);
+  uvec2 arg_1 = uvec2(1u);
   int arg_2 = 1;
   int arg_3 = 1;
   float res = texelFetch(arg_0_1, ivec3(uvec3(arg_1, uint(arg_2))), arg_3).x;
@@ -26,7 +26,7 @@
 
 uniform highp sampler2DArray arg_0_1;
 void textureLoad_b6ba5d() {
-  uvec2 arg_1 = uvec2(0u);
+  uvec2 arg_1 = uvec2(1u);
   int arg_2 = 1;
   int arg_3 = 1;
   float res = texelFetch(arg_0_1, ivec3(uvec3(arg_1, uint(arg_2))), arg_3).x;
@@ -44,7 +44,7 @@
 
 uniform highp sampler2DArray arg_0_1;
 void textureLoad_b6ba5d() {
-  uvec2 arg_1 = uvec2(0u);
+  uvec2 arg_1 = uvec2(1u);
   int arg_2 = 1;
   int arg_3 = 1;
   float res = texelFetch(arg_0_1, ivec3(uvec3(arg_1, uint(arg_2))), arg_3).x;
diff --git a/test/tint/builtins/gen/var/textureLoad/b6ba5d.wgsl.expected.msl b/test/tint/builtins/gen/var/textureLoad/b6ba5d.wgsl.expected.msl
index fa0087d..5a97ce5 100644
--- a/test/tint/builtins/gen/var/textureLoad/b6ba5d.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureLoad/b6ba5d.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureLoad_b6ba5d(depth2d_array<float, access::sample> tint_symbol_1) {
-  uint2 arg_1 = uint2(0u);
+  uint2 arg_1 = uint2(1u);
   int arg_2 = 1;
   int arg_3 = 1;
   float res = tint_symbol_1.read(uint2(arg_1), arg_2, arg_3);
diff --git a/test/tint/builtins/gen/var/textureLoad/b6ba5d.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/b6ba5d.wgsl.expected.spvasm
index 836e869..f2a68b4 100644
--- a/test/tint/builtins/gen/var/textureLoad/b6ba5d.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/b6ba5d.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 54
+; Bound: 56
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -41,57 +41,59 @@
          %12 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
-         %18 = OpConstantNull %v2uint
+     %uint_1 = OpConstant %uint 1
+         %19 = OpConstantComposite %v2uint %uint_1 %uint_1
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
+         %22 = OpConstantNull %v2uint
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
-         %25 = OpConstantNull %int
+         %27 = OpConstantNull %int
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_float = OpTypePointer Function %float
-         %40 = OpTypeFunction %v4float
+         %42 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_b6ba5d = OpFunction %void None %12
          %15 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2uint Function %18
-      %arg_2 = OpVariable %_ptr_Function_int Function %25
-      %arg_3 = OpVariable %_ptr_Function_int Function %25
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %22
+      %arg_2 = OpVariable %_ptr_Function_int Function %27
+      %arg_3 = OpVariable %_ptr_Function_int Function %27
         %res = OpVariable %_ptr_Function_float Function %8
-               OpStore %arg_1 %18
+               OpStore %arg_1 %19
                OpStore %arg_2 %int_1
                OpStore %arg_3 %int_1
-         %29 = OpLoad %11 %arg_0
-         %31 = OpLoad %v2uint %arg_1
-         %32 = OpCompositeExtract %uint %31 0
-         %33 = OpCompositeExtract %uint %31 1
-         %35 = OpLoad %int %arg_2
-         %34 = OpBitcast %uint %35
-         %36 = OpCompositeConstruct %v3uint %32 %33 %34
-         %37 = OpLoad %int %arg_3
-         %28 = OpImageFetch %v4float %29 %36 Lod %37
-         %27 = OpCompositeExtract %float %28 0
-               OpStore %res %27
+         %31 = OpLoad %11 %arg_0
+         %33 = OpLoad %v2uint %arg_1
+         %34 = OpCompositeExtract %uint %33 0
+         %35 = OpCompositeExtract %uint %33 1
+         %37 = OpLoad %int %arg_2
+         %36 = OpBitcast %uint %37
+         %38 = OpCompositeConstruct %v3uint %34 %35 %36
+         %39 = OpLoad %int %arg_3
+         %30 = OpImageFetch %v4float %31 %38 Lod %39
+         %29 = OpCompositeExtract %float %30 0
+               OpStore %res %29
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %40
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureLoad_b6ba5d
+%vertex_main_inner = OpFunction %v4float None %42
+         %44 = OpLabel
+         %45 = OpFunctionCall %void %textureLoad_b6ba5d
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %45 = OpLabel
-         %46 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %46
+         %47 = OpLabel
+         %48 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %48
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %49 = OpLabel
-         %50 = OpFunctionCall %void %textureLoad_b6ba5d
+         %51 = OpLabel
+         %52 = OpFunctionCall %void %textureLoad_b6ba5d
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %52 = OpLabel
-         %53 = OpFunctionCall %void %textureLoad_b6ba5d
+         %54 = OpLabel
+         %55 = OpFunctionCall %void %textureLoad_b6ba5d
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureLoad/b6ba5d.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/b6ba5d.wgsl.expected.wgsl
index a22310a..626f638 100644
--- a/test/tint/builtins/gen/var/textureLoad/b6ba5d.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/b6ba5d.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_depth_2d_array;
 
 fn textureLoad_b6ba5d() {
-  var arg_1 = vec2<u32>();
+  var arg_1 = vec2<u32>(1u);
   var arg_2 = 1i;
   var arg_3 = 1i;
   var res : f32 = textureLoad(arg_0, arg_1, arg_2, arg_3);
diff --git a/test/tint/builtins/gen/var/textureLoad/b73f6b.wgsl b/test/tint/builtins/gen/var/textureLoad/b73f6b.wgsl
index af3e125..19912f4 100644
--- a/test/tint/builtins/gen/var/textureLoad/b73f6b.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/b73f6b.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureLoad(texture: texture_2d<u32>, coords: vec2<u32>, level: i32) -> vec4<u32>
 fn textureLoad_b73f6b() {
-  var arg_1 = vec2<u32>();
+  var arg_1 = vec2<u32>(1u);
   var arg_2 = 1i;
   var res: vec4<u32> = textureLoad(arg_0, arg_1, arg_2);
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/b73f6b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/b73f6b.wgsl.expected.dxc.hlsl
index b67edf5..9d88185 100644
--- a/test/tint/builtins/gen/var/textureLoad/b73f6b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/b73f6b.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 Texture2D<uint4> arg_0 : register(t0, space1);
 
 void textureLoad_b73f6b() {
-  uint2 arg_1 = (0u).xx;
+  uint2 arg_1 = (1u).xx;
   int arg_2 = 1;
   uint4 res = arg_0.Load(uint3(arg_1, uint(arg_2)));
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/b73f6b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/b73f6b.wgsl.expected.fxc.hlsl
index b67edf5..9d88185 100644
--- a/test/tint/builtins/gen/var/textureLoad/b73f6b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/b73f6b.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 Texture2D<uint4> arg_0 : register(t0, space1);
 
 void textureLoad_b73f6b() {
-  uint2 arg_1 = (0u).xx;
+  uint2 arg_1 = (1u).xx;
   int arg_2 = 1;
   uint4 res = arg_0.Load(uint3(arg_1, uint(arg_2)));
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/b73f6b.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/b73f6b.wgsl.expected.glsl
index cf211c3..12f1e43 100644
--- a/test/tint/builtins/gen/var/textureLoad/b73f6b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/b73f6b.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 uniform highp usampler2D arg_0_1;
 void textureLoad_b73f6b() {
-  uvec2 arg_1 = uvec2(0u);
+  uvec2 arg_1 = uvec2(1u);
   int arg_2 = 1;
   uvec4 res = texelFetch(arg_0_1, ivec2(arg_1), arg_2);
 }
@@ -25,7 +25,7 @@
 
 uniform highp usampler2D arg_0_1;
 void textureLoad_b73f6b() {
-  uvec2 arg_1 = uvec2(0u);
+  uvec2 arg_1 = uvec2(1u);
   int arg_2 = 1;
   uvec4 res = texelFetch(arg_0_1, ivec2(arg_1), arg_2);
 }
@@ -42,7 +42,7 @@
 
 uniform highp usampler2D arg_0_1;
 void textureLoad_b73f6b() {
-  uvec2 arg_1 = uvec2(0u);
+  uvec2 arg_1 = uvec2(1u);
   int arg_2 = 1;
   uvec4 res = texelFetch(arg_0_1, ivec2(arg_1), arg_2);
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/b73f6b.wgsl.expected.msl b/test/tint/builtins/gen/var/textureLoad/b73f6b.wgsl.expected.msl
index a906716..bc90f5e 100644
--- a/test/tint/builtins/gen/var/textureLoad/b73f6b.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureLoad/b73f6b.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureLoad_b73f6b(texture2d<uint, access::sample> tint_symbol_1) {
-  uint2 arg_1 = uint2(0u);
+  uint2 arg_1 = uint2(1u);
   int arg_2 = 1;
   uint4 res = tint_symbol_1.read(uint2(arg_1), arg_2);
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/b73f6b.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/b73f6b.wgsl.expected.spvasm
index f2fe743..b6c79a0 100644
--- a/test/tint/builtins/gen/var/textureLoad/b73f6b.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/b73f6b.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 48
+; Bound: 50
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -40,50 +40,52 @@
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
      %v2uint = OpTypeVector %uint 2
-         %18 = OpConstantNull %v2uint
+     %uint_1 = OpConstant %uint 1
+         %19 = OpConstantComposite %v2uint %uint_1 %uint_1
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
+         %22 = OpConstantNull %v2uint
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
-         %25 = OpConstantNull %int
+         %27 = OpConstantNull %int
      %v4uint = OpTypeVector %uint 4
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %33 = OpConstantNull %v4uint
-         %34 = OpTypeFunction %v4float
+         %35 = OpConstantNull %v4uint
+         %36 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_b73f6b = OpFunction %void None %13
          %16 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2uint Function %18
-      %arg_2 = OpVariable %_ptr_Function_int Function %25
-        %res = OpVariable %_ptr_Function_v4uint Function %33
-               OpStore %arg_1 %18
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %22
+      %arg_2 = OpVariable %_ptr_Function_int Function %27
+        %res = OpVariable %_ptr_Function_v4uint Function %35
+               OpStore %arg_1 %19
                OpStore %arg_2 %int_1
-         %28 = OpLoad %11 %arg_0
-         %29 = OpLoad %v2uint %arg_1
-         %30 = OpLoad %int %arg_2
-         %26 = OpImageFetch %v4uint %28 %29 Lod %30
-               OpStore %res %26
+         %30 = OpLoad %11 %arg_0
+         %31 = OpLoad %v2uint %arg_1
+         %32 = OpLoad %int %arg_2
+         %28 = OpImageFetch %v4uint %30 %31 Lod %32
+               OpStore %res %28
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %34
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureLoad_b73f6b
+%vertex_main_inner = OpFunction %v4float None %36
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %textureLoad_b73f6b
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %40
+         %41 = OpLabel
+         %42 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %42
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %43 = OpLabel
-         %44 = OpFunctionCall %void %textureLoad_b73f6b
+         %45 = OpLabel
+         %46 = OpFunctionCall %void %textureLoad_b73f6b
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %46 = OpLabel
-         %47 = OpFunctionCall %void %textureLoad_b73f6b
+         %48 = OpLabel
+         %49 = OpFunctionCall %void %textureLoad_b73f6b
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureLoad/b73f6b.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/b73f6b.wgsl.expected.wgsl
index 30acfd9..5af4ac7 100644
--- a/test/tint/builtins/gen/var/textureLoad/b73f6b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/b73f6b.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_2d<u32>;
 
 fn textureLoad_b73f6b() {
-  var arg_1 = vec2<u32>();
+  var arg_1 = vec2<u32>(1u);
   var arg_2 = 1i;
   var res : vec4<u32> = textureLoad(arg_0, arg_1, arg_2);
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/b75d4a.wgsl b/test/tint/builtins/gen/var/textureLoad/b75d4a.wgsl
index c456a66..23f0bbc 100644
--- a/test/tint/builtins/gen/var/textureLoad/b75d4a.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/b75d4a.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureLoad(texture: texture_multisampled_2d<f32>, coords: vec2<i32>, sample_index: u32) -> vec4<f32>
 fn textureLoad_b75d4a() {
-  var arg_1 = vec2<i32>();
+  var arg_1 = vec2<i32>(1i);
   var arg_2 = 1u;
   var res: vec4<f32> = textureLoad(arg_0, arg_1, arg_2);
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/b75d4a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/b75d4a.wgsl.expected.dxc.hlsl
index eb82033..74c096e 100644
--- a/test/tint/builtins/gen/var/textureLoad/b75d4a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/b75d4a.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DMS<float4> arg_0 : register(t0, space1);
 
 void textureLoad_b75d4a() {
-  int2 arg_1 = (0).xx;
+  int2 arg_1 = (1).xx;
   uint arg_2 = 1u;
   float4 res = arg_0.Load(arg_1, arg_2);
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/b75d4a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/b75d4a.wgsl.expected.fxc.hlsl
index eb82033..74c096e 100644
--- a/test/tint/builtins/gen/var/textureLoad/b75d4a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/b75d4a.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DMS<float4> arg_0 : register(t0, space1);
 
 void textureLoad_b75d4a() {
-  int2 arg_1 = (0).xx;
+  int2 arg_1 = (1).xx;
   uint arg_2 = 1u;
   float4 res = arg_0.Load(arg_1, arg_2);
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/b75d4a.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/b75d4a.wgsl.expected.glsl
index 5cd617e..adef08f 100644
--- a/test/tint/builtins/gen/var/textureLoad/b75d4a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/b75d4a.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 uniform highp sampler2DMS arg_0_1;
 void textureLoad_b75d4a() {
-  ivec2 arg_1 = ivec2(0);
+  ivec2 arg_1 = ivec2(1);
   uint arg_2 = 1u;
   vec4 res = texelFetch(arg_0_1, arg_1, int(arg_2));
 }
@@ -25,7 +25,7 @@
 
 uniform highp sampler2DMS arg_0_1;
 void textureLoad_b75d4a() {
-  ivec2 arg_1 = ivec2(0);
+  ivec2 arg_1 = ivec2(1);
   uint arg_2 = 1u;
   vec4 res = texelFetch(arg_0_1, arg_1, int(arg_2));
 }
@@ -42,7 +42,7 @@
 
 uniform highp sampler2DMS arg_0_1;
 void textureLoad_b75d4a() {
-  ivec2 arg_1 = ivec2(0);
+  ivec2 arg_1 = ivec2(1);
   uint arg_2 = 1u;
   vec4 res = texelFetch(arg_0_1, arg_1, int(arg_2));
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/b75d4a.wgsl.expected.msl b/test/tint/builtins/gen/var/textureLoad/b75d4a.wgsl.expected.msl
index 455295b..f58711f 100644
--- a/test/tint/builtins/gen/var/textureLoad/b75d4a.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureLoad/b75d4a.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureLoad_b75d4a(texture2d_ms<float, access::read> tint_symbol_1) {
-  int2 arg_1 = int2(0);
+  int2 arg_1 = int2(1);
   uint arg_2 = 1u;
   float4 res = tint_symbol_1.read(uint2(arg_1), arg_2);
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/b75d4a.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/b75d4a.wgsl.expected.spvasm
index fab352d..8c13159 100644
--- a/test/tint/builtins/gen/var/textureLoad/b75d4a.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/b75d4a.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 46
+; Bound: 48
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -40,48 +40,50 @@
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
-         %18 = OpConstantNull %v2int
+      %int_1 = OpConstant %int 1
+         %19 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v2int = OpTypePointer Function %v2int
+         %22 = OpConstantNull %v2int
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %25 = OpConstantNull %uint
+         %27 = OpConstantNull %uint
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %32 = OpTypeFunction %v4float
+         %34 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_b75d4a = OpFunction %void None %12
          %15 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2int Function %18
-      %arg_2 = OpVariable %_ptr_Function_uint Function %25
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %22
+      %arg_2 = OpVariable %_ptr_Function_uint Function %27
         %res = OpVariable %_ptr_Function_v4float Function %5
-               OpStore %arg_1 %18
+               OpStore %arg_1 %19
                OpStore %arg_2 %uint_1
-         %27 = OpLoad %11 %arg_0
-         %28 = OpLoad %v2int %arg_1
-         %29 = OpLoad %uint %arg_2
-         %26 = OpImageFetch %v4float %27 %28 Sample %29
-               OpStore %res %26
+         %29 = OpLoad %11 %arg_0
+         %30 = OpLoad %v2int %arg_1
+         %31 = OpLoad %uint %arg_2
+         %28 = OpImageFetch %v4float %29 %30 Sample %31
+               OpStore %res %28
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %32
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureLoad_b75d4a
+%vertex_main_inner = OpFunction %v4float None %34
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureLoad_b75d4a
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %37 = OpLabel
-         %38 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %38
+         %39 = OpLabel
+         %40 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %40
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureLoad_b75d4a
+         %43 = OpLabel
+         %44 = OpFunctionCall %void %textureLoad_b75d4a
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %44 = OpLabel
-         %45 = OpFunctionCall %void %textureLoad_b75d4a
+         %46 = OpLabel
+         %47 = OpFunctionCall %void %textureLoad_b75d4a
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureLoad/b75d4a.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/b75d4a.wgsl.expected.wgsl
index ac0a4a0..6117807 100644
--- a/test/tint/builtins/gen/var/textureLoad/b75d4a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/b75d4a.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_multisampled_2d<f32>;
 
 fn textureLoad_b75d4a() {
-  var arg_1 = vec2<i32>();
+  var arg_1 = vec2<i32>(1i);
   var arg_2 = 1u;
   var res : vec4<f32> = textureLoad(arg_0, arg_1, arg_2);
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/bcbb3c.wgsl b/test/tint/builtins/gen/var/textureLoad/bcbb3c.wgsl
index 06c515e..3833450 100644
--- a/test/tint/builtins/gen/var/textureLoad/bcbb3c.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/bcbb3c.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureLoad(texture: texture_3d<f32>, coords: vec3<u32>, level: i32) -> vec4<f32>
 fn textureLoad_bcbb3c() {
-  var arg_1 = vec3<u32>();
+  var arg_1 = vec3<u32>(1u);
   var arg_2 = 1i;
   var res: vec4<f32> = textureLoad(arg_0, arg_1, arg_2);
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/bcbb3c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/bcbb3c.wgsl.expected.dxc.hlsl
index 4f12d01..b196d9f 100644
--- a/test/tint/builtins/gen/var/textureLoad/bcbb3c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/bcbb3c.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 Texture3D<float4> arg_0 : register(t0, space1);
 
 void textureLoad_bcbb3c() {
-  uint3 arg_1 = (0u).xxx;
+  uint3 arg_1 = (1u).xxx;
   int arg_2 = 1;
   float4 res = arg_0.Load(uint4(arg_1, uint(arg_2)));
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/bcbb3c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/bcbb3c.wgsl.expected.fxc.hlsl
index 4f12d01..b196d9f 100644
--- a/test/tint/builtins/gen/var/textureLoad/bcbb3c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/bcbb3c.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 Texture3D<float4> arg_0 : register(t0, space1);
 
 void textureLoad_bcbb3c() {
-  uint3 arg_1 = (0u).xxx;
+  uint3 arg_1 = (1u).xxx;
   int arg_2 = 1;
   float4 res = arg_0.Load(uint4(arg_1, uint(arg_2)));
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/bcbb3c.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/bcbb3c.wgsl.expected.glsl
index d0bf75e..8f1cef3 100644
--- a/test/tint/builtins/gen/var/textureLoad/bcbb3c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/bcbb3c.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 uniform highp sampler3D arg_0_1;
 void textureLoad_bcbb3c() {
-  uvec3 arg_1 = uvec3(0u);
+  uvec3 arg_1 = uvec3(1u);
   int arg_2 = 1;
   vec4 res = texelFetch(arg_0_1, ivec3(arg_1), arg_2);
 }
@@ -25,7 +25,7 @@
 
 uniform highp sampler3D arg_0_1;
 void textureLoad_bcbb3c() {
-  uvec3 arg_1 = uvec3(0u);
+  uvec3 arg_1 = uvec3(1u);
   int arg_2 = 1;
   vec4 res = texelFetch(arg_0_1, ivec3(arg_1), arg_2);
 }
@@ -42,7 +42,7 @@
 
 uniform highp sampler3D arg_0_1;
 void textureLoad_bcbb3c() {
-  uvec3 arg_1 = uvec3(0u);
+  uvec3 arg_1 = uvec3(1u);
   int arg_2 = 1;
   vec4 res = texelFetch(arg_0_1, ivec3(arg_1), arg_2);
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/bcbb3c.wgsl.expected.msl b/test/tint/builtins/gen/var/textureLoad/bcbb3c.wgsl.expected.msl
index 1a13015..fbd76f6 100644
--- a/test/tint/builtins/gen/var/textureLoad/bcbb3c.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureLoad/bcbb3c.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureLoad_bcbb3c(texture3d<float, access::sample> tint_symbol_1) {
-  uint3 arg_1 = uint3(0u);
+  uint3 arg_1 = uint3(1u);
   int arg_2 = 1;
   float4 res = tint_symbol_1.read(uint3(arg_1), arg_2);
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/bcbb3c.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/bcbb3c.wgsl.expected.spvasm
index 85bba68..562f9f7 100644
--- a/test/tint/builtins/gen/var/textureLoad/bcbb3c.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/bcbb3c.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 46
+; Bound: 48
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -40,48 +40,50 @@
          %12 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
-         %18 = OpConstantNull %v3uint
+     %uint_1 = OpConstant %uint 1
+         %19 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
 %_ptr_Function_v3uint = OpTypePointer Function %v3uint
+         %22 = OpConstantNull %v3uint
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
-         %25 = OpConstantNull %int
+         %27 = OpConstantNull %int
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %32 = OpTypeFunction %v4float
+         %34 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_bcbb3c = OpFunction %void None %12
          %15 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v3uint Function %18
-      %arg_2 = OpVariable %_ptr_Function_int Function %25
+      %arg_1 = OpVariable %_ptr_Function_v3uint Function %22
+      %arg_2 = OpVariable %_ptr_Function_int Function %27
         %res = OpVariable %_ptr_Function_v4float Function %5
-               OpStore %arg_1 %18
+               OpStore %arg_1 %19
                OpStore %arg_2 %int_1
-         %27 = OpLoad %11 %arg_0
-         %28 = OpLoad %v3uint %arg_1
-         %29 = OpLoad %int %arg_2
-         %26 = OpImageFetch %v4float %27 %28 Lod %29
-               OpStore %res %26
+         %29 = OpLoad %11 %arg_0
+         %30 = OpLoad %v3uint %arg_1
+         %31 = OpLoad %int %arg_2
+         %28 = OpImageFetch %v4float %29 %30 Lod %31
+               OpStore %res %28
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %32
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureLoad_bcbb3c
+%vertex_main_inner = OpFunction %v4float None %34
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureLoad_bcbb3c
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %37 = OpLabel
-         %38 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %38
+         %39 = OpLabel
+         %40 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %40
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureLoad_bcbb3c
+         %43 = OpLabel
+         %44 = OpFunctionCall %void %textureLoad_bcbb3c
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %44 = OpLabel
-         %45 = OpFunctionCall %void %textureLoad_bcbb3c
+         %46 = OpLabel
+         %47 = OpFunctionCall %void %textureLoad_bcbb3c
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureLoad/bcbb3c.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/bcbb3c.wgsl.expected.wgsl
index 572a57c..23be829 100644
--- a/test/tint/builtins/gen/var/textureLoad/bcbb3c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/bcbb3c.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_3d<f32>;
 
 fn textureLoad_bcbb3c() {
-  var arg_1 = vec3<u32>();
+  var arg_1 = vec3<u32>(1u);
   var arg_2 = 1i;
   var res : vec4<f32> = textureLoad(arg_0, arg_1, arg_2);
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/c16e00.wgsl b/test/tint/builtins/gen/var/textureLoad/c16e00.wgsl
index 8f83aff..ed1b9a9 100644
--- a/test/tint/builtins/gen/var/textureLoad/c16e00.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/c16e00.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureLoad(texture: texture_depth_2d_array, coords: vec2<i32>, array_index: u32, level: i32) -> f32
 fn textureLoad_c16e00() {
-  var arg_1 = vec2<i32>();
+  var arg_1 = vec2<i32>(1i);
   var arg_2 = 1u;
   var arg_3 = 1i;
   var res: f32 = textureLoad(arg_0, arg_1, arg_2, arg_3);
diff --git a/test/tint/builtins/gen/var/textureLoad/c16e00.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/c16e00.wgsl.expected.dxc.hlsl
index 4d0f985..03e9cf6 100644
--- a/test/tint/builtins/gen/var/textureLoad/c16e00.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/c16e00.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DArray arg_0 : register(t0, space1);
 
 void textureLoad_c16e00() {
-  int2 arg_1 = (0).xx;
+  int2 arg_1 = (1).xx;
   uint arg_2 = 1u;
   int arg_3 = 1;
   float res = arg_0.Load(int4(int3(arg_1, int(arg_2)), arg_3)).x;
diff --git a/test/tint/builtins/gen/var/textureLoad/c16e00.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/c16e00.wgsl.expected.fxc.hlsl
index 4d0f985..03e9cf6 100644
--- a/test/tint/builtins/gen/var/textureLoad/c16e00.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/c16e00.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DArray arg_0 : register(t0, space1);
 
 void textureLoad_c16e00() {
-  int2 arg_1 = (0).xx;
+  int2 arg_1 = (1).xx;
   uint arg_2 = 1u;
   int arg_3 = 1;
   float res = arg_0.Load(int4(int3(arg_1, int(arg_2)), arg_3)).x;
diff --git a/test/tint/builtins/gen/var/textureLoad/c16e00.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/c16e00.wgsl.expected.glsl
index 31617d9..674994b 100644
--- a/test/tint/builtins/gen/var/textureLoad/c16e00.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/c16e00.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 uniform highp sampler2DArray arg_0_1;
 void textureLoad_c16e00() {
-  ivec2 arg_1 = ivec2(0);
+  ivec2 arg_1 = ivec2(1);
   uint arg_2 = 1u;
   int arg_3 = 1;
   float res = texelFetch(arg_0_1, ivec3(arg_1, int(arg_2)), arg_3).x;
@@ -26,7 +26,7 @@
 
 uniform highp sampler2DArray arg_0_1;
 void textureLoad_c16e00() {
-  ivec2 arg_1 = ivec2(0);
+  ivec2 arg_1 = ivec2(1);
   uint arg_2 = 1u;
   int arg_3 = 1;
   float res = texelFetch(arg_0_1, ivec3(arg_1, int(arg_2)), arg_3).x;
@@ -44,7 +44,7 @@
 
 uniform highp sampler2DArray arg_0_1;
 void textureLoad_c16e00() {
-  ivec2 arg_1 = ivec2(0);
+  ivec2 arg_1 = ivec2(1);
   uint arg_2 = 1u;
   int arg_3 = 1;
   float res = texelFetch(arg_0_1, ivec3(arg_1, int(arg_2)), arg_3).x;
diff --git a/test/tint/builtins/gen/var/textureLoad/c16e00.wgsl.expected.msl b/test/tint/builtins/gen/var/textureLoad/c16e00.wgsl.expected.msl
index bd6dd7b..3b8aab4 100644
--- a/test/tint/builtins/gen/var/textureLoad/c16e00.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureLoad/c16e00.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureLoad_c16e00(depth2d_array<float, access::sample> tint_symbol_1) {
-  int2 arg_1 = int2(0);
+  int2 arg_1 = int2(1);
   uint arg_2 = 1u;
   int arg_3 = 1;
   float res = tint_symbol_1.read(uint2(arg_1), arg_2, arg_3);
diff --git a/test/tint/builtins/gen/var/textureLoad/c16e00.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/c16e00.wgsl.expected.spvasm
index d564db6..a50dacf 100644
--- a/test/tint/builtins/gen/var/textureLoad/c16e00.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/c16e00.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 57
+; Bound: 58
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -41,60 +41,61 @@
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
-         %18 = OpConstantNull %v2int
+      %int_1 = OpConstant %int 1
+         %19 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v2int = OpTypePointer Function %v2int
+         %22 = OpConstantNull %v2int
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %25 = OpConstantNull %uint
-      %int_1 = OpConstant %int 1
+         %27 = OpConstantNull %uint
 %_ptr_Function_int = OpTypePointer Function %int
-         %29 = OpConstantNull %int
+         %30 = OpConstantNull %int
       %v3int = OpTypeVector %int 3
 %_ptr_Function_float = OpTypePointer Function %float
-         %43 = OpTypeFunction %v4float
+         %44 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_c16e00 = OpFunction %void None %12
          %15 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2int Function %18
-      %arg_2 = OpVariable %_ptr_Function_uint Function %25
-      %arg_3 = OpVariable %_ptr_Function_int Function %29
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %22
+      %arg_2 = OpVariable %_ptr_Function_uint Function %27
+      %arg_3 = OpVariable %_ptr_Function_int Function %30
         %res = OpVariable %_ptr_Function_float Function %8
-               OpStore %arg_1 %18
+               OpStore %arg_1 %19
                OpStore %arg_2 %uint_1
                OpStore %arg_3 %int_1
-         %32 = OpLoad %11 %arg_0
-         %34 = OpLoad %v2int %arg_1
-         %35 = OpCompositeExtract %int %34 0
-         %36 = OpCompositeExtract %int %34 1
-         %38 = OpLoad %uint %arg_2
-         %37 = OpBitcast %int %38
-         %39 = OpCompositeConstruct %v3int %35 %36 %37
-         %40 = OpLoad %int %arg_3
-         %31 = OpImageFetch %v4float %32 %39 Lod %40
-         %30 = OpCompositeExtract %float %31 0
-               OpStore %res %30
+         %33 = OpLoad %11 %arg_0
+         %35 = OpLoad %v2int %arg_1
+         %36 = OpCompositeExtract %int %35 0
+         %37 = OpCompositeExtract %int %35 1
+         %39 = OpLoad %uint %arg_2
+         %38 = OpBitcast %int %39
+         %40 = OpCompositeConstruct %v3int %36 %37 %38
+         %41 = OpLoad %int %arg_3
+         %32 = OpImageFetch %v4float %33 %40 Lod %41
+         %31 = OpCompositeExtract %float %32 0
+               OpStore %res %31
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %43
-         %45 = OpLabel
-         %46 = OpFunctionCall %void %textureLoad_c16e00
+%vertex_main_inner = OpFunction %v4float None %44
+         %46 = OpLabel
+         %47 = OpFunctionCall %void %textureLoad_c16e00
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %48 = OpLabel
-         %49 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %49
+         %49 = OpLabel
+         %50 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %50
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %52 = OpLabel
-         %53 = OpFunctionCall %void %textureLoad_c16e00
+         %53 = OpLabel
+         %54 = OpFunctionCall %void %textureLoad_c16e00
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %55 = OpLabel
-         %56 = OpFunctionCall %void %textureLoad_c16e00
+         %56 = OpLabel
+         %57 = OpFunctionCall %void %textureLoad_c16e00
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureLoad/c16e00.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/c16e00.wgsl.expected.wgsl
index 766c6ef..f9aff39 100644
--- a/test/tint/builtins/gen/var/textureLoad/c16e00.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/c16e00.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_depth_2d_array;
 
 fn textureLoad_c16e00() {
-  var arg_1 = vec2<i32>();
+  var arg_1 = vec2<i32>(1i);
   var arg_2 = 1u;
   var arg_3 = 1i;
   var res : f32 = textureLoad(arg_0, arg_1, arg_2, arg_3);
diff --git a/test/tint/builtins/gen/var/textureLoad/c2a480.wgsl b/test/tint/builtins/gen/var/textureLoad/c2a480.wgsl
index dcb27eb..5c4a300 100644
--- a/test/tint/builtins/gen/var/textureLoad/c2a480.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/c2a480.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureLoad(texture: texture_2d<i32>, coords: vec2<i32>, level: i32) -> vec4<i32>
 fn textureLoad_c2a480() {
-  var arg_1 = vec2<i32>();
+  var arg_1 = vec2<i32>(1i);
   var arg_2 = 1i;
   var res: vec4<i32> = textureLoad(arg_0, arg_1, arg_2);
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/c2a480.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/c2a480.wgsl.expected.dxc.hlsl
index dcfad55..24a7ffa 100644
--- a/test/tint/builtins/gen/var/textureLoad/c2a480.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/c2a480.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 Texture2D<int4> arg_0 : register(t0, space1);
 
 void textureLoad_c2a480() {
-  int2 arg_1 = (0).xx;
+  int2 arg_1 = (1).xx;
   int arg_2 = 1;
   int4 res = arg_0.Load(int3(arg_1, arg_2));
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/c2a480.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/c2a480.wgsl.expected.fxc.hlsl
index dcfad55..24a7ffa 100644
--- a/test/tint/builtins/gen/var/textureLoad/c2a480.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/c2a480.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 Texture2D<int4> arg_0 : register(t0, space1);
 
 void textureLoad_c2a480() {
-  int2 arg_1 = (0).xx;
+  int2 arg_1 = (1).xx;
   int arg_2 = 1;
   int4 res = arg_0.Load(int3(arg_1, arg_2));
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/c2a480.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/c2a480.wgsl.expected.glsl
index 8002bc0..199eecb 100644
--- a/test/tint/builtins/gen/var/textureLoad/c2a480.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/c2a480.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 uniform highp isampler2D arg_0_1;
 void textureLoad_c2a480() {
-  ivec2 arg_1 = ivec2(0);
+  ivec2 arg_1 = ivec2(1);
   int arg_2 = 1;
   ivec4 res = texelFetch(arg_0_1, arg_1, arg_2);
 }
@@ -25,7 +25,7 @@
 
 uniform highp isampler2D arg_0_1;
 void textureLoad_c2a480() {
-  ivec2 arg_1 = ivec2(0);
+  ivec2 arg_1 = ivec2(1);
   int arg_2 = 1;
   ivec4 res = texelFetch(arg_0_1, arg_1, arg_2);
 }
@@ -42,7 +42,7 @@
 
 uniform highp isampler2D arg_0_1;
 void textureLoad_c2a480() {
-  ivec2 arg_1 = ivec2(0);
+  ivec2 arg_1 = ivec2(1);
   int arg_2 = 1;
   ivec4 res = texelFetch(arg_0_1, arg_1, arg_2);
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/c2a480.wgsl.expected.msl b/test/tint/builtins/gen/var/textureLoad/c2a480.wgsl.expected.msl
index 0d6cf6e..3daa6a0 100644
--- a/test/tint/builtins/gen/var/textureLoad/c2a480.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureLoad/c2a480.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureLoad_c2a480(texture2d<int, access::sample> tint_symbol_1) {
-  int2 arg_1 = int2(0);
+  int2 arg_1 = int2(1);
   int arg_2 = 1;
   int4 res = tint_symbol_1.read(uint2(arg_1), arg_2);
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/c2a480.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/c2a480.wgsl.expected.spvasm
index dbd659d..cb4beee 100644
--- a/test/tint/builtins/gen/var/textureLoad/c2a480.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/c2a480.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 47
+; Bound: 48
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -40,49 +40,50 @@
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
       %v2int = OpTypeVector %int 2
-         %18 = OpConstantNull %v2int
-%_ptr_Function_v2int = OpTypePointer Function %v2int
       %int_1 = OpConstant %int 1
+         %19 = OpConstantComposite %v2int %int_1 %int_1
+%_ptr_Function_v2int = OpTypePointer Function %v2int
+         %22 = OpConstantNull %v2int
 %_ptr_Function_int = OpTypePointer Function %int
-         %24 = OpConstantNull %int
+         %25 = OpConstantNull %int
       %v4int = OpTypeVector %int 4
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %32 = OpConstantNull %v4int
-         %33 = OpTypeFunction %v4float
+         %33 = OpConstantNull %v4int
+         %34 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_c2a480 = OpFunction %void None %13
          %16 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2int Function %18
-      %arg_2 = OpVariable %_ptr_Function_int Function %24
-        %res = OpVariable %_ptr_Function_v4int Function %32
-               OpStore %arg_1 %18
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %22
+      %arg_2 = OpVariable %_ptr_Function_int Function %25
+        %res = OpVariable %_ptr_Function_v4int Function %33
+               OpStore %arg_1 %19
                OpStore %arg_2 %int_1
-         %27 = OpLoad %11 %arg_0
-         %28 = OpLoad %v2int %arg_1
-         %29 = OpLoad %int %arg_2
-         %25 = OpImageFetch %v4int %27 %28 Lod %29
-               OpStore %res %25
+         %28 = OpLoad %11 %arg_0
+         %29 = OpLoad %v2int %arg_1
+         %30 = OpLoad %int %arg_2
+         %26 = OpImageFetch %v4int %28 %29 Lod %30
+               OpStore %res %26
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %33
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureLoad_c2a480
+%vertex_main_inner = OpFunction %v4float None %34
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureLoad_c2a480
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %38 = OpLabel
-         %39 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %39
+         %39 = OpLabel
+         %40 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %40
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureLoad_c2a480
+         %43 = OpLabel
+         %44 = OpFunctionCall %void %textureLoad_c2a480
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %45 = OpLabel
-         %46 = OpFunctionCall %void %textureLoad_c2a480
+         %46 = OpLabel
+         %47 = OpFunctionCall %void %textureLoad_c2a480
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureLoad/c2a480.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/c2a480.wgsl.expected.wgsl
index 569a41b..f7bac9a 100644
--- a/test/tint/builtins/gen/var/textureLoad/c2a480.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/c2a480.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_2d<i32>;
 
 fn textureLoad_c2a480() {
-  var arg_1 = vec2<i32>();
+  var arg_1 = vec2<i32>(1i);
   var arg_2 = 1i;
   var res : vec4<i32> = textureLoad(arg_0, arg_1, arg_2);
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/c378ee.wgsl b/test/tint/builtins/gen/var/textureLoad/c378ee.wgsl
index 9c585ac..091e0e5 100644
--- a/test/tint/builtins/gen/var/textureLoad/c378ee.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/c378ee.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureLoad(texture: texture_multisampled_2d<u32>, coords: vec2<i32>, sample_index: i32) -> vec4<u32>
 fn textureLoad_c378ee() {
-  var arg_1 = vec2<i32>();
+  var arg_1 = vec2<i32>(1i);
   var arg_2 = 1i;
   var res: vec4<u32> = textureLoad(arg_0, arg_1, arg_2);
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/c378ee.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/c378ee.wgsl.expected.dxc.hlsl
index 20193da..2df89369 100644
--- a/test/tint/builtins/gen/var/textureLoad/c378ee.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/c378ee.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DMS<uint4> arg_0 : register(t0, space1);
 
 void textureLoad_c378ee() {
-  int2 arg_1 = (0).xx;
+  int2 arg_1 = (1).xx;
   int arg_2 = 1;
   uint4 res = arg_0.Load(arg_1, arg_2);
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/c378ee.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/c378ee.wgsl.expected.fxc.hlsl
index 20193da..2df89369 100644
--- a/test/tint/builtins/gen/var/textureLoad/c378ee.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/c378ee.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DMS<uint4> arg_0 : register(t0, space1);
 
 void textureLoad_c378ee() {
-  int2 arg_1 = (0).xx;
+  int2 arg_1 = (1).xx;
   int arg_2 = 1;
   uint4 res = arg_0.Load(arg_1, arg_2);
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/c378ee.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/c378ee.wgsl.expected.glsl
index 9d3f844..e8e7b4c 100644
--- a/test/tint/builtins/gen/var/textureLoad/c378ee.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/c378ee.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 uniform highp usampler2DMS arg_0_1;
 void textureLoad_c378ee() {
-  ivec2 arg_1 = ivec2(0);
+  ivec2 arg_1 = ivec2(1);
   int arg_2 = 1;
   uvec4 res = texelFetch(arg_0_1, arg_1, arg_2);
 }
@@ -25,7 +25,7 @@
 
 uniform highp usampler2DMS arg_0_1;
 void textureLoad_c378ee() {
-  ivec2 arg_1 = ivec2(0);
+  ivec2 arg_1 = ivec2(1);
   int arg_2 = 1;
   uvec4 res = texelFetch(arg_0_1, arg_1, arg_2);
 }
@@ -42,7 +42,7 @@
 
 uniform highp usampler2DMS arg_0_1;
 void textureLoad_c378ee() {
-  ivec2 arg_1 = ivec2(0);
+  ivec2 arg_1 = ivec2(1);
   int arg_2 = 1;
   uvec4 res = texelFetch(arg_0_1, arg_1, arg_2);
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/c378ee.wgsl.expected.msl b/test/tint/builtins/gen/var/textureLoad/c378ee.wgsl.expected.msl
index c6192ce..a8df92b 100644
--- a/test/tint/builtins/gen/var/textureLoad/c378ee.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureLoad/c378ee.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureLoad_c378ee(texture2d_ms<uint, access::read> tint_symbol_1) {
-  int2 arg_1 = int2(0);
+  int2 arg_1 = int2(1);
   int arg_2 = 1;
   uint4 res = tint_symbol_1.read(uint2(arg_1), arg_2);
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/c378ee.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/c378ee.wgsl.expected.spvasm
index 190f4ac..808c4e6 100644
--- a/test/tint/builtins/gen/var/textureLoad/c378ee.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/c378ee.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 48
+; Bound: 49
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -41,49 +41,50 @@
          %13 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
-         %19 = OpConstantNull %v2int
-%_ptr_Function_v2int = OpTypePointer Function %v2int
       %int_1 = OpConstant %int 1
+         %20 = OpConstantComposite %v2int %int_1 %int_1
+%_ptr_Function_v2int = OpTypePointer Function %v2int
+         %23 = OpConstantNull %v2int
 %_ptr_Function_int = OpTypePointer Function %int
-         %25 = OpConstantNull %int
+         %26 = OpConstantNull %int
      %v4uint = OpTypeVector %uint 4
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %33 = OpConstantNull %v4uint
-         %34 = OpTypeFunction %v4float
+         %34 = OpConstantNull %v4uint
+         %35 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_c378ee = OpFunction %void None %13
          %16 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2int Function %19
-      %arg_2 = OpVariable %_ptr_Function_int Function %25
-        %res = OpVariable %_ptr_Function_v4uint Function %33
-               OpStore %arg_1 %19
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %23
+      %arg_2 = OpVariable %_ptr_Function_int Function %26
+        %res = OpVariable %_ptr_Function_v4uint Function %34
+               OpStore %arg_1 %20
                OpStore %arg_2 %int_1
-         %28 = OpLoad %11 %arg_0
-         %29 = OpLoad %v2int %arg_1
-         %30 = OpLoad %int %arg_2
-         %26 = OpImageFetch %v4uint %28 %29 Sample %30
-               OpStore %res %26
+         %29 = OpLoad %11 %arg_0
+         %30 = OpLoad %v2int %arg_1
+         %31 = OpLoad %int %arg_2
+         %27 = OpImageFetch %v4uint %29 %30 Sample %31
+               OpStore %res %27
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %34
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureLoad_c378ee
+%vertex_main_inner = OpFunction %v4float None %35
+         %37 = OpLabel
+         %38 = OpFunctionCall %void %textureLoad_c378ee
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %40
+         %40 = OpLabel
+         %41 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %41
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %43 = OpLabel
-         %44 = OpFunctionCall %void %textureLoad_c378ee
+         %44 = OpLabel
+         %45 = OpFunctionCall %void %textureLoad_c378ee
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %46 = OpLabel
-         %47 = OpFunctionCall %void %textureLoad_c378ee
+         %47 = OpLabel
+         %48 = OpFunctionCall %void %textureLoad_c378ee
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureLoad/c378ee.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/c378ee.wgsl.expected.wgsl
index fa00435..33e2b06 100644
--- a/test/tint/builtins/gen/var/textureLoad/c378ee.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/c378ee.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_multisampled_2d<u32>;
 
 fn textureLoad_c378ee() {
-  var arg_1 = vec2<i32>();
+  var arg_1 = vec2<i32>(1i);
   var arg_2 = 1i;
   var res : vec4<u32> = textureLoad(arg_0, arg_1, arg_2);
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/cad5f2.wgsl b/test/tint/builtins/gen/var/textureLoad/cad5f2.wgsl
index 16f8e3e..67b4f75 100644
--- a/test/tint/builtins/gen/var/textureLoad/cad5f2.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/cad5f2.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureLoad(texture: texture_multisampled_2d<u32>, coords: vec2<i32>, sample_index: u32) -> vec4<u32>
 fn textureLoad_cad5f2() {
-  var arg_1 = vec2<i32>();
+  var arg_1 = vec2<i32>(1i);
   var arg_2 = 1u;
   var res: vec4<u32> = textureLoad(arg_0, arg_1, arg_2);
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/cad5f2.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/cad5f2.wgsl.expected.dxc.hlsl
index b6f32e6..c00b762 100644
--- a/test/tint/builtins/gen/var/textureLoad/cad5f2.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/cad5f2.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DMS<uint4> arg_0 : register(t0, space1);
 
 void textureLoad_cad5f2() {
-  int2 arg_1 = (0).xx;
+  int2 arg_1 = (1).xx;
   uint arg_2 = 1u;
   uint4 res = arg_0.Load(arg_1, arg_2);
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/cad5f2.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/cad5f2.wgsl.expected.fxc.hlsl
index b6f32e6..c00b762 100644
--- a/test/tint/builtins/gen/var/textureLoad/cad5f2.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/cad5f2.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DMS<uint4> arg_0 : register(t0, space1);
 
 void textureLoad_cad5f2() {
-  int2 arg_1 = (0).xx;
+  int2 arg_1 = (1).xx;
   uint arg_2 = 1u;
   uint4 res = arg_0.Load(arg_1, arg_2);
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/cad5f2.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/cad5f2.wgsl.expected.glsl
index 97b57af..e448cbd 100644
--- a/test/tint/builtins/gen/var/textureLoad/cad5f2.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/cad5f2.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 uniform highp usampler2DMS arg_0_1;
 void textureLoad_cad5f2() {
-  ivec2 arg_1 = ivec2(0);
+  ivec2 arg_1 = ivec2(1);
   uint arg_2 = 1u;
   uvec4 res = texelFetch(arg_0_1, arg_1, int(arg_2));
 }
@@ -25,7 +25,7 @@
 
 uniform highp usampler2DMS arg_0_1;
 void textureLoad_cad5f2() {
-  ivec2 arg_1 = ivec2(0);
+  ivec2 arg_1 = ivec2(1);
   uint arg_2 = 1u;
   uvec4 res = texelFetch(arg_0_1, arg_1, int(arg_2));
 }
@@ -42,7 +42,7 @@
 
 uniform highp usampler2DMS arg_0_1;
 void textureLoad_cad5f2() {
-  ivec2 arg_1 = ivec2(0);
+  ivec2 arg_1 = ivec2(1);
   uint arg_2 = 1u;
   uvec4 res = texelFetch(arg_0_1, arg_1, int(arg_2));
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/cad5f2.wgsl.expected.msl b/test/tint/builtins/gen/var/textureLoad/cad5f2.wgsl.expected.msl
index c06c0c6..732b1a9 100644
--- a/test/tint/builtins/gen/var/textureLoad/cad5f2.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureLoad/cad5f2.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureLoad_cad5f2(texture2d_ms<uint, access::read> tint_symbol_1) {
-  int2 arg_1 = int2(0);
+  int2 arg_1 = int2(1);
   uint arg_2 = 1u;
   uint4 res = tint_symbol_1.read(uint2(arg_1), arg_2);
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/cad5f2.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/cad5f2.wgsl.expected.spvasm
index d95ecf3..43f5fa2 100644
--- a/test/tint/builtins/gen/var/textureLoad/cad5f2.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/cad5f2.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 48
+; Bound: 50
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -41,49 +41,51 @@
          %13 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
-         %19 = OpConstantNull %v2int
+      %int_1 = OpConstant %int 1
+         %20 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v2int = OpTypePointer Function %v2int
+         %23 = OpConstantNull %v2int
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %25 = OpConstantNull %uint
+         %27 = OpConstantNull %uint
      %v4uint = OpTypeVector %uint 4
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %33 = OpConstantNull %v4uint
-         %34 = OpTypeFunction %v4float
+         %35 = OpConstantNull %v4uint
+         %36 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_cad5f2 = OpFunction %void None %13
          %16 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2int Function %19
-      %arg_2 = OpVariable %_ptr_Function_uint Function %25
-        %res = OpVariable %_ptr_Function_v4uint Function %33
-               OpStore %arg_1 %19
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %23
+      %arg_2 = OpVariable %_ptr_Function_uint Function %27
+        %res = OpVariable %_ptr_Function_v4uint Function %35
+               OpStore %arg_1 %20
                OpStore %arg_2 %uint_1
-         %28 = OpLoad %11 %arg_0
-         %29 = OpLoad %v2int %arg_1
-         %30 = OpLoad %uint %arg_2
-         %26 = OpImageFetch %v4uint %28 %29 Sample %30
-               OpStore %res %26
+         %30 = OpLoad %11 %arg_0
+         %31 = OpLoad %v2int %arg_1
+         %32 = OpLoad %uint %arg_2
+         %28 = OpImageFetch %v4uint %30 %31 Sample %32
+               OpStore %res %28
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %34
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureLoad_cad5f2
+%vertex_main_inner = OpFunction %v4float None %36
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %textureLoad_cad5f2
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %40
+         %41 = OpLabel
+         %42 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %42
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %43 = OpLabel
-         %44 = OpFunctionCall %void %textureLoad_cad5f2
+         %45 = OpLabel
+         %46 = OpFunctionCall %void %textureLoad_cad5f2
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %46 = OpLabel
-         %47 = OpFunctionCall %void %textureLoad_cad5f2
+         %48 = OpLabel
+         %49 = OpFunctionCall %void %textureLoad_cad5f2
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureLoad/cad5f2.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/cad5f2.wgsl.expected.wgsl
index 5d3a522..05c2787 100644
--- a/test/tint/builtins/gen/var/textureLoad/cad5f2.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/cad5f2.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_multisampled_2d<u32>;
 
 fn textureLoad_cad5f2() {
-  var arg_1 = vec2<i32>();
+  var arg_1 = vec2<i32>(1i);
   var arg_2 = 1u;
   var res : vec4<u32> = textureLoad(arg_0, arg_1, arg_2);
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/cb57c2.wgsl b/test/tint/builtins/gen/var/textureLoad/cb57c2.wgsl
index e34e2a9..5aee221 100644
--- a/test/tint/builtins/gen/var/textureLoad/cb57c2.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/cb57c2.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureLoad(texture: texture_depth_2d_array, coords: vec2<u32>, array_index: u32, level: i32) -> f32
 fn textureLoad_cb57c2() {
-  var arg_1 = vec2<u32>();
+  var arg_1 = vec2<u32>(1u);
   var arg_2 = 1u;
   var arg_3 = 1i;
   var res: f32 = textureLoad(arg_0, arg_1, arg_2, arg_3);
diff --git a/test/tint/builtins/gen/var/textureLoad/cb57c2.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/cb57c2.wgsl.expected.dxc.hlsl
index 135cccf..9ec09f6 100644
--- a/test/tint/builtins/gen/var/textureLoad/cb57c2.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/cb57c2.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DArray arg_0 : register(t0, space1);
 
 void textureLoad_cb57c2() {
-  uint2 arg_1 = (0u).xx;
+  uint2 arg_1 = (1u).xx;
   uint arg_2 = 1u;
   int arg_3 = 1;
   float res = arg_0.Load(uint4(uint3(arg_1, arg_2), uint(arg_3))).x;
diff --git a/test/tint/builtins/gen/var/textureLoad/cb57c2.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/cb57c2.wgsl.expected.fxc.hlsl
index 135cccf..9ec09f6 100644
--- a/test/tint/builtins/gen/var/textureLoad/cb57c2.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/cb57c2.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DArray arg_0 : register(t0, space1);
 
 void textureLoad_cb57c2() {
-  uint2 arg_1 = (0u).xx;
+  uint2 arg_1 = (1u).xx;
   uint arg_2 = 1u;
   int arg_3 = 1;
   float res = arg_0.Load(uint4(uint3(arg_1, arg_2), uint(arg_3))).x;
diff --git a/test/tint/builtins/gen/var/textureLoad/cb57c2.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/cb57c2.wgsl.expected.glsl
index 4a373bd..e0f0550 100644
--- a/test/tint/builtins/gen/var/textureLoad/cb57c2.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/cb57c2.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 uniform highp sampler2DArray arg_0_1;
 void textureLoad_cb57c2() {
-  uvec2 arg_1 = uvec2(0u);
+  uvec2 arg_1 = uvec2(1u);
   uint arg_2 = 1u;
   int arg_3 = 1;
   float res = texelFetch(arg_0_1, ivec3(uvec3(arg_1, arg_2)), arg_3).x;
@@ -26,7 +26,7 @@
 
 uniform highp sampler2DArray arg_0_1;
 void textureLoad_cb57c2() {
-  uvec2 arg_1 = uvec2(0u);
+  uvec2 arg_1 = uvec2(1u);
   uint arg_2 = 1u;
   int arg_3 = 1;
   float res = texelFetch(arg_0_1, ivec3(uvec3(arg_1, arg_2)), arg_3).x;
@@ -44,7 +44,7 @@
 
 uniform highp sampler2DArray arg_0_1;
 void textureLoad_cb57c2() {
-  uvec2 arg_1 = uvec2(0u);
+  uvec2 arg_1 = uvec2(1u);
   uint arg_2 = 1u;
   int arg_3 = 1;
   float res = texelFetch(arg_0_1, ivec3(uvec3(arg_1, arg_2)), arg_3).x;
diff --git a/test/tint/builtins/gen/var/textureLoad/cb57c2.wgsl.expected.msl b/test/tint/builtins/gen/var/textureLoad/cb57c2.wgsl.expected.msl
index 266af5b..c92ea65 100644
--- a/test/tint/builtins/gen/var/textureLoad/cb57c2.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureLoad/cb57c2.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureLoad_cb57c2(depth2d_array<float, access::sample> tint_symbol_1) {
-  uint2 arg_1 = uint2(0u);
+  uint2 arg_1 = uint2(1u);
   uint arg_2 = 1u;
   int arg_3 = 1;
   float res = tint_symbol_1.read(uint2(arg_1), arg_2, arg_3);
diff --git a/test/tint/builtins/gen/var/textureLoad/cb57c2.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/cb57c2.wgsl.expected.spvasm
index 5475379..83f4137 100644
--- a/test/tint/builtins/gen/var/textureLoad/cb57c2.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/cb57c2.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 56
+; Bound: 57
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -41,59 +41,60 @@
          %12 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
-         %18 = OpConstantNull %v2uint
-%_ptr_Function_v2uint = OpTypePointer Function %v2uint
      %uint_1 = OpConstant %uint 1
+         %19 = OpConstantComposite %v2uint %uint_1 %uint_1
+%_ptr_Function_v2uint = OpTypePointer Function %v2uint
+         %22 = OpConstantNull %v2uint
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %24 = OpConstantNull %uint
+         %25 = OpConstantNull %uint
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
-         %29 = OpConstantNull %int
+         %30 = OpConstantNull %int
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_float = OpTypePointer Function %float
-         %42 = OpTypeFunction %v4float
+         %43 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_cb57c2 = OpFunction %void None %12
          %15 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2uint Function %18
-      %arg_2 = OpVariable %_ptr_Function_uint Function %24
-      %arg_3 = OpVariable %_ptr_Function_int Function %29
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %22
+      %arg_2 = OpVariable %_ptr_Function_uint Function %25
+      %arg_3 = OpVariable %_ptr_Function_int Function %30
         %res = OpVariable %_ptr_Function_float Function %8
-               OpStore %arg_1 %18
+               OpStore %arg_1 %19
                OpStore %arg_2 %uint_1
                OpStore %arg_3 %int_1
-         %32 = OpLoad %11 %arg_0
-         %34 = OpLoad %v2uint %arg_1
-         %35 = OpCompositeExtract %uint %34 0
-         %36 = OpCompositeExtract %uint %34 1
-         %37 = OpLoad %uint %arg_2
-         %38 = OpCompositeConstruct %v3uint %35 %36 %37
-         %39 = OpLoad %int %arg_3
-         %31 = OpImageFetch %v4float %32 %38 Lod %39
-         %30 = OpCompositeExtract %float %31 0
-               OpStore %res %30
+         %33 = OpLoad %11 %arg_0
+         %35 = OpLoad %v2uint %arg_1
+         %36 = OpCompositeExtract %uint %35 0
+         %37 = OpCompositeExtract %uint %35 1
+         %38 = OpLoad %uint %arg_2
+         %39 = OpCompositeConstruct %v3uint %36 %37 %38
+         %40 = OpLoad %int %arg_3
+         %32 = OpImageFetch %v4float %33 %39 Lod %40
+         %31 = OpCompositeExtract %float %32 0
+               OpStore %res %31
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %42
-         %44 = OpLabel
-         %45 = OpFunctionCall %void %textureLoad_cb57c2
+%vertex_main_inner = OpFunction %v4float None %43
+         %45 = OpLabel
+         %46 = OpFunctionCall %void %textureLoad_cb57c2
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %47 = OpLabel
-         %48 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %48
+         %48 = OpLabel
+         %49 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %49
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %51 = OpLabel
-         %52 = OpFunctionCall %void %textureLoad_cb57c2
+         %52 = OpLabel
+         %53 = OpFunctionCall %void %textureLoad_cb57c2
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %54 = OpLabel
-         %55 = OpFunctionCall %void %textureLoad_cb57c2
+         %55 = OpLabel
+         %56 = OpFunctionCall %void %textureLoad_cb57c2
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureLoad/cb57c2.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/cb57c2.wgsl.expected.wgsl
index 6bedb93..8c9f2ac 100644
--- a/test/tint/builtins/gen/var/textureLoad/cb57c2.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/cb57c2.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_depth_2d_array;
 
 fn textureLoad_cb57c2() {
-  var arg_1 = vec2<u32>();
+  var arg_1 = vec2<u32>(1u);
   var arg_2 = 1u;
   var arg_3 = 1i;
   var res : f32 = textureLoad(arg_0, arg_1, arg_2, arg_3);
diff --git a/test/tint/builtins/gen/var/textureLoad/e35f72.wgsl b/test/tint/builtins/gen/var/textureLoad/e35f72.wgsl
index 619901a..f53b198 100644
--- a/test/tint/builtins/gen/var/textureLoad/e35f72.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/e35f72.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureLoad(texture: texture_3d<i32>, coords: vec3<i32>, level: u32) -> vec4<i32>
 fn textureLoad_e35f72() {
-  var arg_1 = vec3<i32>();
+  var arg_1 = vec3<i32>(1i);
   var arg_2 = 1u;
   var res: vec4<i32> = textureLoad(arg_0, arg_1, arg_2);
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/e35f72.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/e35f72.wgsl.expected.dxc.hlsl
index 0a1558f..9e661e2 100644
--- a/test/tint/builtins/gen/var/textureLoad/e35f72.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/e35f72.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 Texture3D<int4> arg_0 : register(t0, space1);
 
 void textureLoad_e35f72() {
-  int3 arg_1 = (0).xxx;
+  int3 arg_1 = (1).xxx;
   uint arg_2 = 1u;
   int4 res = arg_0.Load(int4(arg_1, int(arg_2)));
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/e35f72.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/e35f72.wgsl.expected.fxc.hlsl
index 0a1558f..9e661e2 100644
--- a/test/tint/builtins/gen/var/textureLoad/e35f72.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/e35f72.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 Texture3D<int4> arg_0 : register(t0, space1);
 
 void textureLoad_e35f72() {
-  int3 arg_1 = (0).xxx;
+  int3 arg_1 = (1).xxx;
   uint arg_2 = 1u;
   int4 res = arg_0.Load(int4(arg_1, int(arg_2)));
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/e35f72.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/e35f72.wgsl.expected.glsl
index b1d0f09..3a88a78 100644
--- a/test/tint/builtins/gen/var/textureLoad/e35f72.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/e35f72.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 uniform highp isampler3D arg_0_1;
 void textureLoad_e35f72() {
-  ivec3 arg_1 = ivec3(0);
+  ivec3 arg_1 = ivec3(1);
   uint arg_2 = 1u;
   ivec4 res = texelFetch(arg_0_1, arg_1, int(arg_2));
 }
@@ -25,7 +25,7 @@
 
 uniform highp isampler3D arg_0_1;
 void textureLoad_e35f72() {
-  ivec3 arg_1 = ivec3(0);
+  ivec3 arg_1 = ivec3(1);
   uint arg_2 = 1u;
   ivec4 res = texelFetch(arg_0_1, arg_1, int(arg_2));
 }
@@ -42,7 +42,7 @@
 
 uniform highp isampler3D arg_0_1;
 void textureLoad_e35f72() {
-  ivec3 arg_1 = ivec3(0);
+  ivec3 arg_1 = ivec3(1);
   uint arg_2 = 1u;
   ivec4 res = texelFetch(arg_0_1, arg_1, int(arg_2));
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/e35f72.wgsl.expected.msl b/test/tint/builtins/gen/var/textureLoad/e35f72.wgsl.expected.msl
index faa6c6b..978bd25 100644
--- a/test/tint/builtins/gen/var/textureLoad/e35f72.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureLoad/e35f72.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureLoad_e35f72(texture3d<int, access::sample> tint_symbol_1) {
-  int3 arg_1 = int3(0);
+  int3 arg_1 = int3(1);
   uint arg_2 = 1u;
   int4 res = tint_symbol_1.read(uint3(arg_1), arg_2);
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/e35f72.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/e35f72.wgsl.expected.spvasm
index 64cc79d..e6502f1 100644
--- a/test/tint/builtins/gen/var/textureLoad/e35f72.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/e35f72.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 48
+; Bound: 50
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -40,50 +40,52 @@
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
       %v3int = OpTypeVector %int 3
-         %18 = OpConstantNull %v3int
+      %int_1 = OpConstant %int 1
+         %19 = OpConstantComposite %v3int %int_1 %int_1 %int_1
 %_ptr_Function_v3int = OpTypePointer Function %v3int
+         %22 = OpConstantNull %v3int
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %25 = OpConstantNull %uint
+         %27 = OpConstantNull %uint
       %v4int = OpTypeVector %int 4
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %33 = OpConstantNull %v4int
-         %34 = OpTypeFunction %v4float
+         %35 = OpConstantNull %v4int
+         %36 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_e35f72 = OpFunction %void None %13
          %16 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v3int Function %18
-      %arg_2 = OpVariable %_ptr_Function_uint Function %25
-        %res = OpVariable %_ptr_Function_v4int Function %33
-               OpStore %arg_1 %18
+      %arg_1 = OpVariable %_ptr_Function_v3int Function %22
+      %arg_2 = OpVariable %_ptr_Function_uint Function %27
+        %res = OpVariable %_ptr_Function_v4int Function %35
+               OpStore %arg_1 %19
                OpStore %arg_2 %uint_1
-         %28 = OpLoad %11 %arg_0
-         %29 = OpLoad %v3int %arg_1
-         %30 = OpLoad %uint %arg_2
-         %26 = OpImageFetch %v4int %28 %29 Lod %30
-               OpStore %res %26
+         %30 = OpLoad %11 %arg_0
+         %31 = OpLoad %v3int %arg_1
+         %32 = OpLoad %uint %arg_2
+         %28 = OpImageFetch %v4int %30 %31 Lod %32
+               OpStore %res %28
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %34
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureLoad_e35f72
+%vertex_main_inner = OpFunction %v4float None %36
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %textureLoad_e35f72
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %40
+         %41 = OpLabel
+         %42 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %42
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %43 = OpLabel
-         %44 = OpFunctionCall %void %textureLoad_e35f72
+         %45 = OpLabel
+         %46 = OpFunctionCall %void %textureLoad_e35f72
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %46 = OpLabel
-         %47 = OpFunctionCall %void %textureLoad_e35f72
+         %48 = OpLabel
+         %49 = OpFunctionCall %void %textureLoad_e35f72
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureLoad/e35f72.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/e35f72.wgsl.expected.wgsl
index bd4853b..b1df17e 100644
--- a/test/tint/builtins/gen/var/textureLoad/e35f72.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/e35f72.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_3d<i32>;
 
 fn textureLoad_e35f72() {
-  var arg_1 = vec3<i32>();
+  var arg_1 = vec3<i32>(1i);
   var arg_2 = 1u;
   var res : vec4<i32> = textureLoad(arg_0, arg_1, arg_2);
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/e3d2cc.wgsl b/test/tint/builtins/gen/var/textureLoad/e3d2cc.wgsl
index a2b9f55..8f380a4 100644
--- a/test/tint/builtins/gen/var/textureLoad/e3d2cc.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/e3d2cc.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureLoad(texture: texture_multisampled_2d<i32>, coords: vec2<i32>, sample_index: i32) -> vec4<i32>
 fn textureLoad_e3d2cc() {
-  var arg_1 = vec2<i32>();
+  var arg_1 = vec2<i32>(1i);
   var arg_2 = 1i;
   var res: vec4<i32> = textureLoad(arg_0, arg_1, arg_2);
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/e3d2cc.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/e3d2cc.wgsl.expected.dxc.hlsl
index 2599303..0037606 100644
--- a/test/tint/builtins/gen/var/textureLoad/e3d2cc.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/e3d2cc.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DMS<int4> arg_0 : register(t0, space1);
 
 void textureLoad_e3d2cc() {
-  int2 arg_1 = (0).xx;
+  int2 arg_1 = (1).xx;
   int arg_2 = 1;
   int4 res = arg_0.Load(arg_1, arg_2);
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/e3d2cc.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/e3d2cc.wgsl.expected.fxc.hlsl
index 2599303..0037606 100644
--- a/test/tint/builtins/gen/var/textureLoad/e3d2cc.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/e3d2cc.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DMS<int4> arg_0 : register(t0, space1);
 
 void textureLoad_e3d2cc() {
-  int2 arg_1 = (0).xx;
+  int2 arg_1 = (1).xx;
   int arg_2 = 1;
   int4 res = arg_0.Load(arg_1, arg_2);
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/e3d2cc.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/e3d2cc.wgsl.expected.glsl
index 6c70fb2..584ca2a 100644
--- a/test/tint/builtins/gen/var/textureLoad/e3d2cc.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/e3d2cc.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 uniform highp isampler2DMS arg_0_1;
 void textureLoad_e3d2cc() {
-  ivec2 arg_1 = ivec2(0);
+  ivec2 arg_1 = ivec2(1);
   int arg_2 = 1;
   ivec4 res = texelFetch(arg_0_1, arg_1, arg_2);
 }
@@ -25,7 +25,7 @@
 
 uniform highp isampler2DMS arg_0_1;
 void textureLoad_e3d2cc() {
-  ivec2 arg_1 = ivec2(0);
+  ivec2 arg_1 = ivec2(1);
   int arg_2 = 1;
   ivec4 res = texelFetch(arg_0_1, arg_1, arg_2);
 }
@@ -42,7 +42,7 @@
 
 uniform highp isampler2DMS arg_0_1;
 void textureLoad_e3d2cc() {
-  ivec2 arg_1 = ivec2(0);
+  ivec2 arg_1 = ivec2(1);
   int arg_2 = 1;
   ivec4 res = texelFetch(arg_0_1, arg_1, arg_2);
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/e3d2cc.wgsl.expected.msl b/test/tint/builtins/gen/var/textureLoad/e3d2cc.wgsl.expected.msl
index 37f3ac3..9842b61 100644
--- a/test/tint/builtins/gen/var/textureLoad/e3d2cc.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureLoad/e3d2cc.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureLoad_e3d2cc(texture2d_ms<int, access::read> tint_symbol_1) {
-  int2 arg_1 = int2(0);
+  int2 arg_1 = int2(1);
   int arg_2 = 1;
   int4 res = tint_symbol_1.read(uint2(arg_1), arg_2);
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/e3d2cc.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/e3d2cc.wgsl.expected.spvasm
index 31837df..8366280 100644
--- a/test/tint/builtins/gen/var/textureLoad/e3d2cc.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/e3d2cc.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 47
+; Bound: 48
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -40,49 +40,50 @@
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
       %v2int = OpTypeVector %int 2
-         %18 = OpConstantNull %v2int
-%_ptr_Function_v2int = OpTypePointer Function %v2int
       %int_1 = OpConstant %int 1
+         %19 = OpConstantComposite %v2int %int_1 %int_1
+%_ptr_Function_v2int = OpTypePointer Function %v2int
+         %22 = OpConstantNull %v2int
 %_ptr_Function_int = OpTypePointer Function %int
-         %24 = OpConstantNull %int
+         %25 = OpConstantNull %int
       %v4int = OpTypeVector %int 4
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %32 = OpConstantNull %v4int
-         %33 = OpTypeFunction %v4float
+         %33 = OpConstantNull %v4int
+         %34 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_e3d2cc = OpFunction %void None %13
          %16 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2int Function %18
-      %arg_2 = OpVariable %_ptr_Function_int Function %24
-        %res = OpVariable %_ptr_Function_v4int Function %32
-               OpStore %arg_1 %18
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %22
+      %arg_2 = OpVariable %_ptr_Function_int Function %25
+        %res = OpVariable %_ptr_Function_v4int Function %33
+               OpStore %arg_1 %19
                OpStore %arg_2 %int_1
-         %27 = OpLoad %11 %arg_0
-         %28 = OpLoad %v2int %arg_1
-         %29 = OpLoad %int %arg_2
-         %25 = OpImageFetch %v4int %27 %28 Sample %29
-               OpStore %res %25
+         %28 = OpLoad %11 %arg_0
+         %29 = OpLoad %v2int %arg_1
+         %30 = OpLoad %int %arg_2
+         %26 = OpImageFetch %v4int %28 %29 Sample %30
+               OpStore %res %26
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %33
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureLoad_e3d2cc
+%vertex_main_inner = OpFunction %v4float None %34
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureLoad_e3d2cc
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %38 = OpLabel
-         %39 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %39
+         %39 = OpLabel
+         %40 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %40
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureLoad_e3d2cc
+         %43 = OpLabel
+         %44 = OpFunctionCall %void %textureLoad_e3d2cc
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %45 = OpLabel
-         %46 = OpFunctionCall %void %textureLoad_e3d2cc
+         %46 = OpLabel
+         %47 = OpFunctionCall %void %textureLoad_e3d2cc
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureLoad/e3d2cc.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/e3d2cc.wgsl.expected.wgsl
index 6dd2d7d..27686e7 100644
--- a/test/tint/builtins/gen/var/textureLoad/e3d2cc.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/e3d2cc.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_multisampled_2d<i32>;
 
 fn textureLoad_e3d2cc() {
-  var arg_1 = vec2<i32>();
+  var arg_1 = vec2<i32>(1i);
   var arg_2 = 1i;
   var res : vec4<i32> = textureLoad(arg_0, arg_1, arg_2);
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/ebfb92.wgsl b/test/tint/builtins/gen/var/textureLoad/ebfb92.wgsl
index 843e20c..0a4c3ba 100644
--- a/test/tint/builtins/gen/var/textureLoad/ebfb92.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/ebfb92.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureLoad(texture: texture_2d<u32>, coords: vec2<i32>, level: u32) -> vec4<u32>
 fn textureLoad_ebfb92() {
-  var arg_1 = vec2<i32>();
+  var arg_1 = vec2<i32>(1i);
   var arg_2 = 1u;
   var res: vec4<u32> = textureLoad(arg_0, arg_1, arg_2);
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/ebfb92.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/ebfb92.wgsl.expected.dxc.hlsl
index 6f17474..03e13c8 100644
--- a/test/tint/builtins/gen/var/textureLoad/ebfb92.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/ebfb92.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 Texture2D<uint4> arg_0 : register(t0, space1);
 
 void textureLoad_ebfb92() {
-  int2 arg_1 = (0).xx;
+  int2 arg_1 = (1).xx;
   uint arg_2 = 1u;
   uint4 res = arg_0.Load(int3(arg_1, int(arg_2)));
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/ebfb92.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/ebfb92.wgsl.expected.fxc.hlsl
index 6f17474..03e13c8 100644
--- a/test/tint/builtins/gen/var/textureLoad/ebfb92.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/ebfb92.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 Texture2D<uint4> arg_0 : register(t0, space1);
 
 void textureLoad_ebfb92() {
-  int2 arg_1 = (0).xx;
+  int2 arg_1 = (1).xx;
   uint arg_2 = 1u;
   uint4 res = arg_0.Load(int3(arg_1, int(arg_2)));
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/ebfb92.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/ebfb92.wgsl.expected.glsl
index 68072ab..3530385 100644
--- a/test/tint/builtins/gen/var/textureLoad/ebfb92.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/ebfb92.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 uniform highp usampler2D arg_0_1;
 void textureLoad_ebfb92() {
-  ivec2 arg_1 = ivec2(0);
+  ivec2 arg_1 = ivec2(1);
   uint arg_2 = 1u;
   uvec4 res = texelFetch(arg_0_1, arg_1, int(arg_2));
 }
@@ -25,7 +25,7 @@
 
 uniform highp usampler2D arg_0_1;
 void textureLoad_ebfb92() {
-  ivec2 arg_1 = ivec2(0);
+  ivec2 arg_1 = ivec2(1);
   uint arg_2 = 1u;
   uvec4 res = texelFetch(arg_0_1, arg_1, int(arg_2));
 }
@@ -42,7 +42,7 @@
 
 uniform highp usampler2D arg_0_1;
 void textureLoad_ebfb92() {
-  ivec2 arg_1 = ivec2(0);
+  ivec2 arg_1 = ivec2(1);
   uint arg_2 = 1u;
   uvec4 res = texelFetch(arg_0_1, arg_1, int(arg_2));
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/ebfb92.wgsl.expected.msl b/test/tint/builtins/gen/var/textureLoad/ebfb92.wgsl.expected.msl
index 4cb0be7..e527ee2 100644
--- a/test/tint/builtins/gen/var/textureLoad/ebfb92.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureLoad/ebfb92.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureLoad_ebfb92(texture2d<uint, access::sample> tint_symbol_1) {
-  int2 arg_1 = int2(0);
+  int2 arg_1 = int2(1);
   uint arg_2 = 1u;
   uint4 res = tint_symbol_1.read(uint2(arg_1), arg_2);
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/ebfb92.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/ebfb92.wgsl.expected.spvasm
index 72acde0..0329ceb 100644
--- a/test/tint/builtins/gen/var/textureLoad/ebfb92.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/ebfb92.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 48
+; Bound: 50
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -41,49 +41,51 @@
          %13 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
-         %19 = OpConstantNull %v2int
+      %int_1 = OpConstant %int 1
+         %20 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v2int = OpTypePointer Function %v2int
+         %23 = OpConstantNull %v2int
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %25 = OpConstantNull %uint
+         %27 = OpConstantNull %uint
      %v4uint = OpTypeVector %uint 4
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %33 = OpConstantNull %v4uint
-         %34 = OpTypeFunction %v4float
+         %35 = OpConstantNull %v4uint
+         %36 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_ebfb92 = OpFunction %void None %13
          %16 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2int Function %19
-      %arg_2 = OpVariable %_ptr_Function_uint Function %25
-        %res = OpVariable %_ptr_Function_v4uint Function %33
-               OpStore %arg_1 %19
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %23
+      %arg_2 = OpVariable %_ptr_Function_uint Function %27
+        %res = OpVariable %_ptr_Function_v4uint Function %35
+               OpStore %arg_1 %20
                OpStore %arg_2 %uint_1
-         %28 = OpLoad %11 %arg_0
-         %29 = OpLoad %v2int %arg_1
-         %30 = OpLoad %uint %arg_2
-         %26 = OpImageFetch %v4uint %28 %29 Lod %30
-               OpStore %res %26
+         %30 = OpLoad %11 %arg_0
+         %31 = OpLoad %v2int %arg_1
+         %32 = OpLoad %uint %arg_2
+         %28 = OpImageFetch %v4uint %30 %31 Lod %32
+               OpStore %res %28
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %34
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureLoad_ebfb92
+%vertex_main_inner = OpFunction %v4float None %36
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %textureLoad_ebfb92
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %40
+         %41 = OpLabel
+         %42 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %42
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %43 = OpLabel
-         %44 = OpFunctionCall %void %textureLoad_ebfb92
+         %45 = OpLabel
+         %46 = OpFunctionCall %void %textureLoad_ebfb92
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %46 = OpLabel
-         %47 = OpFunctionCall %void %textureLoad_ebfb92
+         %48 = OpLabel
+         %49 = OpFunctionCall %void %textureLoad_ebfb92
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureLoad/ebfb92.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/ebfb92.wgsl.expected.wgsl
index e3bc181..ba94b17 100644
--- a/test/tint/builtins/gen/var/textureLoad/ebfb92.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/ebfb92.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_2d<u32>;
 
 fn textureLoad_ebfb92() {
-  var arg_1 = vec2<i32>();
+  var arg_1 = vec2<i32>(1i);
   var arg_2 = 1u;
   var res : vec4<u32> = textureLoad(arg_0, arg_1, arg_2);
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/f0abad.wgsl b/test/tint/builtins/gen/var/textureLoad/f0abad.wgsl
index 44ffa5b..32c32e7 100644
--- a/test/tint/builtins/gen/var/textureLoad/f0abad.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/f0abad.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureLoad(texture: texture_multisampled_2d<f32>, coords: vec2<u32>, sample_index: i32) -> vec4<f32>
 fn textureLoad_f0abad() {
-  var arg_1 = vec2<u32>();
+  var arg_1 = vec2<u32>(1u);
   var arg_2 = 1i;
   var res: vec4<f32> = textureLoad(arg_0, arg_1, arg_2);
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/f0abad.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/f0abad.wgsl.expected.dxc.hlsl
index 1ea969f..5ba462d 100644
--- a/test/tint/builtins/gen/var/textureLoad/f0abad.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/f0abad.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DMS<float4> arg_0 : register(t0, space1);
 
 void textureLoad_f0abad() {
-  uint2 arg_1 = (0u).xx;
+  uint2 arg_1 = (1u).xx;
   int arg_2 = 1;
   float4 res = arg_0.Load(arg_1, arg_2);
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/f0abad.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/f0abad.wgsl.expected.fxc.hlsl
index 1ea969f..5ba462d 100644
--- a/test/tint/builtins/gen/var/textureLoad/f0abad.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/f0abad.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DMS<float4> arg_0 : register(t0, space1);
 
 void textureLoad_f0abad() {
-  uint2 arg_1 = (0u).xx;
+  uint2 arg_1 = (1u).xx;
   int arg_2 = 1;
   float4 res = arg_0.Load(arg_1, arg_2);
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/f0abad.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/f0abad.wgsl.expected.glsl
index 23f1106..2925070 100644
--- a/test/tint/builtins/gen/var/textureLoad/f0abad.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/f0abad.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 uniform highp sampler2DMS arg_0_1;
 void textureLoad_f0abad() {
-  uvec2 arg_1 = uvec2(0u);
+  uvec2 arg_1 = uvec2(1u);
   int arg_2 = 1;
   vec4 res = texelFetch(arg_0_1, ivec2(arg_1), arg_2);
 }
@@ -25,7 +25,7 @@
 
 uniform highp sampler2DMS arg_0_1;
 void textureLoad_f0abad() {
-  uvec2 arg_1 = uvec2(0u);
+  uvec2 arg_1 = uvec2(1u);
   int arg_2 = 1;
   vec4 res = texelFetch(arg_0_1, ivec2(arg_1), arg_2);
 }
@@ -42,7 +42,7 @@
 
 uniform highp sampler2DMS arg_0_1;
 void textureLoad_f0abad() {
-  uvec2 arg_1 = uvec2(0u);
+  uvec2 arg_1 = uvec2(1u);
   int arg_2 = 1;
   vec4 res = texelFetch(arg_0_1, ivec2(arg_1), arg_2);
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/f0abad.wgsl.expected.msl b/test/tint/builtins/gen/var/textureLoad/f0abad.wgsl.expected.msl
index caf35dd..2e191f4 100644
--- a/test/tint/builtins/gen/var/textureLoad/f0abad.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureLoad/f0abad.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureLoad_f0abad(texture2d_ms<float, access::read> tint_symbol_1) {
-  uint2 arg_1 = uint2(0u);
+  uint2 arg_1 = uint2(1u);
   int arg_2 = 1;
   float4 res = tint_symbol_1.read(uint2(arg_1), arg_2);
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/f0abad.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/f0abad.wgsl.expected.spvasm
index 1c884d0..1ef6220 100644
--- a/test/tint/builtins/gen/var/textureLoad/f0abad.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/f0abad.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 46
+; Bound: 48
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -40,48 +40,50 @@
          %12 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
-         %18 = OpConstantNull %v2uint
+     %uint_1 = OpConstant %uint 1
+         %19 = OpConstantComposite %v2uint %uint_1 %uint_1
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
+         %22 = OpConstantNull %v2uint
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
-         %25 = OpConstantNull %int
+         %27 = OpConstantNull %int
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %32 = OpTypeFunction %v4float
+         %34 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_f0abad = OpFunction %void None %12
          %15 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2uint Function %18
-      %arg_2 = OpVariable %_ptr_Function_int Function %25
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %22
+      %arg_2 = OpVariable %_ptr_Function_int Function %27
         %res = OpVariable %_ptr_Function_v4float Function %5
-               OpStore %arg_1 %18
+               OpStore %arg_1 %19
                OpStore %arg_2 %int_1
-         %27 = OpLoad %11 %arg_0
-         %28 = OpLoad %v2uint %arg_1
-         %29 = OpLoad %int %arg_2
-         %26 = OpImageFetch %v4float %27 %28 Sample %29
-               OpStore %res %26
+         %29 = OpLoad %11 %arg_0
+         %30 = OpLoad %v2uint %arg_1
+         %31 = OpLoad %int %arg_2
+         %28 = OpImageFetch %v4float %29 %30 Sample %31
+               OpStore %res %28
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %32
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureLoad_f0abad
+%vertex_main_inner = OpFunction %v4float None %34
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureLoad_f0abad
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %37 = OpLabel
-         %38 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %38
+         %39 = OpLabel
+         %40 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %40
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureLoad_f0abad
+         %43 = OpLabel
+         %44 = OpFunctionCall %void %textureLoad_f0abad
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %44 = OpLabel
-         %45 = OpFunctionCall %void %textureLoad_f0abad
+         %46 = OpLabel
+         %47 = OpFunctionCall %void %textureLoad_f0abad
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureLoad/f0abad.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/f0abad.wgsl.expected.wgsl
index a5272f8..208aa2d 100644
--- a/test/tint/builtins/gen/var/textureLoad/f0abad.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/f0abad.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_multisampled_2d<f32>;
 
 fn textureLoad_f0abad() {
-  var arg_1 = vec2<u32>();
+  var arg_1 = vec2<u32>(1u);
   var arg_2 = 1i;
   var res : vec4<f32> = textureLoad(arg_0, arg_1, arg_2);
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/f348d9.wgsl b/test/tint/builtins/gen/var/textureLoad/f348d9.wgsl
index b610d1f..80914aa 100644
--- a/test/tint/builtins/gen/var/textureLoad/f348d9.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/f348d9.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureLoad(texture: texture_2d_array<f32>, coords: vec2<u32>, array_index: u32, level: i32) -> vec4<f32>
 fn textureLoad_f348d9() {
-  var arg_1 = vec2<u32>();
+  var arg_1 = vec2<u32>(1u);
   var arg_2 = 1u;
   var arg_3 = 1i;
   var res: vec4<f32> = textureLoad(arg_0, arg_1, arg_2, arg_3);
diff --git a/test/tint/builtins/gen/var/textureLoad/f348d9.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/f348d9.wgsl.expected.dxc.hlsl
index dd04132..9a460dd 100644
--- a/test/tint/builtins/gen/var/textureLoad/f348d9.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/f348d9.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 void textureLoad_f348d9() {
-  uint2 arg_1 = (0u).xx;
+  uint2 arg_1 = (1u).xx;
   uint arg_2 = 1u;
   int arg_3 = 1;
   float4 res = arg_0.Load(uint4(uint3(arg_1, arg_2), uint(arg_3)));
diff --git a/test/tint/builtins/gen/var/textureLoad/f348d9.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/f348d9.wgsl.expected.fxc.hlsl
index dd04132..9a460dd 100644
--- a/test/tint/builtins/gen/var/textureLoad/f348d9.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/f348d9.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 void textureLoad_f348d9() {
-  uint2 arg_1 = (0u).xx;
+  uint2 arg_1 = (1u).xx;
   uint arg_2 = 1u;
   int arg_3 = 1;
   float4 res = arg_0.Load(uint4(uint3(arg_1, arg_2), uint(arg_3)));
diff --git a/test/tint/builtins/gen/var/textureLoad/f348d9.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/f348d9.wgsl.expected.glsl
index 35f6a4e..0cc57a5 100644
--- a/test/tint/builtins/gen/var/textureLoad/f348d9.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/f348d9.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 uniform highp sampler2DArray arg_0_1;
 void textureLoad_f348d9() {
-  uvec2 arg_1 = uvec2(0u);
+  uvec2 arg_1 = uvec2(1u);
   uint arg_2 = 1u;
   int arg_3 = 1;
   vec4 res = texelFetch(arg_0_1, ivec3(uvec3(arg_1, arg_2)), arg_3);
@@ -26,7 +26,7 @@
 
 uniform highp sampler2DArray arg_0_1;
 void textureLoad_f348d9() {
-  uvec2 arg_1 = uvec2(0u);
+  uvec2 arg_1 = uvec2(1u);
   uint arg_2 = 1u;
   int arg_3 = 1;
   vec4 res = texelFetch(arg_0_1, ivec3(uvec3(arg_1, arg_2)), arg_3);
@@ -44,7 +44,7 @@
 
 uniform highp sampler2DArray arg_0_1;
 void textureLoad_f348d9() {
-  uvec2 arg_1 = uvec2(0u);
+  uvec2 arg_1 = uvec2(1u);
   uint arg_2 = 1u;
   int arg_3 = 1;
   vec4 res = texelFetch(arg_0_1, ivec3(uvec3(arg_1, arg_2)), arg_3);
diff --git a/test/tint/builtins/gen/var/textureLoad/f348d9.wgsl.expected.msl b/test/tint/builtins/gen/var/textureLoad/f348d9.wgsl.expected.msl
index acd3776..9ea26fd 100644
--- a/test/tint/builtins/gen/var/textureLoad/f348d9.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureLoad/f348d9.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureLoad_f348d9(texture2d_array<float, access::sample> tint_symbol_1) {
-  uint2 arg_1 = uint2(0u);
+  uint2 arg_1 = uint2(1u);
   uint arg_2 = 1u;
   int arg_3 = 1;
   float4 res = tint_symbol_1.read(uint2(arg_1), arg_2, arg_3);
diff --git a/test/tint/builtins/gen/var/textureLoad/f348d9.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/f348d9.wgsl.expected.spvasm
index 0ad6a0b..7fa0aec 100644
--- a/test/tint/builtins/gen/var/textureLoad/f348d9.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/f348d9.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 55
+; Bound: 56
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -41,58 +41,59 @@
          %12 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
-         %18 = OpConstantNull %v2uint
-%_ptr_Function_v2uint = OpTypePointer Function %v2uint
      %uint_1 = OpConstant %uint 1
+         %19 = OpConstantComposite %v2uint %uint_1 %uint_1
+%_ptr_Function_v2uint = OpTypePointer Function %v2uint
+         %22 = OpConstantNull %v2uint
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %24 = OpConstantNull %uint
+         %25 = OpConstantNull %uint
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
-         %29 = OpConstantNull %int
+         %30 = OpConstantNull %int
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %41 = OpTypeFunction %v4float
+         %42 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_f348d9 = OpFunction %void None %12
          %15 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2uint Function %18
-      %arg_2 = OpVariable %_ptr_Function_uint Function %24
-      %arg_3 = OpVariable %_ptr_Function_int Function %29
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %22
+      %arg_2 = OpVariable %_ptr_Function_uint Function %25
+      %arg_3 = OpVariable %_ptr_Function_int Function %30
         %res = OpVariable %_ptr_Function_v4float Function %5
-               OpStore %arg_1 %18
+               OpStore %arg_1 %19
                OpStore %arg_2 %uint_1
                OpStore %arg_3 %int_1
-         %31 = OpLoad %11 %arg_0
-         %33 = OpLoad %v2uint %arg_1
-         %34 = OpCompositeExtract %uint %33 0
-         %35 = OpCompositeExtract %uint %33 1
-         %36 = OpLoad %uint %arg_2
-         %37 = OpCompositeConstruct %v3uint %34 %35 %36
-         %38 = OpLoad %int %arg_3
-         %30 = OpImageFetch %v4float %31 %37 Lod %38
-               OpStore %res %30
+         %32 = OpLoad %11 %arg_0
+         %34 = OpLoad %v2uint %arg_1
+         %35 = OpCompositeExtract %uint %34 0
+         %36 = OpCompositeExtract %uint %34 1
+         %37 = OpLoad %uint %arg_2
+         %38 = OpCompositeConstruct %v3uint %35 %36 %37
+         %39 = OpLoad %int %arg_3
+         %31 = OpImageFetch %v4float %32 %38 Lod %39
+               OpStore %res %31
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %41
-         %43 = OpLabel
-         %44 = OpFunctionCall %void %textureLoad_f348d9
+%vertex_main_inner = OpFunction %v4float None %42
+         %44 = OpLabel
+         %45 = OpFunctionCall %void %textureLoad_f348d9
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %46 = OpLabel
-         %47 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %47
+         %47 = OpLabel
+         %48 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %48
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %50 = OpLabel
-         %51 = OpFunctionCall %void %textureLoad_f348d9
+         %51 = OpLabel
+         %52 = OpFunctionCall %void %textureLoad_f348d9
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %53 = OpLabel
-         %54 = OpFunctionCall %void %textureLoad_f348d9
+         %54 = OpLabel
+         %55 = OpFunctionCall %void %textureLoad_f348d9
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureLoad/f348d9.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/f348d9.wgsl.expected.wgsl
index f68ba27..4ed1b7e 100644
--- a/test/tint/builtins/gen/var/textureLoad/f348d9.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/f348d9.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_2d_array<f32>;
 
 fn textureLoad_f348d9() {
-  var arg_1 = vec2<u32>();
+  var arg_1 = vec2<u32>(1u);
   var arg_2 = 1u;
   var arg_3 = 1i;
   var res : vec4<f32> = textureLoad(arg_0, arg_1, arg_2, arg_3);
diff --git a/test/tint/builtins/gen/var/textureLoad/f85291.wgsl b/test/tint/builtins/gen/var/textureLoad/f85291.wgsl
index 340da55..8e623c2 100644
--- a/test/tint/builtins/gen/var/textureLoad/f85291.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/f85291.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureLoad(texture: texture_2d<i32>, coords: vec2<i32>, level: u32) -> vec4<i32>
 fn textureLoad_f85291() {
-  var arg_1 = vec2<i32>();
+  var arg_1 = vec2<i32>(1i);
   var arg_2 = 1u;
   var res: vec4<i32> = textureLoad(arg_0, arg_1, arg_2);
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/f85291.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/f85291.wgsl.expected.dxc.hlsl
index 534bddc..98bcff1 100644
--- a/test/tint/builtins/gen/var/textureLoad/f85291.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/f85291.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 Texture2D<int4> arg_0 : register(t0, space1);
 
 void textureLoad_f85291() {
-  int2 arg_1 = (0).xx;
+  int2 arg_1 = (1).xx;
   uint arg_2 = 1u;
   int4 res = arg_0.Load(int3(arg_1, int(arg_2)));
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/f85291.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/f85291.wgsl.expected.fxc.hlsl
index 534bddc..98bcff1 100644
--- a/test/tint/builtins/gen/var/textureLoad/f85291.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/f85291.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 Texture2D<int4> arg_0 : register(t0, space1);
 
 void textureLoad_f85291() {
-  int2 arg_1 = (0).xx;
+  int2 arg_1 = (1).xx;
   uint arg_2 = 1u;
   int4 res = arg_0.Load(int3(arg_1, int(arg_2)));
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/f85291.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/f85291.wgsl.expected.glsl
index b0d8f40..34c2e1c 100644
--- a/test/tint/builtins/gen/var/textureLoad/f85291.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/f85291.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 uniform highp isampler2D arg_0_1;
 void textureLoad_f85291() {
-  ivec2 arg_1 = ivec2(0);
+  ivec2 arg_1 = ivec2(1);
   uint arg_2 = 1u;
   ivec4 res = texelFetch(arg_0_1, arg_1, int(arg_2));
 }
@@ -25,7 +25,7 @@
 
 uniform highp isampler2D arg_0_1;
 void textureLoad_f85291() {
-  ivec2 arg_1 = ivec2(0);
+  ivec2 arg_1 = ivec2(1);
   uint arg_2 = 1u;
   ivec4 res = texelFetch(arg_0_1, arg_1, int(arg_2));
 }
@@ -42,7 +42,7 @@
 
 uniform highp isampler2D arg_0_1;
 void textureLoad_f85291() {
-  ivec2 arg_1 = ivec2(0);
+  ivec2 arg_1 = ivec2(1);
   uint arg_2 = 1u;
   ivec4 res = texelFetch(arg_0_1, arg_1, int(arg_2));
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/f85291.wgsl.expected.msl b/test/tint/builtins/gen/var/textureLoad/f85291.wgsl.expected.msl
index 05a688c..8bf531b 100644
--- a/test/tint/builtins/gen/var/textureLoad/f85291.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureLoad/f85291.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureLoad_f85291(texture2d<int, access::sample> tint_symbol_1) {
-  int2 arg_1 = int2(0);
+  int2 arg_1 = int2(1);
   uint arg_2 = 1u;
   int4 res = tint_symbol_1.read(uint2(arg_1), arg_2);
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/f85291.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/f85291.wgsl.expected.spvasm
index f19cab1..29c7abd 100644
--- a/test/tint/builtins/gen/var/textureLoad/f85291.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/f85291.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 48
+; Bound: 50
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -40,50 +40,52 @@
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
       %v2int = OpTypeVector %int 2
-         %18 = OpConstantNull %v2int
+      %int_1 = OpConstant %int 1
+         %19 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v2int = OpTypePointer Function %v2int
+         %22 = OpConstantNull %v2int
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %25 = OpConstantNull %uint
+         %27 = OpConstantNull %uint
       %v4int = OpTypeVector %int 4
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %33 = OpConstantNull %v4int
-         %34 = OpTypeFunction %v4float
+         %35 = OpConstantNull %v4int
+         %36 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_f85291 = OpFunction %void None %13
          %16 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2int Function %18
-      %arg_2 = OpVariable %_ptr_Function_uint Function %25
-        %res = OpVariable %_ptr_Function_v4int Function %33
-               OpStore %arg_1 %18
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %22
+      %arg_2 = OpVariable %_ptr_Function_uint Function %27
+        %res = OpVariable %_ptr_Function_v4int Function %35
+               OpStore %arg_1 %19
                OpStore %arg_2 %uint_1
-         %28 = OpLoad %11 %arg_0
-         %29 = OpLoad %v2int %arg_1
-         %30 = OpLoad %uint %arg_2
-         %26 = OpImageFetch %v4int %28 %29 Lod %30
-               OpStore %res %26
+         %30 = OpLoad %11 %arg_0
+         %31 = OpLoad %v2int %arg_1
+         %32 = OpLoad %uint %arg_2
+         %28 = OpImageFetch %v4int %30 %31 Lod %32
+               OpStore %res %28
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %34
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureLoad_f85291
+%vertex_main_inner = OpFunction %v4float None %36
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %textureLoad_f85291
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %40
+         %41 = OpLabel
+         %42 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %42
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %43 = OpLabel
-         %44 = OpFunctionCall %void %textureLoad_f85291
+         %45 = OpLabel
+         %46 = OpFunctionCall %void %textureLoad_f85291
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %46 = OpLabel
-         %47 = OpFunctionCall %void %textureLoad_f85291
+         %48 = OpLabel
+         %49 = OpFunctionCall %void %textureLoad_f85291
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureLoad/f85291.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/f85291.wgsl.expected.wgsl
index f06149d..b5ea7cb 100644
--- a/test/tint/builtins/gen/var/textureLoad/f85291.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/f85291.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_2d<i32>;
 
 fn textureLoad_f85291() {
-  var arg_1 = vec2<i32>();
+  var arg_1 = vec2<i32>(1i);
   var arg_2 = 1u;
   var res : vec4<i32> = textureLoad(arg_0, arg_1, arg_2);
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/fcd23d.wgsl b/test/tint/builtins/gen/var/textureLoad/fcd23d.wgsl
index 84ebebb..c0ae5e9 100644
--- a/test/tint/builtins/gen/var/textureLoad/fcd23d.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/fcd23d.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureLoad(texture: texture_depth_multisampled_2d, coords: vec2<u32>, sample_index: i32) -> f32
 fn textureLoad_fcd23d() {
-  var arg_1 = vec2<u32>();
+  var arg_1 = vec2<u32>(1u);
   var arg_2 = 1i;
   var res: f32 = textureLoad(arg_0, arg_1, arg_2);
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/fcd23d.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/fcd23d.wgsl.expected.dxc.hlsl
index 9095d2f..307416e 100644
--- a/test/tint/builtins/gen/var/textureLoad/fcd23d.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/fcd23d.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DMS<float4> arg_0 : register(t0, space1);
 
 void textureLoad_fcd23d() {
-  uint2 arg_1 = (0u).xx;
+  uint2 arg_1 = (1u).xx;
   int arg_2 = 1;
   float res = arg_0.Load(uint3(arg_1, uint(0)), arg_2).x;
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/fcd23d.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/fcd23d.wgsl.expected.fxc.hlsl
index 9095d2f..307416e 100644
--- a/test/tint/builtins/gen/var/textureLoad/fcd23d.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/fcd23d.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DMS<float4> arg_0 : register(t0, space1);
 
 void textureLoad_fcd23d() {
-  uint2 arg_1 = (0u).xx;
+  uint2 arg_1 = (1u).xx;
   int arg_2 = 1;
   float res = arg_0.Load(uint3(arg_1, uint(0)), arg_2).x;
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/fcd23d.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/fcd23d.wgsl.expected.glsl
index a9d352b..7810099 100644
--- a/test/tint/builtins/gen/var/textureLoad/fcd23d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/fcd23d.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 uniform highp sampler2DMS arg_0_1;
 void textureLoad_fcd23d() {
-  uvec2 arg_1 = uvec2(0u);
+  uvec2 arg_1 = uvec2(1u);
   int arg_2 = 1;
   float res = texelFetch(arg_0_1, ivec2(arg_1), arg_2).x;
 }
@@ -25,7 +25,7 @@
 
 uniform highp sampler2DMS arg_0_1;
 void textureLoad_fcd23d() {
-  uvec2 arg_1 = uvec2(0u);
+  uvec2 arg_1 = uvec2(1u);
   int arg_2 = 1;
   float res = texelFetch(arg_0_1, ivec2(arg_1), arg_2).x;
 }
@@ -42,7 +42,7 @@
 
 uniform highp sampler2DMS arg_0_1;
 void textureLoad_fcd23d() {
-  uvec2 arg_1 = uvec2(0u);
+  uvec2 arg_1 = uvec2(1u);
   int arg_2 = 1;
   float res = texelFetch(arg_0_1, ivec2(arg_1), arg_2).x;
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/fcd23d.wgsl.expected.msl b/test/tint/builtins/gen/var/textureLoad/fcd23d.wgsl.expected.msl
index 152e35d..e962910 100644
--- a/test/tint/builtins/gen/var/textureLoad/fcd23d.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureLoad/fcd23d.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureLoad_fcd23d(depth2d_ms<float, access::read> tint_symbol_1) {
-  uint2 arg_1 = uint2(0u);
+  uint2 arg_1 = uint2(1u);
   int arg_2 = 1;
   float res = tint_symbol_1.read(uint2(arg_1), arg_2);
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/fcd23d.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/fcd23d.wgsl.expected.spvasm
index 903c8a9..5819297 100644
--- a/test/tint/builtins/gen/var/textureLoad/fcd23d.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/fcd23d.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 47
+; Bound: 49
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -40,49 +40,51 @@
          %12 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
-         %18 = OpConstantNull %v2uint
+     %uint_1 = OpConstant %uint 1
+         %19 = OpConstantComposite %v2uint %uint_1 %uint_1
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
+         %22 = OpConstantNull %v2uint
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
-         %25 = OpConstantNull %int
+         %27 = OpConstantNull %int
 %_ptr_Function_float = OpTypePointer Function %float
-         %33 = OpTypeFunction %v4float
+         %35 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_fcd23d = OpFunction %void None %12
          %15 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2uint Function %18
-      %arg_2 = OpVariable %_ptr_Function_int Function %25
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %22
+      %arg_2 = OpVariable %_ptr_Function_int Function %27
         %res = OpVariable %_ptr_Function_float Function %8
-               OpStore %arg_1 %18
+               OpStore %arg_1 %19
                OpStore %arg_2 %int_1
-         %28 = OpLoad %11 %arg_0
-         %29 = OpLoad %v2uint %arg_1
-         %30 = OpLoad %int %arg_2
-         %27 = OpImageFetch %v4float %28 %29 Sample %30
-         %26 = OpCompositeExtract %float %27 0
-               OpStore %res %26
+         %30 = OpLoad %11 %arg_0
+         %31 = OpLoad %v2uint %arg_1
+         %32 = OpLoad %int %arg_2
+         %29 = OpImageFetch %v4float %30 %31 Sample %32
+         %28 = OpCompositeExtract %float %29 0
+               OpStore %res %28
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %33
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureLoad_fcd23d
+%vertex_main_inner = OpFunction %v4float None %35
+         %37 = OpLabel
+         %38 = OpFunctionCall %void %textureLoad_fcd23d
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %38 = OpLabel
-         %39 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %39
+         %40 = OpLabel
+         %41 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %41
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureLoad_fcd23d
+         %44 = OpLabel
+         %45 = OpFunctionCall %void %textureLoad_fcd23d
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %45 = OpLabel
-         %46 = OpFunctionCall %void %textureLoad_fcd23d
+         %47 = OpLabel
+         %48 = OpFunctionCall %void %textureLoad_fcd23d
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureLoad/fcd23d.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/fcd23d.wgsl.expected.wgsl
index b784656..15aea5d 100644
--- a/test/tint/builtins/gen/var/textureLoad/fcd23d.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/fcd23d.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_depth_multisampled_2d;
 
 fn textureLoad_fcd23d() {
-  var arg_1 = vec2<u32>();
+  var arg_1 = vec2<u32>(1u);
   var arg_2 = 1i;
   var res : f32 = textureLoad(arg_0, arg_1, arg_2);
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/fe0565.wgsl b/test/tint/builtins/gen/var/textureLoad/fe0565.wgsl
index 7d350fb..3d1718e 100644
--- a/test/tint/builtins/gen/var/textureLoad/fe0565.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/fe0565.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureLoad(texture: texture_multisampled_2d<u32>, coords: vec2<u32>, sample_index: i32) -> vec4<u32>
 fn textureLoad_fe0565() {
-  var arg_1 = vec2<u32>();
+  var arg_1 = vec2<u32>(1u);
   var arg_2 = 1i;
   var res: vec4<u32> = textureLoad(arg_0, arg_1, arg_2);
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/fe0565.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/fe0565.wgsl.expected.dxc.hlsl
index b03e8a9..4adfd92 100644
--- a/test/tint/builtins/gen/var/textureLoad/fe0565.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/fe0565.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DMS<uint4> arg_0 : register(t0, space1);
 
 void textureLoad_fe0565() {
-  uint2 arg_1 = (0u).xx;
+  uint2 arg_1 = (1u).xx;
   int arg_2 = 1;
   uint4 res = arg_0.Load(arg_1, arg_2);
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/fe0565.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/fe0565.wgsl.expected.fxc.hlsl
index b03e8a9..4adfd92 100644
--- a/test/tint/builtins/gen/var/textureLoad/fe0565.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/fe0565.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DMS<uint4> arg_0 : register(t0, space1);
 
 void textureLoad_fe0565() {
-  uint2 arg_1 = (0u).xx;
+  uint2 arg_1 = (1u).xx;
   int arg_2 = 1;
   uint4 res = arg_0.Load(arg_1, arg_2);
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/fe0565.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/fe0565.wgsl.expected.glsl
index ec7a715..dce2e13 100644
--- a/test/tint/builtins/gen/var/textureLoad/fe0565.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/fe0565.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 uniform highp usampler2DMS arg_0_1;
 void textureLoad_fe0565() {
-  uvec2 arg_1 = uvec2(0u);
+  uvec2 arg_1 = uvec2(1u);
   int arg_2 = 1;
   uvec4 res = texelFetch(arg_0_1, ivec2(arg_1), arg_2);
 }
@@ -25,7 +25,7 @@
 
 uniform highp usampler2DMS arg_0_1;
 void textureLoad_fe0565() {
-  uvec2 arg_1 = uvec2(0u);
+  uvec2 arg_1 = uvec2(1u);
   int arg_2 = 1;
   uvec4 res = texelFetch(arg_0_1, ivec2(arg_1), arg_2);
 }
@@ -42,7 +42,7 @@
 
 uniform highp usampler2DMS arg_0_1;
 void textureLoad_fe0565() {
-  uvec2 arg_1 = uvec2(0u);
+  uvec2 arg_1 = uvec2(1u);
   int arg_2 = 1;
   uvec4 res = texelFetch(arg_0_1, ivec2(arg_1), arg_2);
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/fe0565.wgsl.expected.msl b/test/tint/builtins/gen/var/textureLoad/fe0565.wgsl.expected.msl
index f2e7ed7..34cbab3 100644
--- a/test/tint/builtins/gen/var/textureLoad/fe0565.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureLoad/fe0565.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureLoad_fe0565(texture2d_ms<uint, access::read> tint_symbol_1) {
-  uint2 arg_1 = uint2(0u);
+  uint2 arg_1 = uint2(1u);
   int arg_2 = 1;
   uint4 res = tint_symbol_1.read(uint2(arg_1), arg_2);
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/fe0565.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/fe0565.wgsl.expected.spvasm
index a3d2fba..79c4e99 100644
--- a/test/tint/builtins/gen/var/textureLoad/fe0565.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/fe0565.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 48
+; Bound: 50
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -40,50 +40,52 @@
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
      %v2uint = OpTypeVector %uint 2
-         %18 = OpConstantNull %v2uint
+     %uint_1 = OpConstant %uint 1
+         %19 = OpConstantComposite %v2uint %uint_1 %uint_1
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
+         %22 = OpConstantNull %v2uint
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
-         %25 = OpConstantNull %int
+         %27 = OpConstantNull %int
      %v4uint = OpTypeVector %uint 4
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %33 = OpConstantNull %v4uint
-         %34 = OpTypeFunction %v4float
+         %35 = OpConstantNull %v4uint
+         %36 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_fe0565 = OpFunction %void None %13
          %16 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2uint Function %18
-      %arg_2 = OpVariable %_ptr_Function_int Function %25
-        %res = OpVariable %_ptr_Function_v4uint Function %33
-               OpStore %arg_1 %18
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %22
+      %arg_2 = OpVariable %_ptr_Function_int Function %27
+        %res = OpVariable %_ptr_Function_v4uint Function %35
+               OpStore %arg_1 %19
                OpStore %arg_2 %int_1
-         %28 = OpLoad %11 %arg_0
-         %29 = OpLoad %v2uint %arg_1
-         %30 = OpLoad %int %arg_2
-         %26 = OpImageFetch %v4uint %28 %29 Sample %30
-               OpStore %res %26
+         %30 = OpLoad %11 %arg_0
+         %31 = OpLoad %v2uint %arg_1
+         %32 = OpLoad %int %arg_2
+         %28 = OpImageFetch %v4uint %30 %31 Sample %32
+               OpStore %res %28
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %34
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureLoad_fe0565
+%vertex_main_inner = OpFunction %v4float None %36
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %textureLoad_fe0565
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %40
+         %41 = OpLabel
+         %42 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %42
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %43 = OpLabel
-         %44 = OpFunctionCall %void %textureLoad_fe0565
+         %45 = OpLabel
+         %46 = OpFunctionCall %void %textureLoad_fe0565
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %46 = OpLabel
-         %47 = OpFunctionCall %void %textureLoad_fe0565
+         %48 = OpLabel
+         %49 = OpFunctionCall %void %textureLoad_fe0565
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureLoad/fe0565.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/fe0565.wgsl.expected.wgsl
index 704e838..4b1098a 100644
--- a/test/tint/builtins/gen/var/textureLoad/fe0565.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/fe0565.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_multisampled_2d<u32>;
 
 fn textureLoad_fe0565() {
-  var arg_1 = vec2<u32>();
+  var arg_1 = vec2<u32>(1u);
   var arg_2 = 1i;
   var res : vec4<u32> = textureLoad(arg_0, arg_1, arg_2);
 }
diff --git a/test/tint/builtins/gen/var/textureLoad/ff1119.wgsl b/test/tint/builtins/gen/var/textureLoad/ff1119.wgsl
index 2a9ad5e..2fa7a82 100644
--- a/test/tint/builtins/gen/var/textureLoad/ff1119.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/ff1119.wgsl
@@ -24,7 +24,7 @@
 
 // fn textureLoad(texture: texture_depth_2d_array, coords: vec2<i32>, array_index: i32, level: u32) -> f32
 fn textureLoad_ff1119() {
-  var arg_1 = vec2<i32>();
+  var arg_1 = vec2<i32>(1i);
   var arg_2 = 1i;
   var arg_3 = 1u;
   var res: f32 = textureLoad(arg_0, arg_1, arg_2, arg_3);
diff --git a/test/tint/builtins/gen/var/textureLoad/ff1119.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/ff1119.wgsl.expected.dxc.hlsl
index 28a48c2..437984d 100644
--- a/test/tint/builtins/gen/var/textureLoad/ff1119.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/ff1119.wgsl.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DArray arg_0 : register(t0, space1);
 
 void textureLoad_ff1119() {
-  int2 arg_1 = (0).xx;
+  int2 arg_1 = (1).xx;
   int arg_2 = 1;
   uint arg_3 = 1u;
   float res = arg_0.Load(int4(int3(arg_1, arg_2), int(arg_3))).x;
diff --git a/test/tint/builtins/gen/var/textureLoad/ff1119.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/ff1119.wgsl.expected.fxc.hlsl
index 28a48c2..437984d 100644
--- a/test/tint/builtins/gen/var/textureLoad/ff1119.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/ff1119.wgsl.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 Texture2DArray arg_0 : register(t0, space1);
 
 void textureLoad_ff1119() {
-  int2 arg_1 = (0).xx;
+  int2 arg_1 = (1).xx;
   int arg_2 = 1;
   uint arg_3 = 1u;
   float res = arg_0.Load(int4(int3(arg_1, arg_2), int(arg_3))).x;
diff --git a/test/tint/builtins/gen/var/textureLoad/ff1119.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/ff1119.wgsl.expected.glsl
index f1df6bb..04f4330 100644
--- a/test/tint/builtins/gen/var/textureLoad/ff1119.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/ff1119.wgsl.expected.glsl
@@ -2,7 +2,7 @@
 
 uniform highp sampler2DArray arg_0_1;
 void textureLoad_ff1119() {
-  ivec2 arg_1 = ivec2(0);
+  ivec2 arg_1 = ivec2(1);
   int arg_2 = 1;
   uint arg_3 = 1u;
   float res = texelFetch(arg_0_1, ivec3(arg_1, arg_2), int(arg_3)).x;
@@ -26,7 +26,7 @@
 
 uniform highp sampler2DArray arg_0_1;
 void textureLoad_ff1119() {
-  ivec2 arg_1 = ivec2(0);
+  ivec2 arg_1 = ivec2(1);
   int arg_2 = 1;
   uint arg_3 = 1u;
   float res = texelFetch(arg_0_1, ivec3(arg_1, arg_2), int(arg_3)).x;
@@ -44,7 +44,7 @@
 
 uniform highp sampler2DArray arg_0_1;
 void textureLoad_ff1119() {
-  ivec2 arg_1 = ivec2(0);
+  ivec2 arg_1 = ivec2(1);
   int arg_2 = 1;
   uint arg_3 = 1u;
   float res = texelFetch(arg_0_1, ivec3(arg_1, arg_2), int(arg_3)).x;
diff --git a/test/tint/builtins/gen/var/textureLoad/ff1119.wgsl.expected.msl b/test/tint/builtins/gen/var/textureLoad/ff1119.wgsl.expected.msl
index c7afcd6..e2c1dec 100644
--- a/test/tint/builtins/gen/var/textureLoad/ff1119.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureLoad/ff1119.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureLoad_ff1119(depth2d_array<float, access::sample> tint_symbol_1) {
-  int2 arg_1 = int2(0);
+  int2 arg_1 = int2(1);
   int arg_2 = 1;
   uint arg_3 = 1u;
   float res = tint_symbol_1.read(uint2(arg_1), arg_2, arg_3);
diff --git a/test/tint/builtins/gen/var/textureLoad/ff1119.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/ff1119.wgsl.expected.spvasm
index 15e9eee..5dfa3c0 100644
--- a/test/tint/builtins/gen/var/textureLoad/ff1119.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/ff1119.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 56
+; Bound: 57
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -41,59 +41,60 @@
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
-         %18 = OpConstantNull %v2int
-%_ptr_Function_v2int = OpTypePointer Function %v2int
       %int_1 = OpConstant %int 1
+         %19 = OpConstantComposite %v2int %int_1 %int_1
+%_ptr_Function_v2int = OpTypePointer Function %v2int
+         %22 = OpConstantNull %v2int
 %_ptr_Function_int = OpTypePointer Function %int
-         %24 = OpConstantNull %int
+         %25 = OpConstantNull %int
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %29 = OpConstantNull %uint
+         %30 = OpConstantNull %uint
       %v3int = OpTypeVector %int 3
 %_ptr_Function_float = OpTypePointer Function %float
-         %42 = OpTypeFunction %v4float
+         %43 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_ff1119 = OpFunction %void None %12
          %15 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2int Function %18
-      %arg_2 = OpVariable %_ptr_Function_int Function %24
-      %arg_3 = OpVariable %_ptr_Function_uint Function %29
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %22
+      %arg_2 = OpVariable %_ptr_Function_int Function %25
+      %arg_3 = OpVariable %_ptr_Function_uint Function %30
         %res = OpVariable %_ptr_Function_float Function %8
-               OpStore %arg_1 %18
+               OpStore %arg_1 %19
                OpStore %arg_2 %int_1
                OpStore %arg_3 %uint_1
-         %32 = OpLoad %11 %arg_0
-         %34 = OpLoad %v2int %arg_1
-         %35 = OpCompositeExtract %int %34 0
-         %36 = OpCompositeExtract %int %34 1
-         %37 = OpLoad %int %arg_2
-         %38 = OpCompositeConstruct %v3int %35 %36 %37
-         %39 = OpLoad %uint %arg_3
-         %31 = OpImageFetch %v4float %32 %38 Lod %39
-         %30 = OpCompositeExtract %float %31 0
-               OpStore %res %30
+         %33 = OpLoad %11 %arg_0
+         %35 = OpLoad %v2int %arg_1
+         %36 = OpCompositeExtract %int %35 0
+         %37 = OpCompositeExtract %int %35 1
+         %38 = OpLoad %int %arg_2
+         %39 = OpCompositeConstruct %v3int %36 %37 %38
+         %40 = OpLoad %uint %arg_3
+         %32 = OpImageFetch %v4float %33 %39 Lod %40
+         %31 = OpCompositeExtract %float %32 0
+               OpStore %res %31
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %42
-         %44 = OpLabel
-         %45 = OpFunctionCall %void %textureLoad_ff1119
+%vertex_main_inner = OpFunction %v4float None %43
+         %45 = OpLabel
+         %46 = OpFunctionCall %void %textureLoad_ff1119
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %47 = OpLabel
-         %48 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %48
+         %48 = OpLabel
+         %49 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %49
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %51 = OpLabel
-         %52 = OpFunctionCall %void %textureLoad_ff1119
+         %52 = OpLabel
+         %53 = OpFunctionCall %void %textureLoad_ff1119
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %54 = OpLabel
-         %55 = OpFunctionCall %void %textureLoad_ff1119
+         %55 = OpLabel
+         %56 = OpFunctionCall %void %textureLoad_ff1119
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureLoad/ff1119.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/ff1119.wgsl.expected.wgsl
index 5804382..57916d8 100644
--- a/test/tint/builtins/gen/var/textureLoad/ff1119.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/ff1119.wgsl.expected.wgsl
@@ -1,7 +1,7 @@
 @group(1) @binding(0) var arg_0 : texture_depth_2d_array;
 
 fn textureLoad_ff1119() {
-  var arg_1 = vec2<i32>();
+  var arg_1 = vec2<i32>(1i);
   var arg_2 = 1i;
   var arg_3 = 1u;
   var res : f32 = textureLoad(arg_0, arg_1, arg_2, arg_3);
diff --git a/test/tint/builtins/gen/var/textureSample/0dff6c.wgsl b/test/tint/builtins/gen/var/textureSample/0dff6c.wgsl
index 73882bb..e880138 100644
--- a/test/tint/builtins/gen/var/textureSample/0dff6c.wgsl
+++ b/test/tint/builtins/gen/var/textureSample/0dff6c.wgsl
@@ -25,8 +25,8 @@
 
 // fn textureSample(texture: texture_depth_2d, sampler: sampler, coords: vec2<f32>, @const offset: vec2<i32>) -> f32
 fn textureSample_0dff6c() {
-  var arg_2 = vec2<f32>();
-  const arg_3 = vec2<i32>();
+  var arg_2 = vec2<f32>(1.f);
+  const arg_3 = vec2<i32>(1i);
   var res: f32 = textureSample(arg_0, arg_1, arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureSample/0dff6c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSample/0dff6c.wgsl.expected.dxc.hlsl
index 4bd60c0..f2b5b24 100644
--- a/test/tint/builtins/gen/var/textureSample/0dff6c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSample/0dff6c.wgsl.expected.dxc.hlsl
@@ -2,8 +2,8 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSample_0dff6c() {
-  float2 arg_2 = (0.0f).xx;
-  float res = arg_0.Sample(arg_1, arg_2, (0).xx).x;
+  float2 arg_2 = (1.0f).xx;
+  float res = arg_0.Sample(arg_1, arg_2, (1).xx).x;
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/var/textureSample/0dff6c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSample/0dff6c.wgsl.expected.fxc.hlsl
index 4bd60c0..f2b5b24 100644
--- a/test/tint/builtins/gen/var/textureSample/0dff6c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSample/0dff6c.wgsl.expected.fxc.hlsl
@@ -2,8 +2,8 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSample_0dff6c() {
-  float2 arg_2 = (0.0f).xx;
-  float res = arg_0.Sample(arg_1, arg_2, (0).xx).x;
+  float2 arg_2 = (1.0f).xx;
+  float res = arg_0.Sample(arg_1, arg_2, (1).xx).x;
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/var/textureSample/0dff6c.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureSample/0dff6c.wgsl.expected.glsl
index 29464a0..93f2ef0 100644
--- a/test/tint/builtins/gen/var/textureSample/0dff6c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureSample/0dff6c.wgsl.expected.glsl
@@ -4,8 +4,8 @@
 uniform highp sampler2DShadow arg_0_arg_1;
 
 void textureSample_0dff6c() {
-  vec2 arg_2 = vec2(0.0f);
-  float res = textureOffset(arg_0_arg_1, vec3(arg_2, 0.0f), ivec2(0));
+  vec2 arg_2 = vec2(1.0f);
+  float res = textureOffset(arg_0_arg_1, vec3(arg_2, 0.0f), ivec2(1));
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/var/textureSample/0dff6c.wgsl.expected.msl b/test/tint/builtins/gen/var/textureSample/0dff6c.wgsl.expected.msl
index b6fd486..1d077b7 100644
--- a/test/tint/builtins/gen/var/textureSample/0dff6c.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureSample/0dff6c.wgsl.expected.msl
@@ -2,8 +2,8 @@
 
 using namespace metal;
 void textureSample_0dff6c(depth2d<float, access::sample> tint_symbol, sampler tint_symbol_1) {
-  float2 arg_2 = float2(0.0f);
-  float res = tint_symbol.sample(tint_symbol_1, arg_2, int2(0));
+  float2 arg_2 = float2(1.0f);
+  float res = tint_symbol.sample(tint_symbol_1, arg_2, int2(1));
 }
 
 fragment void fragment_main(depth2d<float, access::sample> tint_symbol_2 [[texture(0)]], sampler tint_symbol_3 [[sampler(0)]]) {
diff --git a/test/tint/builtins/gen/var/textureSample/0dff6c.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSample/0dff6c.wgsl.expected.spvasm
index d548219..199b9ca 100644
--- a/test/tint/builtins/gen/var/textureSample/0dff6c.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSample/0dff6c.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 33
+; Bound: 36
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -27,31 +27,34 @@
        %void = OpTypeVoid
           %8 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
-         %13 = OpConstantNull %v2float
+    %float_1 = OpConstant %float 1
+         %14 = OpConstantComposite %v2float %float_1 %float_1
 %_ptr_Function_v2float = OpTypePointer Function %v2float
+         %17 = OpConstantNull %v2float
     %v4float = OpTypeVector %float 4
-         %21 = OpTypeSampledImage %3
+         %23 = OpTypeSampledImage %3
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
-         %26 = OpConstantNull %v2int
+      %int_1 = OpConstant %int 1
+         %29 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_float = OpTypePointer Function %float
-         %29 = OpConstantNull %float
+         %32 = OpConstantNull %float
 %textureSample_0dff6c = OpFunction %void None %8
          %11 = OpLabel
-      %arg_2 = OpVariable %_ptr_Function_v2float Function %13
-        %res = OpVariable %_ptr_Function_float Function %29
-               OpStore %arg_2 %13
-         %19 = OpLoad %7 %arg_1
-         %20 = OpLoad %3 %arg_0
-         %22 = OpSampledImage %21 %20 %19
-         %23 = OpLoad %v2float %arg_2
-         %17 = OpImageSampleImplicitLod %v4float %22 %23 ConstOffset %26
-         %16 = OpCompositeExtract %float %17 0
-               OpStore %res %16
+      %arg_2 = OpVariable %_ptr_Function_v2float Function %17
+        %res = OpVariable %_ptr_Function_float Function %32
+               OpStore %arg_2 %14
+         %21 = OpLoad %7 %arg_1
+         %22 = OpLoad %3 %arg_0
+         %24 = OpSampledImage %23 %22 %21
+         %25 = OpLoad %v2float %arg_2
+         %19 = OpImageSampleImplicitLod %v4float %24 %25 ConstOffset %29
+         %18 = OpCompositeExtract %float %19 0
+               OpStore %res %18
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %8
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %textureSample_0dff6c
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %textureSample_0dff6c
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureSample/0dff6c.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSample/0dff6c.wgsl.expected.wgsl
index 21bf36c..d6184b7 100644
--- a/test/tint/builtins/gen/var/textureSample/0dff6c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSample/0dff6c.wgsl.expected.wgsl
@@ -3,8 +3,8 @@
 @group(1) @binding(1) var arg_1 : sampler;
 
 fn textureSample_0dff6c() {
-  var arg_2 = vec2<f32>();
-  const arg_3 = vec2<i32>();
+  var arg_2 = vec2<f32>(1.0f);
+  const arg_3 = vec2<i32>(1i);
   var res : f32 = textureSample(arg_0, arg_1, arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureSample/17e988.wgsl b/test/tint/builtins/gen/var/textureSample/17e988.wgsl
index e42371f..ce00f1f 100644
--- a/test/tint/builtins/gen/var/textureSample/17e988.wgsl
+++ b/test/tint/builtins/gen/var/textureSample/17e988.wgsl
@@ -25,9 +25,9 @@
 
 // fn textureSample(texture: texture_2d_array<f32>, sampler: sampler, coords: vec2<f32>, array_index: i32, @const offset: vec2<i32>) -> vec4<f32>
 fn textureSample_17e988() {
-  var arg_2 = vec2<f32>();
+  var arg_2 = vec2<f32>(1.f);
   var arg_3 = 1i;
-  const arg_4 = vec2<i32>();
+  const arg_4 = vec2<i32>(1i);
   var res: vec4<f32> = textureSample(arg_0, arg_1, arg_2, arg_3, arg_4);
 }
 
diff --git a/test/tint/builtins/gen/var/textureSample/17e988.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSample/17e988.wgsl.expected.dxc.hlsl
index 87521f1..c8a3fab 100644
--- a/test/tint/builtins/gen/var/textureSample/17e988.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSample/17e988.wgsl.expected.dxc.hlsl
@@ -2,9 +2,9 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSample_17e988() {
-  float2 arg_2 = (0.0f).xx;
+  float2 arg_2 = (1.0f).xx;
   int arg_3 = 1;
-  float4 res = arg_0.Sample(arg_1, float3(arg_2, float(arg_3)), (0).xx);
+  float4 res = arg_0.Sample(arg_1, float3(arg_2, float(arg_3)), (1).xx);
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/var/textureSample/17e988.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSample/17e988.wgsl.expected.fxc.hlsl
index 87521f1..c8a3fab 100644
--- a/test/tint/builtins/gen/var/textureSample/17e988.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSample/17e988.wgsl.expected.fxc.hlsl
@@ -2,9 +2,9 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSample_17e988() {
-  float2 arg_2 = (0.0f).xx;
+  float2 arg_2 = (1.0f).xx;
   int arg_3 = 1;
-  float4 res = arg_0.Sample(arg_1, float3(arg_2, float(arg_3)), (0).xx);
+  float4 res = arg_0.Sample(arg_1, float3(arg_2, float(arg_3)), (1).xx);
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/var/textureSample/17e988.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureSample/17e988.wgsl.expected.glsl
index 95e45f8..348c3eb 100644
--- a/test/tint/builtins/gen/var/textureSample/17e988.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureSample/17e988.wgsl.expected.glsl
@@ -4,9 +4,9 @@
 uniform highp sampler2DArray arg_0_arg_1;
 
 void textureSample_17e988() {
-  vec2 arg_2 = vec2(0.0f);
+  vec2 arg_2 = vec2(1.0f);
   int arg_3 = 1;
-  vec4 res = textureOffset(arg_0_arg_1, vec3(arg_2, float(arg_3)), ivec2(0));
+  vec4 res = textureOffset(arg_0_arg_1, vec3(arg_2, float(arg_3)), ivec2(1));
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/var/textureSample/17e988.wgsl.expected.msl b/test/tint/builtins/gen/var/textureSample/17e988.wgsl.expected.msl
index 19433eb..f330dbb 100644
--- a/test/tint/builtins/gen/var/textureSample/17e988.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureSample/17e988.wgsl.expected.msl
@@ -2,9 +2,9 @@
 
 using namespace metal;
 void textureSample_17e988(texture2d_array<float, access::sample> tint_symbol, sampler tint_symbol_1) {
-  float2 arg_2 = float2(0.0f);
+  float2 arg_2 = float2(1.0f);
   int arg_3 = 1;
-  float4 res = tint_symbol.sample(tint_symbol_1, arg_2, arg_3, int2(0));
+  float4 res = tint_symbol.sample(tint_symbol_1, arg_2, arg_3, int2(1));
 }
 
 fragment void fragment_main(texture2d_array<float, access::sample> tint_symbol_2 [[texture(0)]], sampler tint_symbol_3 [[sampler(0)]]) {
diff --git a/test/tint/builtins/gen/var/textureSample/17e988.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSample/17e988.wgsl.expected.spvasm
index 4bb6bba..774724c 100644
--- a/test/tint/builtins/gen/var/textureSample/17e988.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSample/17e988.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 42
+; Bound: 44
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -28,41 +28,43 @@
        %void = OpTypeVoid
           %8 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
-         %13 = OpConstantNull %v2float
+    %float_1 = OpConstant %float 1
+         %14 = OpConstantComposite %v2float %float_1 %float_1
 %_ptr_Function_v2float = OpTypePointer Function %v2float
+         %17 = OpConstantNull %v2float
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
-         %20 = OpConstantNull %int
+         %22 = OpConstantNull %int
     %v4float = OpTypeVector %float 4
-         %25 = OpTypeSampledImage %3
+         %27 = OpTypeSampledImage %3
     %v3float = OpTypeVector %float 3
       %v2int = OpTypeVector %int 2
-         %35 = OpConstantNull %v2int
+         %37 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %38 = OpConstantNull %v4float
+         %40 = OpConstantNull %v4float
 %textureSample_17e988 = OpFunction %void None %8
          %11 = OpLabel
-      %arg_2 = OpVariable %_ptr_Function_v2float Function %13
-      %arg_3 = OpVariable %_ptr_Function_int Function %20
-        %res = OpVariable %_ptr_Function_v4float Function %38
-               OpStore %arg_2 %13
+      %arg_2 = OpVariable %_ptr_Function_v2float Function %17
+      %arg_3 = OpVariable %_ptr_Function_int Function %22
+        %res = OpVariable %_ptr_Function_v4float Function %40
+               OpStore %arg_2 %14
                OpStore %arg_3 %int_1
-         %23 = OpLoad %7 %arg_1
-         %24 = OpLoad %3 %arg_0
-         %26 = OpSampledImage %25 %24 %23
-         %28 = OpLoad %v2float %arg_2
-         %29 = OpCompositeExtract %float %28 0
-         %30 = OpCompositeExtract %float %28 1
-         %32 = OpLoad %int %arg_3
-         %31 = OpConvertSToF %float %32
-         %33 = OpCompositeConstruct %v3float %29 %30 %31
-         %21 = OpImageSampleImplicitLod %v4float %26 %33 ConstOffset %35
-               OpStore %res %21
+         %25 = OpLoad %7 %arg_1
+         %26 = OpLoad %3 %arg_0
+         %28 = OpSampledImage %27 %26 %25
+         %30 = OpLoad %v2float %arg_2
+         %31 = OpCompositeExtract %float %30 0
+         %32 = OpCompositeExtract %float %30 1
+         %34 = OpLoad %int %arg_3
+         %33 = OpConvertSToF %float %34
+         %35 = OpCompositeConstruct %v3float %31 %32 %33
+         %23 = OpImageSampleImplicitLod %v4float %28 %35 ConstOffset %37
+               OpStore %res %23
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %8
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureSample_17e988
+         %42 = OpLabel
+         %43 = OpFunctionCall %void %textureSample_17e988
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureSample/17e988.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSample/17e988.wgsl.expected.wgsl
index 586d22e..04cd29b 100644
--- a/test/tint/builtins/gen/var/textureSample/17e988.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSample/17e988.wgsl.expected.wgsl
@@ -3,9 +3,9 @@
 @group(1) @binding(1) var arg_1 : sampler;
 
 fn textureSample_17e988() {
-  var arg_2 = vec2<f32>();
+  var arg_2 = vec2<f32>(1.0f);
   var arg_3 = 1i;
-  const arg_4 = vec2<i32>();
+  const arg_4 = vec2<i32>(1i);
   var res : vec4<f32> = textureSample(arg_0, arg_1, arg_2, arg_3, arg_4);
 }
 
diff --git a/test/tint/builtins/gen/var/textureSample/193203.wgsl b/test/tint/builtins/gen/var/textureSample/193203.wgsl
index 5531467..d5cac44 100644
--- a/test/tint/builtins/gen/var/textureSample/193203.wgsl
+++ b/test/tint/builtins/gen/var/textureSample/193203.wgsl
@@ -25,9 +25,9 @@
 
 // fn textureSample(texture: texture_2d_array<f32>, sampler: sampler, coords: vec2<f32>, array_index: u32, @const offset: vec2<i32>) -> vec4<f32>
 fn textureSample_193203() {
-  var arg_2 = vec2<f32>();
+  var arg_2 = vec2<f32>(1.f);
   var arg_3 = 1u;
-  const arg_4 = vec2<i32>();
+  const arg_4 = vec2<i32>(1i);
   var res: vec4<f32> = textureSample(arg_0, arg_1, arg_2, arg_3, arg_4);
 }
 
diff --git a/test/tint/builtins/gen/var/textureSample/193203.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSample/193203.wgsl.expected.dxc.hlsl
index c60f2c0..14ba49d 100644
--- a/test/tint/builtins/gen/var/textureSample/193203.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSample/193203.wgsl.expected.dxc.hlsl
@@ -2,9 +2,9 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSample_193203() {
-  float2 arg_2 = (0.0f).xx;
+  float2 arg_2 = (1.0f).xx;
   uint arg_3 = 1u;
-  float4 res = arg_0.Sample(arg_1, float3(arg_2, float(arg_3)), (0).xx);
+  float4 res = arg_0.Sample(arg_1, float3(arg_2, float(arg_3)), (1).xx);
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/var/textureSample/193203.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSample/193203.wgsl.expected.fxc.hlsl
index c60f2c0..14ba49d 100644
--- a/test/tint/builtins/gen/var/textureSample/193203.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSample/193203.wgsl.expected.fxc.hlsl
@@ -2,9 +2,9 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSample_193203() {
-  float2 arg_2 = (0.0f).xx;
+  float2 arg_2 = (1.0f).xx;
   uint arg_3 = 1u;
-  float4 res = arg_0.Sample(arg_1, float3(arg_2, float(arg_3)), (0).xx);
+  float4 res = arg_0.Sample(arg_1, float3(arg_2, float(arg_3)), (1).xx);
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/var/textureSample/193203.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureSample/193203.wgsl.expected.glsl
index 4c0e571..683ab3b 100644
--- a/test/tint/builtins/gen/var/textureSample/193203.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureSample/193203.wgsl.expected.glsl
@@ -4,9 +4,9 @@
 uniform highp sampler2DArray arg_0_arg_1;
 
 void textureSample_193203() {
-  vec2 arg_2 = vec2(0.0f);
+  vec2 arg_2 = vec2(1.0f);
   uint arg_3 = 1u;
-  vec4 res = textureOffset(arg_0_arg_1, vec3(arg_2, float(arg_3)), ivec2(0));
+  vec4 res = textureOffset(arg_0_arg_1, vec3(arg_2, float(arg_3)), ivec2(1));
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/var/textureSample/193203.wgsl.expected.msl b/test/tint/builtins/gen/var/textureSample/193203.wgsl.expected.msl
index ffe8266..9754610 100644
--- a/test/tint/builtins/gen/var/textureSample/193203.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureSample/193203.wgsl.expected.msl
@@ -2,9 +2,9 @@
 
 using namespace metal;
 void textureSample_193203(texture2d_array<float, access::sample> tint_symbol, sampler tint_symbol_1) {
-  float2 arg_2 = float2(0.0f);
+  float2 arg_2 = float2(1.0f);
   uint arg_3 = 1u;
-  float4 res = tint_symbol.sample(tint_symbol_1, arg_2, arg_3, int2(0));
+  float4 res = tint_symbol.sample(tint_symbol_1, arg_2, arg_3, int2(1));
 }
 
 fragment void fragment_main(texture2d_array<float, access::sample> tint_symbol_2 [[texture(0)]], sampler tint_symbol_3 [[sampler(0)]]) {
diff --git a/test/tint/builtins/gen/var/textureSample/193203.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSample/193203.wgsl.expected.spvasm
index bfa4c0d..aed4148 100644
--- a/test/tint/builtins/gen/var/textureSample/193203.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSample/193203.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 43
+; Bound: 46
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -28,42 +28,45 @@
        %void = OpTypeVoid
           %8 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
-         %13 = OpConstantNull %v2float
+    %float_1 = OpConstant %float 1
+         %14 = OpConstantComposite %v2float %float_1 %float_1
 %_ptr_Function_v2float = OpTypePointer Function %v2float
+         %17 = OpConstantNull %v2float
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %20 = OpConstantNull %uint
+         %22 = OpConstantNull %uint
     %v4float = OpTypeVector %float 4
-         %25 = OpTypeSampledImage %3
+         %27 = OpTypeSampledImage %3
     %v3float = OpTypeVector %float 3
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
-         %36 = OpConstantNull %v2int
+      %int_1 = OpConstant %int 1
+         %39 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %39 = OpConstantNull %v4float
+         %42 = OpConstantNull %v4float
 %textureSample_193203 = OpFunction %void None %8
          %11 = OpLabel
-      %arg_2 = OpVariable %_ptr_Function_v2float Function %13
-      %arg_3 = OpVariable %_ptr_Function_uint Function %20
-        %res = OpVariable %_ptr_Function_v4float Function %39
-               OpStore %arg_2 %13
+      %arg_2 = OpVariable %_ptr_Function_v2float Function %17
+      %arg_3 = OpVariable %_ptr_Function_uint Function %22
+        %res = OpVariable %_ptr_Function_v4float Function %42
+               OpStore %arg_2 %14
                OpStore %arg_3 %uint_1
-         %23 = OpLoad %7 %arg_1
-         %24 = OpLoad %3 %arg_0
-         %26 = OpSampledImage %25 %24 %23
-         %28 = OpLoad %v2float %arg_2
-         %29 = OpCompositeExtract %float %28 0
-         %30 = OpCompositeExtract %float %28 1
-         %32 = OpLoad %uint %arg_3
-         %31 = OpConvertUToF %float %32
-         %33 = OpCompositeConstruct %v3float %29 %30 %31
-         %21 = OpImageSampleImplicitLod %v4float %26 %33 ConstOffset %36
-               OpStore %res %21
+         %25 = OpLoad %7 %arg_1
+         %26 = OpLoad %3 %arg_0
+         %28 = OpSampledImage %27 %26 %25
+         %30 = OpLoad %v2float %arg_2
+         %31 = OpCompositeExtract %float %30 0
+         %32 = OpCompositeExtract %float %30 1
+         %34 = OpLoad %uint %arg_3
+         %33 = OpConvertUToF %float %34
+         %35 = OpCompositeConstruct %v3float %31 %32 %33
+         %23 = OpImageSampleImplicitLod %v4float %28 %35 ConstOffset %39
+               OpStore %res %23
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %8
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureSample_193203
+         %44 = OpLabel
+         %45 = OpFunctionCall %void %textureSample_193203
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureSample/193203.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSample/193203.wgsl.expected.wgsl
index 0060bd1..1bb14d4 100644
--- a/test/tint/builtins/gen/var/textureSample/193203.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSample/193203.wgsl.expected.wgsl
@@ -3,9 +3,9 @@
 @group(1) @binding(1) var arg_1 : sampler;
 
 fn textureSample_193203() {
-  var arg_2 = vec2<f32>();
+  var arg_2 = vec2<f32>(1.0f);
   var arg_3 = 1u;
-  const arg_4 = vec2<i32>();
+  const arg_4 = vec2<i32>(1i);
   var res : vec4<f32> = textureSample(arg_0, arg_1, arg_2, arg_3, arg_4);
 }
 
diff --git a/test/tint/builtins/gen/var/textureSample/1a4e1b.wgsl b/test/tint/builtins/gen/var/textureSample/1a4e1b.wgsl
index b4f2ced..5939c98 100644
--- a/test/tint/builtins/gen/var/textureSample/1a4e1b.wgsl
+++ b/test/tint/builtins/gen/var/textureSample/1a4e1b.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureSample(texture: texture_depth_2d_array, sampler: sampler, coords: vec2<f32>, array_index: u32) -> f32
 fn textureSample_1a4e1b() {
-  var arg_2 = vec2<f32>();
+  var arg_2 = vec2<f32>(1.f);
   var arg_3 = 1u;
   var res: f32 = textureSample(arg_0, arg_1, arg_2, arg_3);
 }
diff --git a/test/tint/builtins/gen/var/textureSample/1a4e1b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSample/1a4e1b.wgsl.expected.dxc.hlsl
index 8e8c108..deee4f8 100644
--- a/test/tint/builtins/gen/var/textureSample/1a4e1b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSample/1a4e1b.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSample_1a4e1b() {
-  float2 arg_2 = (0.0f).xx;
+  float2 arg_2 = (1.0f).xx;
   uint arg_3 = 1u;
   float res = arg_0.Sample(arg_1, float3(arg_2, float(arg_3))).x;
 }
diff --git a/test/tint/builtins/gen/var/textureSample/1a4e1b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSample/1a4e1b.wgsl.expected.fxc.hlsl
index 8e8c108..deee4f8 100644
--- a/test/tint/builtins/gen/var/textureSample/1a4e1b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSample/1a4e1b.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSample_1a4e1b() {
-  float2 arg_2 = (0.0f).xx;
+  float2 arg_2 = (1.0f).xx;
   uint arg_3 = 1u;
   float res = arg_0.Sample(arg_1, float3(arg_2, float(arg_3))).x;
 }
diff --git a/test/tint/builtins/gen/var/textureSample/1a4e1b.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureSample/1a4e1b.wgsl.expected.glsl
index 732d16f..1c06d2c 100644
--- a/test/tint/builtins/gen/var/textureSample/1a4e1b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureSample/1a4e1b.wgsl.expected.glsl
@@ -4,7 +4,7 @@
 uniform highp sampler2DArrayShadow arg_0_arg_1;
 
 void textureSample_1a4e1b() {
-  vec2 arg_2 = vec2(0.0f);
+  vec2 arg_2 = vec2(1.0f);
   uint arg_3 = 1u;
   float res = texture(arg_0_arg_1, vec4(vec3(arg_2, float(arg_3)), 0.0f));
 }
diff --git a/test/tint/builtins/gen/var/textureSample/1a4e1b.wgsl.expected.msl b/test/tint/builtins/gen/var/textureSample/1a4e1b.wgsl.expected.msl
index f7bc435..7eed709 100644
--- a/test/tint/builtins/gen/var/textureSample/1a4e1b.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureSample/1a4e1b.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureSample_1a4e1b(depth2d_array<float, access::sample> tint_symbol, sampler tint_symbol_1) {
-  float2 arg_2 = float2(0.0f);
+  float2 arg_2 = float2(1.0f);
   uint arg_3 = 1u;
   float res = tint_symbol.sample(tint_symbol_1, arg_2, arg_3);
 }
diff --git a/test/tint/builtins/gen/var/textureSample/1a4e1b.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSample/1a4e1b.wgsl.expected.spvasm
index c89531b..e71f035 100644
--- a/test/tint/builtins/gen/var/textureSample/1a4e1b.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSample/1a4e1b.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 41
+; Bound: 43
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -28,40 +28,42 @@
        %void = OpTypeVoid
           %8 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
-         %13 = OpConstantNull %v2float
+    %float_1 = OpConstant %float 1
+         %14 = OpConstantComposite %v2float %float_1 %float_1
 %_ptr_Function_v2float = OpTypePointer Function %v2float
+         %17 = OpConstantNull %v2float
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %20 = OpConstantNull %uint
+         %22 = OpConstantNull %uint
     %v4float = OpTypeVector %float 4
-         %26 = OpTypeSampledImage %3
+         %28 = OpTypeSampledImage %3
     %v3float = OpTypeVector %float 3
 %_ptr_Function_float = OpTypePointer Function %float
-         %37 = OpConstantNull %float
+         %39 = OpConstantNull %float
 %textureSample_1a4e1b = OpFunction %void None %8
          %11 = OpLabel
-      %arg_2 = OpVariable %_ptr_Function_v2float Function %13
-      %arg_3 = OpVariable %_ptr_Function_uint Function %20
-        %res = OpVariable %_ptr_Function_float Function %37
-               OpStore %arg_2 %13
+      %arg_2 = OpVariable %_ptr_Function_v2float Function %17
+      %arg_3 = OpVariable %_ptr_Function_uint Function %22
+        %res = OpVariable %_ptr_Function_float Function %39
+               OpStore %arg_2 %14
                OpStore %arg_3 %uint_1
-         %24 = OpLoad %7 %arg_1
-         %25 = OpLoad %3 %arg_0
-         %27 = OpSampledImage %26 %25 %24
-         %29 = OpLoad %v2float %arg_2
-         %30 = OpCompositeExtract %float %29 0
-         %31 = OpCompositeExtract %float %29 1
-         %33 = OpLoad %uint %arg_3
-         %32 = OpConvertUToF %float %33
-         %34 = OpCompositeConstruct %v3float %30 %31 %32
-         %22 = OpImageSampleImplicitLod %v4float %27 %34
-         %21 = OpCompositeExtract %float %22 0
-               OpStore %res %21
+         %26 = OpLoad %7 %arg_1
+         %27 = OpLoad %3 %arg_0
+         %29 = OpSampledImage %28 %27 %26
+         %31 = OpLoad %v2float %arg_2
+         %32 = OpCompositeExtract %float %31 0
+         %33 = OpCompositeExtract %float %31 1
+         %35 = OpLoad %uint %arg_3
+         %34 = OpConvertUToF %float %35
+         %36 = OpCompositeConstruct %v3float %32 %33 %34
+         %24 = OpImageSampleImplicitLod %v4float %29 %36
+         %23 = OpCompositeExtract %float %24 0
+               OpStore %res %23
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %8
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureSample_1a4e1b
+         %41 = OpLabel
+         %42 = OpFunctionCall %void %textureSample_1a4e1b
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureSample/1a4e1b.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSample/1a4e1b.wgsl.expected.wgsl
index 3b49da8..58721bd 100644
--- a/test/tint/builtins/gen/var/textureSample/1a4e1b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSample/1a4e1b.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(1) var arg_1 : sampler;
 
 fn textureSample_1a4e1b() {
-  var arg_2 = vec2<f32>();
+  var arg_2 = vec2<f32>(1.0f);
   var arg_3 = 1u;
   var res : f32 = textureSample(arg_0, arg_1, arg_2, arg_3);
 }
diff --git a/test/tint/builtins/gen/var/textureSample/2149ec.wgsl b/test/tint/builtins/gen/var/textureSample/2149ec.wgsl
index b575fba..2f44331 100644
--- a/test/tint/builtins/gen/var/textureSample/2149ec.wgsl
+++ b/test/tint/builtins/gen/var/textureSample/2149ec.wgsl
@@ -25,8 +25,8 @@
 
 // fn textureSample(texture: texture_3d<f32>, sampler: sampler, coords: vec3<f32>, @const offset: vec3<i32>) -> vec4<f32>
 fn textureSample_2149ec() {
-  var arg_2 = vec3<f32>();
-  const arg_3 = vec3<i32>();
+  var arg_2 = vec3<f32>(1.f);
+  const arg_3 = vec3<i32>(1i);
   var res: vec4<f32> = textureSample(arg_0, arg_1, arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureSample/2149ec.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSample/2149ec.wgsl.expected.dxc.hlsl
index 1528b90..851fcb9 100644
--- a/test/tint/builtins/gen/var/textureSample/2149ec.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSample/2149ec.wgsl.expected.dxc.hlsl
@@ -2,8 +2,8 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSample_2149ec() {
-  float3 arg_2 = (0.0f).xxx;
-  float4 res = arg_0.Sample(arg_1, arg_2, (0).xxx);
+  float3 arg_2 = (1.0f).xxx;
+  float4 res = arg_0.Sample(arg_1, arg_2, (1).xxx);
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/var/textureSample/2149ec.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSample/2149ec.wgsl.expected.fxc.hlsl
index 1528b90..851fcb9 100644
--- a/test/tint/builtins/gen/var/textureSample/2149ec.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSample/2149ec.wgsl.expected.fxc.hlsl
@@ -2,8 +2,8 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSample_2149ec() {
-  float3 arg_2 = (0.0f).xxx;
-  float4 res = arg_0.Sample(arg_1, arg_2, (0).xxx);
+  float3 arg_2 = (1.0f).xxx;
+  float4 res = arg_0.Sample(arg_1, arg_2, (1).xxx);
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/var/textureSample/2149ec.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureSample/2149ec.wgsl.expected.glsl
index 67fde95..1f2238c 100644
--- a/test/tint/builtins/gen/var/textureSample/2149ec.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureSample/2149ec.wgsl.expected.glsl
@@ -4,8 +4,8 @@
 uniform highp sampler3D arg_0_arg_1;
 
 void textureSample_2149ec() {
-  vec3 arg_2 = vec3(0.0f);
-  vec4 res = textureOffset(arg_0_arg_1, arg_2, ivec3(0));
+  vec3 arg_2 = vec3(1.0f);
+  vec4 res = textureOffset(arg_0_arg_1, arg_2, ivec3(1));
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/var/textureSample/2149ec.wgsl.expected.msl b/test/tint/builtins/gen/var/textureSample/2149ec.wgsl.expected.msl
index 96ab51e..d41fa5a 100644
--- a/test/tint/builtins/gen/var/textureSample/2149ec.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureSample/2149ec.wgsl.expected.msl
@@ -2,8 +2,8 @@
 
 using namespace metal;
 void textureSample_2149ec(texture3d<float, access::sample> tint_symbol, sampler tint_symbol_1) {
-  float3 arg_2 = float3(0.0f);
-  float4 res = tint_symbol.sample(tint_symbol_1, arg_2, int3(0));
+  float3 arg_2 = float3(1.0f);
+  float4 res = tint_symbol.sample(tint_symbol_1, arg_2, int3(1));
 }
 
 fragment void fragment_main(texture3d<float, access::sample> tint_symbol_2 [[texture(0)]], sampler tint_symbol_3 [[sampler(0)]]) {
diff --git a/test/tint/builtins/gen/var/textureSample/2149ec.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSample/2149ec.wgsl.expected.spvasm
index 8e435b9..2882225 100644
--- a/test/tint/builtins/gen/var/textureSample/2149ec.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSample/2149ec.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 32
+; Bound: 35
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -27,30 +27,33 @@
        %void = OpTypeVoid
           %8 = OpTypeFunction %void
     %v3float = OpTypeVector %float 3
-         %13 = OpConstantNull %v3float
+    %float_1 = OpConstant %float 1
+         %14 = OpConstantComposite %v3float %float_1 %float_1 %float_1
 %_ptr_Function_v3float = OpTypePointer Function %v3float
+         %17 = OpConstantNull %v3float
     %v4float = OpTypeVector %float 4
-         %20 = OpTypeSampledImage %3
+         %22 = OpTypeSampledImage %3
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
-         %25 = OpConstantNull %v3int
+      %int_1 = OpConstant %int 1
+         %28 = OpConstantComposite %v3int %int_1 %int_1 %int_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %28 = OpConstantNull %v4float
+         %31 = OpConstantNull %v4float
 %textureSample_2149ec = OpFunction %void None %8
          %11 = OpLabel
-      %arg_2 = OpVariable %_ptr_Function_v3float Function %13
-        %res = OpVariable %_ptr_Function_v4float Function %28
-               OpStore %arg_2 %13
-         %18 = OpLoad %7 %arg_1
-         %19 = OpLoad %3 %arg_0
-         %21 = OpSampledImage %20 %19 %18
-         %22 = OpLoad %v3float %arg_2
-         %16 = OpImageSampleImplicitLod %v4float %21 %22 ConstOffset %25
-               OpStore %res %16
+      %arg_2 = OpVariable %_ptr_Function_v3float Function %17
+        %res = OpVariable %_ptr_Function_v4float Function %31
+               OpStore %arg_2 %14
+         %20 = OpLoad %7 %arg_1
+         %21 = OpLoad %3 %arg_0
+         %23 = OpSampledImage %22 %21 %20
+         %24 = OpLoad %v3float %arg_2
+         %18 = OpImageSampleImplicitLod %v4float %23 %24 ConstOffset %28
+               OpStore %res %18
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %8
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %textureSample_2149ec
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureSample_2149ec
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureSample/2149ec.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSample/2149ec.wgsl.expected.wgsl
index 2d7485d..4504ed8 100644
--- a/test/tint/builtins/gen/var/textureSample/2149ec.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSample/2149ec.wgsl.expected.wgsl
@@ -3,8 +3,8 @@
 @group(1) @binding(1) var arg_1 : sampler;
 
 fn textureSample_2149ec() {
-  var arg_2 = vec3<f32>();
-  const arg_3 = vec3<i32>();
+  var arg_2 = vec3<f32>(1.0f);
+  const arg_3 = vec3<i32>(1i);
   var res : vec4<f32> = textureSample(arg_0, arg_1, arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureSample/38bbb9.wgsl b/test/tint/builtins/gen/var/textureSample/38bbb9.wgsl
index 201d5e4..2a51765 100644
--- a/test/tint/builtins/gen/var/textureSample/38bbb9.wgsl
+++ b/test/tint/builtins/gen/var/textureSample/38bbb9.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureSample(texture: texture_depth_2d, sampler: sampler, coords: vec2<f32>) -> f32
 fn textureSample_38bbb9() {
-  var arg_2 = vec2<f32>();
+  var arg_2 = vec2<f32>(1.f);
   var res: f32 = textureSample(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureSample/38bbb9.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSample/38bbb9.wgsl.expected.dxc.hlsl
index ffedf8f..02dfbcd 100644
--- a/test/tint/builtins/gen/var/textureSample/38bbb9.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSample/38bbb9.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSample_38bbb9() {
-  float2 arg_2 = (0.0f).xx;
+  float2 arg_2 = (1.0f).xx;
   float res = arg_0.Sample(arg_1, arg_2).x;
 }
 
diff --git a/test/tint/builtins/gen/var/textureSample/38bbb9.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSample/38bbb9.wgsl.expected.fxc.hlsl
index ffedf8f..02dfbcd 100644
--- a/test/tint/builtins/gen/var/textureSample/38bbb9.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSample/38bbb9.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSample_38bbb9() {
-  float2 arg_2 = (0.0f).xx;
+  float2 arg_2 = (1.0f).xx;
   float res = arg_0.Sample(arg_1, arg_2).x;
 }
 
diff --git a/test/tint/builtins/gen/var/textureSample/38bbb9.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureSample/38bbb9.wgsl.expected.glsl
index 31f10fa..4fe5c89 100644
--- a/test/tint/builtins/gen/var/textureSample/38bbb9.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureSample/38bbb9.wgsl.expected.glsl
@@ -4,7 +4,7 @@
 uniform highp sampler2DShadow arg_0_arg_1;
 
 void textureSample_38bbb9() {
-  vec2 arg_2 = vec2(0.0f);
+  vec2 arg_2 = vec2(1.0f);
   float res = texture(arg_0_arg_1, vec3(arg_2, 0.0f));
 }
 
diff --git a/test/tint/builtins/gen/var/textureSample/38bbb9.wgsl.expected.msl b/test/tint/builtins/gen/var/textureSample/38bbb9.wgsl.expected.msl
index 6482503..332cc17 100644
--- a/test/tint/builtins/gen/var/textureSample/38bbb9.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureSample/38bbb9.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureSample_38bbb9(depth2d<float, access::sample> tint_symbol, sampler tint_symbol_1) {
-  float2 arg_2 = float2(0.0f);
+  float2 arg_2 = float2(1.0f);
   float res = tint_symbol.sample(tint_symbol_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureSample/38bbb9.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSample/38bbb9.wgsl.expected.spvasm
index 05511e9..67ed449 100644
--- a/test/tint/builtins/gen/var/textureSample/38bbb9.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSample/38bbb9.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 30
+; Bound: 32
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -27,28 +27,30 @@
        %void = OpTypeVoid
           %8 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
-         %13 = OpConstantNull %v2float
+    %float_1 = OpConstant %float 1
+         %14 = OpConstantComposite %v2float %float_1 %float_1
 %_ptr_Function_v2float = OpTypePointer Function %v2float
+         %17 = OpConstantNull %v2float
     %v4float = OpTypeVector %float 4
-         %21 = OpTypeSampledImage %3
+         %23 = OpTypeSampledImage %3
 %_ptr_Function_float = OpTypePointer Function %float
-         %26 = OpConstantNull %float
+         %28 = OpConstantNull %float
 %textureSample_38bbb9 = OpFunction %void None %8
          %11 = OpLabel
-      %arg_2 = OpVariable %_ptr_Function_v2float Function %13
-        %res = OpVariable %_ptr_Function_float Function %26
-               OpStore %arg_2 %13
-         %19 = OpLoad %7 %arg_1
-         %20 = OpLoad %3 %arg_0
-         %22 = OpSampledImage %21 %20 %19
-         %23 = OpLoad %v2float %arg_2
-         %17 = OpImageSampleImplicitLod %v4float %22 %23
-         %16 = OpCompositeExtract %float %17 0
-               OpStore %res %16
+      %arg_2 = OpVariable %_ptr_Function_v2float Function %17
+        %res = OpVariable %_ptr_Function_float Function %28
+               OpStore %arg_2 %14
+         %21 = OpLoad %7 %arg_1
+         %22 = OpLoad %3 %arg_0
+         %24 = OpSampledImage %23 %22 %21
+         %25 = OpLoad %v2float %arg_2
+         %19 = OpImageSampleImplicitLod %v4float %24 %25
+         %18 = OpCompositeExtract %float %19 0
+               OpStore %res %18
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %8
-         %28 = OpLabel
-         %29 = OpFunctionCall %void %textureSample_38bbb9
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %textureSample_38bbb9
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureSample/38bbb9.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSample/38bbb9.wgsl.expected.wgsl
index 2d6c9d1..9bad3e4 100644
--- a/test/tint/builtins/gen/var/textureSample/38bbb9.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSample/38bbb9.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(1) var arg_1 : sampler;
 
 fn textureSample_38bbb9() {
-  var arg_2 = vec2<f32>();
+  var arg_2 = vec2<f32>(1.0f);
   var res : f32 = textureSample(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureSample/3b50bd.wgsl b/test/tint/builtins/gen/var/textureSample/3b50bd.wgsl
index c833f38..07d3d57 100644
--- a/test/tint/builtins/gen/var/textureSample/3b50bd.wgsl
+++ b/test/tint/builtins/gen/var/textureSample/3b50bd.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureSample(texture: texture_3d<f32>, sampler: sampler, coords: vec3<f32>) -> vec4<f32>
 fn textureSample_3b50bd() {
-  var arg_2 = vec3<f32>();
+  var arg_2 = vec3<f32>(1.f);
   var res: vec4<f32> = textureSample(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureSample/3b50bd.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSample/3b50bd.wgsl.expected.dxc.hlsl
index 29a54ea..5eb33e5 100644
--- a/test/tint/builtins/gen/var/textureSample/3b50bd.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSample/3b50bd.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSample_3b50bd() {
-  float3 arg_2 = (0.0f).xxx;
+  float3 arg_2 = (1.0f).xxx;
   float4 res = arg_0.Sample(arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureSample/3b50bd.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSample/3b50bd.wgsl.expected.fxc.hlsl
index 29a54ea..5eb33e5 100644
--- a/test/tint/builtins/gen/var/textureSample/3b50bd.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSample/3b50bd.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSample_3b50bd() {
-  float3 arg_2 = (0.0f).xxx;
+  float3 arg_2 = (1.0f).xxx;
   float4 res = arg_0.Sample(arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureSample/3b50bd.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureSample/3b50bd.wgsl.expected.glsl
index 1f936b4..5dedecf 100644
--- a/test/tint/builtins/gen/var/textureSample/3b50bd.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureSample/3b50bd.wgsl.expected.glsl
@@ -4,7 +4,7 @@
 uniform highp sampler3D arg_0_arg_1;
 
 void textureSample_3b50bd() {
-  vec3 arg_2 = vec3(0.0f);
+  vec3 arg_2 = vec3(1.0f);
   vec4 res = texture(arg_0_arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureSample/3b50bd.wgsl.expected.msl b/test/tint/builtins/gen/var/textureSample/3b50bd.wgsl.expected.msl
index 0bf2684..85f1579 100644
--- a/test/tint/builtins/gen/var/textureSample/3b50bd.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureSample/3b50bd.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureSample_3b50bd(texture3d<float, access::sample> tint_symbol, sampler tint_symbol_1) {
-  float3 arg_2 = float3(0.0f);
+  float3 arg_2 = float3(1.0f);
   float4 res = tint_symbol.sample(tint_symbol_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureSample/3b50bd.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSample/3b50bd.wgsl.expected.spvasm
index 2539dd1..205ec4b 100644
--- a/test/tint/builtins/gen/var/textureSample/3b50bd.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSample/3b50bd.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
@@ -27,27 +27,29 @@
        %void = OpTypeVoid
           %8 = OpTypeFunction %void
     %v3float = OpTypeVector %float 3
-         %13 = OpConstantNull %v3float
+    %float_1 = OpConstant %float 1
+         %14 = OpConstantComposite %v3float %float_1 %float_1 %float_1
 %_ptr_Function_v3float = OpTypePointer Function %v3float
+         %17 = OpConstantNull %v3float
     %v4float = OpTypeVector %float 4
-         %20 = OpTypeSampledImage %3
+         %22 = OpTypeSampledImage %3
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %25 = OpConstantNull %v4float
+         %27 = OpConstantNull %v4float
 %textureSample_3b50bd = OpFunction %void None %8
          %11 = OpLabel
-      %arg_2 = OpVariable %_ptr_Function_v3float Function %13
-        %res = OpVariable %_ptr_Function_v4float Function %25
-               OpStore %arg_2 %13
-         %18 = OpLoad %7 %arg_1
-         %19 = OpLoad %3 %arg_0
-         %21 = OpSampledImage %20 %19 %18
-         %22 = OpLoad %v3float %arg_2
-         %16 = OpImageSampleImplicitLod %v4float %21 %22
-               OpStore %res %16
+      %arg_2 = OpVariable %_ptr_Function_v3float Function %17
+        %res = OpVariable %_ptr_Function_v4float Function %27
+               OpStore %arg_2 %14
+         %20 = OpLoad %7 %arg_1
+         %21 = OpLoad %3 %arg_0
+         %23 = OpSampledImage %22 %21 %20
+         %24 = OpLoad %v3float %arg_2
+         %18 = OpImageSampleImplicitLod %v4float %23 %24
+               OpStore %res %18
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %8
-         %27 = OpLabel
-         %28 = OpFunctionCall %void %textureSample_3b50bd
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %textureSample_3b50bd
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureSample/3b50bd.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSample/3b50bd.wgsl.expected.wgsl
index 77b2588..e58076b 100644
--- a/test/tint/builtins/gen/var/textureSample/3b50bd.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSample/3b50bd.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(1) var arg_1 : sampler;
 
 fn textureSample_3b50bd() {
-  var arg_2 = vec3<f32>();
+  var arg_2 = vec3<f32>(1.0f);
   var res : vec4<f32> = textureSample(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureSample/4703d0.wgsl b/test/tint/builtins/gen/var/textureSample/4703d0.wgsl
index 96ff918..bd4f57c 100644
--- a/test/tint/builtins/gen/var/textureSample/4703d0.wgsl
+++ b/test/tint/builtins/gen/var/textureSample/4703d0.wgsl
@@ -25,9 +25,9 @@
 
 // fn textureSample(texture: texture_depth_2d_array, sampler: sampler, coords: vec2<f32>, array_index: u32, @const offset: vec2<i32>) -> f32
 fn textureSample_4703d0() {
-  var arg_2 = vec2<f32>();
+  var arg_2 = vec2<f32>(1.f);
   var arg_3 = 1u;
-  const arg_4 = vec2<i32>();
+  const arg_4 = vec2<i32>(1i);
   var res: f32 = textureSample(arg_0, arg_1, arg_2, arg_3, arg_4);
 }
 
diff --git a/test/tint/builtins/gen/var/textureSample/4703d0.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSample/4703d0.wgsl.expected.dxc.hlsl
index 3761e5a..0a168db 100644
--- a/test/tint/builtins/gen/var/textureSample/4703d0.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSample/4703d0.wgsl.expected.dxc.hlsl
@@ -2,9 +2,9 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSample_4703d0() {
-  float2 arg_2 = (0.0f).xx;
+  float2 arg_2 = (1.0f).xx;
   uint arg_3 = 1u;
-  float res = arg_0.Sample(arg_1, float3(arg_2, float(arg_3)), (0).xx).x;
+  float res = arg_0.Sample(arg_1, float3(arg_2, float(arg_3)), (1).xx).x;
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/var/textureSample/4703d0.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSample/4703d0.wgsl.expected.fxc.hlsl
index 3761e5a..0a168db 100644
--- a/test/tint/builtins/gen/var/textureSample/4703d0.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSample/4703d0.wgsl.expected.fxc.hlsl
@@ -2,9 +2,9 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSample_4703d0() {
-  float2 arg_2 = (0.0f).xx;
+  float2 arg_2 = (1.0f).xx;
   uint arg_3 = 1u;
-  float res = arg_0.Sample(arg_1, float3(arg_2, float(arg_3)), (0).xx).x;
+  float res = arg_0.Sample(arg_1, float3(arg_2, float(arg_3)), (1).xx).x;
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/var/textureSample/4703d0.wgsl.expected.msl b/test/tint/builtins/gen/var/textureSample/4703d0.wgsl.expected.msl
index 77d8949..313f70a 100644
--- a/test/tint/builtins/gen/var/textureSample/4703d0.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureSample/4703d0.wgsl.expected.msl
@@ -2,9 +2,9 @@
 
 using namespace metal;
 void textureSample_4703d0(depth2d_array<float, access::sample> tint_symbol, sampler tint_symbol_1) {
-  float2 arg_2 = float2(0.0f);
+  float2 arg_2 = float2(1.0f);
   uint arg_3 = 1u;
-  float res = tint_symbol.sample(tint_symbol_1, arg_2, arg_3, int2(0));
+  float res = tint_symbol.sample(tint_symbol_1, arg_2, arg_3, int2(1));
 }
 
 fragment void fragment_main(depth2d_array<float, access::sample> tint_symbol_2 [[texture(0)]], sampler tint_symbol_3 [[sampler(0)]]) {
diff --git a/test/tint/builtins/gen/var/textureSample/4703d0.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSample/4703d0.wgsl.expected.spvasm
index ed2182b..f42d049 100644
--- a/test/tint/builtins/gen/var/textureSample/4703d0.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSample/4703d0.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 47
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -28,43 +28,46 @@
        %void = OpTypeVoid
           %8 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
-         %13 = OpConstantNull %v2float
+    %float_1 = OpConstant %float 1
+         %14 = OpConstantComposite %v2float %float_1 %float_1
 %_ptr_Function_v2float = OpTypePointer Function %v2float
+         %17 = OpConstantNull %v2float
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %20 = OpConstantNull %uint
+         %22 = OpConstantNull %uint
     %v4float = OpTypeVector %float 4
-         %26 = OpTypeSampledImage %3
+         %28 = OpTypeSampledImage %3
     %v3float = OpTypeVector %float 3
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
-         %37 = OpConstantNull %v2int
+      %int_1 = OpConstant %int 1
+         %40 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_float = OpTypePointer Function %float
-         %40 = OpConstantNull %float
+         %43 = OpConstantNull %float
 %textureSample_4703d0 = OpFunction %void None %8
          %11 = OpLabel
-      %arg_2 = OpVariable %_ptr_Function_v2float Function %13
-      %arg_3 = OpVariable %_ptr_Function_uint Function %20
-        %res = OpVariable %_ptr_Function_float Function %40
-               OpStore %arg_2 %13
+      %arg_2 = OpVariable %_ptr_Function_v2float Function %17
+      %arg_3 = OpVariable %_ptr_Function_uint Function %22
+        %res = OpVariable %_ptr_Function_float Function %43
+               OpStore %arg_2 %14
                OpStore %arg_3 %uint_1
-         %24 = OpLoad %7 %arg_1
-         %25 = OpLoad %3 %arg_0
-         %27 = OpSampledImage %26 %25 %24
-         %29 = OpLoad %v2float %arg_2
-         %30 = OpCompositeExtract %float %29 0
-         %31 = OpCompositeExtract %float %29 1
-         %33 = OpLoad %uint %arg_3
-         %32 = OpConvertUToF %float %33
-         %34 = OpCompositeConstruct %v3float %30 %31 %32
-         %22 = OpImageSampleImplicitLod %v4float %27 %34 ConstOffset %37
-         %21 = OpCompositeExtract %float %22 0
-               OpStore %res %21
+         %26 = OpLoad %7 %arg_1
+         %27 = OpLoad %3 %arg_0
+         %29 = OpSampledImage %28 %27 %26
+         %31 = OpLoad %v2float %arg_2
+         %32 = OpCompositeExtract %float %31 0
+         %33 = OpCompositeExtract %float %31 1
+         %35 = OpLoad %uint %arg_3
+         %34 = OpConvertUToF %float %35
+         %36 = OpCompositeConstruct %v3float %32 %33 %34
+         %24 = OpImageSampleImplicitLod %v4float %29 %36 ConstOffset %40
+         %23 = OpCompositeExtract %float %24 0
+               OpStore %res %23
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %8
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureSample_4703d0
+         %45 = OpLabel
+         %46 = OpFunctionCall %void %textureSample_4703d0
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureSample/4703d0.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSample/4703d0.wgsl.expected.wgsl
index 00781e5..946bf08 100644
--- a/test/tint/builtins/gen/var/textureSample/4703d0.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSample/4703d0.wgsl.expected.wgsl
@@ -3,9 +3,9 @@
 @group(1) @binding(1) var arg_1 : sampler;
 
 fn textureSample_4703d0() {
-  var arg_2 = vec2<f32>();
+  var arg_2 = vec2<f32>(1.0f);
   var arg_3 = 1u;
-  const arg_4 = vec2<i32>();
+  const arg_4 = vec2<i32>(1i);
   var res : f32 = textureSample(arg_0, arg_1, arg_2, arg_3, arg_4);
 }
 
diff --git a/test/tint/builtins/gen/var/textureSample/4dd1bf.wgsl b/test/tint/builtins/gen/var/textureSample/4dd1bf.wgsl
index 6f30c35..fbdf221 100644
--- a/test/tint/builtins/gen/var/textureSample/4dd1bf.wgsl
+++ b/test/tint/builtins/gen/var/textureSample/4dd1bf.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureSample(texture: texture_cube_array<f32>, sampler: sampler, coords: vec3<f32>, array_index: i32) -> vec4<f32>
 fn textureSample_4dd1bf() {
-  var arg_2 = vec3<f32>();
+  var arg_2 = vec3<f32>(1.f);
   var arg_3 = 1i;
   var res: vec4<f32> = textureSample(arg_0, arg_1, arg_2, arg_3);
 }
diff --git a/test/tint/builtins/gen/var/textureSample/4dd1bf.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSample/4dd1bf.wgsl.expected.dxc.hlsl
index c779be1..5e80f0b 100644
--- a/test/tint/builtins/gen/var/textureSample/4dd1bf.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSample/4dd1bf.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSample_4dd1bf() {
-  float3 arg_2 = (0.0f).xxx;
+  float3 arg_2 = (1.0f).xxx;
   int arg_3 = 1;
   float4 res = arg_0.Sample(arg_1, float4(arg_2, float(arg_3)));
 }
diff --git a/test/tint/builtins/gen/var/textureSample/4dd1bf.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSample/4dd1bf.wgsl.expected.fxc.hlsl
index c779be1..5e80f0b 100644
--- a/test/tint/builtins/gen/var/textureSample/4dd1bf.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSample/4dd1bf.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSample_4dd1bf() {
-  float3 arg_2 = (0.0f).xxx;
+  float3 arg_2 = (1.0f).xxx;
   int arg_3 = 1;
   float4 res = arg_0.Sample(arg_1, float4(arg_2, float(arg_3)));
 }
diff --git a/test/tint/builtins/gen/var/textureSample/4dd1bf.wgsl.expected.msl b/test/tint/builtins/gen/var/textureSample/4dd1bf.wgsl.expected.msl
index 89cfd57..a643911 100644
--- a/test/tint/builtins/gen/var/textureSample/4dd1bf.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureSample/4dd1bf.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureSample_4dd1bf(texturecube_array<float, access::sample> tint_symbol, sampler tint_symbol_1) {
-  float3 arg_2 = float3(0.0f);
+  float3 arg_2 = float3(1.0f);
   int arg_3 = 1;
   float4 res = tint_symbol.sample(tint_symbol_1, arg_2, arg_3);
 }
diff --git a/test/tint/builtins/gen/var/textureSample/4dd1bf.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSample/4dd1bf.wgsl.expected.spvasm
index 131c440..16d357e 100644
--- a/test/tint/builtins/gen/var/textureSample/4dd1bf.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSample/4dd1bf.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 40
+; Bound: 42
 ; Schema: 0
                OpCapability Shader
                OpCapability SampledCubeArray
@@ -29,39 +29,41 @@
        %void = OpTypeVoid
           %8 = OpTypeFunction %void
     %v3float = OpTypeVector %float 3
-         %13 = OpConstantNull %v3float
+    %float_1 = OpConstant %float 1
+         %14 = OpConstantComposite %v3float %float_1 %float_1 %float_1
 %_ptr_Function_v3float = OpTypePointer Function %v3float
+         %17 = OpConstantNull %v3float
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
-         %20 = OpConstantNull %int
+         %22 = OpConstantNull %int
     %v4float = OpTypeVector %float 4
-         %25 = OpTypeSampledImage %3
+         %27 = OpTypeSampledImage %3
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %36 = OpConstantNull %v4float
+         %38 = OpConstantNull %v4float
 %textureSample_4dd1bf = OpFunction %void None %8
          %11 = OpLabel
-      %arg_2 = OpVariable %_ptr_Function_v3float Function %13
-      %arg_3 = OpVariable %_ptr_Function_int Function %20
-        %res = OpVariable %_ptr_Function_v4float Function %36
-               OpStore %arg_2 %13
+      %arg_2 = OpVariable %_ptr_Function_v3float Function %17
+      %arg_3 = OpVariable %_ptr_Function_int Function %22
+        %res = OpVariable %_ptr_Function_v4float Function %38
+               OpStore %arg_2 %14
                OpStore %arg_3 %int_1
-         %23 = OpLoad %7 %arg_1
-         %24 = OpLoad %3 %arg_0
-         %26 = OpSampledImage %25 %24 %23
-         %27 = OpLoad %v3float %arg_2
-         %28 = OpCompositeExtract %float %27 0
-         %29 = OpCompositeExtract %float %27 1
-         %30 = OpCompositeExtract %float %27 2
-         %32 = OpLoad %int %arg_3
-         %31 = OpConvertSToF %float %32
-         %33 = OpCompositeConstruct %v4float %28 %29 %30 %31
-         %21 = OpImageSampleImplicitLod %v4float %26 %33
-               OpStore %res %21
+         %25 = OpLoad %7 %arg_1
+         %26 = OpLoad %3 %arg_0
+         %28 = OpSampledImage %27 %26 %25
+         %29 = OpLoad %v3float %arg_2
+         %30 = OpCompositeExtract %float %29 0
+         %31 = OpCompositeExtract %float %29 1
+         %32 = OpCompositeExtract %float %29 2
+         %34 = OpLoad %int %arg_3
+         %33 = OpConvertSToF %float %34
+         %35 = OpCompositeConstruct %v4float %30 %31 %32 %33
+         %23 = OpImageSampleImplicitLod %v4float %28 %35
+               OpStore %res %23
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %8
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureSample_4dd1bf
+         %40 = OpLabel
+         %41 = OpFunctionCall %void %textureSample_4dd1bf
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureSample/4dd1bf.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSample/4dd1bf.wgsl.expected.wgsl
index f20de37..c81daf1 100644
--- a/test/tint/builtins/gen/var/textureSample/4dd1bf.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSample/4dd1bf.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(1) var arg_1 : sampler;
 
 fn textureSample_4dd1bf() {
-  var arg_2 = vec3<f32>();
+  var arg_2 = vec3<f32>(1.0f);
   var arg_3 = 1i;
   var res : vec4<f32> = textureSample(arg_0, arg_1, arg_2, arg_3);
 }
diff --git a/test/tint/builtins/gen/var/textureSample/51b514.wgsl b/test/tint/builtins/gen/var/textureSample/51b514.wgsl
index 9d0ec56..1e81aff 100644
--- a/test/tint/builtins/gen/var/textureSample/51b514.wgsl
+++ b/test/tint/builtins/gen/var/textureSample/51b514.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureSample(texture: texture_2d<f32>, sampler: sampler, coords: vec2<f32>) -> vec4<f32>
 fn textureSample_51b514() {
-  var arg_2 = vec2<f32>();
+  var arg_2 = vec2<f32>(1.f);
   var res: vec4<f32> = textureSample(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureSample/51b514.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSample/51b514.wgsl.expected.dxc.hlsl
index 32dce22..05b317f 100644
--- a/test/tint/builtins/gen/var/textureSample/51b514.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSample/51b514.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSample_51b514() {
-  float2 arg_2 = (0.0f).xx;
+  float2 arg_2 = (1.0f).xx;
   float4 res = arg_0.Sample(arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureSample/51b514.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSample/51b514.wgsl.expected.fxc.hlsl
index 32dce22..05b317f 100644
--- a/test/tint/builtins/gen/var/textureSample/51b514.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSample/51b514.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSample_51b514() {
-  float2 arg_2 = (0.0f).xx;
+  float2 arg_2 = (1.0f).xx;
   float4 res = arg_0.Sample(arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureSample/51b514.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureSample/51b514.wgsl.expected.glsl
index ab891bc..8728e28 100644
--- a/test/tint/builtins/gen/var/textureSample/51b514.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureSample/51b514.wgsl.expected.glsl
@@ -4,7 +4,7 @@
 uniform highp sampler2D arg_0_arg_1;
 
 void textureSample_51b514() {
-  vec2 arg_2 = vec2(0.0f);
+  vec2 arg_2 = vec2(1.0f);
   vec4 res = texture(arg_0_arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureSample/51b514.wgsl.expected.msl b/test/tint/builtins/gen/var/textureSample/51b514.wgsl.expected.msl
index bffded9..c988d80 100644
--- a/test/tint/builtins/gen/var/textureSample/51b514.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureSample/51b514.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureSample_51b514(texture2d<float, access::sample> tint_symbol, sampler tint_symbol_1) {
-  float2 arg_2 = float2(0.0f);
+  float2 arg_2 = float2(1.0f);
   float4 res = tint_symbol.sample(tint_symbol_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureSample/51b514.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSample/51b514.wgsl.expected.spvasm
index fe14ef4..63296a4 100644
--- a/test/tint/builtins/gen/var/textureSample/51b514.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSample/51b514.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
@@ -27,27 +27,29 @@
        %void = OpTypeVoid
           %8 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
-         %13 = OpConstantNull %v2float
+    %float_1 = OpConstant %float 1
+         %14 = OpConstantComposite %v2float %float_1 %float_1
 %_ptr_Function_v2float = OpTypePointer Function %v2float
+         %17 = OpConstantNull %v2float
     %v4float = OpTypeVector %float 4
-         %20 = OpTypeSampledImage %3
+         %22 = OpTypeSampledImage %3
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %25 = OpConstantNull %v4float
+         %27 = OpConstantNull %v4float
 %textureSample_51b514 = OpFunction %void None %8
          %11 = OpLabel
-      %arg_2 = OpVariable %_ptr_Function_v2float Function %13
-        %res = OpVariable %_ptr_Function_v4float Function %25
-               OpStore %arg_2 %13
-         %18 = OpLoad %7 %arg_1
-         %19 = OpLoad %3 %arg_0
-         %21 = OpSampledImage %20 %19 %18
-         %22 = OpLoad %v2float %arg_2
-         %16 = OpImageSampleImplicitLod %v4float %21 %22
-               OpStore %res %16
+      %arg_2 = OpVariable %_ptr_Function_v2float Function %17
+        %res = OpVariable %_ptr_Function_v4float Function %27
+               OpStore %arg_2 %14
+         %20 = OpLoad %7 %arg_1
+         %21 = OpLoad %3 %arg_0
+         %23 = OpSampledImage %22 %21 %20
+         %24 = OpLoad %v2float %arg_2
+         %18 = OpImageSampleImplicitLod %v4float %23 %24
+               OpStore %res %18
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %8
-         %27 = OpLabel
-         %28 = OpFunctionCall %void %textureSample_51b514
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %textureSample_51b514
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureSample/51b514.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSample/51b514.wgsl.expected.wgsl
index 23f0f36..14161ec 100644
--- a/test/tint/builtins/gen/var/textureSample/51b514.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSample/51b514.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(1) var arg_1 : sampler;
 
 fn textureSample_51b514() {
-  var arg_2 = vec2<f32>();
+  var arg_2 = vec2<f32>(1.0f);
   var res : vec4<f32> = textureSample(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureSample/60bf45.wgsl b/test/tint/builtins/gen/var/textureSample/60bf45.wgsl
index 1f61dc8..82d3e6f 100644
--- a/test/tint/builtins/gen/var/textureSample/60bf45.wgsl
+++ b/test/tint/builtins/gen/var/textureSample/60bf45.wgsl
@@ -25,9 +25,9 @@
 
 // fn textureSample(texture: texture_depth_2d_array, sampler: sampler, coords: vec2<f32>, array_index: i32, @const offset: vec2<i32>) -> f32
 fn textureSample_60bf45() {
-  var arg_2 = vec2<f32>();
+  var arg_2 = vec2<f32>(1.f);
   var arg_3 = 1i;
-  const arg_4 = vec2<i32>();
+  const arg_4 = vec2<i32>(1i);
   var res: f32 = textureSample(arg_0, arg_1, arg_2, arg_3, arg_4);
 }
 
diff --git a/test/tint/builtins/gen/var/textureSample/60bf45.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSample/60bf45.wgsl.expected.dxc.hlsl
index 6a9339e..4d12d1b4a 100644
--- a/test/tint/builtins/gen/var/textureSample/60bf45.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSample/60bf45.wgsl.expected.dxc.hlsl
@@ -2,9 +2,9 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSample_60bf45() {
-  float2 arg_2 = (0.0f).xx;
+  float2 arg_2 = (1.0f).xx;
   int arg_3 = 1;
-  float res = arg_0.Sample(arg_1, float3(arg_2, float(arg_3)), (0).xx).x;
+  float res = arg_0.Sample(arg_1, float3(arg_2, float(arg_3)), (1).xx).x;
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/var/textureSample/60bf45.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSample/60bf45.wgsl.expected.fxc.hlsl
index 6a9339e..4d12d1b4a 100644
--- a/test/tint/builtins/gen/var/textureSample/60bf45.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSample/60bf45.wgsl.expected.fxc.hlsl
@@ -2,9 +2,9 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSample_60bf45() {
-  float2 arg_2 = (0.0f).xx;
+  float2 arg_2 = (1.0f).xx;
   int arg_3 = 1;
-  float res = arg_0.Sample(arg_1, float3(arg_2, float(arg_3)), (0).xx).x;
+  float res = arg_0.Sample(arg_1, float3(arg_2, float(arg_3)), (1).xx).x;
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/var/textureSample/60bf45.wgsl.expected.msl b/test/tint/builtins/gen/var/textureSample/60bf45.wgsl.expected.msl
index b822a47..e2a533c 100644
--- a/test/tint/builtins/gen/var/textureSample/60bf45.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureSample/60bf45.wgsl.expected.msl
@@ -2,9 +2,9 @@
 
 using namespace metal;
 void textureSample_60bf45(depth2d_array<float, access::sample> tint_symbol, sampler tint_symbol_1) {
-  float2 arg_2 = float2(0.0f);
+  float2 arg_2 = float2(1.0f);
   int arg_3 = 1;
-  float res = tint_symbol.sample(tint_symbol_1, arg_2, arg_3, int2(0));
+  float res = tint_symbol.sample(tint_symbol_1, arg_2, arg_3, int2(1));
 }
 
 fragment void fragment_main(depth2d_array<float, access::sample> tint_symbol_2 [[texture(0)]], sampler tint_symbol_3 [[sampler(0)]]) {
diff --git a/test/tint/builtins/gen/var/textureSample/60bf45.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSample/60bf45.wgsl.expected.spvasm
index efd63d2..30716a2 100644
--- a/test/tint/builtins/gen/var/textureSample/60bf45.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSample/60bf45.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 43
+; Bound: 45
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -28,42 +28,44 @@
        %void = OpTypeVoid
           %8 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
-         %13 = OpConstantNull %v2float
+    %float_1 = OpConstant %float 1
+         %14 = OpConstantComposite %v2float %float_1 %float_1
 %_ptr_Function_v2float = OpTypePointer Function %v2float
+         %17 = OpConstantNull %v2float
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
-         %20 = OpConstantNull %int
+         %22 = OpConstantNull %int
     %v4float = OpTypeVector %float 4
-         %26 = OpTypeSampledImage %3
+         %28 = OpTypeSampledImage %3
     %v3float = OpTypeVector %float 3
       %v2int = OpTypeVector %int 2
-         %36 = OpConstantNull %v2int
+         %38 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_float = OpTypePointer Function %float
-         %39 = OpConstantNull %float
+         %41 = OpConstantNull %float
 %textureSample_60bf45 = OpFunction %void None %8
          %11 = OpLabel
-      %arg_2 = OpVariable %_ptr_Function_v2float Function %13
-      %arg_3 = OpVariable %_ptr_Function_int Function %20
-        %res = OpVariable %_ptr_Function_float Function %39
-               OpStore %arg_2 %13
+      %arg_2 = OpVariable %_ptr_Function_v2float Function %17
+      %arg_3 = OpVariable %_ptr_Function_int Function %22
+        %res = OpVariable %_ptr_Function_float Function %41
+               OpStore %arg_2 %14
                OpStore %arg_3 %int_1
-         %24 = OpLoad %7 %arg_1
-         %25 = OpLoad %3 %arg_0
-         %27 = OpSampledImage %26 %25 %24
-         %29 = OpLoad %v2float %arg_2
-         %30 = OpCompositeExtract %float %29 0
-         %31 = OpCompositeExtract %float %29 1
-         %33 = OpLoad %int %arg_3
-         %32 = OpConvertSToF %float %33
-         %34 = OpCompositeConstruct %v3float %30 %31 %32
-         %22 = OpImageSampleImplicitLod %v4float %27 %34 ConstOffset %36
-         %21 = OpCompositeExtract %float %22 0
-               OpStore %res %21
+         %26 = OpLoad %7 %arg_1
+         %27 = OpLoad %3 %arg_0
+         %29 = OpSampledImage %28 %27 %26
+         %31 = OpLoad %v2float %arg_2
+         %32 = OpCompositeExtract %float %31 0
+         %33 = OpCompositeExtract %float %31 1
+         %35 = OpLoad %int %arg_3
+         %34 = OpConvertSToF %float %35
+         %36 = OpCompositeConstruct %v3float %32 %33 %34
+         %24 = OpImageSampleImplicitLod %v4float %29 %36 ConstOffset %38
+         %23 = OpCompositeExtract %float %24 0
+               OpStore %res %23
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %8
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureSample_60bf45
+         %43 = OpLabel
+         %44 = OpFunctionCall %void %textureSample_60bf45
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureSample/60bf45.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSample/60bf45.wgsl.expected.wgsl
index dfcc39c..20e38db 100644
--- a/test/tint/builtins/gen/var/textureSample/60bf45.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSample/60bf45.wgsl.expected.wgsl
@@ -3,9 +3,9 @@
 @group(1) @binding(1) var arg_1 : sampler;
 
 fn textureSample_60bf45() {
-  var arg_2 = vec2<f32>();
+  var arg_2 = vec2<f32>(1.0f);
   var arg_3 = 1i;
-  const arg_4 = vec2<i32>();
+  const arg_4 = vec2<i32>(1i);
   var res : f32 = textureSample(arg_0, arg_1, arg_2, arg_3, arg_4);
 }
 
diff --git a/test/tint/builtins/gen/var/textureSample/6717ca.wgsl b/test/tint/builtins/gen/var/textureSample/6717ca.wgsl
index 202aa33..d2bbdce 100644
--- a/test/tint/builtins/gen/var/textureSample/6717ca.wgsl
+++ b/test/tint/builtins/gen/var/textureSample/6717ca.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureSample(texture: texture_2d_array<f32>, sampler: sampler, coords: vec2<f32>, array_index: i32) -> vec4<f32>
 fn textureSample_6717ca() {
-  var arg_2 = vec2<f32>();
+  var arg_2 = vec2<f32>(1.f);
   var arg_3 = 1i;
   var res: vec4<f32> = textureSample(arg_0, arg_1, arg_2, arg_3);
 }
diff --git a/test/tint/builtins/gen/var/textureSample/6717ca.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSample/6717ca.wgsl.expected.dxc.hlsl
index 01c97bc..17ca05c 100644
--- a/test/tint/builtins/gen/var/textureSample/6717ca.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSample/6717ca.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSample_6717ca() {
-  float2 arg_2 = (0.0f).xx;
+  float2 arg_2 = (1.0f).xx;
   int arg_3 = 1;
   float4 res = arg_0.Sample(arg_1, float3(arg_2, float(arg_3)));
 }
diff --git a/test/tint/builtins/gen/var/textureSample/6717ca.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSample/6717ca.wgsl.expected.fxc.hlsl
index 01c97bc..17ca05c 100644
--- a/test/tint/builtins/gen/var/textureSample/6717ca.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSample/6717ca.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSample_6717ca() {
-  float2 arg_2 = (0.0f).xx;
+  float2 arg_2 = (1.0f).xx;
   int arg_3 = 1;
   float4 res = arg_0.Sample(arg_1, float3(arg_2, float(arg_3)));
 }
diff --git a/test/tint/builtins/gen/var/textureSample/6717ca.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureSample/6717ca.wgsl.expected.glsl
index d8cdc14..785b0c8 100644
--- a/test/tint/builtins/gen/var/textureSample/6717ca.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureSample/6717ca.wgsl.expected.glsl
@@ -4,7 +4,7 @@
 uniform highp sampler2DArray arg_0_arg_1;
 
 void textureSample_6717ca() {
-  vec2 arg_2 = vec2(0.0f);
+  vec2 arg_2 = vec2(1.0f);
   int arg_3 = 1;
   vec4 res = texture(arg_0_arg_1, vec3(arg_2, float(arg_3)));
 }
diff --git a/test/tint/builtins/gen/var/textureSample/6717ca.wgsl.expected.msl b/test/tint/builtins/gen/var/textureSample/6717ca.wgsl.expected.msl
index e512eca..970129e 100644
--- a/test/tint/builtins/gen/var/textureSample/6717ca.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureSample/6717ca.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureSample_6717ca(texture2d_array<float, access::sample> tint_symbol, sampler tint_symbol_1) {
-  float2 arg_2 = float2(0.0f);
+  float2 arg_2 = float2(1.0f);
   int arg_3 = 1;
   float4 res = tint_symbol.sample(tint_symbol_1, arg_2, arg_3);
 }
diff --git a/test/tint/builtins/gen/var/textureSample/6717ca.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSample/6717ca.wgsl.expected.spvasm
index 8fd8ccf..66cc8f4 100644
--- a/test/tint/builtins/gen/var/textureSample/6717ca.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSample/6717ca.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 40
+; Bound: 42
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -28,39 +28,41 @@
        %void = OpTypeVoid
           %8 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
-         %13 = OpConstantNull %v2float
+    %float_1 = OpConstant %float 1
+         %14 = OpConstantComposite %v2float %float_1 %float_1
 %_ptr_Function_v2float = OpTypePointer Function %v2float
+         %17 = OpConstantNull %v2float
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
-         %20 = OpConstantNull %int
+         %22 = OpConstantNull %int
     %v4float = OpTypeVector %float 4
-         %25 = OpTypeSampledImage %3
+         %27 = OpTypeSampledImage %3
     %v3float = OpTypeVector %float 3
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %36 = OpConstantNull %v4float
+         %38 = OpConstantNull %v4float
 %textureSample_6717ca = OpFunction %void None %8
          %11 = OpLabel
-      %arg_2 = OpVariable %_ptr_Function_v2float Function %13
-      %arg_3 = OpVariable %_ptr_Function_int Function %20
-        %res = OpVariable %_ptr_Function_v4float Function %36
-               OpStore %arg_2 %13
+      %arg_2 = OpVariable %_ptr_Function_v2float Function %17
+      %arg_3 = OpVariable %_ptr_Function_int Function %22
+        %res = OpVariable %_ptr_Function_v4float Function %38
+               OpStore %arg_2 %14
                OpStore %arg_3 %int_1
-         %23 = OpLoad %7 %arg_1
-         %24 = OpLoad %3 %arg_0
-         %26 = OpSampledImage %25 %24 %23
-         %28 = OpLoad %v2float %arg_2
-         %29 = OpCompositeExtract %float %28 0
-         %30 = OpCompositeExtract %float %28 1
-         %32 = OpLoad %int %arg_3
-         %31 = OpConvertSToF %float %32
-         %33 = OpCompositeConstruct %v3float %29 %30 %31
-         %21 = OpImageSampleImplicitLod %v4float %26 %33
-               OpStore %res %21
+         %25 = OpLoad %7 %arg_1
+         %26 = OpLoad %3 %arg_0
+         %28 = OpSampledImage %27 %26 %25
+         %30 = OpLoad %v2float %arg_2
+         %31 = OpCompositeExtract %float %30 0
+         %32 = OpCompositeExtract %float %30 1
+         %34 = OpLoad %int %arg_3
+         %33 = OpConvertSToF %float %34
+         %35 = OpCompositeConstruct %v3float %31 %32 %33
+         %23 = OpImageSampleImplicitLod %v4float %28 %35
+               OpStore %res %23
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %8
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureSample_6717ca
+         %40 = OpLabel
+         %41 = OpFunctionCall %void %textureSample_6717ca
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureSample/6717ca.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSample/6717ca.wgsl.expected.wgsl
index 037b29b..44579f3 100644
--- a/test/tint/builtins/gen/var/textureSample/6717ca.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSample/6717ca.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(1) var arg_1 : sampler;
 
 fn textureSample_6717ca() {
-  var arg_2 = vec2<f32>();
+  var arg_2 = vec2<f32>(1.0f);
   var arg_3 = 1i;
   var res : vec4<f32> = textureSample(arg_0, arg_1, arg_2, arg_3);
 }
diff --git a/test/tint/builtins/gen/var/textureSample/7e9ffd.wgsl b/test/tint/builtins/gen/var/textureSample/7e9ffd.wgsl
index 1b24313..066a4c0 100644
--- a/test/tint/builtins/gen/var/textureSample/7e9ffd.wgsl
+++ b/test/tint/builtins/gen/var/textureSample/7e9ffd.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureSample(texture: texture_depth_2d_array, sampler: sampler, coords: vec2<f32>, array_index: i32) -> f32
 fn textureSample_7e9ffd() {
-  var arg_2 = vec2<f32>();
+  var arg_2 = vec2<f32>(1.f);
   var arg_3 = 1i;
   var res: f32 = textureSample(arg_0, arg_1, arg_2, arg_3);
 }
diff --git a/test/tint/builtins/gen/var/textureSample/7e9ffd.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSample/7e9ffd.wgsl.expected.dxc.hlsl
index 88b7a82..5b1a5d9 100644
--- a/test/tint/builtins/gen/var/textureSample/7e9ffd.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSample/7e9ffd.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSample_7e9ffd() {
-  float2 arg_2 = (0.0f).xx;
+  float2 arg_2 = (1.0f).xx;
   int arg_3 = 1;
   float res = arg_0.Sample(arg_1, float3(arg_2, float(arg_3))).x;
 }
diff --git a/test/tint/builtins/gen/var/textureSample/7e9ffd.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSample/7e9ffd.wgsl.expected.fxc.hlsl
index 88b7a82..5b1a5d9 100644
--- a/test/tint/builtins/gen/var/textureSample/7e9ffd.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSample/7e9ffd.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSample_7e9ffd() {
-  float2 arg_2 = (0.0f).xx;
+  float2 arg_2 = (1.0f).xx;
   int arg_3 = 1;
   float res = arg_0.Sample(arg_1, float3(arg_2, float(arg_3))).x;
 }
diff --git a/test/tint/builtins/gen/var/textureSample/7e9ffd.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureSample/7e9ffd.wgsl.expected.glsl
index 1f79b36..fd4c016 100644
--- a/test/tint/builtins/gen/var/textureSample/7e9ffd.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureSample/7e9ffd.wgsl.expected.glsl
@@ -4,7 +4,7 @@
 uniform highp sampler2DArrayShadow arg_0_arg_1;
 
 void textureSample_7e9ffd() {
-  vec2 arg_2 = vec2(0.0f);
+  vec2 arg_2 = vec2(1.0f);
   int arg_3 = 1;
   float res = texture(arg_0_arg_1, vec4(vec3(arg_2, float(arg_3)), 0.0f));
 }
diff --git a/test/tint/builtins/gen/var/textureSample/7e9ffd.wgsl.expected.msl b/test/tint/builtins/gen/var/textureSample/7e9ffd.wgsl.expected.msl
index 9a29676..24cda54 100644
--- a/test/tint/builtins/gen/var/textureSample/7e9ffd.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureSample/7e9ffd.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureSample_7e9ffd(depth2d_array<float, access::sample> tint_symbol, sampler tint_symbol_1) {
-  float2 arg_2 = float2(0.0f);
+  float2 arg_2 = float2(1.0f);
   int arg_3 = 1;
   float res = tint_symbol.sample(tint_symbol_1, arg_2, arg_3);
 }
diff --git a/test/tint/builtins/gen/var/textureSample/7e9ffd.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSample/7e9ffd.wgsl.expected.spvasm
index 76ef866..ecc54a0 100644
--- a/test/tint/builtins/gen/var/textureSample/7e9ffd.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSample/7e9ffd.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 41
+; Bound: 43
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -28,40 +28,42 @@
        %void = OpTypeVoid
           %8 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
-         %13 = OpConstantNull %v2float
+    %float_1 = OpConstant %float 1
+         %14 = OpConstantComposite %v2float %float_1 %float_1
 %_ptr_Function_v2float = OpTypePointer Function %v2float
+         %17 = OpConstantNull %v2float
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
-         %20 = OpConstantNull %int
+         %22 = OpConstantNull %int
     %v4float = OpTypeVector %float 4
-         %26 = OpTypeSampledImage %3
+         %28 = OpTypeSampledImage %3
     %v3float = OpTypeVector %float 3
 %_ptr_Function_float = OpTypePointer Function %float
-         %37 = OpConstantNull %float
+         %39 = OpConstantNull %float
 %textureSample_7e9ffd = OpFunction %void None %8
          %11 = OpLabel
-      %arg_2 = OpVariable %_ptr_Function_v2float Function %13
-      %arg_3 = OpVariable %_ptr_Function_int Function %20
-        %res = OpVariable %_ptr_Function_float Function %37
-               OpStore %arg_2 %13
+      %arg_2 = OpVariable %_ptr_Function_v2float Function %17
+      %arg_3 = OpVariable %_ptr_Function_int Function %22
+        %res = OpVariable %_ptr_Function_float Function %39
+               OpStore %arg_2 %14
                OpStore %arg_3 %int_1
-         %24 = OpLoad %7 %arg_1
-         %25 = OpLoad %3 %arg_0
-         %27 = OpSampledImage %26 %25 %24
-         %29 = OpLoad %v2float %arg_2
-         %30 = OpCompositeExtract %float %29 0
-         %31 = OpCompositeExtract %float %29 1
-         %33 = OpLoad %int %arg_3
-         %32 = OpConvertSToF %float %33
-         %34 = OpCompositeConstruct %v3float %30 %31 %32
-         %22 = OpImageSampleImplicitLod %v4float %27 %34
-         %21 = OpCompositeExtract %float %22 0
-               OpStore %res %21
+         %26 = OpLoad %7 %arg_1
+         %27 = OpLoad %3 %arg_0
+         %29 = OpSampledImage %28 %27 %26
+         %31 = OpLoad %v2float %arg_2
+         %32 = OpCompositeExtract %float %31 0
+         %33 = OpCompositeExtract %float %31 1
+         %35 = OpLoad %int %arg_3
+         %34 = OpConvertSToF %float %35
+         %36 = OpCompositeConstruct %v3float %32 %33 %34
+         %24 = OpImageSampleImplicitLod %v4float %29 %36
+         %23 = OpCompositeExtract %float %24 0
+               OpStore %res %23
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %8
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureSample_7e9ffd
+         %41 = OpLabel
+         %42 = OpFunctionCall %void %textureSample_7e9ffd
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureSample/7e9ffd.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSample/7e9ffd.wgsl.expected.wgsl
index 541e9b9..1b7dc85 100644
--- a/test/tint/builtins/gen/var/textureSample/7e9ffd.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSample/7e9ffd.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(1) var arg_1 : sampler;
 
 fn textureSample_7e9ffd() {
-  var arg_2 = vec2<f32>();
+  var arg_2 = vec2<f32>(1.0f);
   var arg_3 = 1i;
   var res : f32 = textureSample(arg_0, arg_1, arg_2, arg_3);
 }
diff --git a/test/tint/builtins/gen/var/textureSample/7fd8cb.wgsl b/test/tint/builtins/gen/var/textureSample/7fd8cb.wgsl
index a31832c..1ca0664 100644
--- a/test/tint/builtins/gen/var/textureSample/7fd8cb.wgsl
+++ b/test/tint/builtins/gen/var/textureSample/7fd8cb.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureSample(texture: texture_depth_cube_array, sampler: sampler, coords: vec3<f32>, array_index: u32) -> f32
 fn textureSample_7fd8cb() {
-  var arg_2 = vec3<f32>();
+  var arg_2 = vec3<f32>(1.f);
   var arg_3 = 1u;
   var res: f32 = textureSample(arg_0, arg_1, arg_2, arg_3);
 }
diff --git a/test/tint/builtins/gen/var/textureSample/7fd8cb.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSample/7fd8cb.wgsl.expected.dxc.hlsl
index ddbeb1a..8543883 100644
--- a/test/tint/builtins/gen/var/textureSample/7fd8cb.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSample/7fd8cb.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSample_7fd8cb() {
-  float3 arg_2 = (0.0f).xxx;
+  float3 arg_2 = (1.0f).xxx;
   uint arg_3 = 1u;
   float res = arg_0.Sample(arg_1, float4(arg_2, float(arg_3))).x;
 }
diff --git a/test/tint/builtins/gen/var/textureSample/7fd8cb.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSample/7fd8cb.wgsl.expected.fxc.hlsl
index ddbeb1a..8543883 100644
--- a/test/tint/builtins/gen/var/textureSample/7fd8cb.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSample/7fd8cb.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSample_7fd8cb() {
-  float3 arg_2 = (0.0f).xxx;
+  float3 arg_2 = (1.0f).xxx;
   uint arg_3 = 1u;
   float res = arg_0.Sample(arg_1, float4(arg_2, float(arg_3))).x;
 }
diff --git a/test/tint/builtins/gen/var/textureSample/7fd8cb.wgsl.expected.msl b/test/tint/builtins/gen/var/textureSample/7fd8cb.wgsl.expected.msl
index 80016e7..ef80931 100644
--- a/test/tint/builtins/gen/var/textureSample/7fd8cb.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureSample/7fd8cb.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureSample_7fd8cb(depthcube_array<float, access::sample> tint_symbol, sampler tint_symbol_1) {
-  float3 arg_2 = float3(0.0f);
+  float3 arg_2 = float3(1.0f);
   uint arg_3 = 1u;
   float res = tint_symbol.sample(tint_symbol_1, arg_2, arg_3);
 }
diff --git a/test/tint/builtins/gen/var/textureSample/7fd8cb.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSample/7fd8cb.wgsl.expected.spvasm
index 962925e..8bba39b 100644
--- a/test/tint/builtins/gen/var/textureSample/7fd8cb.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSample/7fd8cb.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 41
+; Bound: 43
 ; Schema: 0
                OpCapability Shader
                OpCapability SampledCubeArray
@@ -29,40 +29,42 @@
        %void = OpTypeVoid
           %8 = OpTypeFunction %void
     %v3float = OpTypeVector %float 3
-         %13 = OpConstantNull %v3float
+    %float_1 = OpConstant %float 1
+         %14 = OpConstantComposite %v3float %float_1 %float_1 %float_1
 %_ptr_Function_v3float = OpTypePointer Function %v3float
+         %17 = OpConstantNull %v3float
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %20 = OpConstantNull %uint
+         %22 = OpConstantNull %uint
     %v4float = OpTypeVector %float 4
-         %26 = OpTypeSampledImage %3
+         %28 = OpTypeSampledImage %3
 %_ptr_Function_float = OpTypePointer Function %float
-         %37 = OpConstantNull %float
+         %39 = OpConstantNull %float
 %textureSample_7fd8cb = OpFunction %void None %8
          %11 = OpLabel
-      %arg_2 = OpVariable %_ptr_Function_v3float Function %13
-      %arg_3 = OpVariable %_ptr_Function_uint Function %20
-        %res = OpVariable %_ptr_Function_float Function %37
-               OpStore %arg_2 %13
+      %arg_2 = OpVariable %_ptr_Function_v3float Function %17
+      %arg_3 = OpVariable %_ptr_Function_uint Function %22
+        %res = OpVariable %_ptr_Function_float Function %39
+               OpStore %arg_2 %14
                OpStore %arg_3 %uint_1
-         %24 = OpLoad %7 %arg_1
-         %25 = OpLoad %3 %arg_0
-         %27 = OpSampledImage %26 %25 %24
-         %28 = OpLoad %v3float %arg_2
-         %29 = OpCompositeExtract %float %28 0
-         %30 = OpCompositeExtract %float %28 1
-         %31 = OpCompositeExtract %float %28 2
-         %33 = OpLoad %uint %arg_3
-         %32 = OpConvertUToF %float %33
-         %34 = OpCompositeConstruct %v4float %29 %30 %31 %32
-         %22 = OpImageSampleImplicitLod %v4float %27 %34
-         %21 = OpCompositeExtract %float %22 0
-               OpStore %res %21
+         %26 = OpLoad %7 %arg_1
+         %27 = OpLoad %3 %arg_0
+         %29 = OpSampledImage %28 %27 %26
+         %30 = OpLoad %v3float %arg_2
+         %31 = OpCompositeExtract %float %30 0
+         %32 = OpCompositeExtract %float %30 1
+         %33 = OpCompositeExtract %float %30 2
+         %35 = OpLoad %uint %arg_3
+         %34 = OpConvertUToF %float %35
+         %36 = OpCompositeConstruct %v4float %31 %32 %33 %34
+         %24 = OpImageSampleImplicitLod %v4float %29 %36
+         %23 = OpCompositeExtract %float %24 0
+               OpStore %res %23
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %8
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureSample_7fd8cb
+         %41 = OpLabel
+         %42 = OpFunctionCall %void %textureSample_7fd8cb
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureSample/7fd8cb.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSample/7fd8cb.wgsl.expected.wgsl
index 6ed7b4c..6b4cfa7 100644
--- a/test/tint/builtins/gen/var/textureSample/7fd8cb.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSample/7fd8cb.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(1) var arg_1 : sampler;
 
 fn textureSample_7fd8cb() {
-  var arg_2 = vec3<f32>();
+  var arg_2 = vec3<f32>(1.0f);
   var arg_3 = 1u;
   var res : f32 = textureSample(arg_0, arg_1, arg_2, arg_3);
 }
diff --git a/test/tint/builtins/gen/var/textureSample/85c4ba.wgsl b/test/tint/builtins/gen/var/textureSample/85c4ba.wgsl
index a60754c..2c3b8c8 100644
--- a/test/tint/builtins/gen/var/textureSample/85c4ba.wgsl
+++ b/test/tint/builtins/gen/var/textureSample/85c4ba.wgsl
@@ -25,8 +25,8 @@
 
 // fn textureSample(texture: texture_2d<f32>, sampler: sampler, coords: vec2<f32>, @const offset: vec2<i32>) -> vec4<f32>
 fn textureSample_85c4ba() {
-  var arg_2 = vec2<f32>();
-  const arg_3 = vec2<i32>();
+  var arg_2 = vec2<f32>(1.f);
+  const arg_3 = vec2<i32>(1i);
   var res: vec4<f32> = textureSample(arg_0, arg_1, arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureSample/85c4ba.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSample/85c4ba.wgsl.expected.dxc.hlsl
index d96272b..582b2c5 100644
--- a/test/tint/builtins/gen/var/textureSample/85c4ba.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSample/85c4ba.wgsl.expected.dxc.hlsl
@@ -2,8 +2,8 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSample_85c4ba() {
-  float2 arg_2 = (0.0f).xx;
-  float4 res = arg_0.Sample(arg_1, arg_2, (0).xx);
+  float2 arg_2 = (1.0f).xx;
+  float4 res = arg_0.Sample(arg_1, arg_2, (1).xx);
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/var/textureSample/85c4ba.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSample/85c4ba.wgsl.expected.fxc.hlsl
index d96272b..582b2c5 100644
--- a/test/tint/builtins/gen/var/textureSample/85c4ba.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSample/85c4ba.wgsl.expected.fxc.hlsl
@@ -2,8 +2,8 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSample_85c4ba() {
-  float2 arg_2 = (0.0f).xx;
-  float4 res = arg_0.Sample(arg_1, arg_2, (0).xx);
+  float2 arg_2 = (1.0f).xx;
+  float4 res = arg_0.Sample(arg_1, arg_2, (1).xx);
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/var/textureSample/85c4ba.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureSample/85c4ba.wgsl.expected.glsl
index 7ec1594..fee2b62 100644
--- a/test/tint/builtins/gen/var/textureSample/85c4ba.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureSample/85c4ba.wgsl.expected.glsl
@@ -4,8 +4,8 @@
 uniform highp sampler2D arg_0_arg_1;
 
 void textureSample_85c4ba() {
-  vec2 arg_2 = vec2(0.0f);
-  vec4 res = textureOffset(arg_0_arg_1, arg_2, ivec2(0));
+  vec2 arg_2 = vec2(1.0f);
+  vec4 res = textureOffset(arg_0_arg_1, arg_2, ivec2(1));
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/var/textureSample/85c4ba.wgsl.expected.msl b/test/tint/builtins/gen/var/textureSample/85c4ba.wgsl.expected.msl
index 16f9ef6..1bf5459 100644
--- a/test/tint/builtins/gen/var/textureSample/85c4ba.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureSample/85c4ba.wgsl.expected.msl
@@ -2,8 +2,8 @@
 
 using namespace metal;
 void textureSample_85c4ba(texture2d<float, access::sample> tint_symbol, sampler tint_symbol_1) {
-  float2 arg_2 = float2(0.0f);
-  float4 res = tint_symbol.sample(tint_symbol_1, arg_2, int2(0));
+  float2 arg_2 = float2(1.0f);
+  float4 res = tint_symbol.sample(tint_symbol_1, arg_2, int2(1));
 }
 
 fragment void fragment_main(texture2d<float, access::sample> tint_symbol_2 [[texture(0)]], sampler tint_symbol_3 [[sampler(0)]]) {
diff --git a/test/tint/builtins/gen/var/textureSample/85c4ba.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSample/85c4ba.wgsl.expected.spvasm
index 96546eb..320dfc4 100644
--- a/test/tint/builtins/gen/var/textureSample/85c4ba.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSample/85c4ba.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 32
+; Bound: 35
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -27,30 +27,33 @@
        %void = OpTypeVoid
           %8 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
-         %13 = OpConstantNull %v2float
+    %float_1 = OpConstant %float 1
+         %14 = OpConstantComposite %v2float %float_1 %float_1
 %_ptr_Function_v2float = OpTypePointer Function %v2float
+         %17 = OpConstantNull %v2float
     %v4float = OpTypeVector %float 4
-         %20 = OpTypeSampledImage %3
+         %22 = OpTypeSampledImage %3
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
-         %25 = OpConstantNull %v2int
+      %int_1 = OpConstant %int 1
+         %28 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %28 = OpConstantNull %v4float
+         %31 = OpConstantNull %v4float
 %textureSample_85c4ba = OpFunction %void None %8
          %11 = OpLabel
-      %arg_2 = OpVariable %_ptr_Function_v2float Function %13
-        %res = OpVariable %_ptr_Function_v4float Function %28
-               OpStore %arg_2 %13
-         %18 = OpLoad %7 %arg_1
-         %19 = OpLoad %3 %arg_0
-         %21 = OpSampledImage %20 %19 %18
-         %22 = OpLoad %v2float %arg_2
-         %16 = OpImageSampleImplicitLod %v4float %21 %22 ConstOffset %25
-               OpStore %res %16
+      %arg_2 = OpVariable %_ptr_Function_v2float Function %17
+        %res = OpVariable %_ptr_Function_v4float Function %31
+               OpStore %arg_2 %14
+         %20 = OpLoad %7 %arg_1
+         %21 = OpLoad %3 %arg_0
+         %23 = OpSampledImage %22 %21 %20
+         %24 = OpLoad %v2float %arg_2
+         %18 = OpImageSampleImplicitLod %v4float %23 %24 ConstOffset %28
+               OpStore %res %18
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %8
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %textureSample_85c4ba
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureSample_85c4ba
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureSample/85c4ba.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSample/85c4ba.wgsl.expected.wgsl
index 8f1a0af..209f269 100644
--- a/test/tint/builtins/gen/var/textureSample/85c4ba.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSample/85c4ba.wgsl.expected.wgsl
@@ -3,8 +3,8 @@
 @group(1) @binding(1) var arg_1 : sampler;
 
 fn textureSample_85c4ba() {
-  var arg_2 = vec2<f32>();
-  const arg_3 = vec2<i32>();
+  var arg_2 = vec2<f32>(1.0f);
+  const arg_3 = vec2<i32>(1i);
   var res : vec4<f32> = textureSample(arg_0, arg_1, arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureSample/bc7477.wgsl b/test/tint/builtins/gen/var/textureSample/bc7477.wgsl
index 6f0116e..f47d67e 100644
--- a/test/tint/builtins/gen/var/textureSample/bc7477.wgsl
+++ b/test/tint/builtins/gen/var/textureSample/bc7477.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureSample(texture: texture_cube_array<f32>, sampler: sampler, coords: vec3<f32>, array_index: u32) -> vec4<f32>
 fn textureSample_bc7477() {
-  var arg_2 = vec3<f32>();
+  var arg_2 = vec3<f32>(1.f);
   var arg_3 = 1u;
   var res: vec4<f32> = textureSample(arg_0, arg_1, arg_2, arg_3);
 }
diff --git a/test/tint/builtins/gen/var/textureSample/bc7477.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSample/bc7477.wgsl.expected.dxc.hlsl
index 5ef25be..de700b8 100644
--- a/test/tint/builtins/gen/var/textureSample/bc7477.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSample/bc7477.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSample_bc7477() {
-  float3 arg_2 = (0.0f).xxx;
+  float3 arg_2 = (1.0f).xxx;
   uint arg_3 = 1u;
   float4 res = arg_0.Sample(arg_1, float4(arg_2, float(arg_3)));
 }
diff --git a/test/tint/builtins/gen/var/textureSample/bc7477.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSample/bc7477.wgsl.expected.fxc.hlsl
index 5ef25be..de700b8 100644
--- a/test/tint/builtins/gen/var/textureSample/bc7477.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSample/bc7477.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSample_bc7477() {
-  float3 arg_2 = (0.0f).xxx;
+  float3 arg_2 = (1.0f).xxx;
   uint arg_3 = 1u;
   float4 res = arg_0.Sample(arg_1, float4(arg_2, float(arg_3)));
 }
diff --git a/test/tint/builtins/gen/var/textureSample/bc7477.wgsl.expected.msl b/test/tint/builtins/gen/var/textureSample/bc7477.wgsl.expected.msl
index 8b3614e..c45ece0 100644
--- a/test/tint/builtins/gen/var/textureSample/bc7477.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureSample/bc7477.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureSample_bc7477(texturecube_array<float, access::sample> tint_symbol, sampler tint_symbol_1) {
-  float3 arg_2 = float3(0.0f);
+  float3 arg_2 = float3(1.0f);
   uint arg_3 = 1u;
   float4 res = tint_symbol.sample(tint_symbol_1, arg_2, arg_3);
 }
diff --git a/test/tint/builtins/gen/var/textureSample/bc7477.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSample/bc7477.wgsl.expected.spvasm
index 4a09842..6732a66 100644
--- a/test/tint/builtins/gen/var/textureSample/bc7477.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSample/bc7477.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 40
+; Bound: 42
 ; Schema: 0
                OpCapability Shader
                OpCapability SampledCubeArray
@@ -29,39 +29,41 @@
        %void = OpTypeVoid
           %8 = OpTypeFunction %void
     %v3float = OpTypeVector %float 3
-         %13 = OpConstantNull %v3float
+    %float_1 = OpConstant %float 1
+         %14 = OpConstantComposite %v3float %float_1 %float_1 %float_1
 %_ptr_Function_v3float = OpTypePointer Function %v3float
+         %17 = OpConstantNull %v3float
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %20 = OpConstantNull %uint
+         %22 = OpConstantNull %uint
     %v4float = OpTypeVector %float 4
-         %25 = OpTypeSampledImage %3
+         %27 = OpTypeSampledImage %3
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %36 = OpConstantNull %v4float
+         %38 = OpConstantNull %v4float
 %textureSample_bc7477 = OpFunction %void None %8
          %11 = OpLabel
-      %arg_2 = OpVariable %_ptr_Function_v3float Function %13
-      %arg_3 = OpVariable %_ptr_Function_uint Function %20
-        %res = OpVariable %_ptr_Function_v4float Function %36
-               OpStore %arg_2 %13
+      %arg_2 = OpVariable %_ptr_Function_v3float Function %17
+      %arg_3 = OpVariable %_ptr_Function_uint Function %22
+        %res = OpVariable %_ptr_Function_v4float Function %38
+               OpStore %arg_2 %14
                OpStore %arg_3 %uint_1
-         %23 = OpLoad %7 %arg_1
-         %24 = OpLoad %3 %arg_0
-         %26 = OpSampledImage %25 %24 %23
-         %27 = OpLoad %v3float %arg_2
-         %28 = OpCompositeExtract %float %27 0
-         %29 = OpCompositeExtract %float %27 1
-         %30 = OpCompositeExtract %float %27 2
-         %32 = OpLoad %uint %arg_3
-         %31 = OpConvertUToF %float %32
-         %33 = OpCompositeConstruct %v4float %28 %29 %30 %31
-         %21 = OpImageSampleImplicitLod %v4float %26 %33
-               OpStore %res %21
+         %25 = OpLoad %7 %arg_1
+         %26 = OpLoad %3 %arg_0
+         %28 = OpSampledImage %27 %26 %25
+         %29 = OpLoad %v3float %arg_2
+         %30 = OpCompositeExtract %float %29 0
+         %31 = OpCompositeExtract %float %29 1
+         %32 = OpCompositeExtract %float %29 2
+         %34 = OpLoad %uint %arg_3
+         %33 = OpConvertUToF %float %34
+         %35 = OpCompositeConstruct %v4float %30 %31 %32 %33
+         %23 = OpImageSampleImplicitLod %v4float %28 %35
+               OpStore %res %23
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %8
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureSample_bc7477
+         %40 = OpLabel
+         %41 = OpFunctionCall %void %textureSample_bc7477
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureSample/bc7477.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSample/bc7477.wgsl.expected.wgsl
index 48a05ae..159fd69 100644
--- a/test/tint/builtins/gen/var/textureSample/bc7477.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSample/bc7477.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(1) var arg_1 : sampler;
 
 fn textureSample_bc7477() {
-  var arg_2 = vec3<f32>();
+  var arg_2 = vec3<f32>(1.0f);
   var arg_3 = 1u;
   var res : vec4<f32> = textureSample(arg_0, arg_1, arg_2, arg_3);
 }
diff --git a/test/tint/builtins/gen/var/textureSample/c2f4e8.wgsl b/test/tint/builtins/gen/var/textureSample/c2f4e8.wgsl
index 0318251..3937cec 100644
--- a/test/tint/builtins/gen/var/textureSample/c2f4e8.wgsl
+++ b/test/tint/builtins/gen/var/textureSample/c2f4e8.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureSample(texture: texture_depth_cube_array, sampler: sampler, coords: vec3<f32>, array_index: i32) -> f32
 fn textureSample_c2f4e8() {
-  var arg_2 = vec3<f32>();
+  var arg_2 = vec3<f32>(1.f);
   var arg_3 = 1i;
   var res: f32 = textureSample(arg_0, arg_1, arg_2, arg_3);
 }
diff --git a/test/tint/builtins/gen/var/textureSample/c2f4e8.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSample/c2f4e8.wgsl.expected.dxc.hlsl
index 209b7d3..be2d46c 100644
--- a/test/tint/builtins/gen/var/textureSample/c2f4e8.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSample/c2f4e8.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSample_c2f4e8() {
-  float3 arg_2 = (0.0f).xxx;
+  float3 arg_2 = (1.0f).xxx;
   int arg_3 = 1;
   float res = arg_0.Sample(arg_1, float4(arg_2, float(arg_3))).x;
 }
diff --git a/test/tint/builtins/gen/var/textureSample/c2f4e8.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSample/c2f4e8.wgsl.expected.fxc.hlsl
index 209b7d3..be2d46c 100644
--- a/test/tint/builtins/gen/var/textureSample/c2f4e8.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSample/c2f4e8.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSample_c2f4e8() {
-  float3 arg_2 = (0.0f).xxx;
+  float3 arg_2 = (1.0f).xxx;
   int arg_3 = 1;
   float res = arg_0.Sample(arg_1, float4(arg_2, float(arg_3))).x;
 }
diff --git a/test/tint/builtins/gen/var/textureSample/c2f4e8.wgsl.expected.msl b/test/tint/builtins/gen/var/textureSample/c2f4e8.wgsl.expected.msl
index 0a8ee57..5a7efc4 100644
--- a/test/tint/builtins/gen/var/textureSample/c2f4e8.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureSample/c2f4e8.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureSample_c2f4e8(depthcube_array<float, access::sample> tint_symbol, sampler tint_symbol_1) {
-  float3 arg_2 = float3(0.0f);
+  float3 arg_2 = float3(1.0f);
   int arg_3 = 1;
   float res = tint_symbol.sample(tint_symbol_1, arg_2, arg_3);
 }
diff --git a/test/tint/builtins/gen/var/textureSample/c2f4e8.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSample/c2f4e8.wgsl.expected.spvasm
index 357c5ff..2e9a4e2 100644
--- a/test/tint/builtins/gen/var/textureSample/c2f4e8.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSample/c2f4e8.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 41
+; Bound: 43
 ; Schema: 0
                OpCapability Shader
                OpCapability SampledCubeArray
@@ -29,40 +29,42 @@
        %void = OpTypeVoid
           %8 = OpTypeFunction %void
     %v3float = OpTypeVector %float 3
-         %13 = OpConstantNull %v3float
+    %float_1 = OpConstant %float 1
+         %14 = OpConstantComposite %v3float %float_1 %float_1 %float_1
 %_ptr_Function_v3float = OpTypePointer Function %v3float
+         %17 = OpConstantNull %v3float
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
-         %20 = OpConstantNull %int
+         %22 = OpConstantNull %int
     %v4float = OpTypeVector %float 4
-         %26 = OpTypeSampledImage %3
+         %28 = OpTypeSampledImage %3
 %_ptr_Function_float = OpTypePointer Function %float
-         %37 = OpConstantNull %float
+         %39 = OpConstantNull %float
 %textureSample_c2f4e8 = OpFunction %void None %8
          %11 = OpLabel
-      %arg_2 = OpVariable %_ptr_Function_v3float Function %13
-      %arg_3 = OpVariable %_ptr_Function_int Function %20
-        %res = OpVariable %_ptr_Function_float Function %37
-               OpStore %arg_2 %13
+      %arg_2 = OpVariable %_ptr_Function_v3float Function %17
+      %arg_3 = OpVariable %_ptr_Function_int Function %22
+        %res = OpVariable %_ptr_Function_float Function %39
+               OpStore %arg_2 %14
                OpStore %arg_3 %int_1
-         %24 = OpLoad %7 %arg_1
-         %25 = OpLoad %3 %arg_0
-         %27 = OpSampledImage %26 %25 %24
-         %28 = OpLoad %v3float %arg_2
-         %29 = OpCompositeExtract %float %28 0
-         %30 = OpCompositeExtract %float %28 1
-         %31 = OpCompositeExtract %float %28 2
-         %33 = OpLoad %int %arg_3
-         %32 = OpConvertSToF %float %33
-         %34 = OpCompositeConstruct %v4float %29 %30 %31 %32
-         %22 = OpImageSampleImplicitLod %v4float %27 %34
-         %21 = OpCompositeExtract %float %22 0
-               OpStore %res %21
+         %26 = OpLoad %7 %arg_1
+         %27 = OpLoad %3 %arg_0
+         %29 = OpSampledImage %28 %27 %26
+         %30 = OpLoad %v3float %arg_2
+         %31 = OpCompositeExtract %float %30 0
+         %32 = OpCompositeExtract %float %30 1
+         %33 = OpCompositeExtract %float %30 2
+         %35 = OpLoad %int %arg_3
+         %34 = OpConvertSToF %float %35
+         %36 = OpCompositeConstruct %v4float %31 %32 %33 %34
+         %24 = OpImageSampleImplicitLod %v4float %29 %36
+         %23 = OpCompositeExtract %float %24 0
+               OpStore %res %23
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %8
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureSample_c2f4e8
+         %41 = OpLabel
+         %42 = OpFunctionCall %void %textureSample_c2f4e8
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureSample/c2f4e8.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSample/c2f4e8.wgsl.expected.wgsl
index f6b7192..b5c02ef 100644
--- a/test/tint/builtins/gen/var/textureSample/c2f4e8.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSample/c2f4e8.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(1) var arg_1 : sampler;
 
 fn textureSample_c2f4e8() {
-  var arg_2 = vec3<f32>();
+  var arg_2 = vec3<f32>(1.0f);
   var arg_3 = 1i;
   var res : f32 = textureSample(arg_0, arg_1, arg_2, arg_3);
 }
diff --git a/test/tint/builtins/gen/var/textureSample/d6b281.wgsl b/test/tint/builtins/gen/var/textureSample/d6b281.wgsl
index 653e5a4..0a4bb40 100644
--- a/test/tint/builtins/gen/var/textureSample/d6b281.wgsl
+++ b/test/tint/builtins/gen/var/textureSample/d6b281.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureSample(texture: texture_2d_array<f32>, sampler: sampler, coords: vec2<f32>, array_index: u32) -> vec4<f32>
 fn textureSample_d6b281() {
-  var arg_2 = vec2<f32>();
+  var arg_2 = vec2<f32>(1.f);
   var arg_3 = 1u;
   var res: vec4<f32> = textureSample(arg_0, arg_1, arg_2, arg_3);
 }
diff --git a/test/tint/builtins/gen/var/textureSample/d6b281.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSample/d6b281.wgsl.expected.dxc.hlsl
index 40fc858..00a1d0a 100644
--- a/test/tint/builtins/gen/var/textureSample/d6b281.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSample/d6b281.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSample_d6b281() {
-  float2 arg_2 = (0.0f).xx;
+  float2 arg_2 = (1.0f).xx;
   uint arg_3 = 1u;
   float4 res = arg_0.Sample(arg_1, float3(arg_2, float(arg_3)));
 }
diff --git a/test/tint/builtins/gen/var/textureSample/d6b281.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSample/d6b281.wgsl.expected.fxc.hlsl
index 40fc858..00a1d0a 100644
--- a/test/tint/builtins/gen/var/textureSample/d6b281.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSample/d6b281.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSample_d6b281() {
-  float2 arg_2 = (0.0f).xx;
+  float2 arg_2 = (1.0f).xx;
   uint arg_3 = 1u;
   float4 res = arg_0.Sample(arg_1, float3(arg_2, float(arg_3)));
 }
diff --git a/test/tint/builtins/gen/var/textureSample/d6b281.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureSample/d6b281.wgsl.expected.glsl
index bab02f6..309e180 100644
--- a/test/tint/builtins/gen/var/textureSample/d6b281.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureSample/d6b281.wgsl.expected.glsl
@@ -4,7 +4,7 @@
 uniform highp sampler2DArray arg_0_arg_1;
 
 void textureSample_d6b281() {
-  vec2 arg_2 = vec2(0.0f);
+  vec2 arg_2 = vec2(1.0f);
   uint arg_3 = 1u;
   vec4 res = texture(arg_0_arg_1, vec3(arg_2, float(arg_3)));
 }
diff --git a/test/tint/builtins/gen/var/textureSample/d6b281.wgsl.expected.msl b/test/tint/builtins/gen/var/textureSample/d6b281.wgsl.expected.msl
index cac3226..2d0626f 100644
--- a/test/tint/builtins/gen/var/textureSample/d6b281.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureSample/d6b281.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureSample_d6b281(texture2d_array<float, access::sample> tint_symbol, sampler tint_symbol_1) {
-  float2 arg_2 = float2(0.0f);
+  float2 arg_2 = float2(1.0f);
   uint arg_3 = 1u;
   float4 res = tint_symbol.sample(tint_symbol_1, arg_2, arg_3);
 }
diff --git a/test/tint/builtins/gen/var/textureSample/d6b281.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSample/d6b281.wgsl.expected.spvasm
index df39671..c74ef88 100644
--- a/test/tint/builtins/gen/var/textureSample/d6b281.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSample/d6b281.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 40
+; Bound: 42
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -28,39 +28,41 @@
        %void = OpTypeVoid
           %8 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
-         %13 = OpConstantNull %v2float
+    %float_1 = OpConstant %float 1
+         %14 = OpConstantComposite %v2float %float_1 %float_1
 %_ptr_Function_v2float = OpTypePointer Function %v2float
+         %17 = OpConstantNull %v2float
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %20 = OpConstantNull %uint
+         %22 = OpConstantNull %uint
     %v4float = OpTypeVector %float 4
-         %25 = OpTypeSampledImage %3
+         %27 = OpTypeSampledImage %3
     %v3float = OpTypeVector %float 3
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %36 = OpConstantNull %v4float
+         %38 = OpConstantNull %v4float
 %textureSample_d6b281 = OpFunction %void None %8
          %11 = OpLabel
-      %arg_2 = OpVariable %_ptr_Function_v2float Function %13
-      %arg_3 = OpVariable %_ptr_Function_uint Function %20
-        %res = OpVariable %_ptr_Function_v4float Function %36
-               OpStore %arg_2 %13
+      %arg_2 = OpVariable %_ptr_Function_v2float Function %17
+      %arg_3 = OpVariable %_ptr_Function_uint Function %22
+        %res = OpVariable %_ptr_Function_v4float Function %38
+               OpStore %arg_2 %14
                OpStore %arg_3 %uint_1
-         %23 = OpLoad %7 %arg_1
-         %24 = OpLoad %3 %arg_0
-         %26 = OpSampledImage %25 %24 %23
-         %28 = OpLoad %v2float %arg_2
-         %29 = OpCompositeExtract %float %28 0
-         %30 = OpCompositeExtract %float %28 1
-         %32 = OpLoad %uint %arg_3
-         %31 = OpConvertUToF %float %32
-         %33 = OpCompositeConstruct %v3float %29 %30 %31
-         %21 = OpImageSampleImplicitLod %v4float %26 %33
-               OpStore %res %21
+         %25 = OpLoad %7 %arg_1
+         %26 = OpLoad %3 %arg_0
+         %28 = OpSampledImage %27 %26 %25
+         %30 = OpLoad %v2float %arg_2
+         %31 = OpCompositeExtract %float %30 0
+         %32 = OpCompositeExtract %float %30 1
+         %34 = OpLoad %uint %arg_3
+         %33 = OpConvertUToF %float %34
+         %35 = OpCompositeConstruct %v3float %31 %32 %33
+         %23 = OpImageSampleImplicitLod %v4float %28 %35
+               OpStore %res %23
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %8
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureSample_d6b281
+         %40 = OpLabel
+         %41 = OpFunctionCall %void %textureSample_d6b281
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureSample/d6b281.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSample/d6b281.wgsl.expected.wgsl
index 56e467d..30e87bd 100644
--- a/test/tint/builtins/gen/var/textureSample/d6b281.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSample/d6b281.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(1) var arg_1 : sampler;
 
 fn textureSample_d6b281() {
-  var arg_2 = vec2<f32>();
+  var arg_2 = vec2<f32>(1.0f);
   var arg_3 = 1u;
   var res : vec4<f32> = textureSample(arg_0, arg_1, arg_2, arg_3);
 }
diff --git a/test/tint/builtins/gen/var/textureSample/e53267.wgsl b/test/tint/builtins/gen/var/textureSample/e53267.wgsl
index bff2b62..be4d74e 100644
--- a/test/tint/builtins/gen/var/textureSample/e53267.wgsl
+++ b/test/tint/builtins/gen/var/textureSample/e53267.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureSample(texture: texture_cube<f32>, sampler: sampler, coords: vec3<f32>) -> vec4<f32>
 fn textureSample_e53267() {
-  var arg_2 = vec3<f32>();
+  var arg_2 = vec3<f32>(1.f);
   var res: vec4<f32> = textureSample(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureSample/e53267.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSample/e53267.wgsl.expected.dxc.hlsl
index 171df8a..ab598e1 100644
--- a/test/tint/builtins/gen/var/textureSample/e53267.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSample/e53267.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSample_e53267() {
-  float3 arg_2 = (0.0f).xxx;
+  float3 arg_2 = (1.0f).xxx;
   float4 res = arg_0.Sample(arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureSample/e53267.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSample/e53267.wgsl.expected.fxc.hlsl
index 171df8a..ab598e1 100644
--- a/test/tint/builtins/gen/var/textureSample/e53267.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSample/e53267.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSample_e53267() {
-  float3 arg_2 = (0.0f).xxx;
+  float3 arg_2 = (1.0f).xxx;
   float4 res = arg_0.Sample(arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureSample/e53267.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureSample/e53267.wgsl.expected.glsl
index 7bfc11a..3801b6b 100644
--- a/test/tint/builtins/gen/var/textureSample/e53267.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureSample/e53267.wgsl.expected.glsl
@@ -4,7 +4,7 @@
 uniform highp samplerCube arg_0_arg_1;
 
 void textureSample_e53267() {
-  vec3 arg_2 = vec3(0.0f);
+  vec3 arg_2 = vec3(1.0f);
   vec4 res = texture(arg_0_arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureSample/e53267.wgsl.expected.msl b/test/tint/builtins/gen/var/textureSample/e53267.wgsl.expected.msl
index f6987da..f5cc1bf 100644
--- a/test/tint/builtins/gen/var/textureSample/e53267.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureSample/e53267.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureSample_e53267(texturecube<float, access::sample> tint_symbol, sampler tint_symbol_1) {
-  float3 arg_2 = float3(0.0f);
+  float3 arg_2 = float3(1.0f);
   float4 res = tint_symbol.sample(tint_symbol_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureSample/e53267.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSample/e53267.wgsl.expected.spvasm
index 7a35d91..e75f05a 100644
--- a/test/tint/builtins/gen/var/textureSample/e53267.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSample/e53267.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
@@ -27,27 +27,29 @@
        %void = OpTypeVoid
           %8 = OpTypeFunction %void
     %v3float = OpTypeVector %float 3
-         %13 = OpConstantNull %v3float
+    %float_1 = OpConstant %float 1
+         %14 = OpConstantComposite %v3float %float_1 %float_1 %float_1
 %_ptr_Function_v3float = OpTypePointer Function %v3float
+         %17 = OpConstantNull %v3float
     %v4float = OpTypeVector %float 4
-         %20 = OpTypeSampledImage %3
+         %22 = OpTypeSampledImage %3
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %25 = OpConstantNull %v4float
+         %27 = OpConstantNull %v4float
 %textureSample_e53267 = OpFunction %void None %8
          %11 = OpLabel
-      %arg_2 = OpVariable %_ptr_Function_v3float Function %13
-        %res = OpVariable %_ptr_Function_v4float Function %25
-               OpStore %arg_2 %13
-         %18 = OpLoad %7 %arg_1
-         %19 = OpLoad %3 %arg_0
-         %21 = OpSampledImage %20 %19 %18
-         %22 = OpLoad %v3float %arg_2
-         %16 = OpImageSampleImplicitLod %v4float %21 %22
-               OpStore %res %16
+      %arg_2 = OpVariable %_ptr_Function_v3float Function %17
+        %res = OpVariable %_ptr_Function_v4float Function %27
+               OpStore %arg_2 %14
+         %20 = OpLoad %7 %arg_1
+         %21 = OpLoad %3 %arg_0
+         %23 = OpSampledImage %22 %21 %20
+         %24 = OpLoad %v3float %arg_2
+         %18 = OpImageSampleImplicitLod %v4float %23 %24
+               OpStore %res %18
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %8
-         %27 = OpLabel
-         %28 = OpFunctionCall %void %textureSample_e53267
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %textureSample_e53267
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureSample/e53267.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSample/e53267.wgsl.expected.wgsl
index 457d7c7..7d409db 100644
--- a/test/tint/builtins/gen/var/textureSample/e53267.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSample/e53267.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(1) var arg_1 : sampler;
 
 fn textureSample_e53267() {
-  var arg_2 = vec3<f32>();
+  var arg_2 = vec3<f32>(1.0f);
   var res : vec4<f32> = textureSample(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureSample/ea7030.wgsl b/test/tint/builtins/gen/var/textureSample/ea7030.wgsl
index 5d28850..21f858d 100644
--- a/test/tint/builtins/gen/var/textureSample/ea7030.wgsl
+++ b/test/tint/builtins/gen/var/textureSample/ea7030.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureSample(texture: texture_depth_cube, sampler: sampler, coords: vec3<f32>) -> f32
 fn textureSample_ea7030() {
-  var arg_2 = vec3<f32>();
+  var arg_2 = vec3<f32>(1.f);
   var res: f32 = textureSample(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureSample/ea7030.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSample/ea7030.wgsl.expected.dxc.hlsl
index 35bbed72..454ec68 100644
--- a/test/tint/builtins/gen/var/textureSample/ea7030.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSample/ea7030.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSample_ea7030() {
-  float3 arg_2 = (0.0f).xxx;
+  float3 arg_2 = (1.0f).xxx;
   float res = arg_0.Sample(arg_1, arg_2).x;
 }
 
diff --git a/test/tint/builtins/gen/var/textureSample/ea7030.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSample/ea7030.wgsl.expected.fxc.hlsl
index 35bbed72..454ec68 100644
--- a/test/tint/builtins/gen/var/textureSample/ea7030.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSample/ea7030.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSample_ea7030() {
-  float3 arg_2 = (0.0f).xxx;
+  float3 arg_2 = (1.0f).xxx;
   float res = arg_0.Sample(arg_1, arg_2).x;
 }
 
diff --git a/test/tint/builtins/gen/var/textureSample/ea7030.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureSample/ea7030.wgsl.expected.glsl
index 5658098..18eee21 100644
--- a/test/tint/builtins/gen/var/textureSample/ea7030.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureSample/ea7030.wgsl.expected.glsl
@@ -4,7 +4,7 @@
 uniform highp samplerCubeShadow arg_0_arg_1;
 
 void textureSample_ea7030() {
-  vec3 arg_2 = vec3(0.0f);
+  vec3 arg_2 = vec3(1.0f);
   float res = texture(arg_0_arg_1, vec4(arg_2, 0.0f));
 }
 
diff --git a/test/tint/builtins/gen/var/textureSample/ea7030.wgsl.expected.msl b/test/tint/builtins/gen/var/textureSample/ea7030.wgsl.expected.msl
index daefdff..5b614e4 100644
--- a/test/tint/builtins/gen/var/textureSample/ea7030.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureSample/ea7030.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureSample_ea7030(depthcube<float, access::sample> tint_symbol, sampler tint_symbol_1) {
-  float3 arg_2 = float3(0.0f);
+  float3 arg_2 = float3(1.0f);
   float res = tint_symbol.sample(tint_symbol_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureSample/ea7030.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSample/ea7030.wgsl.expected.spvasm
index b7bf9af..1fc321e 100644
--- a/test/tint/builtins/gen/var/textureSample/ea7030.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSample/ea7030.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 30
+; Bound: 32
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -27,28 +27,30 @@
        %void = OpTypeVoid
           %8 = OpTypeFunction %void
     %v3float = OpTypeVector %float 3
-         %13 = OpConstantNull %v3float
+    %float_1 = OpConstant %float 1
+         %14 = OpConstantComposite %v3float %float_1 %float_1 %float_1
 %_ptr_Function_v3float = OpTypePointer Function %v3float
+         %17 = OpConstantNull %v3float
     %v4float = OpTypeVector %float 4
-         %21 = OpTypeSampledImage %3
+         %23 = OpTypeSampledImage %3
 %_ptr_Function_float = OpTypePointer Function %float
-         %26 = OpConstantNull %float
+         %28 = OpConstantNull %float
 %textureSample_ea7030 = OpFunction %void None %8
          %11 = OpLabel
-      %arg_2 = OpVariable %_ptr_Function_v3float Function %13
-        %res = OpVariable %_ptr_Function_float Function %26
-               OpStore %arg_2 %13
-         %19 = OpLoad %7 %arg_1
-         %20 = OpLoad %3 %arg_0
-         %22 = OpSampledImage %21 %20 %19
-         %23 = OpLoad %v3float %arg_2
-         %17 = OpImageSampleImplicitLod %v4float %22 %23
-         %16 = OpCompositeExtract %float %17 0
-               OpStore %res %16
+      %arg_2 = OpVariable %_ptr_Function_v3float Function %17
+        %res = OpVariable %_ptr_Function_float Function %28
+               OpStore %arg_2 %14
+         %21 = OpLoad %7 %arg_1
+         %22 = OpLoad %3 %arg_0
+         %24 = OpSampledImage %23 %22 %21
+         %25 = OpLoad %v3float %arg_2
+         %19 = OpImageSampleImplicitLod %v4float %24 %25
+         %18 = OpCompositeExtract %float %19 0
+               OpStore %res %18
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %8
-         %28 = OpLabel
-         %29 = OpFunctionCall %void %textureSample_ea7030
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %textureSample_ea7030
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureSample/ea7030.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSample/ea7030.wgsl.expected.wgsl
index db6574c..312fb8a 100644
--- a/test/tint/builtins/gen/var/textureSample/ea7030.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSample/ea7030.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(1) var arg_1 : sampler;
 
 fn textureSample_ea7030() {
-  var arg_2 = vec3<f32>();
+  var arg_2 = vec3<f32>(1.0f);
   var res : f32 = textureSample(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureSampleBaseClampToEdge/7c04e6.wgsl b/test/tint/builtins/gen/var/textureSampleBaseClampToEdge/7c04e6.wgsl
index dbe6d14..f908bae 100644
--- a/test/tint/builtins/gen/var/textureSampleBaseClampToEdge/7c04e6.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleBaseClampToEdge/7c04e6.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureSampleBaseClampToEdge(texture: texture_external, sampler: sampler, coords: vec2<f32>) -> vec4<f32>
 fn textureSampleBaseClampToEdge_7c04e6() {
-  var arg_2 = vec2<f32>();
+  var arg_2 = vec2<f32>(1.f);
   var res: vec4<f32> = textureSampleBaseClampToEdge(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureSampleBaseClampToEdge/7c04e6.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleBaseClampToEdge/7c04e6.wgsl.expected.dxc.hlsl
index 629c97a..c64a759 100644
--- a/test/tint/builtins/gen/var/textureSampleBaseClampToEdge/7c04e6.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleBaseClampToEdge/7c04e6.wgsl.expected.dxc.hlsl
@@ -91,7 +91,7 @@
 }
 
 void textureSampleBaseClampToEdge_7c04e6() {
-  float2 arg_2 = (0.0f).xx;
+  float2 arg_2 = (1.0f).xx;
   float4 res = textureSampleExternal(arg_0, ext_tex_plane_1, arg_1, arg_2, tint_symbol_1(ext_tex_params, 0u));
 }
 
diff --git a/test/tint/builtins/gen/var/textureSampleBaseClampToEdge/7c04e6.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleBaseClampToEdge/7c04e6.wgsl.expected.fxc.hlsl
index 629c97a..c64a759 100644
--- a/test/tint/builtins/gen/var/textureSampleBaseClampToEdge/7c04e6.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleBaseClampToEdge/7c04e6.wgsl.expected.fxc.hlsl
@@ -91,7 +91,7 @@
 }
 
 void textureSampleBaseClampToEdge_7c04e6() {
-  float2 arg_2 = (0.0f).xx;
+  float2 arg_2 = (1.0f).xx;
   float4 res = textureSampleExternal(arg_0, ext_tex_plane_1, arg_1, arg_2, tint_symbol_1(ext_tex_params, 0u));
 }
 
diff --git a/test/tint/builtins/gen/var/textureSampleBaseClampToEdge/7c04e6.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureSampleBaseClampToEdge/7c04e6.wgsl.expected.glsl
index c791249..a7c54d9 100644
--- a/test/tint/builtins/gen/var/textureSampleBaseClampToEdge/7c04e6.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureSampleBaseClampToEdge/7c04e6.wgsl.expected.glsl
@@ -58,7 +58,7 @@
 uniform highp sampler2D arg_0_arg_1;
 uniform highp sampler2D ext_tex_plane_1_arg_1;
 void textureSampleBaseClampToEdge_7c04e6() {
-  vec2 arg_2 = vec2(0.0f);
+  vec2 arg_2 = vec2(1.0f);
   vec4 res = textureSampleExternal(arg_0_1, ext_tex_plane_1_1, arg_0_arg_1, ext_tex_plane_1_arg_1, arg_2, ext_tex_params.inner);
 }
 
@@ -136,7 +136,7 @@
 uniform highp sampler2D arg_0_arg_1;
 uniform highp sampler2D ext_tex_plane_1_arg_1;
 void textureSampleBaseClampToEdge_7c04e6() {
-  vec2 arg_2 = vec2(0.0f);
+  vec2 arg_2 = vec2(1.0f);
   vec4 res = textureSampleExternal(arg_0_1, ext_tex_plane_1_1, arg_0_arg_1, ext_tex_plane_1_arg_1, arg_2, ext_tex_params.inner);
 }
 
@@ -208,7 +208,7 @@
 uniform highp sampler2D arg_0_arg_1;
 uniform highp sampler2D ext_tex_plane_1_arg_1;
 void textureSampleBaseClampToEdge_7c04e6() {
-  vec2 arg_2 = vec2(0.0f);
+  vec2 arg_2 = vec2(1.0f);
   vec4 res = textureSampleExternal(arg_0_1, ext_tex_plane_1_1, arg_0_arg_1, ext_tex_plane_1_arg_1, arg_2, ext_tex_params.inner);
 }
 
diff --git a/test/tint/builtins/gen/var/textureSampleBaseClampToEdge/7c04e6.wgsl.expected.msl b/test/tint/builtins/gen/var/textureSampleBaseClampToEdge/7c04e6.wgsl.expected.msl
index a712ee8..33c183c 100644
--- a/test/tint/builtins/gen/var/textureSampleBaseClampToEdge/7c04e6.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureSampleBaseClampToEdge/7c04e6.wgsl.expected.msl
@@ -64,7 +64,7 @@
 }
 
 void textureSampleBaseClampToEdge_7c04e6(texture2d<float, access::sample> tint_symbol_1, texture2d<float, access::sample> tint_symbol_2, sampler tint_symbol_3, const constant ExternalTextureParams* const tint_symbol_4) {
-  float2 arg_2 = float2(0.0f);
+  float2 arg_2 = float2(1.0f);
   float4 res = textureSampleExternal(tint_symbol_1, tint_symbol_2, tint_symbol_3, arg_2, *(tint_symbol_4));
 }
 
diff --git a/test/tint/builtins/gen/var/textureSampleBaseClampToEdge/7c04e6.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSampleBaseClampToEdge/7c04e6.wgsl.expected.spvasm
index 76ec885..ac6a1b9 100644
--- a/test/tint/builtins/gen/var/textureSampleBaseClampToEdge/7c04e6.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSampleBaseClampToEdge/7c04e6.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 166
+; Bound: 167
 ; Schema: 0
                OpCapability Shader
                OpCapability ImageQuery
@@ -128,10 +128,11 @@
         %119 = OpConstantNull %uint
        %void = OpTypeVoid
         %137 = OpTypeFunction %void
+        %141 = OpConstantComposite %v2float %float_1 %float_1
      %uint_0 = OpConstant %uint 0
 %_ptr_Uniform_ExternalTextureParams = OpTypePointer Uniform %ExternalTextureParams
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-        %153 = OpTypeFunction %v4float
+        %154 = OpTypeFunction %v4float
 %gammaCorrection = OpFunction %v3float None %25
           %v = OpFunctionParameter %v3float
      %params = OpFunctionParameter %GammaTransferParams
@@ -245,36 +246,36 @@
         %140 = OpLabel
       %arg_2 = OpVariable %_ptr_Function_v2float Function %87
         %res = OpVariable %_ptr_Function_v4float Function %5
-               OpStore %arg_2 %87
-        %143 = OpLoad %11 %arg_0
-        %144 = OpLoad %11 %ext_tex_plane_1
-        %145 = OpLoad %24 %arg_1
-        %146 = OpLoad %v2float %arg_2
-        %149 = OpAccessChain %_ptr_Uniform_ExternalTextureParams %ext_tex_params %uint_0
-        %150 = OpLoad %ExternalTextureParams %149
-        %142 = OpFunctionCall %v4float %textureSampleExternal %143 %144 %145 %146 %150
-               OpStore %res %142
+               OpStore %arg_2 %141
+        %144 = OpLoad %11 %arg_0
+        %145 = OpLoad %11 %ext_tex_plane_1
+        %146 = OpLoad %24 %arg_1
+        %147 = OpLoad %v2float %arg_2
+        %150 = OpAccessChain %_ptr_Uniform_ExternalTextureParams %ext_tex_params %uint_0
+        %151 = OpLoad %ExternalTextureParams %150
+        %143 = OpFunctionCall %v4float %textureSampleExternal %144 %145 %146 %147 %151
+               OpStore %res %143
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %153
-        %155 = OpLabel
-        %156 = OpFunctionCall %void %textureSampleBaseClampToEdge_7c04e6
+%vertex_main_inner = OpFunction %v4float None %154
+        %156 = OpLabel
+        %157 = OpFunctionCall %void %textureSampleBaseClampToEdge_7c04e6
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %137
-        %158 = OpLabel
-        %159 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %159
+        %159 = OpLabel
+        %160 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %160
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %137
-        %161 = OpLabel
-        %162 = OpFunctionCall %void %textureSampleBaseClampToEdge_7c04e6
+        %162 = OpLabel
+        %163 = OpFunctionCall %void %textureSampleBaseClampToEdge_7c04e6
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %137
-        %164 = OpLabel
-        %165 = OpFunctionCall %void %textureSampleBaseClampToEdge_7c04e6
+        %165 = OpLabel
+        %166 = OpFunctionCall %void %textureSampleBaseClampToEdge_7c04e6
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureSampleBaseClampToEdge/7c04e6.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSampleBaseClampToEdge/7c04e6.wgsl.expected.wgsl
index ec8947e..55d13b7 100644
--- a/test/tint/builtins/gen/var/textureSampleBaseClampToEdge/7c04e6.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleBaseClampToEdge/7c04e6.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(1) var arg_1 : sampler;
 
 fn textureSampleBaseClampToEdge_7c04e6() {
-  var arg_2 = vec2<f32>();
+  var arg_2 = vec2<f32>(1.0f);
   var res : vec4<f32> = textureSampleBaseClampToEdge(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureSampleBaseClampToEdge/9ca02c.wgsl b/test/tint/builtins/gen/var/textureSampleBaseClampToEdge/9ca02c.wgsl
index 54192fc..e45b575 100644
--- a/test/tint/builtins/gen/var/textureSampleBaseClampToEdge/9ca02c.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleBaseClampToEdge/9ca02c.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureSampleBaseClampToEdge(texture: texture_2d<f32>, sampler: sampler, coords: vec2<f32>) -> vec4<f32>
 fn textureSampleBaseClampToEdge_9ca02c() {
-  var arg_2 = vec2<f32>();
+  var arg_2 = vec2<f32>(1.f);
   var res: vec4<f32> = textureSampleBaseClampToEdge(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureSampleBaseClampToEdge/9ca02c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleBaseClampToEdge/9ca02c.wgsl.expected.dxc.hlsl
index 1e3e8bd..8382f63 100644
--- a/test/tint/builtins/gen/var/textureSampleBaseClampToEdge/9ca02c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleBaseClampToEdge/9ca02c.wgsl.expected.dxc.hlsl
@@ -11,7 +11,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleBaseClampToEdge_9ca02c() {
-  float2 arg_2 = (0.0f).xx;
+  float2 arg_2 = (1.0f).xx;
   float4 res = tint_textureSampleBaseClampToEdge(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureSampleBaseClampToEdge/9ca02c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleBaseClampToEdge/9ca02c.wgsl.expected.fxc.hlsl
index 1e3e8bd..8382f63 100644
--- a/test/tint/builtins/gen/var/textureSampleBaseClampToEdge/9ca02c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleBaseClampToEdge/9ca02c.wgsl.expected.fxc.hlsl
@@ -11,7 +11,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleBaseClampToEdge_9ca02c() {
-  float2 arg_2 = (0.0f).xx;
+  float2 arg_2 = (1.0f).xx;
   float4 res = tint_textureSampleBaseClampToEdge(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureSampleBaseClampToEdge/9ca02c.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureSampleBaseClampToEdge/9ca02c.wgsl.expected.glsl
index 0a11b0e..f746b03 100644
--- a/test/tint/builtins/gen/var/textureSampleBaseClampToEdge/9ca02c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureSampleBaseClampToEdge/9ca02c.wgsl.expected.glsl
@@ -11,7 +11,7 @@
 uniform highp sampler2D arg_0_1;
 uniform highp sampler2D arg_0_arg_1;
 void textureSampleBaseClampToEdge_9ca02c() {
-  vec2 arg_2 = vec2(0.0f);
+  vec2 arg_2 = vec2(1.0f);
   vec4 res = tint_textureSampleBaseClampToEdge(arg_0_1, arg_0_arg_1, arg_2);
 }
 
@@ -42,7 +42,7 @@
 uniform highp sampler2D arg_0_1;
 uniform highp sampler2D arg_0_arg_1;
 void textureSampleBaseClampToEdge_9ca02c() {
-  vec2 arg_2 = vec2(0.0f);
+  vec2 arg_2 = vec2(1.0f);
   vec4 res = tint_textureSampleBaseClampToEdge(arg_0_1, arg_0_arg_1, arg_2);
 }
 
@@ -67,7 +67,7 @@
 uniform highp sampler2D arg_0_1;
 uniform highp sampler2D arg_0_arg_1;
 void textureSampleBaseClampToEdge_9ca02c() {
-  vec2 arg_2 = vec2(0.0f);
+  vec2 arg_2 = vec2(1.0f);
   vec4 res = tint_textureSampleBaseClampToEdge(arg_0_1, arg_0_arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureSampleBaseClampToEdge/9ca02c.wgsl.expected.msl b/test/tint/builtins/gen/var/textureSampleBaseClampToEdge/9ca02c.wgsl.expected.msl
index 04222ae..f582c80 100644
--- a/test/tint/builtins/gen/var/textureSampleBaseClampToEdge/9ca02c.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureSampleBaseClampToEdge/9ca02c.wgsl.expected.msl
@@ -9,7 +9,7 @@
 }
 
 void textureSampleBaseClampToEdge_9ca02c(texture2d<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float2 arg_2 = float2(0.0f);
+  float2 arg_2 = float2(1.0f);
   float4 res = tint_textureSampleBaseClampToEdge(tint_symbol_1, tint_symbol_2, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureSampleBaseClampToEdge/9ca02c.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSampleBaseClampToEdge/9ca02c.wgsl.expected.spvasm
index 31905a1..b9de795 100644
--- a/test/tint/builtins/gen/var/textureSampleBaseClampToEdge/9ca02c.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSampleBaseClampToEdge/9ca02c.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 66
+; Bound: 67
 ; Schema: 0
                OpCapability Shader
                OpCapability ImageQuery
@@ -61,8 +61,9 @@
          %40 = OpTypeSampledImage %11
        %void = OpTypeVoid
          %42 = OpTypeFunction %void
+         %46 = OpConstantComposite %v2float %float_1 %float_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %53 = OpTypeFunction %v4float
+         %54 = OpTypeFunction %v4float
 %tint_textureSampleBaseClampToEdge = OpFunction %v4float None %15
           %t = OpFunctionParameter %11
           %s = OpFunctionParameter %14
@@ -83,33 +84,33 @@
          %45 = OpLabel
       %arg_2 = OpVariable %_ptr_Function_v2float Function %37
         %res = OpVariable %_ptr_Function_v4float Function %5
-               OpStore %arg_2 %37
-         %48 = OpLoad %11 %arg_0
-         %49 = OpLoad %14 %arg_1
-         %50 = OpLoad %v2float %arg_2
-         %47 = OpFunctionCall %v4float %tint_textureSampleBaseClampToEdge %48 %49 %50
-               OpStore %res %47
+               OpStore %arg_2 %46
+         %49 = OpLoad %11 %arg_0
+         %50 = OpLoad %14 %arg_1
+         %51 = OpLoad %v2float %arg_2
+         %48 = OpFunctionCall %v4float %tint_textureSampleBaseClampToEdge %49 %50 %51
+               OpStore %res %48
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %53
-         %55 = OpLabel
-         %56 = OpFunctionCall %void %textureSampleBaseClampToEdge_9ca02c
+%vertex_main_inner = OpFunction %v4float None %54
+         %56 = OpLabel
+         %57 = OpFunctionCall %void %textureSampleBaseClampToEdge_9ca02c
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %42
-         %58 = OpLabel
-         %59 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %59
+         %59 = OpLabel
+         %60 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %60
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %42
-         %61 = OpLabel
-         %62 = OpFunctionCall %void %textureSampleBaseClampToEdge_9ca02c
+         %62 = OpLabel
+         %63 = OpFunctionCall %void %textureSampleBaseClampToEdge_9ca02c
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %42
-         %64 = OpLabel
-         %65 = OpFunctionCall %void %textureSampleBaseClampToEdge_9ca02c
+         %65 = OpLabel
+         %66 = OpFunctionCall %void %textureSampleBaseClampToEdge_9ca02c
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureSampleBaseClampToEdge/9ca02c.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSampleBaseClampToEdge/9ca02c.wgsl.expected.wgsl
index a70dd35..50130e1 100644
--- a/test/tint/builtins/gen/var/textureSampleBaseClampToEdge/9ca02c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleBaseClampToEdge/9ca02c.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(1) var arg_1 : sampler;
 
 fn textureSampleBaseClampToEdge_9ca02c() {
-  var arg_2 = vec2<f32>();
+  var arg_2 = vec2<f32>(1.0f);
   var res : vec4<f32> = textureSampleBaseClampToEdge(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureSampleBias/1c707e.wgsl b/test/tint/builtins/gen/var/textureSampleBias/1c707e.wgsl
index 328137e..c783034 100644
--- a/test/tint/builtins/gen/var/textureSampleBias/1c707e.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleBias/1c707e.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureSampleBias(texture: texture_2d_array<f32>, sampler: sampler, coords: vec2<f32>, array_index: u32, bias: f32) -> vec4<f32>
 fn textureSampleBias_1c707e() {
-  var arg_2 = vec2<f32>();
+  var arg_2 = vec2<f32>(1.f);
   var arg_3 = 1u;
   var arg_4 = 1.f;
   var res: vec4<f32> = textureSampleBias(arg_0, arg_1, arg_2, arg_3, arg_4);
diff --git a/test/tint/builtins/gen/var/textureSampleBias/1c707e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleBias/1c707e.wgsl.expected.dxc.hlsl
index 0812196..5c5477d 100644
--- a/test/tint/builtins/gen/var/textureSampleBias/1c707e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleBias/1c707e.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleBias_1c707e() {
-  float2 arg_2 = (0.0f).xx;
+  float2 arg_2 = (1.0f).xx;
   uint arg_3 = 1u;
   float arg_4 = 1.0f;
   float4 res = arg_0.SampleBias(arg_1, float3(arg_2, float(arg_3)), arg_4);
diff --git a/test/tint/builtins/gen/var/textureSampleBias/1c707e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleBias/1c707e.wgsl.expected.fxc.hlsl
index 0812196..5c5477d 100644
--- a/test/tint/builtins/gen/var/textureSampleBias/1c707e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleBias/1c707e.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleBias_1c707e() {
-  float2 arg_2 = (0.0f).xx;
+  float2 arg_2 = (1.0f).xx;
   uint arg_3 = 1u;
   float arg_4 = 1.0f;
   float4 res = arg_0.SampleBias(arg_1, float3(arg_2, float(arg_3)), arg_4);
diff --git a/test/tint/builtins/gen/var/textureSampleBias/1c707e.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureSampleBias/1c707e.wgsl.expected.glsl
index 2185407..ac47fee 100644
--- a/test/tint/builtins/gen/var/textureSampleBias/1c707e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureSampleBias/1c707e.wgsl.expected.glsl
@@ -4,7 +4,7 @@
 uniform highp sampler2DArray arg_0_arg_1;
 
 void textureSampleBias_1c707e() {
-  vec2 arg_2 = vec2(0.0f);
+  vec2 arg_2 = vec2(1.0f);
   uint arg_3 = 1u;
   float arg_4 = 1.0f;
   vec4 res = texture(arg_0_arg_1, vec3(arg_2, float(arg_3)), arg_4);
diff --git a/test/tint/builtins/gen/var/textureSampleBias/1c707e.wgsl.expected.msl b/test/tint/builtins/gen/var/textureSampleBias/1c707e.wgsl.expected.msl
index a7de0c8..137fdb0 100644
--- a/test/tint/builtins/gen/var/textureSampleBias/1c707e.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureSampleBias/1c707e.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureSampleBias_1c707e(texture2d_array<float, access::sample> tint_symbol, sampler tint_symbol_1) {
-  float2 arg_2 = float2(0.0f);
+  float2 arg_2 = float2(1.0f);
   uint arg_3 = 1u;
   float arg_4 = 1.0f;
   float4 res = tint_symbol.sample(tint_symbol_1, arg_2, arg_3, bias(arg_4));
diff --git a/test/tint/builtins/gen/var/textureSampleBias/1c707e.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSampleBias/1c707e.wgsl.expected.spvasm
index 22a6cde..12fa1f8 100644
--- a/test/tint/builtins/gen/var/textureSampleBias/1c707e.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSampleBias/1c707e.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 45
+; Bound: 46
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -29,45 +29,46 @@
        %void = OpTypeVoid
           %8 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
-         %13 = OpConstantNull %v2float
+    %float_1 = OpConstant %float 1
+         %14 = OpConstantComposite %v2float %float_1 %float_1
 %_ptr_Function_v2float = OpTypePointer Function %v2float
+         %17 = OpConstantNull %v2float
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %20 = OpConstantNull %uint
-    %float_1 = OpConstant %float 1
+         %22 = OpConstantNull %uint
 %_ptr_Function_float = OpTypePointer Function %float
-         %24 = OpConstantNull %float
+         %25 = OpConstantNull %float
     %v4float = OpTypeVector %float 4
-         %29 = OpTypeSampledImage %3
+         %30 = OpTypeSampledImage %3
     %v3float = OpTypeVector %float 3
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %41 = OpConstantNull %v4float
+         %42 = OpConstantNull %v4float
 %textureSampleBias_1c707e = OpFunction %void None %8
          %11 = OpLabel
-      %arg_2 = OpVariable %_ptr_Function_v2float Function %13
-      %arg_3 = OpVariable %_ptr_Function_uint Function %20
-      %arg_4 = OpVariable %_ptr_Function_float Function %24
-        %res = OpVariable %_ptr_Function_v4float Function %41
-               OpStore %arg_2 %13
+      %arg_2 = OpVariable %_ptr_Function_v2float Function %17
+      %arg_3 = OpVariable %_ptr_Function_uint Function %22
+      %arg_4 = OpVariable %_ptr_Function_float Function %25
+        %res = OpVariable %_ptr_Function_v4float Function %42
+               OpStore %arg_2 %14
                OpStore %arg_3 %uint_1
                OpStore %arg_4 %float_1
-         %27 = OpLoad %7 %arg_1
-         %28 = OpLoad %3 %arg_0
-         %30 = OpSampledImage %29 %28 %27
-         %32 = OpLoad %v2float %arg_2
-         %33 = OpCompositeExtract %float %32 0
-         %34 = OpCompositeExtract %float %32 1
-         %36 = OpLoad %uint %arg_3
-         %35 = OpConvertUToF %float %36
-         %37 = OpCompositeConstruct %v3float %33 %34 %35
-         %38 = OpLoad %float %arg_4
-         %25 = OpImageSampleImplicitLod %v4float %30 %37 Bias %38
-               OpStore %res %25
+         %28 = OpLoad %7 %arg_1
+         %29 = OpLoad %3 %arg_0
+         %31 = OpSampledImage %30 %29 %28
+         %33 = OpLoad %v2float %arg_2
+         %34 = OpCompositeExtract %float %33 0
+         %35 = OpCompositeExtract %float %33 1
+         %37 = OpLoad %uint %arg_3
+         %36 = OpConvertUToF %float %37
+         %38 = OpCompositeConstruct %v3float %34 %35 %36
+         %39 = OpLoad %float %arg_4
+         %26 = OpImageSampleImplicitLod %v4float %31 %38 Bias %39
+               OpStore %res %26
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %8
-         %43 = OpLabel
-         %44 = OpFunctionCall %void %textureSampleBias_1c707e
+         %44 = OpLabel
+         %45 = OpFunctionCall %void %textureSampleBias_1c707e
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureSampleBias/1c707e.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSampleBias/1c707e.wgsl.expected.wgsl
index 674136f..5baf826 100644
--- a/test/tint/builtins/gen/var/textureSampleBias/1c707e.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleBias/1c707e.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(1) var arg_1 : sampler;
 
 fn textureSampleBias_1c707e() {
-  var arg_2 = vec2<f32>();
+  var arg_2 = vec2<f32>(1.0f);
   var arg_3 = 1u;
   var arg_4 = 1.0f;
   var res : vec4<f32> = textureSampleBias(arg_0, arg_1, arg_2, arg_3, arg_4);
diff --git a/test/tint/builtins/gen/var/textureSampleBias/53b9f7.wgsl b/test/tint/builtins/gen/var/textureSampleBias/53b9f7.wgsl
index 56dd499..fca7000 100644
--- a/test/tint/builtins/gen/var/textureSampleBias/53b9f7.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleBias/53b9f7.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureSampleBias(texture: texture_cube<f32>, sampler: sampler, coords: vec3<f32>, bias: f32) -> vec4<f32>
 fn textureSampleBias_53b9f7() {
-  var arg_2 = vec3<f32>();
+  var arg_2 = vec3<f32>(1.f);
   var arg_3 = 1.f;
   var res: vec4<f32> = textureSampleBias(arg_0, arg_1, arg_2, arg_3);
 }
diff --git a/test/tint/builtins/gen/var/textureSampleBias/53b9f7.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleBias/53b9f7.wgsl.expected.dxc.hlsl
index 6fd7133..53cba96 100644
--- a/test/tint/builtins/gen/var/textureSampleBias/53b9f7.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleBias/53b9f7.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleBias_53b9f7() {
-  float3 arg_2 = (0.0f).xxx;
+  float3 arg_2 = (1.0f).xxx;
   float arg_3 = 1.0f;
   float4 res = arg_0.SampleBias(arg_1, arg_2, arg_3);
 }
diff --git a/test/tint/builtins/gen/var/textureSampleBias/53b9f7.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleBias/53b9f7.wgsl.expected.fxc.hlsl
index 6fd7133..53cba96 100644
--- a/test/tint/builtins/gen/var/textureSampleBias/53b9f7.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleBias/53b9f7.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleBias_53b9f7() {
-  float3 arg_2 = (0.0f).xxx;
+  float3 arg_2 = (1.0f).xxx;
   float arg_3 = 1.0f;
   float4 res = arg_0.SampleBias(arg_1, arg_2, arg_3);
 }
diff --git a/test/tint/builtins/gen/var/textureSampleBias/53b9f7.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureSampleBias/53b9f7.wgsl.expected.glsl
index 2629869..b6be7d7 100644
--- a/test/tint/builtins/gen/var/textureSampleBias/53b9f7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureSampleBias/53b9f7.wgsl.expected.glsl
@@ -4,7 +4,7 @@
 uniform highp samplerCube arg_0_arg_1;
 
 void textureSampleBias_53b9f7() {
-  vec3 arg_2 = vec3(0.0f);
+  vec3 arg_2 = vec3(1.0f);
   float arg_3 = 1.0f;
   vec4 res = texture(arg_0_arg_1, arg_2, arg_3);
 }
diff --git a/test/tint/builtins/gen/var/textureSampleBias/53b9f7.wgsl.expected.msl b/test/tint/builtins/gen/var/textureSampleBias/53b9f7.wgsl.expected.msl
index c9ed71a..e9e8884 100644
--- a/test/tint/builtins/gen/var/textureSampleBias/53b9f7.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureSampleBias/53b9f7.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureSampleBias_53b9f7(texturecube<float, access::sample> tint_symbol, sampler tint_symbol_1) {
-  float3 arg_2 = float3(0.0f);
+  float3 arg_2 = float3(1.0f);
   float arg_3 = 1.0f;
   float4 res = tint_symbol.sample(tint_symbol_1, arg_2, bias(arg_3));
 }
diff --git a/test/tint/builtins/gen/var/textureSampleBias/53b9f7.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSampleBias/53b9f7.wgsl.expected.spvasm
index 58add66..1881889 100644
--- a/test/tint/builtins/gen/var/textureSampleBias/53b9f7.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSampleBias/53b9f7.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 34
+; Bound: 35
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -28,33 +28,34 @@
        %void = OpTypeVoid
           %8 = OpTypeFunction %void
     %v3float = OpTypeVector %float 3
-         %13 = OpConstantNull %v3float
-%_ptr_Function_v3float = OpTypePointer Function %v3float
     %float_1 = OpConstant %float 1
+         %14 = OpConstantComposite %v3float %float_1 %float_1 %float_1
+%_ptr_Function_v3float = OpTypePointer Function %v3float
+         %17 = OpConstantNull %v3float
 %_ptr_Function_float = OpTypePointer Function %float
-         %19 = OpConstantNull %float
+         %20 = OpConstantNull %float
     %v4float = OpTypeVector %float 4
-         %24 = OpTypeSampledImage %3
+         %25 = OpTypeSampledImage %3
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %30 = OpConstantNull %v4float
+         %31 = OpConstantNull %v4float
 %textureSampleBias_53b9f7 = OpFunction %void None %8
          %11 = OpLabel
-      %arg_2 = OpVariable %_ptr_Function_v3float Function %13
-      %arg_3 = OpVariable %_ptr_Function_float Function %19
-        %res = OpVariable %_ptr_Function_v4float Function %30
-               OpStore %arg_2 %13
+      %arg_2 = OpVariable %_ptr_Function_v3float Function %17
+      %arg_3 = OpVariable %_ptr_Function_float Function %20
+        %res = OpVariable %_ptr_Function_v4float Function %31
+               OpStore %arg_2 %14
                OpStore %arg_3 %float_1
-         %22 = OpLoad %7 %arg_1
-         %23 = OpLoad %3 %arg_0
-         %25 = OpSampledImage %24 %23 %22
-         %26 = OpLoad %v3float %arg_2
-         %27 = OpLoad %float %arg_3
-         %20 = OpImageSampleImplicitLod %v4float %25 %26 Bias %27
-               OpStore %res %20
+         %23 = OpLoad %7 %arg_1
+         %24 = OpLoad %3 %arg_0
+         %26 = OpSampledImage %25 %24 %23
+         %27 = OpLoad %v3float %arg_2
+         %28 = OpLoad %float %arg_3
+         %21 = OpImageSampleImplicitLod %v4float %26 %27 Bias %28
+               OpStore %res %21
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %8
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureSampleBias_53b9f7
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureSampleBias_53b9f7
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureSampleBias/53b9f7.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSampleBias/53b9f7.wgsl.expected.wgsl
index b3ca71d..013d566 100644
--- a/test/tint/builtins/gen/var/textureSampleBias/53b9f7.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleBias/53b9f7.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(1) var arg_1 : sampler;
 
 fn textureSampleBias_53b9f7() {
-  var arg_2 = vec3<f32>();
+  var arg_2 = vec3<f32>(1.0f);
   var arg_3 = 1.0f;
   var res : vec4<f32> = textureSampleBias(arg_0, arg_1, arg_2, arg_3);
 }
diff --git a/test/tint/builtins/gen/var/textureSampleBias/594824.wgsl b/test/tint/builtins/gen/var/textureSampleBias/594824.wgsl
index db6c22f..b21f984 100644
--- a/test/tint/builtins/gen/var/textureSampleBias/594824.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleBias/594824.wgsl
@@ -25,9 +25,9 @@
 
 // fn textureSampleBias(texture: texture_3d<f32>, sampler: sampler, coords: vec3<f32>, bias: f32, @const offset: vec3<i32>) -> vec4<f32>
 fn textureSampleBias_594824() {
-  var arg_2 = vec3<f32>();
+  var arg_2 = vec3<f32>(1.f);
   var arg_3 = 1.f;
-  const arg_4 = vec3<i32>();
+  const arg_4 = vec3<i32>(1i);
   var res: vec4<f32> = textureSampleBias(arg_0, arg_1, arg_2, arg_3, arg_4);
 }
 
diff --git a/test/tint/builtins/gen/var/textureSampleBias/594824.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleBias/594824.wgsl.expected.dxc.hlsl
index fa703bc..d031784 100644
--- a/test/tint/builtins/gen/var/textureSampleBias/594824.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleBias/594824.wgsl.expected.dxc.hlsl
@@ -2,9 +2,9 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleBias_594824() {
-  float3 arg_2 = (0.0f).xxx;
+  float3 arg_2 = (1.0f).xxx;
   float arg_3 = 1.0f;
-  float4 res = arg_0.SampleBias(arg_1, arg_2, arg_3, (0).xxx);
+  float4 res = arg_0.SampleBias(arg_1, arg_2, arg_3, (1).xxx);
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/var/textureSampleBias/594824.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleBias/594824.wgsl.expected.fxc.hlsl
index fa703bc..d031784 100644
--- a/test/tint/builtins/gen/var/textureSampleBias/594824.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleBias/594824.wgsl.expected.fxc.hlsl
@@ -2,9 +2,9 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleBias_594824() {
-  float3 arg_2 = (0.0f).xxx;
+  float3 arg_2 = (1.0f).xxx;
   float arg_3 = 1.0f;
-  float4 res = arg_0.SampleBias(arg_1, arg_2, arg_3, (0).xxx);
+  float4 res = arg_0.SampleBias(arg_1, arg_2, arg_3, (1).xxx);
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/var/textureSampleBias/594824.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureSampleBias/594824.wgsl.expected.glsl
index 86b3985..e8156db 100644
--- a/test/tint/builtins/gen/var/textureSampleBias/594824.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureSampleBias/594824.wgsl.expected.glsl
@@ -4,9 +4,9 @@
 uniform highp sampler3D arg_0_arg_1;
 
 void textureSampleBias_594824() {
-  vec3 arg_2 = vec3(0.0f);
+  vec3 arg_2 = vec3(1.0f);
   float arg_3 = 1.0f;
-  vec4 res = textureOffset(arg_0_arg_1, arg_2, ivec3(0), arg_3);
+  vec4 res = textureOffset(arg_0_arg_1, arg_2, ivec3(1), arg_3);
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/var/textureSampleBias/594824.wgsl.expected.msl b/test/tint/builtins/gen/var/textureSampleBias/594824.wgsl.expected.msl
index b1579e0..46b053a 100644
--- a/test/tint/builtins/gen/var/textureSampleBias/594824.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureSampleBias/594824.wgsl.expected.msl
@@ -2,9 +2,9 @@
 
 using namespace metal;
 void textureSampleBias_594824(texture3d<float, access::sample> tint_symbol, sampler tint_symbol_1) {
-  float3 arg_2 = float3(0.0f);
+  float3 arg_2 = float3(1.0f);
   float arg_3 = 1.0f;
-  float4 res = tint_symbol.sample(tint_symbol_1, arg_2, bias(arg_3), int3(0));
+  float4 res = tint_symbol.sample(tint_symbol_1, arg_2, bias(arg_3), int3(1));
 }
 
 fragment void fragment_main(texture3d<float, access::sample> tint_symbol_2 [[texture(0)]], sampler tint_symbol_3 [[sampler(0)]]) {
diff --git a/test/tint/builtins/gen/var/textureSampleBias/594824.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSampleBias/594824.wgsl.expected.spvasm
index 2360528..2a8998d 100644
--- a/test/tint/builtins/gen/var/textureSampleBias/594824.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSampleBias/594824.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 37
+; Bound: 39
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -28,36 +28,38 @@
        %void = OpTypeVoid
           %8 = OpTypeFunction %void
     %v3float = OpTypeVector %float 3
-         %13 = OpConstantNull %v3float
-%_ptr_Function_v3float = OpTypePointer Function %v3float
     %float_1 = OpConstant %float 1
+         %14 = OpConstantComposite %v3float %float_1 %float_1 %float_1
+%_ptr_Function_v3float = OpTypePointer Function %v3float
+         %17 = OpConstantNull %v3float
 %_ptr_Function_float = OpTypePointer Function %float
-         %19 = OpConstantNull %float
+         %20 = OpConstantNull %float
     %v4float = OpTypeVector %float 4
-         %24 = OpTypeSampledImage %3
+         %25 = OpTypeSampledImage %3
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
-         %30 = OpConstantNull %v3int
+      %int_1 = OpConstant %int 1
+         %32 = OpConstantComposite %v3int %int_1 %int_1 %int_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %33 = OpConstantNull %v4float
+         %35 = OpConstantNull %v4float
 %textureSampleBias_594824 = OpFunction %void None %8
          %11 = OpLabel
-      %arg_2 = OpVariable %_ptr_Function_v3float Function %13
-      %arg_3 = OpVariable %_ptr_Function_float Function %19
-        %res = OpVariable %_ptr_Function_v4float Function %33
-               OpStore %arg_2 %13
+      %arg_2 = OpVariable %_ptr_Function_v3float Function %17
+      %arg_3 = OpVariable %_ptr_Function_float Function %20
+        %res = OpVariable %_ptr_Function_v4float Function %35
+               OpStore %arg_2 %14
                OpStore %arg_3 %float_1
-         %22 = OpLoad %7 %arg_1
-         %23 = OpLoad %3 %arg_0
-         %25 = OpSampledImage %24 %23 %22
-         %26 = OpLoad %v3float %arg_2
-         %27 = OpLoad %float %arg_3
-         %20 = OpImageSampleImplicitLod %v4float %25 %26 Bias|ConstOffset %27 %30
-               OpStore %res %20
+         %23 = OpLoad %7 %arg_1
+         %24 = OpLoad %3 %arg_0
+         %26 = OpSampledImage %25 %24 %23
+         %27 = OpLoad %v3float %arg_2
+         %28 = OpLoad %float %arg_3
+         %21 = OpImageSampleImplicitLod %v4float %26 %27 Bias|ConstOffset %28 %32
+               OpStore %res %21
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %8
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureSampleBias_594824
+         %37 = OpLabel
+         %38 = OpFunctionCall %void %textureSampleBias_594824
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureSampleBias/594824.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSampleBias/594824.wgsl.expected.wgsl
index c271970..ff3c1c0 100644
--- a/test/tint/builtins/gen/var/textureSampleBias/594824.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleBias/594824.wgsl.expected.wgsl
@@ -3,9 +3,9 @@
 @group(1) @binding(1) var arg_1 : sampler;
 
 fn textureSampleBias_594824() {
-  var arg_2 = vec3<f32>();
+  var arg_2 = vec3<f32>(1.0f);
   var arg_3 = 1.0f;
-  const arg_4 = vec3<i32>();
+  const arg_4 = vec3<i32>(1i);
   var res : vec4<f32> = textureSampleBias(arg_0, arg_1, arg_2, arg_3, arg_4);
 }
 
diff --git a/test/tint/builtins/gen/var/textureSampleBias/6a9113.wgsl b/test/tint/builtins/gen/var/textureSampleBias/6a9113.wgsl
index b142eff..01d7ab4 100644
--- a/test/tint/builtins/gen/var/textureSampleBias/6a9113.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleBias/6a9113.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureSampleBias(texture: texture_2d<f32>, sampler: sampler, coords: vec2<f32>, bias: f32) -> vec4<f32>
 fn textureSampleBias_6a9113() {
-  var arg_2 = vec2<f32>();
+  var arg_2 = vec2<f32>(1.f);
   var arg_3 = 1.f;
   var res: vec4<f32> = textureSampleBias(arg_0, arg_1, arg_2, arg_3);
 }
diff --git a/test/tint/builtins/gen/var/textureSampleBias/6a9113.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleBias/6a9113.wgsl.expected.dxc.hlsl
index 95c453b..daef964 100644
--- a/test/tint/builtins/gen/var/textureSampleBias/6a9113.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleBias/6a9113.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleBias_6a9113() {
-  float2 arg_2 = (0.0f).xx;
+  float2 arg_2 = (1.0f).xx;
   float arg_3 = 1.0f;
   float4 res = arg_0.SampleBias(arg_1, arg_2, arg_3);
 }
diff --git a/test/tint/builtins/gen/var/textureSampleBias/6a9113.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleBias/6a9113.wgsl.expected.fxc.hlsl
index 95c453b..daef964 100644
--- a/test/tint/builtins/gen/var/textureSampleBias/6a9113.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleBias/6a9113.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleBias_6a9113() {
-  float2 arg_2 = (0.0f).xx;
+  float2 arg_2 = (1.0f).xx;
   float arg_3 = 1.0f;
   float4 res = arg_0.SampleBias(arg_1, arg_2, arg_3);
 }
diff --git a/test/tint/builtins/gen/var/textureSampleBias/6a9113.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureSampleBias/6a9113.wgsl.expected.glsl
index 4ff6ea8..738eb81 100644
--- a/test/tint/builtins/gen/var/textureSampleBias/6a9113.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureSampleBias/6a9113.wgsl.expected.glsl
@@ -4,7 +4,7 @@
 uniform highp sampler2D arg_0_arg_1;
 
 void textureSampleBias_6a9113() {
-  vec2 arg_2 = vec2(0.0f);
+  vec2 arg_2 = vec2(1.0f);
   float arg_3 = 1.0f;
   vec4 res = texture(arg_0_arg_1, arg_2, arg_3);
 }
diff --git a/test/tint/builtins/gen/var/textureSampleBias/6a9113.wgsl.expected.msl b/test/tint/builtins/gen/var/textureSampleBias/6a9113.wgsl.expected.msl
index a60a0d6..31f81b9 100644
--- a/test/tint/builtins/gen/var/textureSampleBias/6a9113.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureSampleBias/6a9113.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureSampleBias_6a9113(texture2d<float, access::sample> tint_symbol, sampler tint_symbol_1) {
-  float2 arg_2 = float2(0.0f);
+  float2 arg_2 = float2(1.0f);
   float arg_3 = 1.0f;
   float4 res = tint_symbol.sample(tint_symbol_1, arg_2, bias(arg_3));
 }
diff --git a/test/tint/builtins/gen/var/textureSampleBias/6a9113.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSampleBias/6a9113.wgsl.expected.spvasm
index 75ae173..3ebab6b 100644
--- a/test/tint/builtins/gen/var/textureSampleBias/6a9113.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSampleBias/6a9113.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 34
+; Bound: 35
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -28,33 +28,34 @@
        %void = OpTypeVoid
           %8 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
-         %13 = OpConstantNull %v2float
-%_ptr_Function_v2float = OpTypePointer Function %v2float
     %float_1 = OpConstant %float 1
+         %14 = OpConstantComposite %v2float %float_1 %float_1
+%_ptr_Function_v2float = OpTypePointer Function %v2float
+         %17 = OpConstantNull %v2float
 %_ptr_Function_float = OpTypePointer Function %float
-         %19 = OpConstantNull %float
+         %20 = OpConstantNull %float
     %v4float = OpTypeVector %float 4
-         %24 = OpTypeSampledImage %3
+         %25 = OpTypeSampledImage %3
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %30 = OpConstantNull %v4float
+         %31 = OpConstantNull %v4float
 %textureSampleBias_6a9113 = OpFunction %void None %8
          %11 = OpLabel
-      %arg_2 = OpVariable %_ptr_Function_v2float Function %13
-      %arg_3 = OpVariable %_ptr_Function_float Function %19
-        %res = OpVariable %_ptr_Function_v4float Function %30
-               OpStore %arg_2 %13
+      %arg_2 = OpVariable %_ptr_Function_v2float Function %17
+      %arg_3 = OpVariable %_ptr_Function_float Function %20
+        %res = OpVariable %_ptr_Function_v4float Function %31
+               OpStore %arg_2 %14
                OpStore %arg_3 %float_1
-         %22 = OpLoad %7 %arg_1
-         %23 = OpLoad %3 %arg_0
-         %25 = OpSampledImage %24 %23 %22
-         %26 = OpLoad %v2float %arg_2
-         %27 = OpLoad %float %arg_3
-         %20 = OpImageSampleImplicitLod %v4float %25 %26 Bias %27
-               OpStore %res %20
+         %23 = OpLoad %7 %arg_1
+         %24 = OpLoad %3 %arg_0
+         %26 = OpSampledImage %25 %24 %23
+         %27 = OpLoad %v2float %arg_2
+         %28 = OpLoad %float %arg_3
+         %21 = OpImageSampleImplicitLod %v4float %26 %27 Bias %28
+               OpStore %res %21
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %8
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureSampleBias_6a9113
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureSampleBias_6a9113
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureSampleBias/6a9113.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSampleBias/6a9113.wgsl.expected.wgsl
index 119bbca..532fbbe 100644
--- a/test/tint/builtins/gen/var/textureSampleBias/6a9113.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleBias/6a9113.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(1) var arg_1 : sampler;
 
 fn textureSampleBias_6a9113() {
-  var arg_2 = vec2<f32>();
+  var arg_2 = vec2<f32>(1.0f);
   var arg_3 = 1.0f;
   var res : vec4<f32> = textureSampleBias(arg_0, arg_1, arg_2, arg_3);
 }
diff --git a/test/tint/builtins/gen/var/textureSampleBias/80e579.wgsl b/test/tint/builtins/gen/var/textureSampleBias/80e579.wgsl
index cfded58..e0c8861 100644
--- a/test/tint/builtins/gen/var/textureSampleBias/80e579.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleBias/80e579.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureSampleBias(texture: texture_2d_array<f32>, sampler: sampler, coords: vec2<f32>, array_index: i32, bias: f32) -> vec4<f32>
 fn textureSampleBias_80e579() {
-  var arg_2 = vec2<f32>();
+  var arg_2 = vec2<f32>(1.f);
   var arg_3 = 1i;
   var arg_4 = 1.f;
   var res: vec4<f32> = textureSampleBias(arg_0, arg_1, arg_2, arg_3, arg_4);
diff --git a/test/tint/builtins/gen/var/textureSampleBias/80e579.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleBias/80e579.wgsl.expected.dxc.hlsl
index 27ee32d..0e3bcba 100644
--- a/test/tint/builtins/gen/var/textureSampleBias/80e579.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleBias/80e579.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleBias_80e579() {
-  float2 arg_2 = (0.0f).xx;
+  float2 arg_2 = (1.0f).xx;
   int arg_3 = 1;
   float arg_4 = 1.0f;
   float4 res = arg_0.SampleBias(arg_1, float3(arg_2, float(arg_3)), arg_4);
diff --git a/test/tint/builtins/gen/var/textureSampleBias/80e579.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleBias/80e579.wgsl.expected.fxc.hlsl
index 27ee32d..0e3bcba 100644
--- a/test/tint/builtins/gen/var/textureSampleBias/80e579.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleBias/80e579.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleBias_80e579() {
-  float2 arg_2 = (0.0f).xx;
+  float2 arg_2 = (1.0f).xx;
   int arg_3 = 1;
   float arg_4 = 1.0f;
   float4 res = arg_0.SampleBias(arg_1, float3(arg_2, float(arg_3)), arg_4);
diff --git a/test/tint/builtins/gen/var/textureSampleBias/80e579.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureSampleBias/80e579.wgsl.expected.glsl
index 4b8b55e..cdf9c71 100644
--- a/test/tint/builtins/gen/var/textureSampleBias/80e579.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureSampleBias/80e579.wgsl.expected.glsl
@@ -4,7 +4,7 @@
 uniform highp sampler2DArray arg_0_arg_1;
 
 void textureSampleBias_80e579() {
-  vec2 arg_2 = vec2(0.0f);
+  vec2 arg_2 = vec2(1.0f);
   int arg_3 = 1;
   float arg_4 = 1.0f;
   vec4 res = texture(arg_0_arg_1, vec3(arg_2, float(arg_3)), arg_4);
diff --git a/test/tint/builtins/gen/var/textureSampleBias/80e579.wgsl.expected.msl b/test/tint/builtins/gen/var/textureSampleBias/80e579.wgsl.expected.msl
index 310f549..982a2b6 100644
--- a/test/tint/builtins/gen/var/textureSampleBias/80e579.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureSampleBias/80e579.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureSampleBias_80e579(texture2d_array<float, access::sample> tint_symbol, sampler tint_symbol_1) {
-  float2 arg_2 = float2(0.0f);
+  float2 arg_2 = float2(1.0f);
   int arg_3 = 1;
   float arg_4 = 1.0f;
   float4 res = tint_symbol.sample(tint_symbol_1, arg_2, arg_3, bias(arg_4));
diff --git a/test/tint/builtins/gen/var/textureSampleBias/80e579.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSampleBias/80e579.wgsl.expected.spvasm
index 2afe0df..76efd81 100644
--- a/test/tint/builtins/gen/var/textureSampleBias/80e579.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSampleBias/80e579.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 45
+; Bound: 46
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -29,45 +29,46 @@
        %void = OpTypeVoid
           %8 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
-         %13 = OpConstantNull %v2float
+    %float_1 = OpConstant %float 1
+         %14 = OpConstantComposite %v2float %float_1 %float_1
 %_ptr_Function_v2float = OpTypePointer Function %v2float
+         %17 = OpConstantNull %v2float
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
-         %20 = OpConstantNull %int
-    %float_1 = OpConstant %float 1
+         %22 = OpConstantNull %int
 %_ptr_Function_float = OpTypePointer Function %float
-         %24 = OpConstantNull %float
+         %25 = OpConstantNull %float
     %v4float = OpTypeVector %float 4
-         %29 = OpTypeSampledImage %3
+         %30 = OpTypeSampledImage %3
     %v3float = OpTypeVector %float 3
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %41 = OpConstantNull %v4float
+         %42 = OpConstantNull %v4float
 %textureSampleBias_80e579 = OpFunction %void None %8
          %11 = OpLabel
-      %arg_2 = OpVariable %_ptr_Function_v2float Function %13
-      %arg_3 = OpVariable %_ptr_Function_int Function %20
-      %arg_4 = OpVariable %_ptr_Function_float Function %24
-        %res = OpVariable %_ptr_Function_v4float Function %41
-               OpStore %arg_2 %13
+      %arg_2 = OpVariable %_ptr_Function_v2float Function %17
+      %arg_3 = OpVariable %_ptr_Function_int Function %22
+      %arg_4 = OpVariable %_ptr_Function_float Function %25
+        %res = OpVariable %_ptr_Function_v4float Function %42
+               OpStore %arg_2 %14
                OpStore %arg_3 %int_1
                OpStore %arg_4 %float_1
-         %27 = OpLoad %7 %arg_1
-         %28 = OpLoad %3 %arg_0
-         %30 = OpSampledImage %29 %28 %27
-         %32 = OpLoad %v2float %arg_2
-         %33 = OpCompositeExtract %float %32 0
-         %34 = OpCompositeExtract %float %32 1
-         %36 = OpLoad %int %arg_3
-         %35 = OpConvertSToF %float %36
-         %37 = OpCompositeConstruct %v3float %33 %34 %35
-         %38 = OpLoad %float %arg_4
-         %25 = OpImageSampleImplicitLod %v4float %30 %37 Bias %38
-               OpStore %res %25
+         %28 = OpLoad %7 %arg_1
+         %29 = OpLoad %3 %arg_0
+         %31 = OpSampledImage %30 %29 %28
+         %33 = OpLoad %v2float %arg_2
+         %34 = OpCompositeExtract %float %33 0
+         %35 = OpCompositeExtract %float %33 1
+         %37 = OpLoad %int %arg_3
+         %36 = OpConvertSToF %float %37
+         %38 = OpCompositeConstruct %v3float %34 %35 %36
+         %39 = OpLoad %float %arg_4
+         %26 = OpImageSampleImplicitLod %v4float %31 %38 Bias %39
+               OpStore %res %26
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %8
-         %43 = OpLabel
-         %44 = OpFunctionCall %void %textureSampleBias_80e579
+         %44 = OpLabel
+         %45 = OpFunctionCall %void %textureSampleBias_80e579
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureSampleBias/80e579.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSampleBias/80e579.wgsl.expected.wgsl
index 4b76b6f..4a78359 100644
--- a/test/tint/builtins/gen/var/textureSampleBias/80e579.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleBias/80e579.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(1) var arg_1 : sampler;
 
 fn textureSampleBias_80e579() {
-  var arg_2 = vec2<f32>();
+  var arg_2 = vec2<f32>(1.0f);
   var arg_3 = 1i;
   var arg_4 = 1.0f;
   var res : vec4<f32> = textureSampleBias(arg_0, arg_1, arg_2, arg_3, arg_4);
diff --git a/test/tint/builtins/gen/var/textureSampleBias/87915c.wgsl b/test/tint/builtins/gen/var/textureSampleBias/87915c.wgsl
index 2ffa8d4..75c7373 100644
--- a/test/tint/builtins/gen/var/textureSampleBias/87915c.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleBias/87915c.wgsl
@@ -25,10 +25,10 @@
 
 // fn textureSampleBias(texture: texture_2d_array<f32>, sampler: sampler, coords: vec2<f32>, array_index: u32, bias: f32, @const offset: vec2<i32>) -> vec4<f32>
 fn textureSampleBias_87915c() {
-  var arg_2 = vec2<f32>();
+  var arg_2 = vec2<f32>(1.f);
   var arg_3 = 1u;
   var arg_4 = 1.f;
-  const arg_5 = vec2<i32>();
+  const arg_5 = vec2<i32>(1i);
   var res: vec4<f32> = textureSampleBias(arg_0, arg_1, arg_2, arg_3, arg_4, arg_5);
 }
 
diff --git a/test/tint/builtins/gen/var/textureSampleBias/87915c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleBias/87915c.wgsl.expected.dxc.hlsl
index b1edf8b..8d7ff39 100644
--- a/test/tint/builtins/gen/var/textureSampleBias/87915c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleBias/87915c.wgsl.expected.dxc.hlsl
@@ -2,10 +2,10 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleBias_87915c() {
-  float2 arg_2 = (0.0f).xx;
+  float2 arg_2 = (1.0f).xx;
   uint arg_3 = 1u;
   float arg_4 = 1.0f;
-  float4 res = arg_0.SampleBias(arg_1, float3(arg_2, float(arg_3)), arg_4, (0).xx);
+  float4 res = arg_0.SampleBias(arg_1, float3(arg_2, float(arg_3)), arg_4, (1).xx);
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/var/textureSampleBias/87915c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleBias/87915c.wgsl.expected.fxc.hlsl
index b1edf8b..8d7ff39 100644
--- a/test/tint/builtins/gen/var/textureSampleBias/87915c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleBias/87915c.wgsl.expected.fxc.hlsl
@@ -2,10 +2,10 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleBias_87915c() {
-  float2 arg_2 = (0.0f).xx;
+  float2 arg_2 = (1.0f).xx;
   uint arg_3 = 1u;
   float arg_4 = 1.0f;
-  float4 res = arg_0.SampleBias(arg_1, float3(arg_2, float(arg_3)), arg_4, (0).xx);
+  float4 res = arg_0.SampleBias(arg_1, float3(arg_2, float(arg_3)), arg_4, (1).xx);
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/var/textureSampleBias/87915c.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureSampleBias/87915c.wgsl.expected.glsl
index b2b2648..06cb44a 100644
--- a/test/tint/builtins/gen/var/textureSampleBias/87915c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureSampleBias/87915c.wgsl.expected.glsl
@@ -4,10 +4,10 @@
 uniform highp sampler2DArray arg_0_arg_1;
 
 void textureSampleBias_87915c() {
-  vec2 arg_2 = vec2(0.0f);
+  vec2 arg_2 = vec2(1.0f);
   uint arg_3 = 1u;
   float arg_4 = 1.0f;
-  vec4 res = textureOffset(arg_0_arg_1, vec3(arg_2, float(arg_3)), ivec2(0), arg_4);
+  vec4 res = textureOffset(arg_0_arg_1, vec3(arg_2, float(arg_3)), ivec2(1), arg_4);
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/var/textureSampleBias/87915c.wgsl.expected.msl b/test/tint/builtins/gen/var/textureSampleBias/87915c.wgsl.expected.msl
index 37303ae..1232dd5 100644
--- a/test/tint/builtins/gen/var/textureSampleBias/87915c.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureSampleBias/87915c.wgsl.expected.msl
@@ -2,10 +2,10 @@
 
 using namespace metal;
 void textureSampleBias_87915c(texture2d_array<float, access::sample> tint_symbol, sampler tint_symbol_1) {
-  float2 arg_2 = float2(0.0f);
+  float2 arg_2 = float2(1.0f);
   uint arg_3 = 1u;
   float arg_4 = 1.0f;
-  float4 res = tint_symbol.sample(tint_symbol_1, arg_2, arg_3, bias(arg_4), int2(0));
+  float4 res = tint_symbol.sample(tint_symbol_1, arg_2, arg_3, bias(arg_4), int2(1));
 }
 
 fragment void fragment_main(texture2d_array<float, access::sample> tint_symbol_2 [[texture(0)]], sampler tint_symbol_3 [[sampler(0)]]) {
diff --git a/test/tint/builtins/gen/var/textureSampleBias/87915c.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSampleBias/87915c.wgsl.expected.spvasm
index d8da7ba..d9a8476 100644
--- a/test/tint/builtins/gen/var/textureSampleBias/87915c.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSampleBias/87915c.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 48
+; Bound: 50
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -29,48 +29,50 @@
        %void = OpTypeVoid
           %8 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
-         %13 = OpConstantNull %v2float
+    %float_1 = OpConstant %float 1
+         %14 = OpConstantComposite %v2float %float_1 %float_1
 %_ptr_Function_v2float = OpTypePointer Function %v2float
+         %17 = OpConstantNull %v2float
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %20 = OpConstantNull %uint
-    %float_1 = OpConstant %float 1
+         %22 = OpConstantNull %uint
 %_ptr_Function_float = OpTypePointer Function %float
-         %24 = OpConstantNull %float
+         %25 = OpConstantNull %float
     %v4float = OpTypeVector %float 4
-         %29 = OpTypeSampledImage %3
+         %30 = OpTypeSampledImage %3
     %v3float = OpTypeVector %float 3
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
-         %41 = OpConstantNull %v2int
+      %int_1 = OpConstant %int 1
+         %43 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %44 = OpConstantNull %v4float
+         %46 = OpConstantNull %v4float
 %textureSampleBias_87915c = OpFunction %void None %8
          %11 = OpLabel
-      %arg_2 = OpVariable %_ptr_Function_v2float Function %13
-      %arg_3 = OpVariable %_ptr_Function_uint Function %20
-      %arg_4 = OpVariable %_ptr_Function_float Function %24
-        %res = OpVariable %_ptr_Function_v4float Function %44
-               OpStore %arg_2 %13
+      %arg_2 = OpVariable %_ptr_Function_v2float Function %17
+      %arg_3 = OpVariable %_ptr_Function_uint Function %22
+      %arg_4 = OpVariable %_ptr_Function_float Function %25
+        %res = OpVariable %_ptr_Function_v4float Function %46
+               OpStore %arg_2 %14
                OpStore %arg_3 %uint_1
                OpStore %arg_4 %float_1
-         %27 = OpLoad %7 %arg_1
-         %28 = OpLoad %3 %arg_0
-         %30 = OpSampledImage %29 %28 %27
-         %32 = OpLoad %v2float %arg_2
-         %33 = OpCompositeExtract %float %32 0
-         %34 = OpCompositeExtract %float %32 1
-         %36 = OpLoad %uint %arg_3
-         %35 = OpConvertUToF %float %36
-         %37 = OpCompositeConstruct %v3float %33 %34 %35
-         %38 = OpLoad %float %arg_4
-         %25 = OpImageSampleImplicitLod %v4float %30 %37 Bias|ConstOffset %38 %41
-               OpStore %res %25
+         %28 = OpLoad %7 %arg_1
+         %29 = OpLoad %3 %arg_0
+         %31 = OpSampledImage %30 %29 %28
+         %33 = OpLoad %v2float %arg_2
+         %34 = OpCompositeExtract %float %33 0
+         %35 = OpCompositeExtract %float %33 1
+         %37 = OpLoad %uint %arg_3
+         %36 = OpConvertUToF %float %37
+         %38 = OpCompositeConstruct %v3float %34 %35 %36
+         %39 = OpLoad %float %arg_4
+         %26 = OpImageSampleImplicitLod %v4float %31 %38 Bias|ConstOffset %39 %43
+               OpStore %res %26
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %8
-         %46 = OpLabel
-         %47 = OpFunctionCall %void %textureSampleBias_87915c
+         %48 = OpLabel
+         %49 = OpFunctionCall %void %textureSampleBias_87915c
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureSampleBias/87915c.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSampleBias/87915c.wgsl.expected.wgsl
index ff54de7..e25a562 100644
--- a/test/tint/builtins/gen/var/textureSampleBias/87915c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleBias/87915c.wgsl.expected.wgsl
@@ -3,10 +3,10 @@
 @group(1) @binding(1) var arg_1 : sampler;
 
 fn textureSampleBias_87915c() {
-  var arg_2 = vec2<f32>();
+  var arg_2 = vec2<f32>(1.0f);
   var arg_3 = 1u;
   var arg_4 = 1.0f;
-  const arg_5 = vec2<i32>();
+  const arg_5 = vec2<i32>(1i);
   var res : vec4<f32> = textureSampleBias(arg_0, arg_1, arg_2, arg_3, arg_4, arg_5);
 }
 
diff --git a/test/tint/builtins/gen/var/textureSampleBias/9dbb51.wgsl b/test/tint/builtins/gen/var/textureSampleBias/9dbb51.wgsl
index 8c4c4ca..0f3e7c5 100644
--- a/test/tint/builtins/gen/var/textureSampleBias/9dbb51.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleBias/9dbb51.wgsl
@@ -25,10 +25,10 @@
 
 // fn textureSampleBias(texture: texture_2d_array<f32>, sampler: sampler, coords: vec2<f32>, array_index: i32, bias: f32, @const offset: vec2<i32>) -> vec4<f32>
 fn textureSampleBias_9dbb51() {
-  var arg_2 = vec2<f32>();
+  var arg_2 = vec2<f32>(1.f);
   var arg_3 = 1i;
   var arg_4 = 1.f;
-  const arg_5 = vec2<i32>();
+  const arg_5 = vec2<i32>(1i);
   var res: vec4<f32> = textureSampleBias(arg_0, arg_1, arg_2, arg_3, arg_4, arg_5);
 }
 
diff --git a/test/tint/builtins/gen/var/textureSampleBias/9dbb51.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleBias/9dbb51.wgsl.expected.dxc.hlsl
index 83ce4b8..10dfcf3 100644
--- a/test/tint/builtins/gen/var/textureSampleBias/9dbb51.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleBias/9dbb51.wgsl.expected.dxc.hlsl
@@ -2,10 +2,10 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleBias_9dbb51() {
-  float2 arg_2 = (0.0f).xx;
+  float2 arg_2 = (1.0f).xx;
   int arg_3 = 1;
   float arg_4 = 1.0f;
-  float4 res = arg_0.SampleBias(arg_1, float3(arg_2, float(arg_3)), arg_4, (0).xx);
+  float4 res = arg_0.SampleBias(arg_1, float3(arg_2, float(arg_3)), arg_4, (1).xx);
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/var/textureSampleBias/9dbb51.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleBias/9dbb51.wgsl.expected.fxc.hlsl
index 83ce4b8..10dfcf3 100644
--- a/test/tint/builtins/gen/var/textureSampleBias/9dbb51.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleBias/9dbb51.wgsl.expected.fxc.hlsl
@@ -2,10 +2,10 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleBias_9dbb51() {
-  float2 arg_2 = (0.0f).xx;
+  float2 arg_2 = (1.0f).xx;
   int arg_3 = 1;
   float arg_4 = 1.0f;
-  float4 res = arg_0.SampleBias(arg_1, float3(arg_2, float(arg_3)), arg_4, (0).xx);
+  float4 res = arg_0.SampleBias(arg_1, float3(arg_2, float(arg_3)), arg_4, (1).xx);
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/var/textureSampleBias/9dbb51.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureSampleBias/9dbb51.wgsl.expected.glsl
index fcb897f..0a1a04e 100644
--- a/test/tint/builtins/gen/var/textureSampleBias/9dbb51.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureSampleBias/9dbb51.wgsl.expected.glsl
@@ -4,10 +4,10 @@
 uniform highp sampler2DArray arg_0_arg_1;
 
 void textureSampleBias_9dbb51() {
-  vec2 arg_2 = vec2(0.0f);
+  vec2 arg_2 = vec2(1.0f);
   int arg_3 = 1;
   float arg_4 = 1.0f;
-  vec4 res = textureOffset(arg_0_arg_1, vec3(arg_2, float(arg_3)), ivec2(0), arg_4);
+  vec4 res = textureOffset(arg_0_arg_1, vec3(arg_2, float(arg_3)), ivec2(1), arg_4);
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/var/textureSampleBias/9dbb51.wgsl.expected.msl b/test/tint/builtins/gen/var/textureSampleBias/9dbb51.wgsl.expected.msl
index 811369d..c55ab29 100644
--- a/test/tint/builtins/gen/var/textureSampleBias/9dbb51.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureSampleBias/9dbb51.wgsl.expected.msl
@@ -2,10 +2,10 @@
 
 using namespace metal;
 void textureSampleBias_9dbb51(texture2d_array<float, access::sample> tint_symbol, sampler tint_symbol_1) {
-  float2 arg_2 = float2(0.0f);
+  float2 arg_2 = float2(1.0f);
   int arg_3 = 1;
   float arg_4 = 1.0f;
-  float4 res = tint_symbol.sample(tint_symbol_1, arg_2, arg_3, bias(arg_4), int2(0));
+  float4 res = tint_symbol.sample(tint_symbol_1, arg_2, arg_3, bias(arg_4), int2(1));
 }
 
 fragment void fragment_main(texture2d_array<float, access::sample> tint_symbol_2 [[texture(0)]], sampler tint_symbol_3 [[sampler(0)]]) {
diff --git a/test/tint/builtins/gen/var/textureSampleBias/9dbb51.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSampleBias/9dbb51.wgsl.expected.spvasm
index bca222e..d1511f4 100644
--- a/test/tint/builtins/gen/var/textureSampleBias/9dbb51.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSampleBias/9dbb51.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 47
+; Bound: 48
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -29,47 +29,48 @@
        %void = OpTypeVoid
           %8 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
-         %13 = OpConstantNull %v2float
+    %float_1 = OpConstant %float 1
+         %14 = OpConstantComposite %v2float %float_1 %float_1
 %_ptr_Function_v2float = OpTypePointer Function %v2float
+         %17 = OpConstantNull %v2float
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
-         %20 = OpConstantNull %int
-    %float_1 = OpConstant %float 1
+         %22 = OpConstantNull %int
 %_ptr_Function_float = OpTypePointer Function %float
-         %24 = OpConstantNull %float
+         %25 = OpConstantNull %float
     %v4float = OpTypeVector %float 4
-         %29 = OpTypeSampledImage %3
+         %30 = OpTypeSampledImage %3
     %v3float = OpTypeVector %float 3
       %v2int = OpTypeVector %int 2
-         %40 = OpConstantNull %v2int
+         %41 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %43 = OpConstantNull %v4float
+         %44 = OpConstantNull %v4float
 %textureSampleBias_9dbb51 = OpFunction %void None %8
          %11 = OpLabel
-      %arg_2 = OpVariable %_ptr_Function_v2float Function %13
-      %arg_3 = OpVariable %_ptr_Function_int Function %20
-      %arg_4 = OpVariable %_ptr_Function_float Function %24
-        %res = OpVariable %_ptr_Function_v4float Function %43
-               OpStore %arg_2 %13
+      %arg_2 = OpVariable %_ptr_Function_v2float Function %17
+      %arg_3 = OpVariable %_ptr_Function_int Function %22
+      %arg_4 = OpVariable %_ptr_Function_float Function %25
+        %res = OpVariable %_ptr_Function_v4float Function %44
+               OpStore %arg_2 %14
                OpStore %arg_3 %int_1
                OpStore %arg_4 %float_1
-         %27 = OpLoad %7 %arg_1
-         %28 = OpLoad %3 %arg_0
-         %30 = OpSampledImage %29 %28 %27
-         %32 = OpLoad %v2float %arg_2
-         %33 = OpCompositeExtract %float %32 0
-         %34 = OpCompositeExtract %float %32 1
-         %36 = OpLoad %int %arg_3
-         %35 = OpConvertSToF %float %36
-         %37 = OpCompositeConstruct %v3float %33 %34 %35
-         %38 = OpLoad %float %arg_4
-         %25 = OpImageSampleImplicitLod %v4float %30 %37 Bias|ConstOffset %38 %40
-               OpStore %res %25
+         %28 = OpLoad %7 %arg_1
+         %29 = OpLoad %3 %arg_0
+         %31 = OpSampledImage %30 %29 %28
+         %33 = OpLoad %v2float %arg_2
+         %34 = OpCompositeExtract %float %33 0
+         %35 = OpCompositeExtract %float %33 1
+         %37 = OpLoad %int %arg_3
+         %36 = OpConvertSToF %float %37
+         %38 = OpCompositeConstruct %v3float %34 %35 %36
+         %39 = OpLoad %float %arg_4
+         %26 = OpImageSampleImplicitLod %v4float %31 %38 Bias|ConstOffset %39 %41
+               OpStore %res %26
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %8
-         %45 = OpLabel
-         %46 = OpFunctionCall %void %textureSampleBias_9dbb51
+         %46 = OpLabel
+         %47 = OpFunctionCall %void %textureSampleBias_9dbb51
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureSampleBias/9dbb51.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSampleBias/9dbb51.wgsl.expected.wgsl
index 4216bf6..8f61e65 100644
--- a/test/tint/builtins/gen/var/textureSampleBias/9dbb51.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleBias/9dbb51.wgsl.expected.wgsl
@@ -3,10 +3,10 @@
 @group(1) @binding(1) var arg_1 : sampler;
 
 fn textureSampleBias_9dbb51() {
-  var arg_2 = vec2<f32>();
+  var arg_2 = vec2<f32>(1.0f);
   var arg_3 = 1i;
   var arg_4 = 1.0f;
-  const arg_5 = vec2<i32>();
+  const arg_5 = vec2<i32>(1i);
   var res : vec4<f32> = textureSampleBias(arg_0, arg_1, arg_2, arg_3, arg_4, arg_5);
 }
 
diff --git a/test/tint/builtins/gen/var/textureSampleBias/a161cf.wgsl b/test/tint/builtins/gen/var/textureSampleBias/a161cf.wgsl
index 97f7474..dcbacbb 100644
--- a/test/tint/builtins/gen/var/textureSampleBias/a161cf.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleBias/a161cf.wgsl
@@ -25,9 +25,9 @@
 
 // fn textureSampleBias(texture: texture_2d<f32>, sampler: sampler, coords: vec2<f32>, bias: f32, @const offset: vec2<i32>) -> vec4<f32>
 fn textureSampleBias_a161cf() {
-  var arg_2 = vec2<f32>();
+  var arg_2 = vec2<f32>(1.f);
   var arg_3 = 1.f;
-  const arg_4 = vec2<i32>();
+  const arg_4 = vec2<i32>(1i);
   var res: vec4<f32> = textureSampleBias(arg_0, arg_1, arg_2, arg_3, arg_4);
 }
 
diff --git a/test/tint/builtins/gen/var/textureSampleBias/a161cf.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleBias/a161cf.wgsl.expected.dxc.hlsl
index 89d28fc..f9a8c9b 100644
--- a/test/tint/builtins/gen/var/textureSampleBias/a161cf.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleBias/a161cf.wgsl.expected.dxc.hlsl
@@ -2,9 +2,9 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleBias_a161cf() {
-  float2 arg_2 = (0.0f).xx;
+  float2 arg_2 = (1.0f).xx;
   float arg_3 = 1.0f;
-  float4 res = arg_0.SampleBias(arg_1, arg_2, arg_3, (0).xx);
+  float4 res = arg_0.SampleBias(arg_1, arg_2, arg_3, (1).xx);
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/var/textureSampleBias/a161cf.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleBias/a161cf.wgsl.expected.fxc.hlsl
index 89d28fc..f9a8c9b 100644
--- a/test/tint/builtins/gen/var/textureSampleBias/a161cf.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleBias/a161cf.wgsl.expected.fxc.hlsl
@@ -2,9 +2,9 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleBias_a161cf() {
-  float2 arg_2 = (0.0f).xx;
+  float2 arg_2 = (1.0f).xx;
   float arg_3 = 1.0f;
-  float4 res = arg_0.SampleBias(arg_1, arg_2, arg_3, (0).xx);
+  float4 res = arg_0.SampleBias(arg_1, arg_2, arg_3, (1).xx);
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/var/textureSampleBias/a161cf.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureSampleBias/a161cf.wgsl.expected.glsl
index fc23dd4..315d0e0 100644
--- a/test/tint/builtins/gen/var/textureSampleBias/a161cf.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureSampleBias/a161cf.wgsl.expected.glsl
@@ -4,9 +4,9 @@
 uniform highp sampler2D arg_0_arg_1;
 
 void textureSampleBias_a161cf() {
-  vec2 arg_2 = vec2(0.0f);
+  vec2 arg_2 = vec2(1.0f);
   float arg_3 = 1.0f;
-  vec4 res = textureOffset(arg_0_arg_1, arg_2, ivec2(0), arg_3);
+  vec4 res = textureOffset(arg_0_arg_1, arg_2, ivec2(1), arg_3);
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/var/textureSampleBias/a161cf.wgsl.expected.msl b/test/tint/builtins/gen/var/textureSampleBias/a161cf.wgsl.expected.msl
index 26145c4..040f251 100644
--- a/test/tint/builtins/gen/var/textureSampleBias/a161cf.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureSampleBias/a161cf.wgsl.expected.msl
@@ -2,9 +2,9 @@
 
 using namespace metal;
 void textureSampleBias_a161cf(texture2d<float, access::sample> tint_symbol, sampler tint_symbol_1) {
-  float2 arg_2 = float2(0.0f);
+  float2 arg_2 = float2(1.0f);
   float arg_3 = 1.0f;
-  float4 res = tint_symbol.sample(tint_symbol_1, arg_2, bias(arg_3), int2(0));
+  float4 res = tint_symbol.sample(tint_symbol_1, arg_2, bias(arg_3), int2(1));
 }
 
 fragment void fragment_main(texture2d<float, access::sample> tint_symbol_2 [[texture(0)]], sampler tint_symbol_3 [[sampler(0)]]) {
diff --git a/test/tint/builtins/gen/var/textureSampleBias/a161cf.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSampleBias/a161cf.wgsl.expected.spvasm
index b4513e6..ee1997a 100644
--- a/test/tint/builtins/gen/var/textureSampleBias/a161cf.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSampleBias/a161cf.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 37
+; Bound: 39
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -28,36 +28,38 @@
        %void = OpTypeVoid
           %8 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
-         %13 = OpConstantNull %v2float
-%_ptr_Function_v2float = OpTypePointer Function %v2float
     %float_1 = OpConstant %float 1
+         %14 = OpConstantComposite %v2float %float_1 %float_1
+%_ptr_Function_v2float = OpTypePointer Function %v2float
+         %17 = OpConstantNull %v2float
 %_ptr_Function_float = OpTypePointer Function %float
-         %19 = OpConstantNull %float
+         %20 = OpConstantNull %float
     %v4float = OpTypeVector %float 4
-         %24 = OpTypeSampledImage %3
+         %25 = OpTypeSampledImage %3
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
-         %30 = OpConstantNull %v2int
+      %int_1 = OpConstant %int 1
+         %32 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %33 = OpConstantNull %v4float
+         %35 = OpConstantNull %v4float
 %textureSampleBias_a161cf = OpFunction %void None %8
          %11 = OpLabel
-      %arg_2 = OpVariable %_ptr_Function_v2float Function %13
-      %arg_3 = OpVariable %_ptr_Function_float Function %19
-        %res = OpVariable %_ptr_Function_v4float Function %33
-               OpStore %arg_2 %13
+      %arg_2 = OpVariable %_ptr_Function_v2float Function %17
+      %arg_3 = OpVariable %_ptr_Function_float Function %20
+        %res = OpVariable %_ptr_Function_v4float Function %35
+               OpStore %arg_2 %14
                OpStore %arg_3 %float_1
-         %22 = OpLoad %7 %arg_1
-         %23 = OpLoad %3 %arg_0
-         %25 = OpSampledImage %24 %23 %22
-         %26 = OpLoad %v2float %arg_2
-         %27 = OpLoad %float %arg_3
-         %20 = OpImageSampleImplicitLod %v4float %25 %26 Bias|ConstOffset %27 %30
-               OpStore %res %20
+         %23 = OpLoad %7 %arg_1
+         %24 = OpLoad %3 %arg_0
+         %26 = OpSampledImage %25 %24 %23
+         %27 = OpLoad %v2float %arg_2
+         %28 = OpLoad %float %arg_3
+         %21 = OpImageSampleImplicitLod %v4float %26 %27 Bias|ConstOffset %28 %32
+               OpStore %res %21
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %8
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureSampleBias_a161cf
+         %37 = OpLabel
+         %38 = OpFunctionCall %void %textureSampleBias_a161cf
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureSampleBias/a161cf.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSampleBias/a161cf.wgsl.expected.wgsl
index 2c24a5f..877ccaf 100644
--- a/test/tint/builtins/gen/var/textureSampleBias/a161cf.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleBias/a161cf.wgsl.expected.wgsl
@@ -3,9 +3,9 @@
 @group(1) @binding(1) var arg_1 : sampler;
 
 fn textureSampleBias_a161cf() {
-  var arg_2 = vec2<f32>();
+  var arg_2 = vec2<f32>(1.0f);
   var arg_3 = 1.0f;
-  const arg_4 = vec2<i32>();
+  const arg_4 = vec2<i32>(1i);
   var res : vec4<f32> = textureSampleBias(arg_0, arg_1, arg_2, arg_3, arg_4);
 }
 
diff --git a/test/tint/builtins/gen/var/textureSampleBias/c6953d.wgsl b/test/tint/builtins/gen/var/textureSampleBias/c6953d.wgsl
index 666511e..7d318c3 100644
--- a/test/tint/builtins/gen/var/textureSampleBias/c6953d.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleBias/c6953d.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureSampleBias(texture: texture_cube_array<f32>, sampler: sampler, coords: vec3<f32>, array_index: u32, bias: f32) -> vec4<f32>
 fn textureSampleBias_c6953d() {
-  var arg_2 = vec3<f32>();
+  var arg_2 = vec3<f32>(1.f);
   var arg_3 = 1u;
   var arg_4 = 1.f;
   var res: vec4<f32> = textureSampleBias(arg_0, arg_1, arg_2, arg_3, arg_4);
diff --git a/test/tint/builtins/gen/var/textureSampleBias/c6953d.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleBias/c6953d.wgsl.expected.dxc.hlsl
index f8272ae..a059def 100644
--- a/test/tint/builtins/gen/var/textureSampleBias/c6953d.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleBias/c6953d.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleBias_c6953d() {
-  float3 arg_2 = (0.0f).xxx;
+  float3 arg_2 = (1.0f).xxx;
   uint arg_3 = 1u;
   float arg_4 = 1.0f;
   float4 res = arg_0.SampleBias(arg_1, float4(arg_2, float(arg_3)), arg_4);
diff --git a/test/tint/builtins/gen/var/textureSampleBias/c6953d.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleBias/c6953d.wgsl.expected.fxc.hlsl
index f8272ae..a059def 100644
--- a/test/tint/builtins/gen/var/textureSampleBias/c6953d.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleBias/c6953d.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleBias_c6953d() {
-  float3 arg_2 = (0.0f).xxx;
+  float3 arg_2 = (1.0f).xxx;
   uint arg_3 = 1u;
   float arg_4 = 1.0f;
   float4 res = arg_0.SampleBias(arg_1, float4(arg_2, float(arg_3)), arg_4);
diff --git a/test/tint/builtins/gen/var/textureSampleBias/c6953d.wgsl.expected.msl b/test/tint/builtins/gen/var/textureSampleBias/c6953d.wgsl.expected.msl
index b06231c..3995304 100644
--- a/test/tint/builtins/gen/var/textureSampleBias/c6953d.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureSampleBias/c6953d.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureSampleBias_c6953d(texturecube_array<float, access::sample> tint_symbol, sampler tint_symbol_1) {
-  float3 arg_2 = float3(0.0f);
+  float3 arg_2 = float3(1.0f);
   uint arg_3 = 1u;
   float arg_4 = 1.0f;
   float4 res = tint_symbol.sample(tint_symbol_1, arg_2, arg_3, bias(arg_4));
diff --git a/test/tint/builtins/gen/var/textureSampleBias/c6953d.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSampleBias/c6953d.wgsl.expected.spvasm
index 966a391..810f45d 100644
--- a/test/tint/builtins/gen/var/textureSampleBias/c6953d.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSampleBias/c6953d.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 45
+; Bound: 46
 ; Schema: 0
                OpCapability Shader
                OpCapability SampledCubeArray
@@ -30,45 +30,46 @@
        %void = OpTypeVoid
           %8 = OpTypeFunction %void
     %v3float = OpTypeVector %float 3
-         %13 = OpConstantNull %v3float
+    %float_1 = OpConstant %float 1
+         %14 = OpConstantComposite %v3float %float_1 %float_1 %float_1
 %_ptr_Function_v3float = OpTypePointer Function %v3float
+         %17 = OpConstantNull %v3float
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %20 = OpConstantNull %uint
-    %float_1 = OpConstant %float 1
+         %22 = OpConstantNull %uint
 %_ptr_Function_float = OpTypePointer Function %float
-         %24 = OpConstantNull %float
+         %25 = OpConstantNull %float
     %v4float = OpTypeVector %float 4
-         %29 = OpTypeSampledImage %3
+         %30 = OpTypeSampledImage %3
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %41 = OpConstantNull %v4float
+         %42 = OpConstantNull %v4float
 %textureSampleBias_c6953d = OpFunction %void None %8
          %11 = OpLabel
-      %arg_2 = OpVariable %_ptr_Function_v3float Function %13
-      %arg_3 = OpVariable %_ptr_Function_uint Function %20
-      %arg_4 = OpVariable %_ptr_Function_float Function %24
-        %res = OpVariable %_ptr_Function_v4float Function %41
-               OpStore %arg_2 %13
+      %arg_2 = OpVariable %_ptr_Function_v3float Function %17
+      %arg_3 = OpVariable %_ptr_Function_uint Function %22
+      %arg_4 = OpVariable %_ptr_Function_float Function %25
+        %res = OpVariable %_ptr_Function_v4float Function %42
+               OpStore %arg_2 %14
                OpStore %arg_3 %uint_1
                OpStore %arg_4 %float_1
-         %27 = OpLoad %7 %arg_1
-         %28 = OpLoad %3 %arg_0
-         %30 = OpSampledImage %29 %28 %27
-         %31 = OpLoad %v3float %arg_2
-         %32 = OpCompositeExtract %float %31 0
-         %33 = OpCompositeExtract %float %31 1
-         %34 = OpCompositeExtract %float %31 2
-         %36 = OpLoad %uint %arg_3
-         %35 = OpConvertUToF %float %36
-         %37 = OpCompositeConstruct %v4float %32 %33 %34 %35
-         %38 = OpLoad %float %arg_4
-         %25 = OpImageSampleImplicitLod %v4float %30 %37 Bias %38
-               OpStore %res %25
+         %28 = OpLoad %7 %arg_1
+         %29 = OpLoad %3 %arg_0
+         %31 = OpSampledImage %30 %29 %28
+         %32 = OpLoad %v3float %arg_2
+         %33 = OpCompositeExtract %float %32 0
+         %34 = OpCompositeExtract %float %32 1
+         %35 = OpCompositeExtract %float %32 2
+         %37 = OpLoad %uint %arg_3
+         %36 = OpConvertUToF %float %37
+         %38 = OpCompositeConstruct %v4float %33 %34 %35 %36
+         %39 = OpLoad %float %arg_4
+         %26 = OpImageSampleImplicitLod %v4float %31 %38 Bias %39
+               OpStore %res %26
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %8
-         %43 = OpLabel
-         %44 = OpFunctionCall %void %textureSampleBias_c6953d
+         %44 = OpLabel
+         %45 = OpFunctionCall %void %textureSampleBias_c6953d
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureSampleBias/c6953d.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSampleBias/c6953d.wgsl.expected.wgsl
index 31476a4..226af92 100644
--- a/test/tint/builtins/gen/var/textureSampleBias/c6953d.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleBias/c6953d.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(1) var arg_1 : sampler;
 
 fn textureSampleBias_c6953d() {
-  var arg_2 = vec3<f32>();
+  var arg_2 = vec3<f32>(1.0f);
   var arg_3 = 1u;
   var arg_4 = 1.0f;
   var res : vec4<f32> = textureSampleBias(arg_0, arg_1, arg_2, arg_3, arg_4);
diff --git a/test/tint/builtins/gen/var/textureSampleBias/d3fa1b.wgsl b/test/tint/builtins/gen/var/textureSampleBias/d3fa1b.wgsl
index b862459..f4b1477 100644
--- a/test/tint/builtins/gen/var/textureSampleBias/d3fa1b.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleBias/d3fa1b.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureSampleBias(texture: texture_3d<f32>, sampler: sampler, coords: vec3<f32>, bias: f32) -> vec4<f32>
 fn textureSampleBias_d3fa1b() {
-  var arg_2 = vec3<f32>();
+  var arg_2 = vec3<f32>(1.f);
   var arg_3 = 1.f;
   var res: vec4<f32> = textureSampleBias(arg_0, arg_1, arg_2, arg_3);
 }
diff --git a/test/tint/builtins/gen/var/textureSampleBias/d3fa1b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleBias/d3fa1b.wgsl.expected.dxc.hlsl
index 653f13e..c33134c 100644
--- a/test/tint/builtins/gen/var/textureSampleBias/d3fa1b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleBias/d3fa1b.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleBias_d3fa1b() {
-  float3 arg_2 = (0.0f).xxx;
+  float3 arg_2 = (1.0f).xxx;
   float arg_3 = 1.0f;
   float4 res = arg_0.SampleBias(arg_1, arg_2, arg_3);
 }
diff --git a/test/tint/builtins/gen/var/textureSampleBias/d3fa1b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleBias/d3fa1b.wgsl.expected.fxc.hlsl
index 653f13e..c33134c 100644
--- a/test/tint/builtins/gen/var/textureSampleBias/d3fa1b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleBias/d3fa1b.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleBias_d3fa1b() {
-  float3 arg_2 = (0.0f).xxx;
+  float3 arg_2 = (1.0f).xxx;
   float arg_3 = 1.0f;
   float4 res = arg_0.SampleBias(arg_1, arg_2, arg_3);
 }
diff --git a/test/tint/builtins/gen/var/textureSampleBias/d3fa1b.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureSampleBias/d3fa1b.wgsl.expected.glsl
index 19f7ed4..9045a9b 100644
--- a/test/tint/builtins/gen/var/textureSampleBias/d3fa1b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureSampleBias/d3fa1b.wgsl.expected.glsl
@@ -4,7 +4,7 @@
 uniform highp sampler3D arg_0_arg_1;
 
 void textureSampleBias_d3fa1b() {
-  vec3 arg_2 = vec3(0.0f);
+  vec3 arg_2 = vec3(1.0f);
   float arg_3 = 1.0f;
   vec4 res = texture(arg_0_arg_1, arg_2, arg_3);
 }
diff --git a/test/tint/builtins/gen/var/textureSampleBias/d3fa1b.wgsl.expected.msl b/test/tint/builtins/gen/var/textureSampleBias/d3fa1b.wgsl.expected.msl
index d0ca622..debd918 100644
--- a/test/tint/builtins/gen/var/textureSampleBias/d3fa1b.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureSampleBias/d3fa1b.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureSampleBias_d3fa1b(texture3d<float, access::sample> tint_symbol, sampler tint_symbol_1) {
-  float3 arg_2 = float3(0.0f);
+  float3 arg_2 = float3(1.0f);
   float arg_3 = 1.0f;
   float4 res = tint_symbol.sample(tint_symbol_1, arg_2, bias(arg_3));
 }
diff --git a/test/tint/builtins/gen/var/textureSampleBias/d3fa1b.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSampleBias/d3fa1b.wgsl.expected.spvasm
index efaf608..d3a2da1 100644
--- a/test/tint/builtins/gen/var/textureSampleBias/d3fa1b.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSampleBias/d3fa1b.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 34
+; Bound: 35
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -28,33 +28,34 @@
        %void = OpTypeVoid
           %8 = OpTypeFunction %void
     %v3float = OpTypeVector %float 3
-         %13 = OpConstantNull %v3float
-%_ptr_Function_v3float = OpTypePointer Function %v3float
     %float_1 = OpConstant %float 1
+         %14 = OpConstantComposite %v3float %float_1 %float_1 %float_1
+%_ptr_Function_v3float = OpTypePointer Function %v3float
+         %17 = OpConstantNull %v3float
 %_ptr_Function_float = OpTypePointer Function %float
-         %19 = OpConstantNull %float
+         %20 = OpConstantNull %float
     %v4float = OpTypeVector %float 4
-         %24 = OpTypeSampledImage %3
+         %25 = OpTypeSampledImage %3
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %30 = OpConstantNull %v4float
+         %31 = OpConstantNull %v4float
 %textureSampleBias_d3fa1b = OpFunction %void None %8
          %11 = OpLabel
-      %arg_2 = OpVariable %_ptr_Function_v3float Function %13
-      %arg_3 = OpVariable %_ptr_Function_float Function %19
-        %res = OpVariable %_ptr_Function_v4float Function %30
-               OpStore %arg_2 %13
+      %arg_2 = OpVariable %_ptr_Function_v3float Function %17
+      %arg_3 = OpVariable %_ptr_Function_float Function %20
+        %res = OpVariable %_ptr_Function_v4float Function %31
+               OpStore %arg_2 %14
                OpStore %arg_3 %float_1
-         %22 = OpLoad %7 %arg_1
-         %23 = OpLoad %3 %arg_0
-         %25 = OpSampledImage %24 %23 %22
-         %26 = OpLoad %v3float %arg_2
-         %27 = OpLoad %float %arg_3
-         %20 = OpImageSampleImplicitLod %v4float %25 %26 Bias %27
-               OpStore %res %20
+         %23 = OpLoad %7 %arg_1
+         %24 = OpLoad %3 %arg_0
+         %26 = OpSampledImage %25 %24 %23
+         %27 = OpLoad %v3float %arg_2
+         %28 = OpLoad %float %arg_3
+         %21 = OpImageSampleImplicitLod %v4float %26 %27 Bias %28
+               OpStore %res %21
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %8
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureSampleBias_d3fa1b
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureSampleBias_d3fa1b
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureSampleBias/d3fa1b.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSampleBias/d3fa1b.wgsl.expected.wgsl
index c7a5231..6bbdd3a 100644
--- a/test/tint/builtins/gen/var/textureSampleBias/d3fa1b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleBias/d3fa1b.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(1) var arg_1 : sampler;
 
 fn textureSampleBias_d3fa1b() {
-  var arg_2 = vec3<f32>();
+  var arg_2 = vec3<f32>(1.0f);
   var arg_3 = 1.0f;
   var res : vec4<f32> = textureSampleBias(arg_0, arg_1, arg_2, arg_3);
 }
diff --git a/test/tint/builtins/gen/var/textureSampleBias/eed7c4.wgsl b/test/tint/builtins/gen/var/textureSampleBias/eed7c4.wgsl
index 7c7de5d..e5679f7 100644
--- a/test/tint/builtins/gen/var/textureSampleBias/eed7c4.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleBias/eed7c4.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureSampleBias(texture: texture_cube_array<f32>, sampler: sampler, coords: vec3<f32>, array_index: i32, bias: f32) -> vec4<f32>
 fn textureSampleBias_eed7c4() {
-  var arg_2 = vec3<f32>();
+  var arg_2 = vec3<f32>(1.f);
   var arg_3 = 1i;
   var arg_4 = 1.f;
   var res: vec4<f32> = textureSampleBias(arg_0, arg_1, arg_2, arg_3, arg_4);
diff --git a/test/tint/builtins/gen/var/textureSampleBias/eed7c4.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleBias/eed7c4.wgsl.expected.dxc.hlsl
index 4c225b0..02d7069 100644
--- a/test/tint/builtins/gen/var/textureSampleBias/eed7c4.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleBias/eed7c4.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleBias_eed7c4() {
-  float3 arg_2 = (0.0f).xxx;
+  float3 arg_2 = (1.0f).xxx;
   int arg_3 = 1;
   float arg_4 = 1.0f;
   float4 res = arg_0.SampleBias(arg_1, float4(arg_2, float(arg_3)), arg_4);
diff --git a/test/tint/builtins/gen/var/textureSampleBias/eed7c4.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleBias/eed7c4.wgsl.expected.fxc.hlsl
index 4c225b0..02d7069 100644
--- a/test/tint/builtins/gen/var/textureSampleBias/eed7c4.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleBias/eed7c4.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleBias_eed7c4() {
-  float3 arg_2 = (0.0f).xxx;
+  float3 arg_2 = (1.0f).xxx;
   int arg_3 = 1;
   float arg_4 = 1.0f;
   float4 res = arg_0.SampleBias(arg_1, float4(arg_2, float(arg_3)), arg_4);
diff --git a/test/tint/builtins/gen/var/textureSampleBias/eed7c4.wgsl.expected.msl b/test/tint/builtins/gen/var/textureSampleBias/eed7c4.wgsl.expected.msl
index 5017e44..1ff60f1 100644
--- a/test/tint/builtins/gen/var/textureSampleBias/eed7c4.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureSampleBias/eed7c4.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureSampleBias_eed7c4(texturecube_array<float, access::sample> tint_symbol, sampler tint_symbol_1) {
-  float3 arg_2 = float3(0.0f);
+  float3 arg_2 = float3(1.0f);
   int arg_3 = 1;
   float arg_4 = 1.0f;
   float4 res = tint_symbol.sample(tint_symbol_1, arg_2, arg_3, bias(arg_4));
diff --git a/test/tint/builtins/gen/var/textureSampleBias/eed7c4.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSampleBias/eed7c4.wgsl.expected.spvasm
index 82c77fb..6f53582 100644
--- a/test/tint/builtins/gen/var/textureSampleBias/eed7c4.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSampleBias/eed7c4.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 45
+; Bound: 46
 ; Schema: 0
                OpCapability Shader
                OpCapability SampledCubeArray
@@ -30,45 +30,46 @@
        %void = OpTypeVoid
           %8 = OpTypeFunction %void
     %v3float = OpTypeVector %float 3
-         %13 = OpConstantNull %v3float
+    %float_1 = OpConstant %float 1
+         %14 = OpConstantComposite %v3float %float_1 %float_1 %float_1
 %_ptr_Function_v3float = OpTypePointer Function %v3float
+         %17 = OpConstantNull %v3float
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
-         %20 = OpConstantNull %int
-    %float_1 = OpConstant %float 1
+         %22 = OpConstantNull %int
 %_ptr_Function_float = OpTypePointer Function %float
-         %24 = OpConstantNull %float
+         %25 = OpConstantNull %float
     %v4float = OpTypeVector %float 4
-         %29 = OpTypeSampledImage %3
+         %30 = OpTypeSampledImage %3
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %41 = OpConstantNull %v4float
+         %42 = OpConstantNull %v4float
 %textureSampleBias_eed7c4 = OpFunction %void None %8
          %11 = OpLabel
-      %arg_2 = OpVariable %_ptr_Function_v3float Function %13
-      %arg_3 = OpVariable %_ptr_Function_int Function %20
-      %arg_4 = OpVariable %_ptr_Function_float Function %24
-        %res = OpVariable %_ptr_Function_v4float Function %41
-               OpStore %arg_2 %13
+      %arg_2 = OpVariable %_ptr_Function_v3float Function %17
+      %arg_3 = OpVariable %_ptr_Function_int Function %22
+      %arg_4 = OpVariable %_ptr_Function_float Function %25
+        %res = OpVariable %_ptr_Function_v4float Function %42
+               OpStore %arg_2 %14
                OpStore %arg_3 %int_1
                OpStore %arg_4 %float_1
-         %27 = OpLoad %7 %arg_1
-         %28 = OpLoad %3 %arg_0
-         %30 = OpSampledImage %29 %28 %27
-         %31 = OpLoad %v3float %arg_2
-         %32 = OpCompositeExtract %float %31 0
-         %33 = OpCompositeExtract %float %31 1
-         %34 = OpCompositeExtract %float %31 2
-         %36 = OpLoad %int %arg_3
-         %35 = OpConvertSToF %float %36
-         %37 = OpCompositeConstruct %v4float %32 %33 %34 %35
-         %38 = OpLoad %float %arg_4
-         %25 = OpImageSampleImplicitLod %v4float %30 %37 Bias %38
-               OpStore %res %25
+         %28 = OpLoad %7 %arg_1
+         %29 = OpLoad %3 %arg_0
+         %31 = OpSampledImage %30 %29 %28
+         %32 = OpLoad %v3float %arg_2
+         %33 = OpCompositeExtract %float %32 0
+         %34 = OpCompositeExtract %float %32 1
+         %35 = OpCompositeExtract %float %32 2
+         %37 = OpLoad %int %arg_3
+         %36 = OpConvertSToF %float %37
+         %38 = OpCompositeConstruct %v4float %33 %34 %35 %36
+         %39 = OpLoad %float %arg_4
+         %26 = OpImageSampleImplicitLod %v4float %31 %38 Bias %39
+               OpStore %res %26
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %8
-         %43 = OpLabel
-         %44 = OpFunctionCall %void %textureSampleBias_eed7c4
+         %44 = OpLabel
+         %45 = OpFunctionCall %void %textureSampleBias_eed7c4
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureSampleBias/eed7c4.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSampleBias/eed7c4.wgsl.expected.wgsl
index d5a885b..370747d 100644
--- a/test/tint/builtins/gen/var/textureSampleBias/eed7c4.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleBias/eed7c4.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(1) var arg_1 : sampler;
 
 fn textureSampleBias_eed7c4() {
-  var arg_2 = vec3<f32>();
+  var arg_2 = vec3<f32>(1.0f);
   var arg_3 = 1i;
   var arg_4 = 1.0f;
   var res : vec4<f32> = textureSampleBias(arg_0, arg_1, arg_2, arg_3, arg_4);
diff --git a/test/tint/builtins/gen/var/textureSampleCompare/1912e5.wgsl b/test/tint/builtins/gen/var/textureSampleCompare/1912e5.wgsl
index 25c3c54..cbc3437 100644
--- a/test/tint/builtins/gen/var/textureSampleCompare/1912e5.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleCompare/1912e5.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureSampleCompare(texture: texture_depth_cube_array, sampler: sampler_comparison, coords: vec3<f32>, array_index: u32, depth_ref: f32) -> f32
 fn textureSampleCompare_1912e5() {
-  var arg_2 = vec3<f32>();
+  var arg_2 = vec3<f32>(1.f);
   var arg_3 = 1u;
   var arg_4 = 1.f;
   var res: f32 = textureSampleCompare(arg_0, arg_1, arg_2, arg_3, arg_4);
diff --git a/test/tint/builtins/gen/var/textureSampleCompare/1912e5.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleCompare/1912e5.wgsl.expected.dxc.hlsl
index 88f73a7..5b8163f 100644
--- a/test/tint/builtins/gen/var/textureSampleCompare/1912e5.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleCompare/1912e5.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerComparisonState arg_1 : register(s1, space1);
 
 void textureSampleCompare_1912e5() {
-  float3 arg_2 = (0.0f).xxx;
+  float3 arg_2 = (1.0f).xxx;
   uint arg_3 = 1u;
   float arg_4 = 1.0f;
   float res = arg_0.SampleCmp(arg_1, float4(arg_2, float(arg_3)), arg_4);
diff --git a/test/tint/builtins/gen/var/textureSampleCompare/1912e5.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleCompare/1912e5.wgsl.expected.fxc.hlsl
index 88f73a7..5b8163f 100644
--- a/test/tint/builtins/gen/var/textureSampleCompare/1912e5.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleCompare/1912e5.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerComparisonState arg_1 : register(s1, space1);
 
 void textureSampleCompare_1912e5() {
-  float3 arg_2 = (0.0f).xxx;
+  float3 arg_2 = (1.0f).xxx;
   uint arg_3 = 1u;
   float arg_4 = 1.0f;
   float res = arg_0.SampleCmp(arg_1, float4(arg_2, float(arg_3)), arg_4);
diff --git a/test/tint/builtins/gen/var/textureSampleCompare/1912e5.wgsl.expected.msl b/test/tint/builtins/gen/var/textureSampleCompare/1912e5.wgsl.expected.msl
index 223d875..b92236a 100644
--- a/test/tint/builtins/gen/var/textureSampleCompare/1912e5.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureSampleCompare/1912e5.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureSampleCompare_1912e5(depthcube_array<float, access::sample> tint_symbol, sampler tint_symbol_1) {
-  float3 arg_2 = float3(0.0f);
+  float3 arg_2 = float3(1.0f);
   uint arg_3 = 1u;
   float arg_4 = 1.0f;
   float res = tint_symbol.sample_compare(tint_symbol_1, arg_2, arg_3, arg_4);
diff --git a/test/tint/builtins/gen/var/textureSampleCompare/1912e5.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSampleCompare/1912e5.wgsl.expected.spvasm
index 1cd357b..4b70484 100644
--- a/test/tint/builtins/gen/var/textureSampleCompare/1912e5.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSampleCompare/1912e5.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 43
+; Bound: 44
 ; Schema: 0
                OpCapability Shader
                OpCapability SampledCubeArray
@@ -30,43 +30,44 @@
        %void = OpTypeVoid
           %8 = OpTypeFunction %void
     %v3float = OpTypeVector %float 3
-         %13 = OpConstantNull %v3float
+    %float_1 = OpConstant %float 1
+         %14 = OpConstantComposite %v3float %float_1 %float_1 %float_1
 %_ptr_Function_v3float = OpTypePointer Function %v3float
+         %17 = OpConstantNull %v3float
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %20 = OpConstantNull %uint
-    %float_1 = OpConstant %float 1
+         %22 = OpConstantNull %uint
 %_ptr_Function_float = OpTypePointer Function %float
-         %24 = OpConstantNull %float
-         %28 = OpTypeSampledImage %3
+         %25 = OpConstantNull %float
+         %29 = OpTypeSampledImage %3
     %v4float = OpTypeVector %float 4
 %textureSampleCompare_1912e5 = OpFunction %void None %8
          %11 = OpLabel
-      %arg_2 = OpVariable %_ptr_Function_v3float Function %13
-      %arg_3 = OpVariable %_ptr_Function_uint Function %20
-      %arg_4 = OpVariable %_ptr_Function_float Function %24
-        %res = OpVariable %_ptr_Function_float Function %24
-               OpStore %arg_2 %13
+      %arg_2 = OpVariable %_ptr_Function_v3float Function %17
+      %arg_3 = OpVariable %_ptr_Function_uint Function %22
+      %arg_4 = OpVariable %_ptr_Function_float Function %25
+        %res = OpVariable %_ptr_Function_float Function %25
+               OpStore %arg_2 %14
                OpStore %arg_3 %uint_1
                OpStore %arg_4 %float_1
-         %26 = OpLoad %7 %arg_1
-         %27 = OpLoad %3 %arg_0
-         %29 = OpSampledImage %28 %27 %26
-         %31 = OpLoad %v3float %arg_2
-         %32 = OpCompositeExtract %float %31 0
-         %33 = OpCompositeExtract %float %31 1
-         %34 = OpCompositeExtract %float %31 2
-         %36 = OpLoad %uint %arg_3
-         %35 = OpConvertUToF %float %36
-         %37 = OpCompositeConstruct %v4float %32 %33 %34 %35
-         %38 = OpLoad %float %arg_4
-         %25 = OpImageSampleDrefImplicitLod %float %29 %37 %38
-               OpStore %res %25
+         %27 = OpLoad %7 %arg_1
+         %28 = OpLoad %3 %arg_0
+         %30 = OpSampledImage %29 %28 %27
+         %32 = OpLoad %v3float %arg_2
+         %33 = OpCompositeExtract %float %32 0
+         %34 = OpCompositeExtract %float %32 1
+         %35 = OpCompositeExtract %float %32 2
+         %37 = OpLoad %uint %arg_3
+         %36 = OpConvertUToF %float %37
+         %38 = OpCompositeConstruct %v4float %33 %34 %35 %36
+         %39 = OpLoad %float %arg_4
+         %26 = OpImageSampleDrefImplicitLod %float %30 %38 %39
+               OpStore %res %26
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %8
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureSampleCompare_1912e5
+         %42 = OpLabel
+         %43 = OpFunctionCall %void %textureSampleCompare_1912e5
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureSampleCompare/1912e5.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSampleCompare/1912e5.wgsl.expected.wgsl
index c8a2275..6668830 100644
--- a/test/tint/builtins/gen/var/textureSampleCompare/1912e5.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleCompare/1912e5.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(1) var arg_1 : sampler_comparison;
 
 fn textureSampleCompare_1912e5() {
-  var arg_2 = vec3<f32>();
+  var arg_2 = vec3<f32>(1.0f);
   var arg_3 = 1u;
   var arg_4 = 1.0f;
   var res : f32 = textureSampleCompare(arg_0, arg_1, arg_2, arg_3, arg_4);
diff --git a/test/tint/builtins/gen/var/textureSampleCompare/3a5923.wgsl b/test/tint/builtins/gen/var/textureSampleCompare/3a5923.wgsl
index e10e503..fe0c27f 100644
--- a/test/tint/builtins/gen/var/textureSampleCompare/3a5923.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleCompare/3a5923.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureSampleCompare(texture: texture_depth_2d, sampler: sampler_comparison, coords: vec2<f32>, depth_ref: f32) -> f32
 fn textureSampleCompare_3a5923() {
-  var arg_2 = vec2<f32>();
+  var arg_2 = vec2<f32>(1.f);
   var arg_3 = 1.f;
   var res: f32 = textureSampleCompare(arg_0, arg_1, arg_2, arg_3);
 }
diff --git a/test/tint/builtins/gen/var/textureSampleCompare/3a5923.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleCompare/3a5923.wgsl.expected.dxc.hlsl
index 3bc8810..57c2cf9 100644
--- a/test/tint/builtins/gen/var/textureSampleCompare/3a5923.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleCompare/3a5923.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerComparisonState arg_1 : register(s1, space1);
 
 void textureSampleCompare_3a5923() {
-  float2 arg_2 = (0.0f).xx;
+  float2 arg_2 = (1.0f).xx;
   float arg_3 = 1.0f;
   float res = arg_0.SampleCmp(arg_1, arg_2, arg_3);
 }
diff --git a/test/tint/builtins/gen/var/textureSampleCompare/3a5923.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleCompare/3a5923.wgsl.expected.fxc.hlsl
index 3bc8810..57c2cf9 100644
--- a/test/tint/builtins/gen/var/textureSampleCompare/3a5923.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleCompare/3a5923.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerComparisonState arg_1 : register(s1, space1);
 
 void textureSampleCompare_3a5923() {
-  float2 arg_2 = (0.0f).xx;
+  float2 arg_2 = (1.0f).xx;
   float arg_3 = 1.0f;
   float res = arg_0.SampleCmp(arg_1, arg_2, arg_3);
 }
diff --git a/test/tint/builtins/gen/var/textureSampleCompare/3a5923.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureSampleCompare/3a5923.wgsl.expected.glsl
index 3de47a5..0bb26bb 100644
--- a/test/tint/builtins/gen/var/textureSampleCompare/3a5923.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureSampleCompare/3a5923.wgsl.expected.glsl
@@ -4,7 +4,7 @@
 uniform highp sampler2DShadow arg_0_arg_1;
 
 void textureSampleCompare_3a5923() {
-  vec2 arg_2 = vec2(0.0f);
+  vec2 arg_2 = vec2(1.0f);
   float arg_3 = 1.0f;
   float res = texture(arg_0_arg_1, vec3(arg_2, arg_3));
 }
diff --git a/test/tint/builtins/gen/var/textureSampleCompare/3a5923.wgsl.expected.msl b/test/tint/builtins/gen/var/textureSampleCompare/3a5923.wgsl.expected.msl
index a4ccb01..6ca4c0d 100644
--- a/test/tint/builtins/gen/var/textureSampleCompare/3a5923.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureSampleCompare/3a5923.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureSampleCompare_3a5923(depth2d<float, access::sample> tint_symbol, sampler tint_symbol_1) {
-  float2 arg_2 = float2(0.0f);
+  float2 arg_2 = float2(1.0f);
   float arg_3 = 1.0f;
   float res = tint_symbol.sample_compare(tint_symbol_1, arg_2, arg_3);
 }
diff --git a/test/tint/builtins/gen/var/textureSampleCompare/3a5923.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSampleCompare/3a5923.wgsl.expected.spvasm
index b8f13d0..f9f7536 100644
--- a/test/tint/builtins/gen/var/textureSampleCompare/3a5923.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSampleCompare/3a5923.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 31
+; Bound: 32
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -28,30 +28,31 @@
        %void = OpTypeVoid
           %8 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
-         %13 = OpConstantNull %v2float
-%_ptr_Function_v2float = OpTypePointer Function %v2float
     %float_1 = OpConstant %float 1
+         %14 = OpConstantComposite %v2float %float_1 %float_1
+%_ptr_Function_v2float = OpTypePointer Function %v2float
+         %17 = OpConstantNull %v2float
 %_ptr_Function_float = OpTypePointer Function %float
-         %19 = OpConstantNull %float
-         %23 = OpTypeSampledImage %3
+         %20 = OpConstantNull %float
+         %24 = OpTypeSampledImage %3
 %textureSampleCompare_3a5923 = OpFunction %void None %8
          %11 = OpLabel
-      %arg_2 = OpVariable %_ptr_Function_v2float Function %13
-      %arg_3 = OpVariable %_ptr_Function_float Function %19
-        %res = OpVariable %_ptr_Function_float Function %19
-               OpStore %arg_2 %13
+      %arg_2 = OpVariable %_ptr_Function_v2float Function %17
+      %arg_3 = OpVariable %_ptr_Function_float Function %20
+        %res = OpVariable %_ptr_Function_float Function %20
+               OpStore %arg_2 %14
                OpStore %arg_3 %float_1
-         %21 = OpLoad %7 %arg_1
-         %22 = OpLoad %3 %arg_0
-         %24 = OpSampledImage %23 %22 %21
-         %25 = OpLoad %v2float %arg_2
-         %26 = OpLoad %float %arg_3
-         %20 = OpImageSampleDrefImplicitLod %float %24 %25 %26
-               OpStore %res %20
+         %22 = OpLoad %7 %arg_1
+         %23 = OpLoad %3 %arg_0
+         %25 = OpSampledImage %24 %23 %22
+         %26 = OpLoad %v2float %arg_2
+         %27 = OpLoad %float %arg_3
+         %21 = OpImageSampleDrefImplicitLod %float %25 %26 %27
+               OpStore %res %21
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %8
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %textureSampleCompare_3a5923
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %textureSampleCompare_3a5923
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureSampleCompare/3a5923.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSampleCompare/3a5923.wgsl.expected.wgsl
index 9afca36..bd314d6 100644
--- a/test/tint/builtins/gen/var/textureSampleCompare/3a5923.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleCompare/3a5923.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(1) var arg_1 : sampler_comparison;
 
 fn textureSampleCompare_3a5923() {
-  var arg_2 = vec2<f32>();
+  var arg_2 = vec2<f32>(1.0f);
   var arg_3 = 1.0f;
   var res : f32 = textureSampleCompare(arg_0, arg_1, arg_2, arg_3);
 }
diff --git a/test/tint/builtins/gen/var/textureSampleCompare/63fb83.wgsl b/test/tint/builtins/gen/var/textureSampleCompare/63fb83.wgsl
index 02fe640..e9ae16b 100644
--- a/test/tint/builtins/gen/var/textureSampleCompare/63fb83.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleCompare/63fb83.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureSampleCompare(texture: texture_depth_cube, sampler: sampler_comparison, coords: vec3<f32>, depth_ref: f32) -> f32
 fn textureSampleCompare_63fb83() {
-  var arg_2 = vec3<f32>();
+  var arg_2 = vec3<f32>(1.f);
   var arg_3 = 1.f;
   var res: f32 = textureSampleCompare(arg_0, arg_1, arg_2, arg_3);
 }
diff --git a/test/tint/builtins/gen/var/textureSampleCompare/63fb83.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleCompare/63fb83.wgsl.expected.dxc.hlsl
index 01de180..7d3ca77 100644
--- a/test/tint/builtins/gen/var/textureSampleCompare/63fb83.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleCompare/63fb83.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerComparisonState arg_1 : register(s1, space1);
 
 void textureSampleCompare_63fb83() {
-  float3 arg_2 = (0.0f).xxx;
+  float3 arg_2 = (1.0f).xxx;
   float arg_3 = 1.0f;
   float res = arg_0.SampleCmp(arg_1, arg_2, arg_3);
 }
diff --git a/test/tint/builtins/gen/var/textureSampleCompare/63fb83.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleCompare/63fb83.wgsl.expected.fxc.hlsl
index 01de180..7d3ca77 100644
--- a/test/tint/builtins/gen/var/textureSampleCompare/63fb83.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleCompare/63fb83.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerComparisonState arg_1 : register(s1, space1);
 
 void textureSampleCompare_63fb83() {
-  float3 arg_2 = (0.0f).xxx;
+  float3 arg_2 = (1.0f).xxx;
   float arg_3 = 1.0f;
   float res = arg_0.SampleCmp(arg_1, arg_2, arg_3);
 }
diff --git a/test/tint/builtins/gen/var/textureSampleCompare/63fb83.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureSampleCompare/63fb83.wgsl.expected.glsl
index d83c925..9a48a46 100644
--- a/test/tint/builtins/gen/var/textureSampleCompare/63fb83.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureSampleCompare/63fb83.wgsl.expected.glsl
@@ -4,7 +4,7 @@
 uniform highp samplerCubeShadow arg_0_arg_1;
 
 void textureSampleCompare_63fb83() {
-  vec3 arg_2 = vec3(0.0f);
+  vec3 arg_2 = vec3(1.0f);
   float arg_3 = 1.0f;
   float res = texture(arg_0_arg_1, vec4(arg_2, arg_3));
 }
diff --git a/test/tint/builtins/gen/var/textureSampleCompare/63fb83.wgsl.expected.msl b/test/tint/builtins/gen/var/textureSampleCompare/63fb83.wgsl.expected.msl
index 826159e..d9fecce 100644
--- a/test/tint/builtins/gen/var/textureSampleCompare/63fb83.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureSampleCompare/63fb83.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureSampleCompare_63fb83(depthcube<float, access::sample> tint_symbol, sampler tint_symbol_1) {
-  float3 arg_2 = float3(0.0f);
+  float3 arg_2 = float3(1.0f);
   float arg_3 = 1.0f;
   float res = tint_symbol.sample_compare(tint_symbol_1, arg_2, arg_3);
 }
diff --git a/test/tint/builtins/gen/var/textureSampleCompare/63fb83.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSampleCompare/63fb83.wgsl.expected.spvasm
index dde09fd..eab7849 100644
--- a/test/tint/builtins/gen/var/textureSampleCompare/63fb83.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSampleCompare/63fb83.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 31
+; Bound: 32
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -28,30 +28,31 @@
        %void = OpTypeVoid
           %8 = OpTypeFunction %void
     %v3float = OpTypeVector %float 3
-         %13 = OpConstantNull %v3float
-%_ptr_Function_v3float = OpTypePointer Function %v3float
     %float_1 = OpConstant %float 1
+         %14 = OpConstantComposite %v3float %float_1 %float_1 %float_1
+%_ptr_Function_v3float = OpTypePointer Function %v3float
+         %17 = OpConstantNull %v3float
 %_ptr_Function_float = OpTypePointer Function %float
-         %19 = OpConstantNull %float
-         %23 = OpTypeSampledImage %3
+         %20 = OpConstantNull %float
+         %24 = OpTypeSampledImage %3
 %textureSampleCompare_63fb83 = OpFunction %void None %8
          %11 = OpLabel
-      %arg_2 = OpVariable %_ptr_Function_v3float Function %13
-      %arg_3 = OpVariable %_ptr_Function_float Function %19
-        %res = OpVariable %_ptr_Function_float Function %19
-               OpStore %arg_2 %13
+      %arg_2 = OpVariable %_ptr_Function_v3float Function %17
+      %arg_3 = OpVariable %_ptr_Function_float Function %20
+        %res = OpVariable %_ptr_Function_float Function %20
+               OpStore %arg_2 %14
                OpStore %arg_3 %float_1
-         %21 = OpLoad %7 %arg_1
-         %22 = OpLoad %3 %arg_0
-         %24 = OpSampledImage %23 %22 %21
-         %25 = OpLoad %v3float %arg_2
-         %26 = OpLoad %float %arg_3
-         %20 = OpImageSampleDrefImplicitLod %float %24 %25 %26
-               OpStore %res %20
+         %22 = OpLoad %7 %arg_1
+         %23 = OpLoad %3 %arg_0
+         %25 = OpSampledImage %24 %23 %22
+         %26 = OpLoad %v3float %arg_2
+         %27 = OpLoad %float %arg_3
+         %21 = OpImageSampleDrefImplicitLod %float %25 %26 %27
+               OpStore %res %21
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %8
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %textureSampleCompare_63fb83
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %textureSampleCompare_63fb83
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureSampleCompare/63fb83.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSampleCompare/63fb83.wgsl.expected.wgsl
index b52c590..5a5a765 100644
--- a/test/tint/builtins/gen/var/textureSampleCompare/63fb83.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleCompare/63fb83.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(1) var arg_1 : sampler_comparison;
 
 fn textureSampleCompare_63fb83() {
-  var arg_2 = vec3<f32>();
+  var arg_2 = vec3<f32>(1.0f);
   var arg_3 = 1.0f;
   var res : f32 = textureSampleCompare(arg_0, arg_1, arg_2, arg_3);
 }
diff --git a/test/tint/builtins/gen/var/textureSampleCompare/7b5025.wgsl b/test/tint/builtins/gen/var/textureSampleCompare/7b5025.wgsl
index 88b89b0..04a3439 100644
--- a/test/tint/builtins/gen/var/textureSampleCompare/7b5025.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleCompare/7b5025.wgsl
@@ -25,10 +25,10 @@
 
 // fn textureSampleCompare(texture: texture_depth_2d_array, sampler: sampler_comparison, coords: vec2<f32>, array_index: u32, depth_ref: f32, @const offset: vec2<i32>) -> f32
 fn textureSampleCompare_7b5025() {
-  var arg_2 = vec2<f32>();
+  var arg_2 = vec2<f32>(1.f);
   var arg_3 = 1u;
   var arg_4 = 1.f;
-  const arg_5 = vec2<i32>();
+  const arg_5 = vec2<i32>(1i);
   var res: f32 = textureSampleCompare(arg_0, arg_1, arg_2, arg_3, arg_4, arg_5);
 }
 
diff --git a/test/tint/builtins/gen/var/textureSampleCompare/7b5025.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleCompare/7b5025.wgsl.expected.dxc.hlsl
index e57c768..b198097 100644
--- a/test/tint/builtins/gen/var/textureSampleCompare/7b5025.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleCompare/7b5025.wgsl.expected.dxc.hlsl
@@ -2,10 +2,10 @@
 SamplerComparisonState arg_1 : register(s1, space1);
 
 void textureSampleCompare_7b5025() {
-  float2 arg_2 = (0.0f).xx;
+  float2 arg_2 = (1.0f).xx;
   uint arg_3 = 1u;
   float arg_4 = 1.0f;
-  float res = arg_0.SampleCmp(arg_1, float3(arg_2, float(arg_3)), arg_4, (0).xx);
+  float res = arg_0.SampleCmp(arg_1, float3(arg_2, float(arg_3)), arg_4, (1).xx);
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/var/textureSampleCompare/7b5025.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleCompare/7b5025.wgsl.expected.fxc.hlsl
index e57c768..b198097 100644
--- a/test/tint/builtins/gen/var/textureSampleCompare/7b5025.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleCompare/7b5025.wgsl.expected.fxc.hlsl
@@ -2,10 +2,10 @@
 SamplerComparisonState arg_1 : register(s1, space1);
 
 void textureSampleCompare_7b5025() {
-  float2 arg_2 = (0.0f).xx;
+  float2 arg_2 = (1.0f).xx;
   uint arg_3 = 1u;
   float arg_4 = 1.0f;
-  float res = arg_0.SampleCmp(arg_1, float3(arg_2, float(arg_3)), arg_4, (0).xx);
+  float res = arg_0.SampleCmp(arg_1, float3(arg_2, float(arg_3)), arg_4, (1).xx);
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/var/textureSampleCompare/7b5025.wgsl.expected.msl b/test/tint/builtins/gen/var/textureSampleCompare/7b5025.wgsl.expected.msl
index 1a601d2..4fc5720 100644
--- a/test/tint/builtins/gen/var/textureSampleCompare/7b5025.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureSampleCompare/7b5025.wgsl.expected.msl
@@ -2,10 +2,10 @@
 
 using namespace metal;
 void textureSampleCompare_7b5025(depth2d_array<float, access::sample> tint_symbol, sampler tint_symbol_1) {
-  float2 arg_2 = float2(0.0f);
+  float2 arg_2 = float2(1.0f);
   uint arg_3 = 1u;
   float arg_4 = 1.0f;
-  float res = tint_symbol.sample_compare(tint_symbol_1, arg_2, arg_3, arg_4, int2(0));
+  float res = tint_symbol.sample_compare(tint_symbol_1, arg_2, arg_3, arg_4, int2(1));
 }
 
 fragment void fragment_main(depth2d_array<float, access::sample> tint_symbol_2 [[texture(0)]], sampler tint_symbol_3 [[sampler(0)]]) {
diff --git a/test/tint/builtins/gen/var/textureSampleCompare/7b5025.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSampleCompare/7b5025.wgsl.expected.spvasm
index 66b0add..d6a699b 100644
--- a/test/tint/builtins/gen/var/textureSampleCompare/7b5025.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSampleCompare/7b5025.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 45
+; Bound: 47
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -29,45 +29,47 @@
        %void = OpTypeVoid
           %8 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
-         %13 = OpConstantNull %v2float
+    %float_1 = OpConstant %float 1
+         %14 = OpConstantComposite %v2float %float_1 %float_1
 %_ptr_Function_v2float = OpTypePointer Function %v2float
+         %17 = OpConstantNull %v2float
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %20 = OpConstantNull %uint
-    %float_1 = OpConstant %float 1
+         %22 = OpConstantNull %uint
 %_ptr_Function_float = OpTypePointer Function %float
-         %24 = OpConstantNull %float
-         %28 = OpTypeSampledImage %3
+         %25 = OpConstantNull %float
+         %29 = OpTypeSampledImage %3
     %v3float = OpTypeVector %float 3
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
-         %40 = OpConstantNull %v2int
+      %int_1 = OpConstant %int 1
+         %42 = OpConstantComposite %v2int %int_1 %int_1
 %textureSampleCompare_7b5025 = OpFunction %void None %8
          %11 = OpLabel
-      %arg_2 = OpVariable %_ptr_Function_v2float Function %13
-      %arg_3 = OpVariable %_ptr_Function_uint Function %20
-      %arg_4 = OpVariable %_ptr_Function_float Function %24
-        %res = OpVariable %_ptr_Function_float Function %24
-               OpStore %arg_2 %13
+      %arg_2 = OpVariable %_ptr_Function_v2float Function %17
+      %arg_3 = OpVariable %_ptr_Function_uint Function %22
+      %arg_4 = OpVariable %_ptr_Function_float Function %25
+        %res = OpVariable %_ptr_Function_float Function %25
+               OpStore %arg_2 %14
                OpStore %arg_3 %uint_1
                OpStore %arg_4 %float_1
-         %26 = OpLoad %7 %arg_1
-         %27 = OpLoad %3 %arg_0
-         %29 = OpSampledImage %28 %27 %26
-         %31 = OpLoad %v2float %arg_2
-         %32 = OpCompositeExtract %float %31 0
-         %33 = OpCompositeExtract %float %31 1
-         %35 = OpLoad %uint %arg_3
-         %34 = OpConvertUToF %float %35
-         %36 = OpCompositeConstruct %v3float %32 %33 %34
-         %37 = OpLoad %float %arg_4
-         %25 = OpImageSampleDrefImplicitLod %float %29 %36 %37 ConstOffset %40
-               OpStore %res %25
+         %27 = OpLoad %7 %arg_1
+         %28 = OpLoad %3 %arg_0
+         %30 = OpSampledImage %29 %28 %27
+         %32 = OpLoad %v2float %arg_2
+         %33 = OpCompositeExtract %float %32 0
+         %34 = OpCompositeExtract %float %32 1
+         %36 = OpLoad %uint %arg_3
+         %35 = OpConvertUToF %float %36
+         %37 = OpCompositeConstruct %v3float %33 %34 %35
+         %38 = OpLoad %float %arg_4
+         %26 = OpImageSampleDrefImplicitLod %float %30 %37 %38 ConstOffset %42
+               OpStore %res %26
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %8
-         %43 = OpLabel
-         %44 = OpFunctionCall %void %textureSampleCompare_7b5025
+         %45 = OpLabel
+         %46 = OpFunctionCall %void %textureSampleCompare_7b5025
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureSampleCompare/7b5025.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSampleCompare/7b5025.wgsl.expected.wgsl
index a2f8e2d..7df4e6f 100644
--- a/test/tint/builtins/gen/var/textureSampleCompare/7b5025.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleCompare/7b5025.wgsl.expected.wgsl
@@ -3,10 +3,10 @@
 @group(1) @binding(1) var arg_1 : sampler_comparison;
 
 fn textureSampleCompare_7b5025() {
-  var arg_2 = vec2<f32>();
+  var arg_2 = vec2<f32>(1.0f);
   var arg_3 = 1u;
   var arg_4 = 1.0f;
-  const arg_5 = vec2<i32>();
+  const arg_5 = vec2<i32>(1i);
   var res : f32 = textureSampleCompare(arg_0, arg_1, arg_2, arg_3, arg_4, arg_5);
 }
 
diff --git a/test/tint/builtins/gen/var/textureSampleCompare/90ae56.wgsl b/test/tint/builtins/gen/var/textureSampleCompare/90ae56.wgsl
index 6f2ab25..94aa4fe 100644
--- a/test/tint/builtins/gen/var/textureSampleCompare/90ae56.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleCompare/90ae56.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureSampleCompare(texture: texture_depth_2d_array, sampler: sampler_comparison, coords: vec2<f32>, array_index: u32, depth_ref: f32) -> f32
 fn textureSampleCompare_90ae56() {
-  var arg_2 = vec2<f32>();
+  var arg_2 = vec2<f32>(1.f);
   var arg_3 = 1u;
   var arg_4 = 1.f;
   var res: f32 = textureSampleCompare(arg_0, arg_1, arg_2, arg_3, arg_4);
diff --git a/test/tint/builtins/gen/var/textureSampleCompare/90ae56.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleCompare/90ae56.wgsl.expected.dxc.hlsl
index 048e28e..6f59515 100644
--- a/test/tint/builtins/gen/var/textureSampleCompare/90ae56.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleCompare/90ae56.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerComparisonState arg_1 : register(s1, space1);
 
 void textureSampleCompare_90ae56() {
-  float2 arg_2 = (0.0f).xx;
+  float2 arg_2 = (1.0f).xx;
   uint arg_3 = 1u;
   float arg_4 = 1.0f;
   float res = arg_0.SampleCmp(arg_1, float3(arg_2, float(arg_3)), arg_4);
diff --git a/test/tint/builtins/gen/var/textureSampleCompare/90ae56.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleCompare/90ae56.wgsl.expected.fxc.hlsl
index 048e28e..6f59515 100644
--- a/test/tint/builtins/gen/var/textureSampleCompare/90ae56.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleCompare/90ae56.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerComparisonState arg_1 : register(s1, space1);
 
 void textureSampleCompare_90ae56() {
-  float2 arg_2 = (0.0f).xx;
+  float2 arg_2 = (1.0f).xx;
   uint arg_3 = 1u;
   float arg_4 = 1.0f;
   float res = arg_0.SampleCmp(arg_1, float3(arg_2, float(arg_3)), arg_4);
diff --git a/test/tint/builtins/gen/var/textureSampleCompare/90ae56.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureSampleCompare/90ae56.wgsl.expected.glsl
index aab30eb..1999c7e 100644
--- a/test/tint/builtins/gen/var/textureSampleCompare/90ae56.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureSampleCompare/90ae56.wgsl.expected.glsl
@@ -4,7 +4,7 @@
 uniform highp sampler2DArrayShadow arg_0_arg_1;
 
 void textureSampleCompare_90ae56() {
-  vec2 arg_2 = vec2(0.0f);
+  vec2 arg_2 = vec2(1.0f);
   uint arg_3 = 1u;
   float arg_4 = 1.0f;
   float res = texture(arg_0_arg_1, vec4(vec3(arg_2, float(arg_3)), arg_4));
diff --git a/test/tint/builtins/gen/var/textureSampleCompare/90ae56.wgsl.expected.msl b/test/tint/builtins/gen/var/textureSampleCompare/90ae56.wgsl.expected.msl
index 5b7cfbd..d88ca51 100644
--- a/test/tint/builtins/gen/var/textureSampleCompare/90ae56.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureSampleCompare/90ae56.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureSampleCompare_90ae56(depth2d_array<float, access::sample> tint_symbol, sampler tint_symbol_1) {
-  float2 arg_2 = float2(0.0f);
+  float2 arg_2 = float2(1.0f);
   uint arg_3 = 1u;
   float arg_4 = 1.0f;
   float res = tint_symbol.sample_compare(tint_symbol_1, arg_2, arg_3, arg_4);
diff --git a/test/tint/builtins/gen/var/textureSampleCompare/90ae56.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSampleCompare/90ae56.wgsl.expected.spvasm
index ccfd3f4..56a26c3 100644
--- a/test/tint/builtins/gen/var/textureSampleCompare/90ae56.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSampleCompare/90ae56.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 42
+; Bound: 43
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -29,42 +29,43 @@
        %void = OpTypeVoid
           %8 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
-         %13 = OpConstantNull %v2float
+    %float_1 = OpConstant %float 1
+         %14 = OpConstantComposite %v2float %float_1 %float_1
 %_ptr_Function_v2float = OpTypePointer Function %v2float
+         %17 = OpConstantNull %v2float
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %20 = OpConstantNull %uint
-    %float_1 = OpConstant %float 1
+         %22 = OpConstantNull %uint
 %_ptr_Function_float = OpTypePointer Function %float
-         %24 = OpConstantNull %float
-         %28 = OpTypeSampledImage %3
+         %25 = OpConstantNull %float
+         %29 = OpTypeSampledImage %3
     %v3float = OpTypeVector %float 3
 %textureSampleCompare_90ae56 = OpFunction %void None %8
          %11 = OpLabel
-      %arg_2 = OpVariable %_ptr_Function_v2float Function %13
-      %arg_3 = OpVariable %_ptr_Function_uint Function %20
-      %arg_4 = OpVariable %_ptr_Function_float Function %24
-        %res = OpVariable %_ptr_Function_float Function %24
-               OpStore %arg_2 %13
+      %arg_2 = OpVariable %_ptr_Function_v2float Function %17
+      %arg_3 = OpVariable %_ptr_Function_uint Function %22
+      %arg_4 = OpVariable %_ptr_Function_float Function %25
+        %res = OpVariable %_ptr_Function_float Function %25
+               OpStore %arg_2 %14
                OpStore %arg_3 %uint_1
                OpStore %arg_4 %float_1
-         %26 = OpLoad %7 %arg_1
-         %27 = OpLoad %3 %arg_0
-         %29 = OpSampledImage %28 %27 %26
-         %31 = OpLoad %v2float %arg_2
-         %32 = OpCompositeExtract %float %31 0
-         %33 = OpCompositeExtract %float %31 1
-         %35 = OpLoad %uint %arg_3
-         %34 = OpConvertUToF %float %35
-         %36 = OpCompositeConstruct %v3float %32 %33 %34
-         %37 = OpLoad %float %arg_4
-         %25 = OpImageSampleDrefImplicitLod %float %29 %36 %37
-               OpStore %res %25
+         %27 = OpLoad %7 %arg_1
+         %28 = OpLoad %3 %arg_0
+         %30 = OpSampledImage %29 %28 %27
+         %32 = OpLoad %v2float %arg_2
+         %33 = OpCompositeExtract %float %32 0
+         %34 = OpCompositeExtract %float %32 1
+         %36 = OpLoad %uint %arg_3
+         %35 = OpConvertUToF %float %36
+         %37 = OpCompositeConstruct %v3float %33 %34 %35
+         %38 = OpLoad %float %arg_4
+         %26 = OpImageSampleDrefImplicitLod %float %30 %37 %38
+               OpStore %res %26
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %8
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureSampleCompare_90ae56
+         %41 = OpLabel
+         %42 = OpFunctionCall %void %textureSampleCompare_90ae56
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureSampleCompare/90ae56.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSampleCompare/90ae56.wgsl.expected.wgsl
index 97cb0eb..dad5b9d 100644
--- a/test/tint/builtins/gen/var/textureSampleCompare/90ae56.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleCompare/90ae56.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(1) var arg_1 : sampler_comparison;
 
 fn textureSampleCompare_90ae56() {
-  var arg_2 = vec2<f32>();
+  var arg_2 = vec2<f32>(1.0f);
   var arg_3 = 1u;
   var arg_4 = 1.0f;
   var res : f32 = textureSampleCompare(arg_0, arg_1, arg_2, arg_3, arg_4);
diff --git a/test/tint/builtins/gen/var/textureSampleCompare/a3ca7e.wgsl b/test/tint/builtins/gen/var/textureSampleCompare/a3ca7e.wgsl
index 4dbfd9c..adb1f55 100644
--- a/test/tint/builtins/gen/var/textureSampleCompare/a3ca7e.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleCompare/a3ca7e.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureSampleCompare(texture: texture_depth_cube_array, sampler: sampler_comparison, coords: vec3<f32>, array_index: i32, depth_ref: f32) -> f32
 fn textureSampleCompare_a3ca7e() {
-  var arg_2 = vec3<f32>();
+  var arg_2 = vec3<f32>(1.f);
   var arg_3 = 1i;
   var arg_4 = 1.f;
   var res: f32 = textureSampleCompare(arg_0, arg_1, arg_2, arg_3, arg_4);
diff --git a/test/tint/builtins/gen/var/textureSampleCompare/a3ca7e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleCompare/a3ca7e.wgsl.expected.dxc.hlsl
index 06ac88b..dca9cdf 100644
--- a/test/tint/builtins/gen/var/textureSampleCompare/a3ca7e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleCompare/a3ca7e.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerComparisonState arg_1 : register(s1, space1);
 
 void textureSampleCompare_a3ca7e() {
-  float3 arg_2 = (0.0f).xxx;
+  float3 arg_2 = (1.0f).xxx;
   int arg_3 = 1;
   float arg_4 = 1.0f;
   float res = arg_0.SampleCmp(arg_1, float4(arg_2, float(arg_3)), arg_4);
diff --git a/test/tint/builtins/gen/var/textureSampleCompare/a3ca7e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleCompare/a3ca7e.wgsl.expected.fxc.hlsl
index 06ac88b..dca9cdf 100644
--- a/test/tint/builtins/gen/var/textureSampleCompare/a3ca7e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleCompare/a3ca7e.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerComparisonState arg_1 : register(s1, space1);
 
 void textureSampleCompare_a3ca7e() {
-  float3 arg_2 = (0.0f).xxx;
+  float3 arg_2 = (1.0f).xxx;
   int arg_3 = 1;
   float arg_4 = 1.0f;
   float res = arg_0.SampleCmp(arg_1, float4(arg_2, float(arg_3)), arg_4);
diff --git a/test/tint/builtins/gen/var/textureSampleCompare/a3ca7e.wgsl.expected.msl b/test/tint/builtins/gen/var/textureSampleCompare/a3ca7e.wgsl.expected.msl
index 884983e..81e30a3 100644
--- a/test/tint/builtins/gen/var/textureSampleCompare/a3ca7e.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureSampleCompare/a3ca7e.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureSampleCompare_a3ca7e(depthcube_array<float, access::sample> tint_symbol, sampler tint_symbol_1) {
-  float3 arg_2 = float3(0.0f);
+  float3 arg_2 = float3(1.0f);
   int arg_3 = 1;
   float arg_4 = 1.0f;
   float res = tint_symbol.sample_compare(tint_symbol_1, arg_2, arg_3, arg_4);
diff --git a/test/tint/builtins/gen/var/textureSampleCompare/a3ca7e.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSampleCompare/a3ca7e.wgsl.expected.spvasm
index 8438b3e..14c991b 100644
--- a/test/tint/builtins/gen/var/textureSampleCompare/a3ca7e.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSampleCompare/a3ca7e.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 43
+; Bound: 44
 ; Schema: 0
                OpCapability Shader
                OpCapability SampledCubeArray
@@ -30,43 +30,44 @@
        %void = OpTypeVoid
           %8 = OpTypeFunction %void
     %v3float = OpTypeVector %float 3
-         %13 = OpConstantNull %v3float
+    %float_1 = OpConstant %float 1
+         %14 = OpConstantComposite %v3float %float_1 %float_1 %float_1
 %_ptr_Function_v3float = OpTypePointer Function %v3float
+         %17 = OpConstantNull %v3float
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
-         %20 = OpConstantNull %int
-    %float_1 = OpConstant %float 1
+         %22 = OpConstantNull %int
 %_ptr_Function_float = OpTypePointer Function %float
-         %24 = OpConstantNull %float
-         %28 = OpTypeSampledImage %3
+         %25 = OpConstantNull %float
+         %29 = OpTypeSampledImage %3
     %v4float = OpTypeVector %float 4
 %textureSampleCompare_a3ca7e = OpFunction %void None %8
          %11 = OpLabel
-      %arg_2 = OpVariable %_ptr_Function_v3float Function %13
-      %arg_3 = OpVariable %_ptr_Function_int Function %20
-      %arg_4 = OpVariable %_ptr_Function_float Function %24
-        %res = OpVariable %_ptr_Function_float Function %24
-               OpStore %arg_2 %13
+      %arg_2 = OpVariable %_ptr_Function_v3float Function %17
+      %arg_3 = OpVariable %_ptr_Function_int Function %22
+      %arg_4 = OpVariable %_ptr_Function_float Function %25
+        %res = OpVariable %_ptr_Function_float Function %25
+               OpStore %arg_2 %14
                OpStore %arg_3 %int_1
                OpStore %arg_4 %float_1
-         %26 = OpLoad %7 %arg_1
-         %27 = OpLoad %3 %arg_0
-         %29 = OpSampledImage %28 %27 %26
-         %31 = OpLoad %v3float %arg_2
-         %32 = OpCompositeExtract %float %31 0
-         %33 = OpCompositeExtract %float %31 1
-         %34 = OpCompositeExtract %float %31 2
-         %36 = OpLoad %int %arg_3
-         %35 = OpConvertSToF %float %36
-         %37 = OpCompositeConstruct %v4float %32 %33 %34 %35
-         %38 = OpLoad %float %arg_4
-         %25 = OpImageSampleDrefImplicitLod %float %29 %37 %38
-               OpStore %res %25
+         %27 = OpLoad %7 %arg_1
+         %28 = OpLoad %3 %arg_0
+         %30 = OpSampledImage %29 %28 %27
+         %32 = OpLoad %v3float %arg_2
+         %33 = OpCompositeExtract %float %32 0
+         %34 = OpCompositeExtract %float %32 1
+         %35 = OpCompositeExtract %float %32 2
+         %37 = OpLoad %int %arg_3
+         %36 = OpConvertSToF %float %37
+         %38 = OpCompositeConstruct %v4float %33 %34 %35 %36
+         %39 = OpLoad %float %arg_4
+         %26 = OpImageSampleDrefImplicitLod %float %30 %38 %39
+               OpStore %res %26
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %8
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureSampleCompare_a3ca7e
+         %42 = OpLabel
+         %43 = OpFunctionCall %void %textureSampleCompare_a3ca7e
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureSampleCompare/a3ca7e.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSampleCompare/a3ca7e.wgsl.expected.wgsl
index 3c4c8f1..fa3a6a8 100644
--- a/test/tint/builtins/gen/var/textureSampleCompare/a3ca7e.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleCompare/a3ca7e.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(1) var arg_1 : sampler_comparison;
 
 fn textureSampleCompare_a3ca7e() {
-  var arg_2 = vec3<f32>();
+  var arg_2 = vec3<f32>(1.0f);
   var arg_3 = 1i;
   var arg_4 = 1.0f;
   var res : f32 = textureSampleCompare(arg_0, arg_1, arg_2, arg_3, arg_4);
diff --git a/test/tint/builtins/gen/var/textureSampleCompare/af1051.wgsl b/test/tint/builtins/gen/var/textureSampleCompare/af1051.wgsl
index 9d16686..cde0d28 100644
--- a/test/tint/builtins/gen/var/textureSampleCompare/af1051.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleCompare/af1051.wgsl
@@ -25,10 +25,10 @@
 
 // fn textureSampleCompare(texture: texture_depth_2d_array, sampler: sampler_comparison, coords: vec2<f32>, array_index: i32, depth_ref: f32, @const offset: vec2<i32>) -> f32
 fn textureSampleCompare_af1051() {
-  var arg_2 = vec2<f32>();
+  var arg_2 = vec2<f32>(1.f);
   var arg_3 = 1i;
   var arg_4 = 1.f;
-  const arg_5 = vec2<i32>();
+  const arg_5 = vec2<i32>(1i);
   var res: f32 = textureSampleCompare(arg_0, arg_1, arg_2, arg_3, arg_4, arg_5);
 }
 
diff --git a/test/tint/builtins/gen/var/textureSampleCompare/af1051.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleCompare/af1051.wgsl.expected.dxc.hlsl
index ad69564..3a08b41 100644
--- a/test/tint/builtins/gen/var/textureSampleCompare/af1051.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleCompare/af1051.wgsl.expected.dxc.hlsl
@@ -2,10 +2,10 @@
 SamplerComparisonState arg_1 : register(s1, space1);
 
 void textureSampleCompare_af1051() {
-  float2 arg_2 = (0.0f).xx;
+  float2 arg_2 = (1.0f).xx;
   int arg_3 = 1;
   float arg_4 = 1.0f;
-  float res = arg_0.SampleCmp(arg_1, float3(arg_2, float(arg_3)), arg_4, (0).xx);
+  float res = arg_0.SampleCmp(arg_1, float3(arg_2, float(arg_3)), arg_4, (1).xx);
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/var/textureSampleCompare/af1051.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleCompare/af1051.wgsl.expected.fxc.hlsl
index ad69564..3a08b41 100644
--- a/test/tint/builtins/gen/var/textureSampleCompare/af1051.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleCompare/af1051.wgsl.expected.fxc.hlsl
@@ -2,10 +2,10 @@
 SamplerComparisonState arg_1 : register(s1, space1);
 
 void textureSampleCompare_af1051() {
-  float2 arg_2 = (0.0f).xx;
+  float2 arg_2 = (1.0f).xx;
   int arg_3 = 1;
   float arg_4 = 1.0f;
-  float res = arg_0.SampleCmp(arg_1, float3(arg_2, float(arg_3)), arg_4, (0).xx);
+  float res = arg_0.SampleCmp(arg_1, float3(arg_2, float(arg_3)), arg_4, (1).xx);
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/var/textureSampleCompare/af1051.wgsl.expected.msl b/test/tint/builtins/gen/var/textureSampleCompare/af1051.wgsl.expected.msl
index e241a74..b1cc778 100644
--- a/test/tint/builtins/gen/var/textureSampleCompare/af1051.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureSampleCompare/af1051.wgsl.expected.msl
@@ -2,10 +2,10 @@
 
 using namespace metal;
 void textureSampleCompare_af1051(depth2d_array<float, access::sample> tint_symbol, sampler tint_symbol_1) {
-  float2 arg_2 = float2(0.0f);
+  float2 arg_2 = float2(1.0f);
   int arg_3 = 1;
   float arg_4 = 1.0f;
-  float res = tint_symbol.sample_compare(tint_symbol_1, arg_2, arg_3, arg_4, int2(0));
+  float res = tint_symbol.sample_compare(tint_symbol_1, arg_2, arg_3, arg_4, int2(1));
 }
 
 fragment void fragment_main(depth2d_array<float, access::sample> tint_symbol_2 [[texture(0)]], sampler tint_symbol_3 [[sampler(0)]]) {
diff --git a/test/tint/builtins/gen/var/textureSampleCompare/af1051.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSampleCompare/af1051.wgsl.expected.spvasm
index 290d5fe..36521c5 100644
--- a/test/tint/builtins/gen/var/textureSampleCompare/af1051.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSampleCompare/af1051.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 45
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -29,44 +29,45 @@
        %void = OpTypeVoid
           %8 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
-         %13 = OpConstantNull %v2float
+    %float_1 = OpConstant %float 1
+         %14 = OpConstantComposite %v2float %float_1 %float_1
 %_ptr_Function_v2float = OpTypePointer Function %v2float
+         %17 = OpConstantNull %v2float
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
-         %20 = OpConstantNull %int
-    %float_1 = OpConstant %float 1
+         %22 = OpConstantNull %int
 %_ptr_Function_float = OpTypePointer Function %float
-         %24 = OpConstantNull %float
-         %28 = OpTypeSampledImage %3
+         %25 = OpConstantNull %float
+         %29 = OpTypeSampledImage %3
     %v3float = OpTypeVector %float 3
       %v2int = OpTypeVector %int 2
-         %39 = OpConstantNull %v2int
+         %40 = OpConstantComposite %v2int %int_1 %int_1
 %textureSampleCompare_af1051 = OpFunction %void None %8
          %11 = OpLabel
-      %arg_2 = OpVariable %_ptr_Function_v2float Function %13
-      %arg_3 = OpVariable %_ptr_Function_int Function %20
-      %arg_4 = OpVariable %_ptr_Function_float Function %24
-        %res = OpVariable %_ptr_Function_float Function %24
-               OpStore %arg_2 %13
+      %arg_2 = OpVariable %_ptr_Function_v2float Function %17
+      %arg_3 = OpVariable %_ptr_Function_int Function %22
+      %arg_4 = OpVariable %_ptr_Function_float Function %25
+        %res = OpVariable %_ptr_Function_float Function %25
+               OpStore %arg_2 %14
                OpStore %arg_3 %int_1
                OpStore %arg_4 %float_1
-         %26 = OpLoad %7 %arg_1
-         %27 = OpLoad %3 %arg_0
-         %29 = OpSampledImage %28 %27 %26
-         %31 = OpLoad %v2float %arg_2
-         %32 = OpCompositeExtract %float %31 0
-         %33 = OpCompositeExtract %float %31 1
-         %35 = OpLoad %int %arg_3
-         %34 = OpConvertSToF %float %35
-         %36 = OpCompositeConstruct %v3float %32 %33 %34
-         %37 = OpLoad %float %arg_4
-         %25 = OpImageSampleDrefImplicitLod %float %29 %36 %37 ConstOffset %39
-               OpStore %res %25
+         %27 = OpLoad %7 %arg_1
+         %28 = OpLoad %3 %arg_0
+         %30 = OpSampledImage %29 %28 %27
+         %32 = OpLoad %v2float %arg_2
+         %33 = OpCompositeExtract %float %32 0
+         %34 = OpCompositeExtract %float %32 1
+         %36 = OpLoad %int %arg_3
+         %35 = OpConvertSToF %float %36
+         %37 = OpCompositeConstruct %v3float %33 %34 %35
+         %38 = OpLoad %float %arg_4
+         %26 = OpImageSampleDrefImplicitLod %float %30 %37 %38 ConstOffset %40
+               OpStore %res %26
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %8
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureSampleCompare_af1051
+         %43 = OpLabel
+         %44 = OpFunctionCall %void %textureSampleCompare_af1051
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureSampleCompare/af1051.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSampleCompare/af1051.wgsl.expected.wgsl
index c2b2635..60fba5e 100644
--- a/test/tint/builtins/gen/var/textureSampleCompare/af1051.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleCompare/af1051.wgsl.expected.wgsl
@@ -3,10 +3,10 @@
 @group(1) @binding(1) var arg_1 : sampler_comparison;
 
 fn textureSampleCompare_af1051() {
-  var arg_2 = vec2<f32>();
+  var arg_2 = vec2<f32>(1.0f);
   var arg_3 = 1i;
   var arg_4 = 1.0f;
-  const arg_5 = vec2<i32>();
+  const arg_5 = vec2<i32>(1i);
   var res : f32 = textureSampleCompare(arg_0, arg_1, arg_2, arg_3, arg_4, arg_5);
 }
 
diff --git a/test/tint/builtins/gen/var/textureSampleCompare/dd431d.wgsl b/test/tint/builtins/gen/var/textureSampleCompare/dd431d.wgsl
index 67dbb4a..a4d132e 100644
--- a/test/tint/builtins/gen/var/textureSampleCompare/dd431d.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleCompare/dd431d.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureSampleCompare(texture: texture_depth_2d_array, sampler: sampler_comparison, coords: vec2<f32>, array_index: i32, depth_ref: f32) -> f32
 fn textureSampleCompare_dd431d() {
-  var arg_2 = vec2<f32>();
+  var arg_2 = vec2<f32>(1.f);
   var arg_3 = 1i;
   var arg_4 = 1.f;
   var res: f32 = textureSampleCompare(arg_0, arg_1, arg_2, arg_3, arg_4);
diff --git a/test/tint/builtins/gen/var/textureSampleCompare/dd431d.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleCompare/dd431d.wgsl.expected.dxc.hlsl
index aed9ea3..6a97450 100644
--- a/test/tint/builtins/gen/var/textureSampleCompare/dd431d.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleCompare/dd431d.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerComparisonState arg_1 : register(s1, space1);
 
 void textureSampleCompare_dd431d() {
-  float2 arg_2 = (0.0f).xx;
+  float2 arg_2 = (1.0f).xx;
   int arg_3 = 1;
   float arg_4 = 1.0f;
   float res = arg_0.SampleCmp(arg_1, float3(arg_2, float(arg_3)), arg_4);
diff --git a/test/tint/builtins/gen/var/textureSampleCompare/dd431d.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleCompare/dd431d.wgsl.expected.fxc.hlsl
index aed9ea3..6a97450 100644
--- a/test/tint/builtins/gen/var/textureSampleCompare/dd431d.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleCompare/dd431d.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerComparisonState arg_1 : register(s1, space1);
 
 void textureSampleCompare_dd431d() {
-  float2 arg_2 = (0.0f).xx;
+  float2 arg_2 = (1.0f).xx;
   int arg_3 = 1;
   float arg_4 = 1.0f;
   float res = arg_0.SampleCmp(arg_1, float3(arg_2, float(arg_3)), arg_4);
diff --git a/test/tint/builtins/gen/var/textureSampleCompare/dd431d.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureSampleCompare/dd431d.wgsl.expected.glsl
index edba551..69cd114 100644
--- a/test/tint/builtins/gen/var/textureSampleCompare/dd431d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureSampleCompare/dd431d.wgsl.expected.glsl
@@ -4,7 +4,7 @@
 uniform highp sampler2DArrayShadow arg_0_arg_1;
 
 void textureSampleCompare_dd431d() {
-  vec2 arg_2 = vec2(0.0f);
+  vec2 arg_2 = vec2(1.0f);
   int arg_3 = 1;
   float arg_4 = 1.0f;
   float res = texture(arg_0_arg_1, vec4(vec3(arg_2, float(arg_3)), arg_4));
diff --git a/test/tint/builtins/gen/var/textureSampleCompare/dd431d.wgsl.expected.msl b/test/tint/builtins/gen/var/textureSampleCompare/dd431d.wgsl.expected.msl
index 525ba3b..d9041fa 100644
--- a/test/tint/builtins/gen/var/textureSampleCompare/dd431d.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureSampleCompare/dd431d.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureSampleCompare_dd431d(depth2d_array<float, access::sample> tint_symbol, sampler tint_symbol_1) {
-  float2 arg_2 = float2(0.0f);
+  float2 arg_2 = float2(1.0f);
   int arg_3 = 1;
   float arg_4 = 1.0f;
   float res = tint_symbol.sample_compare(tint_symbol_1, arg_2, arg_3, arg_4);
diff --git a/test/tint/builtins/gen/var/textureSampleCompare/dd431d.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSampleCompare/dd431d.wgsl.expected.spvasm
index a5fb4fc..4f1f1a0 100644
--- a/test/tint/builtins/gen/var/textureSampleCompare/dd431d.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSampleCompare/dd431d.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 42
+; Bound: 43
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -29,42 +29,43 @@
        %void = OpTypeVoid
           %8 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
-         %13 = OpConstantNull %v2float
+    %float_1 = OpConstant %float 1
+         %14 = OpConstantComposite %v2float %float_1 %float_1
 %_ptr_Function_v2float = OpTypePointer Function %v2float
+         %17 = OpConstantNull %v2float
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
-         %20 = OpConstantNull %int
-    %float_1 = OpConstant %float 1
+         %22 = OpConstantNull %int
 %_ptr_Function_float = OpTypePointer Function %float
-         %24 = OpConstantNull %float
-         %28 = OpTypeSampledImage %3
+         %25 = OpConstantNull %float
+         %29 = OpTypeSampledImage %3
     %v3float = OpTypeVector %float 3
 %textureSampleCompare_dd431d = OpFunction %void None %8
          %11 = OpLabel
-      %arg_2 = OpVariable %_ptr_Function_v2float Function %13
-      %arg_3 = OpVariable %_ptr_Function_int Function %20
-      %arg_4 = OpVariable %_ptr_Function_float Function %24
-        %res = OpVariable %_ptr_Function_float Function %24
-               OpStore %arg_2 %13
+      %arg_2 = OpVariable %_ptr_Function_v2float Function %17
+      %arg_3 = OpVariable %_ptr_Function_int Function %22
+      %arg_4 = OpVariable %_ptr_Function_float Function %25
+        %res = OpVariable %_ptr_Function_float Function %25
+               OpStore %arg_2 %14
                OpStore %arg_3 %int_1
                OpStore %arg_4 %float_1
-         %26 = OpLoad %7 %arg_1
-         %27 = OpLoad %3 %arg_0
-         %29 = OpSampledImage %28 %27 %26
-         %31 = OpLoad %v2float %arg_2
-         %32 = OpCompositeExtract %float %31 0
-         %33 = OpCompositeExtract %float %31 1
-         %35 = OpLoad %int %arg_3
-         %34 = OpConvertSToF %float %35
-         %36 = OpCompositeConstruct %v3float %32 %33 %34
-         %37 = OpLoad %float %arg_4
-         %25 = OpImageSampleDrefImplicitLod %float %29 %36 %37
-               OpStore %res %25
+         %27 = OpLoad %7 %arg_1
+         %28 = OpLoad %3 %arg_0
+         %30 = OpSampledImage %29 %28 %27
+         %32 = OpLoad %v2float %arg_2
+         %33 = OpCompositeExtract %float %32 0
+         %34 = OpCompositeExtract %float %32 1
+         %36 = OpLoad %int %arg_3
+         %35 = OpConvertSToF %float %36
+         %37 = OpCompositeConstruct %v3float %33 %34 %35
+         %38 = OpLoad %float %arg_4
+         %26 = OpImageSampleDrefImplicitLod %float %30 %37 %38
+               OpStore %res %26
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %8
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureSampleCompare_dd431d
+         %41 = OpLabel
+         %42 = OpFunctionCall %void %textureSampleCompare_dd431d
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureSampleCompare/dd431d.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSampleCompare/dd431d.wgsl.expected.wgsl
index 7026776..c973460 100644
--- a/test/tint/builtins/gen/var/textureSampleCompare/dd431d.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleCompare/dd431d.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(1) var arg_1 : sampler_comparison;
 
 fn textureSampleCompare_dd431d() {
-  var arg_2 = vec2<f32>();
+  var arg_2 = vec2<f32>(1.0f);
   var arg_3 = 1i;
   var arg_4 = 1.0f;
   var res : f32 = textureSampleCompare(arg_0, arg_1, arg_2, arg_3, arg_4);
diff --git a/test/tint/builtins/gen/var/textureSampleCompare/dec064.wgsl b/test/tint/builtins/gen/var/textureSampleCompare/dec064.wgsl
index 4487b72..c479d1e 100644
--- a/test/tint/builtins/gen/var/textureSampleCompare/dec064.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleCompare/dec064.wgsl
@@ -25,9 +25,9 @@
 
 // fn textureSampleCompare(texture: texture_depth_2d, sampler: sampler_comparison, coords: vec2<f32>, depth_ref: f32, @const offset: vec2<i32>) -> f32
 fn textureSampleCompare_dec064() {
-  var arg_2 = vec2<f32>();
+  var arg_2 = vec2<f32>(1.f);
   var arg_3 = 1.f;
-  const arg_4 = vec2<i32>();
+  const arg_4 = vec2<i32>(1i);
   var res: f32 = textureSampleCompare(arg_0, arg_1, arg_2, arg_3, arg_4);
 }
 
diff --git a/test/tint/builtins/gen/var/textureSampleCompare/dec064.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleCompare/dec064.wgsl.expected.dxc.hlsl
index 21bf5e0..b955a0f 100644
--- a/test/tint/builtins/gen/var/textureSampleCompare/dec064.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleCompare/dec064.wgsl.expected.dxc.hlsl
@@ -2,9 +2,9 @@
 SamplerComparisonState arg_1 : register(s1, space1);
 
 void textureSampleCompare_dec064() {
-  float2 arg_2 = (0.0f).xx;
+  float2 arg_2 = (1.0f).xx;
   float arg_3 = 1.0f;
-  float res = arg_0.SampleCmp(arg_1, arg_2, arg_3, (0).xx);
+  float res = arg_0.SampleCmp(arg_1, arg_2, arg_3, (1).xx);
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/var/textureSampleCompare/dec064.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleCompare/dec064.wgsl.expected.fxc.hlsl
index 21bf5e0..b955a0f 100644
--- a/test/tint/builtins/gen/var/textureSampleCompare/dec064.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleCompare/dec064.wgsl.expected.fxc.hlsl
@@ -2,9 +2,9 @@
 SamplerComparisonState arg_1 : register(s1, space1);
 
 void textureSampleCompare_dec064() {
-  float2 arg_2 = (0.0f).xx;
+  float2 arg_2 = (1.0f).xx;
   float arg_3 = 1.0f;
-  float res = arg_0.SampleCmp(arg_1, arg_2, arg_3, (0).xx);
+  float res = arg_0.SampleCmp(arg_1, arg_2, arg_3, (1).xx);
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/var/textureSampleCompare/dec064.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureSampleCompare/dec064.wgsl.expected.glsl
index 8adb0ee..01e9c58 100644
--- a/test/tint/builtins/gen/var/textureSampleCompare/dec064.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureSampleCompare/dec064.wgsl.expected.glsl
@@ -4,9 +4,9 @@
 uniform highp sampler2DShadow arg_0_arg_1;
 
 void textureSampleCompare_dec064() {
-  vec2 arg_2 = vec2(0.0f);
+  vec2 arg_2 = vec2(1.0f);
   float arg_3 = 1.0f;
-  float res = textureOffset(arg_0_arg_1, vec3(arg_2, arg_3), ivec2(0));
+  float res = textureOffset(arg_0_arg_1, vec3(arg_2, arg_3), ivec2(1));
 }
 
 void fragment_main() {
diff --git a/test/tint/builtins/gen/var/textureSampleCompare/dec064.wgsl.expected.msl b/test/tint/builtins/gen/var/textureSampleCompare/dec064.wgsl.expected.msl
index c22e9dd..7625b7c 100644
--- a/test/tint/builtins/gen/var/textureSampleCompare/dec064.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureSampleCompare/dec064.wgsl.expected.msl
@@ -2,9 +2,9 @@
 
 using namespace metal;
 void textureSampleCompare_dec064(depth2d<float, access::sample> tint_symbol, sampler tint_symbol_1) {
-  float2 arg_2 = float2(0.0f);
+  float2 arg_2 = float2(1.0f);
   float arg_3 = 1.0f;
-  float res = tint_symbol.sample_compare(tint_symbol_1, arg_2, arg_3, int2(0));
+  float res = tint_symbol.sample_compare(tint_symbol_1, arg_2, arg_3, int2(1));
 }
 
 fragment void fragment_main(depth2d<float, access::sample> tint_symbol_2 [[texture(0)]], sampler tint_symbol_3 [[sampler(0)]]) {
diff --git a/test/tint/builtins/gen/var/textureSampleCompare/dec064.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSampleCompare/dec064.wgsl.expected.spvasm
index 6e55366..9713419 100644
--- a/test/tint/builtins/gen/var/textureSampleCompare/dec064.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSampleCompare/dec064.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 34
+; Bound: 36
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -28,33 +28,35 @@
        %void = OpTypeVoid
           %8 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
-         %13 = OpConstantNull %v2float
-%_ptr_Function_v2float = OpTypePointer Function %v2float
     %float_1 = OpConstant %float 1
+         %14 = OpConstantComposite %v2float %float_1 %float_1
+%_ptr_Function_v2float = OpTypePointer Function %v2float
+         %17 = OpConstantNull %v2float
 %_ptr_Function_float = OpTypePointer Function %float
-         %19 = OpConstantNull %float
-         %23 = OpTypeSampledImage %3
+         %20 = OpConstantNull %float
+         %24 = OpTypeSampledImage %3
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
-         %29 = OpConstantNull %v2int
+      %int_1 = OpConstant %int 1
+         %31 = OpConstantComposite %v2int %int_1 %int_1
 %textureSampleCompare_dec064 = OpFunction %void None %8
          %11 = OpLabel
-      %arg_2 = OpVariable %_ptr_Function_v2float Function %13
-      %arg_3 = OpVariable %_ptr_Function_float Function %19
-        %res = OpVariable %_ptr_Function_float Function %19
-               OpStore %arg_2 %13
+      %arg_2 = OpVariable %_ptr_Function_v2float Function %17
+      %arg_3 = OpVariable %_ptr_Function_float Function %20
+        %res = OpVariable %_ptr_Function_float Function %20
+               OpStore %arg_2 %14
                OpStore %arg_3 %float_1
-         %21 = OpLoad %7 %arg_1
-         %22 = OpLoad %3 %arg_0
-         %24 = OpSampledImage %23 %22 %21
-         %25 = OpLoad %v2float %arg_2
-         %26 = OpLoad %float %arg_3
-         %20 = OpImageSampleDrefImplicitLod %float %24 %25 %26 ConstOffset %29
-               OpStore %res %20
+         %22 = OpLoad %7 %arg_1
+         %23 = OpLoad %3 %arg_0
+         %25 = OpSampledImage %24 %23 %22
+         %26 = OpLoad %v2float %arg_2
+         %27 = OpLoad %float %arg_3
+         %21 = OpImageSampleDrefImplicitLod %float %25 %26 %27 ConstOffset %31
+               OpStore %res %21
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %8
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureSampleCompare_dec064
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %textureSampleCompare_dec064
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureSampleCompare/dec064.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSampleCompare/dec064.wgsl.expected.wgsl
index fdc4189..43246d2 100644
--- a/test/tint/builtins/gen/var/textureSampleCompare/dec064.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleCompare/dec064.wgsl.expected.wgsl
@@ -3,9 +3,9 @@
 @group(1) @binding(1) var arg_1 : sampler_comparison;
 
 fn textureSampleCompare_dec064() {
-  var arg_2 = vec2<f32>();
+  var arg_2 = vec2<f32>(1.0f);
   var arg_3 = 1.0f;
-  const arg_4 = vec2<i32>();
+  const arg_4 = vec2<i32>(1i);
   var res : f32 = textureSampleCompare(arg_0, arg_1, arg_2, arg_3, arg_4);
 }
 
diff --git a/test/tint/builtins/gen/var/textureSampleCompareLevel/1116ed.wgsl b/test/tint/builtins/gen/var/textureSampleCompareLevel/1116ed.wgsl
index 26ae13c..752117a 100644
--- a/test/tint/builtins/gen/var/textureSampleCompareLevel/1116ed.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleCompareLevel/1116ed.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureSampleCompareLevel(texture: texture_depth_2d_array, sampler: sampler_comparison, coords: vec2<f32>, array_index: i32, depth_ref: f32) -> f32
 fn textureSampleCompareLevel_1116ed() {
-  var arg_2 = vec2<f32>();
+  var arg_2 = vec2<f32>(1.f);
   var arg_3 = 1i;
   var arg_4 = 1.f;
   var res: f32 = textureSampleCompareLevel(arg_0, arg_1, arg_2, arg_3, arg_4);
diff --git a/test/tint/builtins/gen/var/textureSampleCompareLevel/1116ed.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleCompareLevel/1116ed.wgsl.expected.dxc.hlsl
index dfdafaa..8a156a2 100644
--- a/test/tint/builtins/gen/var/textureSampleCompareLevel/1116ed.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleCompareLevel/1116ed.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerComparisonState arg_1 : register(s1, space1);
 
 void textureSampleCompareLevel_1116ed() {
-  float2 arg_2 = (0.0f).xx;
+  float2 arg_2 = (1.0f).xx;
   int arg_3 = 1;
   float arg_4 = 1.0f;
   float res = arg_0.SampleCmpLevelZero(arg_1, float3(arg_2, float(arg_3)), arg_4);
diff --git a/test/tint/builtins/gen/var/textureSampleCompareLevel/1116ed.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleCompareLevel/1116ed.wgsl.expected.fxc.hlsl
index dfdafaa..8a156a2 100644
--- a/test/tint/builtins/gen/var/textureSampleCompareLevel/1116ed.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleCompareLevel/1116ed.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerComparisonState arg_1 : register(s1, space1);
 
 void textureSampleCompareLevel_1116ed() {
-  float2 arg_2 = (0.0f).xx;
+  float2 arg_2 = (1.0f).xx;
   int arg_3 = 1;
   float arg_4 = 1.0f;
   float res = arg_0.SampleCmpLevelZero(arg_1, float3(arg_2, float(arg_3)), arg_4);
diff --git a/test/tint/builtins/gen/var/textureSampleCompareLevel/1116ed.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureSampleCompareLevel/1116ed.wgsl.expected.glsl
index c5a1359..0383b2e 100644
--- a/test/tint/builtins/gen/var/textureSampleCompareLevel/1116ed.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureSampleCompareLevel/1116ed.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 uniform highp sampler2DArrayShadow arg_0_arg_1;
 
 void textureSampleCompareLevel_1116ed() {
-  vec2 arg_2 = vec2(0.0f);
+  vec2 arg_2 = vec2(1.0f);
   int arg_3 = 1;
   float arg_4 = 1.0f;
   float res = texture(arg_0_arg_1, vec4(vec3(arg_2, float(arg_3)), arg_4));
@@ -28,7 +28,7 @@
 uniform highp sampler2DArrayShadow arg_0_arg_1;
 
 void textureSampleCompareLevel_1116ed() {
-  vec2 arg_2 = vec2(0.0f);
+  vec2 arg_2 = vec2(1.0f);
   int arg_3 = 1;
   float arg_4 = 1.0f;
   float res = texture(arg_0_arg_1, vec4(vec3(arg_2, float(arg_3)), arg_4));
@@ -47,7 +47,7 @@
 uniform highp sampler2DArrayShadow arg_0_arg_1;
 
 void textureSampleCompareLevel_1116ed() {
-  vec2 arg_2 = vec2(0.0f);
+  vec2 arg_2 = vec2(1.0f);
   int arg_3 = 1;
   float arg_4 = 1.0f;
   float res = texture(arg_0_arg_1, vec4(vec3(arg_2, float(arg_3)), arg_4));
diff --git a/test/tint/builtins/gen/var/textureSampleCompareLevel/1116ed.wgsl.expected.msl b/test/tint/builtins/gen/var/textureSampleCompareLevel/1116ed.wgsl.expected.msl
index f4bf884..fc084f6 100644
--- a/test/tint/builtins/gen/var/textureSampleCompareLevel/1116ed.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureSampleCompareLevel/1116ed.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureSampleCompareLevel_1116ed(depth2d_array<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float2 arg_2 = float2(0.0f);
+  float2 arg_2 = float2(1.0f);
   int arg_3 = 1;
   float arg_4 = 1.0f;
   float res = tint_symbol_1.sample_compare(tint_symbol_2, arg_2, arg_3, arg_4, level(0));
diff --git a/test/tint/builtins/gen/var/textureSampleCompareLevel/1116ed.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSampleCompareLevel/1116ed.wgsl.expected.spvasm
index fb2da60..c187ec1 100644
--- a/test/tint/builtins/gen/var/textureSampleCompareLevel/1116ed.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSampleCompareLevel/1116ed.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 59
+; Bound: 60
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -46,60 +46,61 @@
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
-         %20 = OpConstantNull %v2float
+    %float_1 = OpConstant %float 1
+         %21 = OpConstantComposite %v2float %float_1 %float_1
 %_ptr_Function_v2float = OpTypePointer Function %v2float
+         %24 = OpConstantNull %v2float
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
-         %27 = OpConstantNull %int
-    %float_1 = OpConstant %float 1
+         %29 = OpConstantNull %int
 %_ptr_Function_float = OpTypePointer Function %float
-         %34 = OpTypeSampledImage %11
+         %35 = OpTypeSampledImage %11
     %v3float = OpTypeVector %float 3
     %float_0 = OpConstant %float 0
-         %46 = OpTypeFunction %v4float
+         %47 = OpTypeFunction %v4float
 %textureSampleCompareLevel_1116ed = OpFunction %void None %15
          %18 = OpLabel
-      %arg_2 = OpVariable %_ptr_Function_v2float Function %20
-      %arg_3 = OpVariable %_ptr_Function_int Function %27
+      %arg_2 = OpVariable %_ptr_Function_v2float Function %24
+      %arg_3 = OpVariable %_ptr_Function_int Function %29
       %arg_4 = OpVariable %_ptr_Function_float Function %8
         %res = OpVariable %_ptr_Function_float Function %8
-               OpStore %arg_2 %20
+               OpStore %arg_2 %21
                OpStore %arg_3 %int_1
                OpStore %arg_4 %float_1
-         %32 = OpLoad %14 %arg_1
-         %33 = OpLoad %11 %arg_0
-         %35 = OpSampledImage %34 %33 %32
-         %37 = OpLoad %v2float %arg_2
-         %38 = OpCompositeExtract %float %37 0
-         %39 = OpCompositeExtract %float %37 1
-         %41 = OpLoad %int %arg_3
-         %40 = OpConvertSToF %float %41
-         %42 = OpCompositeConstruct %v3float %38 %39 %40
-         %43 = OpLoad %float %arg_4
-         %31 = OpImageSampleDrefExplicitLod %float %35 %42 %43 Lod %float_0
-               OpStore %res %31
+         %33 = OpLoad %14 %arg_1
+         %34 = OpLoad %11 %arg_0
+         %36 = OpSampledImage %35 %34 %33
+         %38 = OpLoad %v2float %arg_2
+         %39 = OpCompositeExtract %float %38 0
+         %40 = OpCompositeExtract %float %38 1
+         %42 = OpLoad %int %arg_3
+         %41 = OpConvertSToF %float %42
+         %43 = OpCompositeConstruct %v3float %39 %40 %41
+         %44 = OpLoad %float %arg_4
+         %32 = OpImageSampleDrefExplicitLod %float %36 %43 %44 Lod %float_0
+               OpStore %res %32
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %46
-         %48 = OpLabel
-         %49 = OpFunctionCall %void %textureSampleCompareLevel_1116ed
+%vertex_main_inner = OpFunction %v4float None %47
+         %49 = OpLabel
+         %50 = OpFunctionCall %void %textureSampleCompareLevel_1116ed
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
-         %51 = OpLabel
-         %52 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %52
+         %52 = OpLabel
+         %53 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %53
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %15
-         %54 = OpLabel
-         %55 = OpFunctionCall %void %textureSampleCompareLevel_1116ed
+         %55 = OpLabel
+         %56 = OpFunctionCall %void %textureSampleCompareLevel_1116ed
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %15
-         %57 = OpLabel
-         %58 = OpFunctionCall %void %textureSampleCompareLevel_1116ed
+         %58 = OpLabel
+         %59 = OpFunctionCall %void %textureSampleCompareLevel_1116ed
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureSampleCompareLevel/1116ed.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSampleCompareLevel/1116ed.wgsl.expected.wgsl
index edd07be..1ef36d7 100644
--- a/test/tint/builtins/gen/var/textureSampleCompareLevel/1116ed.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleCompareLevel/1116ed.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(1) var arg_1 : sampler_comparison;
 
 fn textureSampleCompareLevel_1116ed() {
-  var arg_2 = vec2<f32>();
+  var arg_2 = vec2<f32>(1.0f);
   var arg_3 = 1i;
   var arg_4 = 1.0f;
   var res : f32 = textureSampleCompareLevel(arg_0, arg_1, arg_2, arg_3, arg_4);
diff --git a/test/tint/builtins/gen/var/textureSampleCompareLevel/1568e3.wgsl b/test/tint/builtins/gen/var/textureSampleCompareLevel/1568e3.wgsl
index 500b566..b0be6cd 100644
--- a/test/tint/builtins/gen/var/textureSampleCompareLevel/1568e3.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleCompareLevel/1568e3.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureSampleCompareLevel(texture: texture_depth_cube, sampler: sampler_comparison, coords: vec3<f32>, depth_ref: f32) -> f32
 fn textureSampleCompareLevel_1568e3() {
-  var arg_2 = vec3<f32>();
+  var arg_2 = vec3<f32>(1.f);
   var arg_3 = 1.f;
   var res: f32 = textureSampleCompareLevel(arg_0, arg_1, arg_2, arg_3);
 }
diff --git a/test/tint/builtins/gen/var/textureSampleCompareLevel/1568e3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleCompareLevel/1568e3.wgsl.expected.dxc.hlsl
index a0b30fb..fe49ba4 100644
--- a/test/tint/builtins/gen/var/textureSampleCompareLevel/1568e3.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleCompareLevel/1568e3.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerComparisonState arg_1 : register(s1, space1);
 
 void textureSampleCompareLevel_1568e3() {
-  float3 arg_2 = (0.0f).xxx;
+  float3 arg_2 = (1.0f).xxx;
   float arg_3 = 1.0f;
   float res = arg_0.SampleCmpLevelZero(arg_1, arg_2, arg_3);
 }
diff --git a/test/tint/builtins/gen/var/textureSampleCompareLevel/1568e3.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleCompareLevel/1568e3.wgsl.expected.fxc.hlsl
index a0b30fb..fe49ba4 100644
--- a/test/tint/builtins/gen/var/textureSampleCompareLevel/1568e3.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleCompareLevel/1568e3.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerComparisonState arg_1 : register(s1, space1);
 
 void textureSampleCompareLevel_1568e3() {
-  float3 arg_2 = (0.0f).xxx;
+  float3 arg_2 = (1.0f).xxx;
   float arg_3 = 1.0f;
   float res = arg_0.SampleCmpLevelZero(arg_1, arg_2, arg_3);
 }
diff --git a/test/tint/builtins/gen/var/textureSampleCompareLevel/1568e3.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureSampleCompareLevel/1568e3.wgsl.expected.glsl
index d877ce4..d85527c 100644
--- a/test/tint/builtins/gen/var/textureSampleCompareLevel/1568e3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureSampleCompareLevel/1568e3.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 uniform highp samplerCubeShadow arg_0_arg_1;
 
 void textureSampleCompareLevel_1568e3() {
-  vec3 arg_2 = vec3(0.0f);
+  vec3 arg_2 = vec3(1.0f);
   float arg_3 = 1.0f;
   float res = texture(arg_0_arg_1, vec4(arg_2, arg_3));
 }
@@ -27,7 +27,7 @@
 uniform highp samplerCubeShadow arg_0_arg_1;
 
 void textureSampleCompareLevel_1568e3() {
-  vec3 arg_2 = vec3(0.0f);
+  vec3 arg_2 = vec3(1.0f);
   float arg_3 = 1.0f;
   float res = texture(arg_0_arg_1, vec4(arg_2, arg_3));
 }
@@ -45,7 +45,7 @@
 uniform highp samplerCubeShadow arg_0_arg_1;
 
 void textureSampleCompareLevel_1568e3() {
-  vec3 arg_2 = vec3(0.0f);
+  vec3 arg_2 = vec3(1.0f);
   float arg_3 = 1.0f;
   float res = texture(arg_0_arg_1, vec4(arg_2, arg_3));
 }
diff --git a/test/tint/builtins/gen/var/textureSampleCompareLevel/1568e3.wgsl.expected.msl b/test/tint/builtins/gen/var/textureSampleCompareLevel/1568e3.wgsl.expected.msl
index 410b28c..53f4c9c 100644
--- a/test/tint/builtins/gen/var/textureSampleCompareLevel/1568e3.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureSampleCompareLevel/1568e3.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureSampleCompareLevel_1568e3(depthcube<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float3 arg_2 = float3(0.0f);
+  float3 arg_2 = float3(1.0f);
   float arg_3 = 1.0f;
   float res = tint_symbol_1.sample_compare(tint_symbol_2, arg_2, arg_3, level(0));
 }
diff --git a/test/tint/builtins/gen/var/textureSampleCompareLevel/1568e3.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSampleCompareLevel/1568e3.wgsl.expected.spvasm
index b0d97d3..db66d65 100644
--- a/test/tint/builtins/gen/var/textureSampleCompareLevel/1568e3.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSampleCompareLevel/1568e3.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 48
+; Bound: 49
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -45,48 +45,49 @@
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
     %v3float = OpTypeVector %float 3
-         %20 = OpConstantNull %v3float
-%_ptr_Function_v3float = OpTypePointer Function %v3float
     %float_1 = OpConstant %float 1
+         %21 = OpConstantComposite %v3float %float_1 %float_1 %float_1
+%_ptr_Function_v3float = OpTypePointer Function %v3float
+         %24 = OpConstantNull %v3float
 %_ptr_Function_float = OpTypePointer Function %float
-         %29 = OpTypeSampledImage %11
+         %30 = OpTypeSampledImage %11
     %float_0 = OpConstant %float 0
-         %35 = OpTypeFunction %v4float
+         %36 = OpTypeFunction %v4float
 %textureSampleCompareLevel_1568e3 = OpFunction %void None %15
          %18 = OpLabel
-      %arg_2 = OpVariable %_ptr_Function_v3float Function %20
+      %arg_2 = OpVariable %_ptr_Function_v3float Function %24
       %arg_3 = OpVariable %_ptr_Function_float Function %8
         %res = OpVariable %_ptr_Function_float Function %8
-               OpStore %arg_2 %20
+               OpStore %arg_2 %21
                OpStore %arg_3 %float_1
-         %27 = OpLoad %14 %arg_1
-         %28 = OpLoad %11 %arg_0
-         %30 = OpSampledImage %29 %28 %27
-         %31 = OpLoad %v3float %arg_2
-         %32 = OpLoad %float %arg_3
-         %26 = OpImageSampleDrefExplicitLod %float %30 %31 %32 Lod %float_0
-               OpStore %res %26
+         %28 = OpLoad %14 %arg_1
+         %29 = OpLoad %11 %arg_0
+         %31 = OpSampledImage %30 %29 %28
+         %32 = OpLoad %v3float %arg_2
+         %33 = OpLoad %float %arg_3
+         %27 = OpImageSampleDrefExplicitLod %float %31 %32 %33 Lod %float_0
+               OpStore %res %27
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %35
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureSampleCompareLevel_1568e3
+%vertex_main_inner = OpFunction %v4float None %36
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %textureSampleCompareLevel_1568e3
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
-         %40 = OpLabel
-         %41 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %41
+         %41 = OpLabel
+         %42 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %42
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %15
-         %43 = OpLabel
-         %44 = OpFunctionCall %void %textureSampleCompareLevel_1568e3
+         %44 = OpLabel
+         %45 = OpFunctionCall %void %textureSampleCompareLevel_1568e3
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %15
-         %46 = OpLabel
-         %47 = OpFunctionCall %void %textureSampleCompareLevel_1568e3
+         %47 = OpLabel
+         %48 = OpFunctionCall %void %textureSampleCompareLevel_1568e3
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureSampleCompareLevel/1568e3.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSampleCompareLevel/1568e3.wgsl.expected.wgsl
index db2ba7c..4952803 100644
--- a/test/tint/builtins/gen/var/textureSampleCompareLevel/1568e3.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleCompareLevel/1568e3.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(1) var arg_1 : sampler_comparison;
 
 fn textureSampleCompareLevel_1568e3() {
-  var arg_2 = vec3<f32>();
+  var arg_2 = vec3<f32>(1.0f);
   var arg_3 = 1.0f;
   var res : f32 = textureSampleCompareLevel(arg_0, arg_1, arg_2, arg_3);
 }
diff --git a/test/tint/builtins/gen/var/textureSampleCompareLevel/2ad2b1.wgsl b/test/tint/builtins/gen/var/textureSampleCompareLevel/2ad2b1.wgsl
index 5b0bda1..dd93828 100644
--- a/test/tint/builtins/gen/var/textureSampleCompareLevel/2ad2b1.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleCompareLevel/2ad2b1.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureSampleCompareLevel(texture: texture_depth_2d, sampler: sampler_comparison, coords: vec2<f32>, depth_ref: f32) -> f32
 fn textureSampleCompareLevel_2ad2b1() {
-  var arg_2 = vec2<f32>();
+  var arg_2 = vec2<f32>(1.f);
   var arg_3 = 1.f;
   var res: f32 = textureSampleCompareLevel(arg_0, arg_1, arg_2, arg_3);
 }
diff --git a/test/tint/builtins/gen/var/textureSampleCompareLevel/2ad2b1.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleCompareLevel/2ad2b1.wgsl.expected.dxc.hlsl
index c47f096..b25f1dd 100644
--- a/test/tint/builtins/gen/var/textureSampleCompareLevel/2ad2b1.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleCompareLevel/2ad2b1.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerComparisonState arg_1 : register(s1, space1);
 
 void textureSampleCompareLevel_2ad2b1() {
-  float2 arg_2 = (0.0f).xx;
+  float2 arg_2 = (1.0f).xx;
   float arg_3 = 1.0f;
   float res = arg_0.SampleCmpLevelZero(arg_1, arg_2, arg_3);
 }
diff --git a/test/tint/builtins/gen/var/textureSampleCompareLevel/2ad2b1.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleCompareLevel/2ad2b1.wgsl.expected.fxc.hlsl
index c47f096..b25f1dd 100644
--- a/test/tint/builtins/gen/var/textureSampleCompareLevel/2ad2b1.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleCompareLevel/2ad2b1.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerComparisonState arg_1 : register(s1, space1);
 
 void textureSampleCompareLevel_2ad2b1() {
-  float2 arg_2 = (0.0f).xx;
+  float2 arg_2 = (1.0f).xx;
   float arg_3 = 1.0f;
   float res = arg_0.SampleCmpLevelZero(arg_1, arg_2, arg_3);
 }
diff --git a/test/tint/builtins/gen/var/textureSampleCompareLevel/2ad2b1.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureSampleCompareLevel/2ad2b1.wgsl.expected.glsl
index fb730f0..5e9a77b 100644
--- a/test/tint/builtins/gen/var/textureSampleCompareLevel/2ad2b1.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureSampleCompareLevel/2ad2b1.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 uniform highp sampler2DShadow arg_0_arg_1;
 
 void textureSampleCompareLevel_2ad2b1() {
-  vec2 arg_2 = vec2(0.0f);
+  vec2 arg_2 = vec2(1.0f);
   float arg_3 = 1.0f;
   float res = texture(arg_0_arg_1, vec3(arg_2, arg_3));
 }
@@ -27,7 +27,7 @@
 uniform highp sampler2DShadow arg_0_arg_1;
 
 void textureSampleCompareLevel_2ad2b1() {
-  vec2 arg_2 = vec2(0.0f);
+  vec2 arg_2 = vec2(1.0f);
   float arg_3 = 1.0f;
   float res = texture(arg_0_arg_1, vec3(arg_2, arg_3));
 }
@@ -45,7 +45,7 @@
 uniform highp sampler2DShadow arg_0_arg_1;
 
 void textureSampleCompareLevel_2ad2b1() {
-  vec2 arg_2 = vec2(0.0f);
+  vec2 arg_2 = vec2(1.0f);
   float arg_3 = 1.0f;
   float res = texture(arg_0_arg_1, vec3(arg_2, arg_3));
 }
diff --git a/test/tint/builtins/gen/var/textureSampleCompareLevel/2ad2b1.wgsl.expected.msl b/test/tint/builtins/gen/var/textureSampleCompareLevel/2ad2b1.wgsl.expected.msl
index fb1f7ca..2e023a2 100644
--- a/test/tint/builtins/gen/var/textureSampleCompareLevel/2ad2b1.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureSampleCompareLevel/2ad2b1.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureSampleCompareLevel_2ad2b1(depth2d<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float2 arg_2 = float2(0.0f);
+  float2 arg_2 = float2(1.0f);
   float arg_3 = 1.0f;
   float res = tint_symbol_1.sample_compare(tint_symbol_2, arg_2, arg_3, level(0));
 }
diff --git a/test/tint/builtins/gen/var/textureSampleCompareLevel/2ad2b1.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSampleCompareLevel/2ad2b1.wgsl.expected.spvasm
index 58b0090..31ce90d 100644
--- a/test/tint/builtins/gen/var/textureSampleCompareLevel/2ad2b1.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSampleCompareLevel/2ad2b1.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 48
+; Bound: 49
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -45,48 +45,49 @@
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
-         %20 = OpConstantNull %v2float
-%_ptr_Function_v2float = OpTypePointer Function %v2float
     %float_1 = OpConstant %float 1
+         %21 = OpConstantComposite %v2float %float_1 %float_1
+%_ptr_Function_v2float = OpTypePointer Function %v2float
+         %24 = OpConstantNull %v2float
 %_ptr_Function_float = OpTypePointer Function %float
-         %29 = OpTypeSampledImage %11
+         %30 = OpTypeSampledImage %11
     %float_0 = OpConstant %float 0
-         %35 = OpTypeFunction %v4float
+         %36 = OpTypeFunction %v4float
 %textureSampleCompareLevel_2ad2b1 = OpFunction %void None %15
          %18 = OpLabel
-      %arg_2 = OpVariable %_ptr_Function_v2float Function %20
+      %arg_2 = OpVariable %_ptr_Function_v2float Function %24
       %arg_3 = OpVariable %_ptr_Function_float Function %8
         %res = OpVariable %_ptr_Function_float Function %8
-               OpStore %arg_2 %20
+               OpStore %arg_2 %21
                OpStore %arg_3 %float_1
-         %27 = OpLoad %14 %arg_1
-         %28 = OpLoad %11 %arg_0
-         %30 = OpSampledImage %29 %28 %27
-         %31 = OpLoad %v2float %arg_2
-         %32 = OpLoad %float %arg_3
-         %26 = OpImageSampleDrefExplicitLod %float %30 %31 %32 Lod %float_0
-               OpStore %res %26
+         %28 = OpLoad %14 %arg_1
+         %29 = OpLoad %11 %arg_0
+         %31 = OpSampledImage %30 %29 %28
+         %32 = OpLoad %v2float %arg_2
+         %33 = OpLoad %float %arg_3
+         %27 = OpImageSampleDrefExplicitLod %float %31 %32 %33 Lod %float_0
+               OpStore %res %27
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %35
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureSampleCompareLevel_2ad2b1
+%vertex_main_inner = OpFunction %v4float None %36
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %textureSampleCompareLevel_2ad2b1
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
-         %40 = OpLabel
-         %41 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %41
+         %41 = OpLabel
+         %42 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %42
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %15
-         %43 = OpLabel
-         %44 = OpFunctionCall %void %textureSampleCompareLevel_2ad2b1
+         %44 = OpLabel
+         %45 = OpFunctionCall %void %textureSampleCompareLevel_2ad2b1
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %15
-         %46 = OpLabel
-         %47 = OpFunctionCall %void %textureSampleCompareLevel_2ad2b1
+         %47 = OpLabel
+         %48 = OpFunctionCall %void %textureSampleCompareLevel_2ad2b1
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureSampleCompareLevel/2ad2b1.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSampleCompareLevel/2ad2b1.wgsl.expected.wgsl
index 698fe14..2956adc 100644
--- a/test/tint/builtins/gen/var/textureSampleCompareLevel/2ad2b1.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleCompareLevel/2ad2b1.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(1) var arg_1 : sampler_comparison;
 
 fn textureSampleCompareLevel_2ad2b1() {
-  var arg_2 = vec2<f32>();
+  var arg_2 = vec2<f32>(1.0f);
   var arg_3 = 1.0f;
   var res : f32 = textureSampleCompareLevel(arg_0, arg_1, arg_2, arg_3);
 }
diff --git a/test/tint/builtins/gen/var/textureSampleCompareLevel/4cf3a2.wgsl b/test/tint/builtins/gen/var/textureSampleCompareLevel/4cf3a2.wgsl
index 7496cc6..bff8b92 100644
--- a/test/tint/builtins/gen/var/textureSampleCompareLevel/4cf3a2.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleCompareLevel/4cf3a2.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureSampleCompareLevel(texture: texture_depth_cube_array, sampler: sampler_comparison, coords: vec3<f32>, array_index: i32, depth_ref: f32) -> f32
 fn textureSampleCompareLevel_4cf3a2() {
-  var arg_2 = vec3<f32>();
+  var arg_2 = vec3<f32>(1.f);
   var arg_3 = 1i;
   var arg_4 = 1.f;
   var res: f32 = textureSampleCompareLevel(arg_0, arg_1, arg_2, arg_3, arg_4);
diff --git a/test/tint/builtins/gen/var/textureSampleCompareLevel/4cf3a2.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleCompareLevel/4cf3a2.wgsl.expected.dxc.hlsl
index 7910d95..109d02d 100644
--- a/test/tint/builtins/gen/var/textureSampleCompareLevel/4cf3a2.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleCompareLevel/4cf3a2.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerComparisonState arg_1 : register(s1, space1);
 
 void textureSampleCompareLevel_4cf3a2() {
-  float3 arg_2 = (0.0f).xxx;
+  float3 arg_2 = (1.0f).xxx;
   int arg_3 = 1;
   float arg_4 = 1.0f;
   float res = arg_0.SampleCmpLevelZero(arg_1, float4(arg_2, float(arg_3)), arg_4);
diff --git a/test/tint/builtins/gen/var/textureSampleCompareLevel/4cf3a2.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleCompareLevel/4cf3a2.wgsl.expected.fxc.hlsl
index 7910d95..109d02d 100644
--- a/test/tint/builtins/gen/var/textureSampleCompareLevel/4cf3a2.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleCompareLevel/4cf3a2.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerComparisonState arg_1 : register(s1, space1);
 
 void textureSampleCompareLevel_4cf3a2() {
-  float3 arg_2 = (0.0f).xxx;
+  float3 arg_2 = (1.0f).xxx;
   int arg_3 = 1;
   float arg_4 = 1.0f;
   float res = arg_0.SampleCmpLevelZero(arg_1, float4(arg_2, float(arg_3)), arg_4);
diff --git a/test/tint/builtins/gen/var/textureSampleCompareLevel/4cf3a2.wgsl.expected.msl b/test/tint/builtins/gen/var/textureSampleCompareLevel/4cf3a2.wgsl.expected.msl
index 0378014..2bbfa78 100644
--- a/test/tint/builtins/gen/var/textureSampleCompareLevel/4cf3a2.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureSampleCompareLevel/4cf3a2.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureSampleCompareLevel_4cf3a2(depthcube_array<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float3 arg_2 = float3(0.0f);
+  float3 arg_2 = float3(1.0f);
   int arg_3 = 1;
   float arg_4 = 1.0f;
   float res = tint_symbol_1.sample_compare(tint_symbol_2, arg_2, arg_3, arg_4, level(0));
diff --git a/test/tint/builtins/gen/var/textureSampleCompareLevel/4cf3a2.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSampleCompareLevel/4cf3a2.wgsl.expected.spvasm
index e5a6856..fe0d7cd 100644
--- a/test/tint/builtins/gen/var/textureSampleCompareLevel/4cf3a2.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSampleCompareLevel/4cf3a2.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 59
+; Bound: 60
 ; Schema: 0
                OpCapability Shader
                OpCapability SampledCubeArray
@@ -47,60 +47,61 @@
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
     %v3float = OpTypeVector %float 3
-         %20 = OpConstantNull %v3float
+    %float_1 = OpConstant %float 1
+         %21 = OpConstantComposite %v3float %float_1 %float_1 %float_1
 %_ptr_Function_v3float = OpTypePointer Function %v3float
+         %24 = OpConstantNull %v3float
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
-         %27 = OpConstantNull %int
-    %float_1 = OpConstant %float 1
+         %29 = OpConstantNull %int
 %_ptr_Function_float = OpTypePointer Function %float
-         %34 = OpTypeSampledImage %11
+         %35 = OpTypeSampledImage %11
     %float_0 = OpConstant %float 0
-         %46 = OpTypeFunction %v4float
+         %47 = OpTypeFunction %v4float
 %textureSampleCompareLevel_4cf3a2 = OpFunction %void None %15
          %18 = OpLabel
-      %arg_2 = OpVariable %_ptr_Function_v3float Function %20
-      %arg_3 = OpVariable %_ptr_Function_int Function %27
+      %arg_2 = OpVariable %_ptr_Function_v3float Function %24
+      %arg_3 = OpVariable %_ptr_Function_int Function %29
       %arg_4 = OpVariable %_ptr_Function_float Function %8
         %res = OpVariable %_ptr_Function_float Function %8
-               OpStore %arg_2 %20
+               OpStore %arg_2 %21
                OpStore %arg_3 %int_1
                OpStore %arg_4 %float_1
-         %32 = OpLoad %14 %arg_1
-         %33 = OpLoad %11 %arg_0
-         %35 = OpSampledImage %34 %33 %32
-         %36 = OpLoad %v3float %arg_2
-         %37 = OpCompositeExtract %float %36 0
-         %38 = OpCompositeExtract %float %36 1
-         %39 = OpCompositeExtract %float %36 2
-         %41 = OpLoad %int %arg_3
-         %40 = OpConvertSToF %float %41
-         %42 = OpCompositeConstruct %v4float %37 %38 %39 %40
-         %43 = OpLoad %float %arg_4
-         %31 = OpImageSampleDrefExplicitLod %float %35 %42 %43 Lod %float_0
-               OpStore %res %31
+         %33 = OpLoad %14 %arg_1
+         %34 = OpLoad %11 %arg_0
+         %36 = OpSampledImage %35 %34 %33
+         %37 = OpLoad %v3float %arg_2
+         %38 = OpCompositeExtract %float %37 0
+         %39 = OpCompositeExtract %float %37 1
+         %40 = OpCompositeExtract %float %37 2
+         %42 = OpLoad %int %arg_3
+         %41 = OpConvertSToF %float %42
+         %43 = OpCompositeConstruct %v4float %38 %39 %40 %41
+         %44 = OpLoad %float %arg_4
+         %32 = OpImageSampleDrefExplicitLod %float %36 %43 %44 Lod %float_0
+               OpStore %res %32
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %46
-         %48 = OpLabel
-         %49 = OpFunctionCall %void %textureSampleCompareLevel_4cf3a2
+%vertex_main_inner = OpFunction %v4float None %47
+         %49 = OpLabel
+         %50 = OpFunctionCall %void %textureSampleCompareLevel_4cf3a2
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
-         %51 = OpLabel
-         %52 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %52
+         %52 = OpLabel
+         %53 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %53
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %15
-         %54 = OpLabel
-         %55 = OpFunctionCall %void %textureSampleCompareLevel_4cf3a2
+         %55 = OpLabel
+         %56 = OpFunctionCall %void %textureSampleCompareLevel_4cf3a2
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %15
-         %57 = OpLabel
-         %58 = OpFunctionCall %void %textureSampleCompareLevel_4cf3a2
+         %58 = OpLabel
+         %59 = OpFunctionCall %void %textureSampleCompareLevel_4cf3a2
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureSampleCompareLevel/4cf3a2.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSampleCompareLevel/4cf3a2.wgsl.expected.wgsl
index 3c4b44a..081c1ec 100644
--- a/test/tint/builtins/gen/var/textureSampleCompareLevel/4cf3a2.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleCompareLevel/4cf3a2.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(1) var arg_1 : sampler_comparison;
 
 fn textureSampleCompareLevel_4cf3a2() {
-  var arg_2 = vec3<f32>();
+  var arg_2 = vec3<f32>(1.0f);
   var arg_3 = 1i;
   var arg_4 = 1.0f;
   var res : f32 = textureSampleCompareLevel(arg_0, arg_1, arg_2, arg_3, arg_4);
diff --git a/test/tint/builtins/gen/var/textureSampleCompareLevel/7dc3c0.wgsl b/test/tint/builtins/gen/var/textureSampleCompareLevel/7dc3c0.wgsl
index 1bcb431..fbb9dac 100644
--- a/test/tint/builtins/gen/var/textureSampleCompareLevel/7dc3c0.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleCompareLevel/7dc3c0.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureSampleCompareLevel(texture: texture_depth_2d_array, sampler: sampler_comparison, coords: vec2<f32>, array_index: u32, depth_ref: f32) -> f32
 fn textureSampleCompareLevel_7dc3c0() {
-  var arg_2 = vec2<f32>();
+  var arg_2 = vec2<f32>(1.f);
   var arg_3 = 1u;
   var arg_4 = 1.f;
   var res: f32 = textureSampleCompareLevel(arg_0, arg_1, arg_2, arg_3, arg_4);
diff --git a/test/tint/builtins/gen/var/textureSampleCompareLevel/7dc3c0.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleCompareLevel/7dc3c0.wgsl.expected.dxc.hlsl
index 0283909..90c9f70 100644
--- a/test/tint/builtins/gen/var/textureSampleCompareLevel/7dc3c0.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleCompareLevel/7dc3c0.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerComparisonState arg_1 : register(s1, space1);
 
 void textureSampleCompareLevel_7dc3c0() {
-  float2 arg_2 = (0.0f).xx;
+  float2 arg_2 = (1.0f).xx;
   uint arg_3 = 1u;
   float arg_4 = 1.0f;
   float res = arg_0.SampleCmpLevelZero(arg_1, float3(arg_2, float(arg_3)), arg_4);
diff --git a/test/tint/builtins/gen/var/textureSampleCompareLevel/7dc3c0.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleCompareLevel/7dc3c0.wgsl.expected.fxc.hlsl
index 0283909..90c9f70 100644
--- a/test/tint/builtins/gen/var/textureSampleCompareLevel/7dc3c0.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleCompareLevel/7dc3c0.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerComparisonState arg_1 : register(s1, space1);
 
 void textureSampleCompareLevel_7dc3c0() {
-  float2 arg_2 = (0.0f).xx;
+  float2 arg_2 = (1.0f).xx;
   uint arg_3 = 1u;
   float arg_4 = 1.0f;
   float res = arg_0.SampleCmpLevelZero(arg_1, float3(arg_2, float(arg_3)), arg_4);
diff --git a/test/tint/builtins/gen/var/textureSampleCompareLevel/7dc3c0.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureSampleCompareLevel/7dc3c0.wgsl.expected.glsl
index 88a12ca..7ec21aa 100644
--- a/test/tint/builtins/gen/var/textureSampleCompareLevel/7dc3c0.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureSampleCompareLevel/7dc3c0.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 uniform highp sampler2DArrayShadow arg_0_arg_1;
 
 void textureSampleCompareLevel_7dc3c0() {
-  vec2 arg_2 = vec2(0.0f);
+  vec2 arg_2 = vec2(1.0f);
   uint arg_3 = 1u;
   float arg_4 = 1.0f;
   float res = texture(arg_0_arg_1, vec4(vec3(arg_2, float(arg_3)), arg_4));
@@ -28,7 +28,7 @@
 uniform highp sampler2DArrayShadow arg_0_arg_1;
 
 void textureSampleCompareLevel_7dc3c0() {
-  vec2 arg_2 = vec2(0.0f);
+  vec2 arg_2 = vec2(1.0f);
   uint arg_3 = 1u;
   float arg_4 = 1.0f;
   float res = texture(arg_0_arg_1, vec4(vec3(arg_2, float(arg_3)), arg_4));
@@ -47,7 +47,7 @@
 uniform highp sampler2DArrayShadow arg_0_arg_1;
 
 void textureSampleCompareLevel_7dc3c0() {
-  vec2 arg_2 = vec2(0.0f);
+  vec2 arg_2 = vec2(1.0f);
   uint arg_3 = 1u;
   float arg_4 = 1.0f;
   float res = texture(arg_0_arg_1, vec4(vec3(arg_2, float(arg_3)), arg_4));
diff --git a/test/tint/builtins/gen/var/textureSampleCompareLevel/7dc3c0.wgsl.expected.msl b/test/tint/builtins/gen/var/textureSampleCompareLevel/7dc3c0.wgsl.expected.msl
index 27a6c6e..817418d 100644
--- a/test/tint/builtins/gen/var/textureSampleCompareLevel/7dc3c0.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureSampleCompareLevel/7dc3c0.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureSampleCompareLevel_7dc3c0(depth2d_array<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float2 arg_2 = float2(0.0f);
+  float2 arg_2 = float2(1.0f);
   uint arg_3 = 1u;
   float arg_4 = 1.0f;
   float res = tint_symbol_1.sample_compare(tint_symbol_2, arg_2, arg_3, arg_4, level(0));
diff --git a/test/tint/builtins/gen/var/textureSampleCompareLevel/7dc3c0.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSampleCompareLevel/7dc3c0.wgsl.expected.spvasm
index e8bacfc..1533c38 100644
--- a/test/tint/builtins/gen/var/textureSampleCompareLevel/7dc3c0.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSampleCompareLevel/7dc3c0.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 59
+; Bound: 60
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -46,60 +46,61 @@
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
-         %20 = OpConstantNull %v2float
+    %float_1 = OpConstant %float 1
+         %21 = OpConstantComposite %v2float %float_1 %float_1
 %_ptr_Function_v2float = OpTypePointer Function %v2float
+         %24 = OpConstantNull %v2float
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %27 = OpConstantNull %uint
-    %float_1 = OpConstant %float 1
+         %29 = OpConstantNull %uint
 %_ptr_Function_float = OpTypePointer Function %float
-         %34 = OpTypeSampledImage %11
+         %35 = OpTypeSampledImage %11
     %v3float = OpTypeVector %float 3
     %float_0 = OpConstant %float 0
-         %46 = OpTypeFunction %v4float
+         %47 = OpTypeFunction %v4float
 %textureSampleCompareLevel_7dc3c0 = OpFunction %void None %15
          %18 = OpLabel
-      %arg_2 = OpVariable %_ptr_Function_v2float Function %20
-      %arg_3 = OpVariable %_ptr_Function_uint Function %27
+      %arg_2 = OpVariable %_ptr_Function_v2float Function %24
+      %arg_3 = OpVariable %_ptr_Function_uint Function %29
       %arg_4 = OpVariable %_ptr_Function_float Function %8
         %res = OpVariable %_ptr_Function_float Function %8
-               OpStore %arg_2 %20
+               OpStore %arg_2 %21
                OpStore %arg_3 %uint_1
                OpStore %arg_4 %float_1
-         %32 = OpLoad %14 %arg_1
-         %33 = OpLoad %11 %arg_0
-         %35 = OpSampledImage %34 %33 %32
-         %37 = OpLoad %v2float %arg_2
-         %38 = OpCompositeExtract %float %37 0
-         %39 = OpCompositeExtract %float %37 1
-         %41 = OpLoad %uint %arg_3
-         %40 = OpConvertUToF %float %41
-         %42 = OpCompositeConstruct %v3float %38 %39 %40
-         %43 = OpLoad %float %arg_4
-         %31 = OpImageSampleDrefExplicitLod %float %35 %42 %43 Lod %float_0
-               OpStore %res %31
+         %33 = OpLoad %14 %arg_1
+         %34 = OpLoad %11 %arg_0
+         %36 = OpSampledImage %35 %34 %33
+         %38 = OpLoad %v2float %arg_2
+         %39 = OpCompositeExtract %float %38 0
+         %40 = OpCompositeExtract %float %38 1
+         %42 = OpLoad %uint %arg_3
+         %41 = OpConvertUToF %float %42
+         %43 = OpCompositeConstruct %v3float %39 %40 %41
+         %44 = OpLoad %float %arg_4
+         %32 = OpImageSampleDrefExplicitLod %float %36 %43 %44 Lod %float_0
+               OpStore %res %32
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %46
-         %48 = OpLabel
-         %49 = OpFunctionCall %void %textureSampleCompareLevel_7dc3c0
+%vertex_main_inner = OpFunction %v4float None %47
+         %49 = OpLabel
+         %50 = OpFunctionCall %void %textureSampleCompareLevel_7dc3c0
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
-         %51 = OpLabel
-         %52 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %52
+         %52 = OpLabel
+         %53 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %53
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %15
-         %54 = OpLabel
-         %55 = OpFunctionCall %void %textureSampleCompareLevel_7dc3c0
+         %55 = OpLabel
+         %56 = OpFunctionCall %void %textureSampleCompareLevel_7dc3c0
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %15
-         %57 = OpLabel
-         %58 = OpFunctionCall %void %textureSampleCompareLevel_7dc3c0
+         %58 = OpLabel
+         %59 = OpFunctionCall %void %textureSampleCompareLevel_7dc3c0
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureSampleCompareLevel/7dc3c0.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSampleCompareLevel/7dc3c0.wgsl.expected.wgsl
index b15d2d4..48140b2 100644
--- a/test/tint/builtins/gen/var/textureSampleCompareLevel/7dc3c0.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleCompareLevel/7dc3c0.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(1) var arg_1 : sampler_comparison;
 
 fn textureSampleCompareLevel_7dc3c0() {
-  var arg_2 = vec2<f32>();
+  var arg_2 = vec2<f32>(1.0f);
   var arg_3 = 1u;
   var arg_4 = 1.0f;
   var res : f32 = textureSampleCompareLevel(arg_0, arg_1, arg_2, arg_3, arg_4);
diff --git a/test/tint/builtins/gen/var/textureSampleCompareLevel/7f2b9a.wgsl b/test/tint/builtins/gen/var/textureSampleCompareLevel/7f2b9a.wgsl
index 399dfb5..72bec7b 100644
--- a/test/tint/builtins/gen/var/textureSampleCompareLevel/7f2b9a.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleCompareLevel/7f2b9a.wgsl
@@ -25,9 +25,9 @@
 
 // fn textureSampleCompareLevel(texture: texture_depth_2d, sampler: sampler_comparison, coords: vec2<f32>, depth_ref: f32, @const offset: vec2<i32>) -> f32
 fn textureSampleCompareLevel_7f2b9a() {
-  var arg_2 = vec2<f32>();
+  var arg_2 = vec2<f32>(1.f);
   var arg_3 = 1.f;
-  const arg_4 = vec2<i32>();
+  const arg_4 = vec2<i32>(1i);
   var res: f32 = textureSampleCompareLevel(arg_0, arg_1, arg_2, arg_3, arg_4);
 }
 
diff --git a/test/tint/builtins/gen/var/textureSampleCompareLevel/7f2b9a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleCompareLevel/7f2b9a.wgsl.expected.dxc.hlsl
index 6365c43..a3aea8d 100644
--- a/test/tint/builtins/gen/var/textureSampleCompareLevel/7f2b9a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleCompareLevel/7f2b9a.wgsl.expected.dxc.hlsl
@@ -2,9 +2,9 @@
 SamplerComparisonState arg_1 : register(s1, space1);
 
 void textureSampleCompareLevel_7f2b9a() {
-  float2 arg_2 = (0.0f).xx;
+  float2 arg_2 = (1.0f).xx;
   float arg_3 = 1.0f;
-  float res = arg_0.SampleCmpLevelZero(arg_1, arg_2, arg_3, (0).xx);
+  float res = arg_0.SampleCmpLevelZero(arg_1, arg_2, arg_3, (1).xx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/textureSampleCompareLevel/7f2b9a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleCompareLevel/7f2b9a.wgsl.expected.fxc.hlsl
index 6365c43..a3aea8d 100644
--- a/test/tint/builtins/gen/var/textureSampleCompareLevel/7f2b9a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleCompareLevel/7f2b9a.wgsl.expected.fxc.hlsl
@@ -2,9 +2,9 @@
 SamplerComparisonState arg_1 : register(s1, space1);
 
 void textureSampleCompareLevel_7f2b9a() {
-  float2 arg_2 = (0.0f).xx;
+  float2 arg_2 = (1.0f).xx;
   float arg_3 = 1.0f;
-  float res = arg_0.SampleCmpLevelZero(arg_1, arg_2, arg_3, (0).xx);
+  float res = arg_0.SampleCmpLevelZero(arg_1, arg_2, arg_3, (1).xx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/textureSampleCompareLevel/7f2b9a.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureSampleCompareLevel/7f2b9a.wgsl.expected.glsl
index 0dcecc2..c600c05 100644
--- a/test/tint/builtins/gen/var/textureSampleCompareLevel/7f2b9a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureSampleCompareLevel/7f2b9a.wgsl.expected.glsl
@@ -3,9 +3,9 @@
 uniform highp sampler2DShadow arg_0_arg_1;
 
 void textureSampleCompareLevel_7f2b9a() {
-  vec2 arg_2 = vec2(0.0f);
+  vec2 arg_2 = vec2(1.0f);
   float arg_3 = 1.0f;
-  float res = textureOffset(arg_0_arg_1, vec3(arg_2, arg_3), ivec2(0));
+  float res = textureOffset(arg_0_arg_1, vec3(arg_2, arg_3), ivec2(1));
 }
 
 vec4 vertex_main() {
@@ -27,9 +27,9 @@
 uniform highp sampler2DShadow arg_0_arg_1;
 
 void textureSampleCompareLevel_7f2b9a() {
-  vec2 arg_2 = vec2(0.0f);
+  vec2 arg_2 = vec2(1.0f);
   float arg_3 = 1.0f;
-  float res = textureOffset(arg_0_arg_1, vec3(arg_2, arg_3), ivec2(0));
+  float res = textureOffset(arg_0_arg_1, vec3(arg_2, arg_3), ivec2(1));
 }
 
 void fragment_main() {
@@ -45,9 +45,9 @@
 uniform highp sampler2DShadow arg_0_arg_1;
 
 void textureSampleCompareLevel_7f2b9a() {
-  vec2 arg_2 = vec2(0.0f);
+  vec2 arg_2 = vec2(1.0f);
   float arg_3 = 1.0f;
-  float res = textureOffset(arg_0_arg_1, vec3(arg_2, arg_3), ivec2(0));
+  float res = textureOffset(arg_0_arg_1, vec3(arg_2, arg_3), ivec2(1));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/var/textureSampleCompareLevel/7f2b9a.wgsl.expected.msl b/test/tint/builtins/gen/var/textureSampleCompareLevel/7f2b9a.wgsl.expected.msl
index 12a1172..b552184 100644
--- a/test/tint/builtins/gen/var/textureSampleCompareLevel/7f2b9a.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureSampleCompareLevel/7f2b9a.wgsl.expected.msl
@@ -2,9 +2,9 @@
 
 using namespace metal;
 void textureSampleCompareLevel_7f2b9a(depth2d<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float2 arg_2 = float2(0.0f);
+  float2 arg_2 = float2(1.0f);
   float arg_3 = 1.0f;
-  float res = tint_symbol_1.sample_compare(tint_symbol_2, arg_2, arg_3, level(0), int2(0));
+  float res = tint_symbol_1.sample_compare(tint_symbol_2, arg_2, arg_3, level(0), int2(1));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/textureSampleCompareLevel/7f2b9a.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSampleCompareLevel/7f2b9a.wgsl.expected.spvasm
index 8e4ef7c..6ea24fd 100644
--- a/test/tint/builtins/gen/var/textureSampleCompareLevel/7f2b9a.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSampleCompareLevel/7f2b9a.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 51
+; Bound: 53
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -45,51 +45,53 @@
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
-         %20 = OpConstantNull %v2float
-%_ptr_Function_v2float = OpTypePointer Function %v2float
     %float_1 = OpConstant %float 1
+         %21 = OpConstantComposite %v2float %float_1 %float_1
+%_ptr_Function_v2float = OpTypePointer Function %v2float
+         %24 = OpConstantNull %v2float
 %_ptr_Function_float = OpTypePointer Function %float
-         %29 = OpTypeSampledImage %11
+         %30 = OpTypeSampledImage %11
     %float_0 = OpConstant %float 0
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
-         %36 = OpConstantNull %v2int
-         %38 = OpTypeFunction %v4float
+      %int_1 = OpConstant %int 1
+         %38 = OpConstantComposite %v2int %int_1 %int_1
+         %40 = OpTypeFunction %v4float
 %textureSampleCompareLevel_7f2b9a = OpFunction %void None %15
          %18 = OpLabel
-      %arg_2 = OpVariable %_ptr_Function_v2float Function %20
+      %arg_2 = OpVariable %_ptr_Function_v2float Function %24
       %arg_3 = OpVariable %_ptr_Function_float Function %8
         %res = OpVariable %_ptr_Function_float Function %8
-               OpStore %arg_2 %20
+               OpStore %arg_2 %21
                OpStore %arg_3 %float_1
-         %27 = OpLoad %14 %arg_1
-         %28 = OpLoad %11 %arg_0
-         %30 = OpSampledImage %29 %28 %27
-         %31 = OpLoad %v2float %arg_2
-         %32 = OpLoad %float %arg_3
-         %26 = OpImageSampleDrefExplicitLod %float %30 %31 %32 Lod|ConstOffset %float_0 %36
-               OpStore %res %26
+         %28 = OpLoad %14 %arg_1
+         %29 = OpLoad %11 %arg_0
+         %31 = OpSampledImage %30 %29 %28
+         %32 = OpLoad %v2float %arg_2
+         %33 = OpLoad %float %arg_3
+         %27 = OpImageSampleDrefExplicitLod %float %31 %32 %33 Lod|ConstOffset %float_0 %38
+               OpStore %res %27
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %38
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureSampleCompareLevel_7f2b9a
+%vertex_main_inner = OpFunction %v4float None %40
+         %42 = OpLabel
+         %43 = OpFunctionCall %void %textureSampleCompareLevel_7f2b9a
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
-         %43 = OpLabel
-         %44 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %44
+         %45 = OpLabel
+         %46 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %46
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %15
-         %46 = OpLabel
-         %47 = OpFunctionCall %void %textureSampleCompareLevel_7f2b9a
+         %48 = OpLabel
+         %49 = OpFunctionCall %void %textureSampleCompareLevel_7f2b9a
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %15
-         %49 = OpLabel
-         %50 = OpFunctionCall %void %textureSampleCompareLevel_7f2b9a
+         %51 = OpLabel
+         %52 = OpFunctionCall %void %textureSampleCompareLevel_7f2b9a
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureSampleCompareLevel/7f2b9a.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSampleCompareLevel/7f2b9a.wgsl.expected.wgsl
index cbb72fd..704668b 100644
--- a/test/tint/builtins/gen/var/textureSampleCompareLevel/7f2b9a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleCompareLevel/7f2b9a.wgsl.expected.wgsl
@@ -3,9 +3,9 @@
 @group(1) @binding(1) var arg_1 : sampler_comparison;
 
 fn textureSampleCompareLevel_7f2b9a() {
-  var arg_2 = vec2<f32>();
+  var arg_2 = vec2<f32>(1.0f);
   var arg_3 = 1.0f;
-  const arg_4 = vec2<i32>();
+  const arg_4 = vec2<i32>(1i);
   var res : f32 = textureSampleCompareLevel(arg_0, arg_1, arg_2, arg_3, arg_4);
 }
 
diff --git a/test/tint/builtins/gen/var/textureSampleCompareLevel/958c87.wgsl b/test/tint/builtins/gen/var/textureSampleCompareLevel/958c87.wgsl
index b6cd370..82e5958 100644
--- a/test/tint/builtins/gen/var/textureSampleCompareLevel/958c87.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleCompareLevel/958c87.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureSampleCompareLevel(texture: texture_depth_cube_array, sampler: sampler_comparison, coords: vec3<f32>, array_index: u32, depth_ref: f32) -> f32
 fn textureSampleCompareLevel_958c87() {
-  var arg_2 = vec3<f32>();
+  var arg_2 = vec3<f32>(1.f);
   var arg_3 = 1u;
   var arg_4 = 1.f;
   var res: f32 = textureSampleCompareLevel(arg_0, arg_1, arg_2, arg_3, arg_4);
diff --git a/test/tint/builtins/gen/var/textureSampleCompareLevel/958c87.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleCompareLevel/958c87.wgsl.expected.dxc.hlsl
index 052b573..3e709bb 100644
--- a/test/tint/builtins/gen/var/textureSampleCompareLevel/958c87.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleCompareLevel/958c87.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerComparisonState arg_1 : register(s1, space1);
 
 void textureSampleCompareLevel_958c87() {
-  float3 arg_2 = (0.0f).xxx;
+  float3 arg_2 = (1.0f).xxx;
   uint arg_3 = 1u;
   float arg_4 = 1.0f;
   float res = arg_0.SampleCmpLevelZero(arg_1, float4(arg_2, float(arg_3)), arg_4);
diff --git a/test/tint/builtins/gen/var/textureSampleCompareLevel/958c87.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleCompareLevel/958c87.wgsl.expected.fxc.hlsl
index 052b573..3e709bb 100644
--- a/test/tint/builtins/gen/var/textureSampleCompareLevel/958c87.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleCompareLevel/958c87.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerComparisonState arg_1 : register(s1, space1);
 
 void textureSampleCompareLevel_958c87() {
-  float3 arg_2 = (0.0f).xxx;
+  float3 arg_2 = (1.0f).xxx;
   uint arg_3 = 1u;
   float arg_4 = 1.0f;
   float res = arg_0.SampleCmpLevelZero(arg_1, float4(arg_2, float(arg_3)), arg_4);
diff --git a/test/tint/builtins/gen/var/textureSampleCompareLevel/958c87.wgsl.expected.msl b/test/tint/builtins/gen/var/textureSampleCompareLevel/958c87.wgsl.expected.msl
index bda2ec6..c4f6727 100644
--- a/test/tint/builtins/gen/var/textureSampleCompareLevel/958c87.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureSampleCompareLevel/958c87.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureSampleCompareLevel_958c87(depthcube_array<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float3 arg_2 = float3(0.0f);
+  float3 arg_2 = float3(1.0f);
   uint arg_3 = 1u;
   float arg_4 = 1.0f;
   float res = tint_symbol_1.sample_compare(tint_symbol_2, arg_2, arg_3, arg_4, level(0));
diff --git a/test/tint/builtins/gen/var/textureSampleCompareLevel/958c87.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSampleCompareLevel/958c87.wgsl.expected.spvasm
index 6f5a6ae..0ee630f 100644
--- a/test/tint/builtins/gen/var/textureSampleCompareLevel/958c87.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSampleCompareLevel/958c87.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 59
+; Bound: 60
 ; Schema: 0
                OpCapability Shader
                OpCapability SampledCubeArray
@@ -47,60 +47,61 @@
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
     %v3float = OpTypeVector %float 3
-         %20 = OpConstantNull %v3float
+    %float_1 = OpConstant %float 1
+         %21 = OpConstantComposite %v3float %float_1 %float_1 %float_1
 %_ptr_Function_v3float = OpTypePointer Function %v3float
+         %24 = OpConstantNull %v3float
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %27 = OpConstantNull %uint
-    %float_1 = OpConstant %float 1
+         %29 = OpConstantNull %uint
 %_ptr_Function_float = OpTypePointer Function %float
-         %34 = OpTypeSampledImage %11
+         %35 = OpTypeSampledImage %11
     %float_0 = OpConstant %float 0
-         %46 = OpTypeFunction %v4float
+         %47 = OpTypeFunction %v4float
 %textureSampleCompareLevel_958c87 = OpFunction %void None %15
          %18 = OpLabel
-      %arg_2 = OpVariable %_ptr_Function_v3float Function %20
-      %arg_3 = OpVariable %_ptr_Function_uint Function %27
+      %arg_2 = OpVariable %_ptr_Function_v3float Function %24
+      %arg_3 = OpVariable %_ptr_Function_uint Function %29
       %arg_4 = OpVariable %_ptr_Function_float Function %8
         %res = OpVariable %_ptr_Function_float Function %8
-               OpStore %arg_2 %20
+               OpStore %arg_2 %21
                OpStore %arg_3 %uint_1
                OpStore %arg_4 %float_1
-         %32 = OpLoad %14 %arg_1
-         %33 = OpLoad %11 %arg_0
-         %35 = OpSampledImage %34 %33 %32
-         %36 = OpLoad %v3float %arg_2
-         %37 = OpCompositeExtract %float %36 0
-         %38 = OpCompositeExtract %float %36 1
-         %39 = OpCompositeExtract %float %36 2
-         %41 = OpLoad %uint %arg_3
-         %40 = OpConvertUToF %float %41
-         %42 = OpCompositeConstruct %v4float %37 %38 %39 %40
-         %43 = OpLoad %float %arg_4
-         %31 = OpImageSampleDrefExplicitLod %float %35 %42 %43 Lod %float_0
-               OpStore %res %31
+         %33 = OpLoad %14 %arg_1
+         %34 = OpLoad %11 %arg_0
+         %36 = OpSampledImage %35 %34 %33
+         %37 = OpLoad %v3float %arg_2
+         %38 = OpCompositeExtract %float %37 0
+         %39 = OpCompositeExtract %float %37 1
+         %40 = OpCompositeExtract %float %37 2
+         %42 = OpLoad %uint %arg_3
+         %41 = OpConvertUToF %float %42
+         %43 = OpCompositeConstruct %v4float %38 %39 %40 %41
+         %44 = OpLoad %float %arg_4
+         %32 = OpImageSampleDrefExplicitLod %float %36 %43 %44 Lod %float_0
+               OpStore %res %32
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %46
-         %48 = OpLabel
-         %49 = OpFunctionCall %void %textureSampleCompareLevel_958c87
+%vertex_main_inner = OpFunction %v4float None %47
+         %49 = OpLabel
+         %50 = OpFunctionCall %void %textureSampleCompareLevel_958c87
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
-         %51 = OpLabel
-         %52 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %52
+         %52 = OpLabel
+         %53 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %53
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %15
-         %54 = OpLabel
-         %55 = OpFunctionCall %void %textureSampleCompareLevel_958c87
+         %55 = OpLabel
+         %56 = OpFunctionCall %void %textureSampleCompareLevel_958c87
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %15
-         %57 = OpLabel
-         %58 = OpFunctionCall %void %textureSampleCompareLevel_958c87
+         %58 = OpLabel
+         %59 = OpFunctionCall %void %textureSampleCompareLevel_958c87
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureSampleCompareLevel/958c87.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSampleCompareLevel/958c87.wgsl.expected.wgsl
index 176df62..01f883a 100644
--- a/test/tint/builtins/gen/var/textureSampleCompareLevel/958c87.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleCompareLevel/958c87.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(1) var arg_1 : sampler_comparison;
 
 fn textureSampleCompareLevel_958c87() {
-  var arg_2 = vec3<f32>();
+  var arg_2 = vec3<f32>(1.0f);
   var arg_3 = 1u;
   var arg_4 = 1.0f;
   var res : f32 = textureSampleCompareLevel(arg_0, arg_1, arg_2, arg_3, arg_4);
diff --git a/test/tint/builtins/gen/var/textureSampleCompareLevel/b6e47c.wgsl b/test/tint/builtins/gen/var/textureSampleCompareLevel/b6e47c.wgsl
index 08c8a3a..a9c88a7 100644
--- a/test/tint/builtins/gen/var/textureSampleCompareLevel/b6e47c.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleCompareLevel/b6e47c.wgsl
@@ -25,10 +25,10 @@
 
 // fn textureSampleCompareLevel(texture: texture_depth_2d_array, sampler: sampler_comparison, coords: vec2<f32>, array_index: i32, depth_ref: f32, @const offset: vec2<i32>) -> f32
 fn textureSampleCompareLevel_b6e47c() {
-  var arg_2 = vec2<f32>();
+  var arg_2 = vec2<f32>(1.f);
   var arg_3 = 1i;
   var arg_4 = 1.f;
-  const arg_5 = vec2<i32>();
+  const arg_5 = vec2<i32>(1i);
   var res: f32 = textureSampleCompareLevel(arg_0, arg_1, arg_2, arg_3, arg_4, arg_5);
 }
 
diff --git a/test/tint/builtins/gen/var/textureSampleCompareLevel/b6e47c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleCompareLevel/b6e47c.wgsl.expected.dxc.hlsl
index 4358797..ede8cdf 100644
--- a/test/tint/builtins/gen/var/textureSampleCompareLevel/b6e47c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleCompareLevel/b6e47c.wgsl.expected.dxc.hlsl
@@ -2,10 +2,10 @@
 SamplerComparisonState arg_1 : register(s1, space1);
 
 void textureSampleCompareLevel_b6e47c() {
-  float2 arg_2 = (0.0f).xx;
+  float2 arg_2 = (1.0f).xx;
   int arg_3 = 1;
   float arg_4 = 1.0f;
-  float res = arg_0.SampleCmpLevelZero(arg_1, float3(arg_2, float(arg_3)), arg_4, (0).xx);
+  float res = arg_0.SampleCmpLevelZero(arg_1, float3(arg_2, float(arg_3)), arg_4, (1).xx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/textureSampleCompareLevel/b6e47c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleCompareLevel/b6e47c.wgsl.expected.fxc.hlsl
index 4358797..ede8cdf 100644
--- a/test/tint/builtins/gen/var/textureSampleCompareLevel/b6e47c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleCompareLevel/b6e47c.wgsl.expected.fxc.hlsl
@@ -2,10 +2,10 @@
 SamplerComparisonState arg_1 : register(s1, space1);
 
 void textureSampleCompareLevel_b6e47c() {
-  float2 arg_2 = (0.0f).xx;
+  float2 arg_2 = (1.0f).xx;
   int arg_3 = 1;
   float arg_4 = 1.0f;
-  float res = arg_0.SampleCmpLevelZero(arg_1, float3(arg_2, float(arg_3)), arg_4, (0).xx);
+  float res = arg_0.SampleCmpLevelZero(arg_1, float3(arg_2, float(arg_3)), arg_4, (1).xx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/textureSampleCompareLevel/b6e47c.wgsl.expected.msl b/test/tint/builtins/gen/var/textureSampleCompareLevel/b6e47c.wgsl.expected.msl
index a20d5d2..a2e73b6 100644
--- a/test/tint/builtins/gen/var/textureSampleCompareLevel/b6e47c.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureSampleCompareLevel/b6e47c.wgsl.expected.msl
@@ -2,10 +2,10 @@
 
 using namespace metal;
 void textureSampleCompareLevel_b6e47c(depth2d_array<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float2 arg_2 = float2(0.0f);
+  float2 arg_2 = float2(1.0f);
   int arg_3 = 1;
   float arg_4 = 1.0f;
-  float res = tint_symbol_1.sample_compare(tint_symbol_2, arg_2, arg_3, arg_4, level(0), int2(0));
+  float res = tint_symbol_1.sample_compare(tint_symbol_2, arg_2, arg_3, arg_4, level(0), int2(1));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/textureSampleCompareLevel/b6e47c.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSampleCompareLevel/b6e47c.wgsl.expected.spvasm
index 8401e93..26a8b53 100644
--- a/test/tint/builtins/gen/var/textureSampleCompareLevel/b6e47c.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSampleCompareLevel/b6e47c.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 61
+; Bound: 62
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -46,62 +46,63 @@
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
-         %20 = OpConstantNull %v2float
+    %float_1 = OpConstant %float 1
+         %21 = OpConstantComposite %v2float %float_1 %float_1
 %_ptr_Function_v2float = OpTypePointer Function %v2float
+         %24 = OpConstantNull %v2float
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
-         %27 = OpConstantNull %int
-    %float_1 = OpConstant %float 1
+         %29 = OpConstantNull %int
 %_ptr_Function_float = OpTypePointer Function %float
-         %34 = OpTypeSampledImage %11
+         %35 = OpTypeSampledImage %11
     %v3float = OpTypeVector %float 3
     %float_0 = OpConstant %float 0
       %v2int = OpTypeVector %int 2
-         %46 = OpConstantNull %v2int
-         %48 = OpTypeFunction %v4float
+         %47 = OpConstantComposite %v2int %int_1 %int_1
+         %49 = OpTypeFunction %v4float
 %textureSampleCompareLevel_b6e47c = OpFunction %void None %15
          %18 = OpLabel
-      %arg_2 = OpVariable %_ptr_Function_v2float Function %20
-      %arg_3 = OpVariable %_ptr_Function_int Function %27
+      %arg_2 = OpVariable %_ptr_Function_v2float Function %24
+      %arg_3 = OpVariable %_ptr_Function_int Function %29
       %arg_4 = OpVariable %_ptr_Function_float Function %8
         %res = OpVariable %_ptr_Function_float Function %8
-               OpStore %arg_2 %20
+               OpStore %arg_2 %21
                OpStore %arg_3 %int_1
                OpStore %arg_4 %float_1
-         %32 = OpLoad %14 %arg_1
-         %33 = OpLoad %11 %arg_0
-         %35 = OpSampledImage %34 %33 %32
-         %37 = OpLoad %v2float %arg_2
-         %38 = OpCompositeExtract %float %37 0
-         %39 = OpCompositeExtract %float %37 1
-         %41 = OpLoad %int %arg_3
-         %40 = OpConvertSToF %float %41
-         %42 = OpCompositeConstruct %v3float %38 %39 %40
-         %43 = OpLoad %float %arg_4
-         %31 = OpImageSampleDrefExplicitLod %float %35 %42 %43 Lod|ConstOffset %float_0 %46
-               OpStore %res %31
+         %33 = OpLoad %14 %arg_1
+         %34 = OpLoad %11 %arg_0
+         %36 = OpSampledImage %35 %34 %33
+         %38 = OpLoad %v2float %arg_2
+         %39 = OpCompositeExtract %float %38 0
+         %40 = OpCompositeExtract %float %38 1
+         %42 = OpLoad %int %arg_3
+         %41 = OpConvertSToF %float %42
+         %43 = OpCompositeConstruct %v3float %39 %40 %41
+         %44 = OpLoad %float %arg_4
+         %32 = OpImageSampleDrefExplicitLod %float %36 %43 %44 Lod|ConstOffset %float_0 %47
+               OpStore %res %32
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %48
-         %50 = OpLabel
-         %51 = OpFunctionCall %void %textureSampleCompareLevel_b6e47c
+%vertex_main_inner = OpFunction %v4float None %49
+         %51 = OpLabel
+         %52 = OpFunctionCall %void %textureSampleCompareLevel_b6e47c
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
-         %53 = OpLabel
-         %54 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %54
+         %54 = OpLabel
+         %55 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %55
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %15
-         %56 = OpLabel
-         %57 = OpFunctionCall %void %textureSampleCompareLevel_b6e47c
+         %57 = OpLabel
+         %58 = OpFunctionCall %void %textureSampleCompareLevel_b6e47c
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %15
-         %59 = OpLabel
-         %60 = OpFunctionCall %void %textureSampleCompareLevel_b6e47c
+         %60 = OpLabel
+         %61 = OpFunctionCall %void %textureSampleCompareLevel_b6e47c
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureSampleCompareLevel/b6e47c.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSampleCompareLevel/b6e47c.wgsl.expected.wgsl
index 518c525..bc85181 100644
--- a/test/tint/builtins/gen/var/textureSampleCompareLevel/b6e47c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleCompareLevel/b6e47c.wgsl.expected.wgsl
@@ -3,10 +3,10 @@
 @group(1) @binding(1) var arg_1 : sampler_comparison;
 
 fn textureSampleCompareLevel_b6e47c() {
-  var arg_2 = vec2<f32>();
+  var arg_2 = vec2<f32>(1.0f);
   var arg_3 = 1i;
   var arg_4 = 1.0f;
-  const arg_5 = vec2<i32>();
+  const arg_5 = vec2<i32>(1i);
   var res : f32 = textureSampleCompareLevel(arg_0, arg_1, arg_2, arg_3, arg_4, arg_5);
 }
 
diff --git a/test/tint/builtins/gen/var/textureSampleCompareLevel/bcb3dd.wgsl b/test/tint/builtins/gen/var/textureSampleCompareLevel/bcb3dd.wgsl
index b25925f..8778005 100644
--- a/test/tint/builtins/gen/var/textureSampleCompareLevel/bcb3dd.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleCompareLevel/bcb3dd.wgsl
@@ -25,10 +25,10 @@
 
 // fn textureSampleCompareLevel(texture: texture_depth_2d_array, sampler: sampler_comparison, coords: vec2<f32>, array_index: u32, depth_ref: f32, @const offset: vec2<i32>) -> f32
 fn textureSampleCompareLevel_bcb3dd() {
-  var arg_2 = vec2<f32>();
+  var arg_2 = vec2<f32>(1.f);
   var arg_3 = 1u;
   var arg_4 = 1.f;
-  const arg_5 = vec2<i32>();
+  const arg_5 = vec2<i32>(1i);
   var res: f32 = textureSampleCompareLevel(arg_0, arg_1, arg_2, arg_3, arg_4, arg_5);
 }
 
diff --git a/test/tint/builtins/gen/var/textureSampleCompareLevel/bcb3dd.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleCompareLevel/bcb3dd.wgsl.expected.dxc.hlsl
index a184617..a6bf181 100644
--- a/test/tint/builtins/gen/var/textureSampleCompareLevel/bcb3dd.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleCompareLevel/bcb3dd.wgsl.expected.dxc.hlsl
@@ -2,10 +2,10 @@
 SamplerComparisonState arg_1 : register(s1, space1);
 
 void textureSampleCompareLevel_bcb3dd() {
-  float2 arg_2 = (0.0f).xx;
+  float2 arg_2 = (1.0f).xx;
   uint arg_3 = 1u;
   float arg_4 = 1.0f;
-  float res = arg_0.SampleCmpLevelZero(arg_1, float3(arg_2, float(arg_3)), arg_4, (0).xx);
+  float res = arg_0.SampleCmpLevelZero(arg_1, float3(arg_2, float(arg_3)), arg_4, (1).xx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/textureSampleCompareLevel/bcb3dd.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleCompareLevel/bcb3dd.wgsl.expected.fxc.hlsl
index a184617..a6bf181 100644
--- a/test/tint/builtins/gen/var/textureSampleCompareLevel/bcb3dd.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleCompareLevel/bcb3dd.wgsl.expected.fxc.hlsl
@@ -2,10 +2,10 @@
 SamplerComparisonState arg_1 : register(s1, space1);
 
 void textureSampleCompareLevel_bcb3dd() {
-  float2 arg_2 = (0.0f).xx;
+  float2 arg_2 = (1.0f).xx;
   uint arg_3 = 1u;
   float arg_4 = 1.0f;
-  float res = arg_0.SampleCmpLevelZero(arg_1, float3(arg_2, float(arg_3)), arg_4, (0).xx);
+  float res = arg_0.SampleCmpLevelZero(arg_1, float3(arg_2, float(arg_3)), arg_4, (1).xx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/textureSampleCompareLevel/bcb3dd.wgsl.expected.msl b/test/tint/builtins/gen/var/textureSampleCompareLevel/bcb3dd.wgsl.expected.msl
index ece69aa..05c636e 100644
--- a/test/tint/builtins/gen/var/textureSampleCompareLevel/bcb3dd.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureSampleCompareLevel/bcb3dd.wgsl.expected.msl
@@ -2,10 +2,10 @@
 
 using namespace metal;
 void textureSampleCompareLevel_bcb3dd(depth2d_array<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float2 arg_2 = float2(0.0f);
+  float2 arg_2 = float2(1.0f);
   uint arg_3 = 1u;
   float arg_4 = 1.0f;
-  float res = tint_symbol_1.sample_compare(tint_symbol_2, arg_2, arg_3, arg_4, level(0), int2(0));
+  float res = tint_symbol_1.sample_compare(tint_symbol_2, arg_2, arg_3, arg_4, level(0), int2(1));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/textureSampleCompareLevel/bcb3dd.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSampleCompareLevel/bcb3dd.wgsl.expected.spvasm
index 3900cd8..9571f9e 100644
--- a/test/tint/builtins/gen/var/textureSampleCompareLevel/bcb3dd.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSampleCompareLevel/bcb3dd.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 62
+; Bound: 64
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -46,63 +46,65 @@
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
-         %20 = OpConstantNull %v2float
+    %float_1 = OpConstant %float 1
+         %21 = OpConstantComposite %v2float %float_1 %float_1
 %_ptr_Function_v2float = OpTypePointer Function %v2float
+         %24 = OpConstantNull %v2float
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %27 = OpConstantNull %uint
-    %float_1 = OpConstant %float 1
+         %29 = OpConstantNull %uint
 %_ptr_Function_float = OpTypePointer Function %float
-         %34 = OpTypeSampledImage %11
+         %35 = OpTypeSampledImage %11
     %v3float = OpTypeVector %float 3
     %float_0 = OpConstant %float 0
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
-         %47 = OpConstantNull %v2int
-         %49 = OpTypeFunction %v4float
+      %int_1 = OpConstant %int 1
+         %49 = OpConstantComposite %v2int %int_1 %int_1
+         %51 = OpTypeFunction %v4float
 %textureSampleCompareLevel_bcb3dd = OpFunction %void None %15
          %18 = OpLabel
-      %arg_2 = OpVariable %_ptr_Function_v2float Function %20
-      %arg_3 = OpVariable %_ptr_Function_uint Function %27
+      %arg_2 = OpVariable %_ptr_Function_v2float Function %24
+      %arg_3 = OpVariable %_ptr_Function_uint Function %29
       %arg_4 = OpVariable %_ptr_Function_float Function %8
         %res = OpVariable %_ptr_Function_float Function %8
-               OpStore %arg_2 %20
+               OpStore %arg_2 %21
                OpStore %arg_3 %uint_1
                OpStore %arg_4 %float_1
-         %32 = OpLoad %14 %arg_1
-         %33 = OpLoad %11 %arg_0
-         %35 = OpSampledImage %34 %33 %32
-         %37 = OpLoad %v2float %arg_2
-         %38 = OpCompositeExtract %float %37 0
-         %39 = OpCompositeExtract %float %37 1
-         %41 = OpLoad %uint %arg_3
-         %40 = OpConvertUToF %float %41
-         %42 = OpCompositeConstruct %v3float %38 %39 %40
-         %43 = OpLoad %float %arg_4
-         %31 = OpImageSampleDrefExplicitLod %float %35 %42 %43 Lod|ConstOffset %float_0 %47
-               OpStore %res %31
+         %33 = OpLoad %14 %arg_1
+         %34 = OpLoad %11 %arg_0
+         %36 = OpSampledImage %35 %34 %33
+         %38 = OpLoad %v2float %arg_2
+         %39 = OpCompositeExtract %float %38 0
+         %40 = OpCompositeExtract %float %38 1
+         %42 = OpLoad %uint %arg_3
+         %41 = OpConvertUToF %float %42
+         %43 = OpCompositeConstruct %v3float %39 %40 %41
+         %44 = OpLoad %float %arg_4
+         %32 = OpImageSampleDrefExplicitLod %float %36 %43 %44 Lod|ConstOffset %float_0 %49
+               OpStore %res %32
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %49
-         %51 = OpLabel
-         %52 = OpFunctionCall %void %textureSampleCompareLevel_bcb3dd
+%vertex_main_inner = OpFunction %v4float None %51
+         %53 = OpLabel
+         %54 = OpFunctionCall %void %textureSampleCompareLevel_bcb3dd
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
-         %54 = OpLabel
-         %55 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %55
+         %56 = OpLabel
+         %57 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %57
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %15
-         %57 = OpLabel
-         %58 = OpFunctionCall %void %textureSampleCompareLevel_bcb3dd
+         %59 = OpLabel
+         %60 = OpFunctionCall %void %textureSampleCompareLevel_bcb3dd
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %15
-         %60 = OpLabel
-         %61 = OpFunctionCall %void %textureSampleCompareLevel_bcb3dd
+         %62 = OpLabel
+         %63 = OpFunctionCall %void %textureSampleCompareLevel_bcb3dd
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureSampleCompareLevel/bcb3dd.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSampleCompareLevel/bcb3dd.wgsl.expected.wgsl
index 1a2974a..c62bf2e 100644
--- a/test/tint/builtins/gen/var/textureSampleCompareLevel/bcb3dd.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleCompareLevel/bcb3dd.wgsl.expected.wgsl
@@ -3,10 +3,10 @@
 @group(1) @binding(1) var arg_1 : sampler_comparison;
 
 fn textureSampleCompareLevel_bcb3dd() {
-  var arg_2 = vec2<f32>();
+  var arg_2 = vec2<f32>(1.0f);
   var arg_3 = 1u;
   var arg_4 = 1.0f;
-  const arg_5 = vec2<i32>();
+  const arg_5 = vec2<i32>(1i);
   var res : f32 = textureSampleCompareLevel(arg_0, arg_1, arg_2, arg_3, arg_4, arg_5);
 }
 
diff --git a/test/tint/builtins/gen/var/textureSampleGrad/21402b.wgsl b/test/tint/builtins/gen/var/textureSampleGrad/21402b.wgsl
index 9435ab1..451c787 100644
--- a/test/tint/builtins/gen/var/textureSampleGrad/21402b.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleGrad/21402b.wgsl
@@ -25,9 +25,9 @@
 
 // fn textureSampleGrad(texture: texture_3d<f32>, sampler: sampler, coords: vec3<f32>, ddx: vec3<f32>, ddy: vec3<f32>) -> vec4<f32>
 fn textureSampleGrad_21402b() {
-  var arg_2 = vec3<f32>();
-  var arg_3 = vec3<f32>();
-  var arg_4 = vec3<f32>();
+  var arg_2 = vec3<f32>(1.f);
+  var arg_3 = vec3<f32>(1.f);
+  var arg_4 = vec3<f32>(1.f);
   var res: vec4<f32> = textureSampleGrad(arg_0, arg_1, arg_2, arg_3, arg_4);
 }
 
diff --git a/test/tint/builtins/gen/var/textureSampleGrad/21402b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleGrad/21402b.wgsl.expected.dxc.hlsl
index 037d976..5c9e277 100644
--- a/test/tint/builtins/gen/var/textureSampleGrad/21402b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleGrad/21402b.wgsl.expected.dxc.hlsl
@@ -2,9 +2,9 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleGrad_21402b() {
-  float3 arg_2 = (0.0f).xxx;
-  float3 arg_3 = (0.0f).xxx;
-  float3 arg_4 = (0.0f).xxx;
+  float3 arg_2 = (1.0f).xxx;
+  float3 arg_3 = (1.0f).xxx;
+  float3 arg_4 = (1.0f).xxx;
   float4 res = arg_0.SampleGrad(arg_1, arg_2, arg_3, arg_4);
 }
 
diff --git a/test/tint/builtins/gen/var/textureSampleGrad/21402b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleGrad/21402b.wgsl.expected.fxc.hlsl
index 037d976..5c9e277 100644
--- a/test/tint/builtins/gen/var/textureSampleGrad/21402b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleGrad/21402b.wgsl.expected.fxc.hlsl
@@ -2,9 +2,9 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleGrad_21402b() {
-  float3 arg_2 = (0.0f).xxx;
-  float3 arg_3 = (0.0f).xxx;
-  float3 arg_4 = (0.0f).xxx;
+  float3 arg_2 = (1.0f).xxx;
+  float3 arg_3 = (1.0f).xxx;
+  float3 arg_4 = (1.0f).xxx;
   float4 res = arg_0.SampleGrad(arg_1, arg_2, arg_3, arg_4);
 }
 
diff --git a/test/tint/builtins/gen/var/textureSampleGrad/21402b.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureSampleGrad/21402b.wgsl.expected.glsl
index f480d78..594e89c 100644
--- a/test/tint/builtins/gen/var/textureSampleGrad/21402b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureSampleGrad/21402b.wgsl.expected.glsl
@@ -3,9 +3,9 @@
 uniform highp sampler3D arg_0_arg_1;
 
 void textureSampleGrad_21402b() {
-  vec3 arg_2 = vec3(0.0f);
-  vec3 arg_3 = vec3(0.0f);
-  vec3 arg_4 = vec3(0.0f);
+  vec3 arg_2 = vec3(1.0f);
+  vec3 arg_3 = vec3(1.0f);
+  vec3 arg_4 = vec3(1.0f);
   vec4 res = textureGrad(arg_0_arg_1, arg_2, arg_3, arg_4);
 }
 
@@ -28,9 +28,9 @@
 uniform highp sampler3D arg_0_arg_1;
 
 void textureSampleGrad_21402b() {
-  vec3 arg_2 = vec3(0.0f);
-  vec3 arg_3 = vec3(0.0f);
-  vec3 arg_4 = vec3(0.0f);
+  vec3 arg_2 = vec3(1.0f);
+  vec3 arg_3 = vec3(1.0f);
+  vec3 arg_4 = vec3(1.0f);
   vec4 res = textureGrad(arg_0_arg_1, arg_2, arg_3, arg_4);
 }
 
@@ -47,9 +47,9 @@
 uniform highp sampler3D arg_0_arg_1;
 
 void textureSampleGrad_21402b() {
-  vec3 arg_2 = vec3(0.0f);
-  vec3 arg_3 = vec3(0.0f);
-  vec3 arg_4 = vec3(0.0f);
+  vec3 arg_2 = vec3(1.0f);
+  vec3 arg_3 = vec3(1.0f);
+  vec3 arg_4 = vec3(1.0f);
   vec4 res = textureGrad(arg_0_arg_1, arg_2, arg_3, arg_4);
 }
 
diff --git a/test/tint/builtins/gen/var/textureSampleGrad/21402b.wgsl.expected.msl b/test/tint/builtins/gen/var/textureSampleGrad/21402b.wgsl.expected.msl
index 8be83cd..4d88911 100644
--- a/test/tint/builtins/gen/var/textureSampleGrad/21402b.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureSampleGrad/21402b.wgsl.expected.msl
@@ -2,9 +2,9 @@
 
 using namespace metal;
 void textureSampleGrad_21402b(texture3d<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float3 arg_2 = float3(0.0f);
-  float3 arg_3 = float3(0.0f);
-  float3 arg_4 = float3(0.0f);
+  float3 arg_2 = float3(1.0f);
+  float3 arg_3 = float3(1.0f);
+  float3 arg_4 = float3(1.0f);
   float4 res = tint_symbol_1.sample(tint_symbol_2, arg_2, gradient3d(arg_3, arg_4));
 }
 
diff --git a/test/tint/builtins/gen/var/textureSampleGrad/21402b.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSampleGrad/21402b.wgsl.expected.spvasm
index 19f41b2..abfec7b 100644
--- a/test/tint/builtins/gen/var/textureSampleGrad/21402b.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSampleGrad/21402b.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 49
+; Bound: 50
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -46,50 +46,51 @@
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
     %v3float = OpTypeVector %float 3
-         %20 = OpConstantNull %v3float
-%_ptr_Function_v3float = OpTypePointer Function %v3float
-         %28 = OpTypeSampledImage %11
-%_ptr_Function_v4float = OpTypePointer Function %v4float
-         %35 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
+         %21 = OpConstantComposite %v3float %float_1 %float_1 %float_1
+%_ptr_Function_v3float = OpTypePointer Function %v3float
+         %24 = OpConstantNull %v3float
+         %30 = OpTypeSampledImage %11
+%_ptr_Function_v4float = OpTypePointer Function %v4float
+         %37 = OpTypeFunction %v4float
 %textureSampleGrad_21402b = OpFunction %void None %15
          %18 = OpLabel
-      %arg_2 = OpVariable %_ptr_Function_v3float Function %20
-      %arg_3 = OpVariable %_ptr_Function_v3float Function %20
-      %arg_4 = OpVariable %_ptr_Function_v3float Function %20
+      %arg_2 = OpVariable %_ptr_Function_v3float Function %24
+      %arg_3 = OpVariable %_ptr_Function_v3float Function %24
+      %arg_4 = OpVariable %_ptr_Function_v3float Function %24
         %res = OpVariable %_ptr_Function_v4float Function %5
-               OpStore %arg_2 %20
-               OpStore %arg_3 %20
-               OpStore %arg_4 %20
-         %26 = OpLoad %14 %arg_1
-         %27 = OpLoad %11 %arg_0
-         %29 = OpSampledImage %28 %27 %26
-         %30 = OpLoad %v3float %arg_2
-         %31 = OpLoad %v3float %arg_3
-         %32 = OpLoad %v3float %arg_4
-         %25 = OpImageSampleExplicitLod %v4float %29 %30 Grad %31 %32
-               OpStore %res %25
+               OpStore %arg_2 %21
+               OpStore %arg_3 %21
+               OpStore %arg_4 %21
+         %28 = OpLoad %14 %arg_1
+         %29 = OpLoad %11 %arg_0
+         %31 = OpSampledImage %30 %29 %28
+         %32 = OpLoad %v3float %arg_2
+         %33 = OpLoad %v3float %arg_3
+         %34 = OpLoad %v3float %arg_4
+         %27 = OpImageSampleExplicitLod %v4float %31 %32 Grad %33 %34
+               OpStore %res %27
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %35
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureSampleGrad_21402b
+%vertex_main_inner = OpFunction %v4float None %37
+         %39 = OpLabel
+         %40 = OpFunctionCall %void %textureSampleGrad_21402b
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
-         %40 = OpLabel
-         %41 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %41
+         %42 = OpLabel
+         %43 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %43
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %15
-         %44 = OpLabel
-         %45 = OpFunctionCall %void %textureSampleGrad_21402b
+         %45 = OpLabel
+         %46 = OpFunctionCall %void %textureSampleGrad_21402b
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %15
-         %47 = OpLabel
-         %48 = OpFunctionCall %void %textureSampleGrad_21402b
+         %48 = OpLabel
+         %49 = OpFunctionCall %void %textureSampleGrad_21402b
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureSampleGrad/21402b.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSampleGrad/21402b.wgsl.expected.wgsl
index 4df3828..19b255e 100644
--- a/test/tint/builtins/gen/var/textureSampleGrad/21402b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleGrad/21402b.wgsl.expected.wgsl
@@ -3,9 +3,9 @@
 @group(1) @binding(1) var arg_1 : sampler;
 
 fn textureSampleGrad_21402b() {
-  var arg_2 = vec3<f32>();
-  var arg_3 = vec3<f32>();
-  var arg_4 = vec3<f32>();
+  var arg_2 = vec3<f32>(1.0f);
+  var arg_3 = vec3<f32>(1.0f);
+  var arg_4 = vec3<f32>(1.0f);
   var res : vec4<f32> = textureSampleGrad(arg_0, arg_1, arg_2, arg_3, arg_4);
 }
 
diff --git a/test/tint/builtins/gen/var/textureSampleGrad/2ecd8f.wgsl b/test/tint/builtins/gen/var/textureSampleGrad/2ecd8f.wgsl
index a523499..2d7f8e1 100644
--- a/test/tint/builtins/gen/var/textureSampleGrad/2ecd8f.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleGrad/2ecd8f.wgsl
@@ -25,10 +25,10 @@
 
 // fn textureSampleGrad(texture: texture_2d_array<f32>, sampler: sampler, coords: vec2<f32>, array_index: i32, ddx: vec2<f32>, ddy: vec2<f32>) -> vec4<f32>
 fn textureSampleGrad_2ecd8f() {
-  var arg_2 = vec2<f32>();
+  var arg_2 = vec2<f32>(1.f);
   var arg_3 = 1i;
-  var arg_4 = vec2<f32>();
-  var arg_5 = vec2<f32>();
+  var arg_4 = vec2<f32>(1.f);
+  var arg_5 = vec2<f32>(1.f);
   var res: vec4<f32> = textureSampleGrad(arg_0, arg_1, arg_2, arg_3, arg_4, arg_5);
 }
 
diff --git a/test/tint/builtins/gen/var/textureSampleGrad/2ecd8f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleGrad/2ecd8f.wgsl.expected.dxc.hlsl
index 51d6b37..21a8ee8 100644
--- a/test/tint/builtins/gen/var/textureSampleGrad/2ecd8f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleGrad/2ecd8f.wgsl.expected.dxc.hlsl
@@ -2,10 +2,10 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleGrad_2ecd8f() {
-  float2 arg_2 = (0.0f).xx;
+  float2 arg_2 = (1.0f).xx;
   int arg_3 = 1;
-  float2 arg_4 = (0.0f).xx;
-  float2 arg_5 = (0.0f).xx;
+  float2 arg_4 = (1.0f).xx;
+  float2 arg_5 = (1.0f).xx;
   float4 res = arg_0.SampleGrad(arg_1, float3(arg_2, float(arg_3)), arg_4, arg_5);
 }
 
diff --git a/test/tint/builtins/gen/var/textureSampleGrad/2ecd8f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleGrad/2ecd8f.wgsl.expected.fxc.hlsl
index 51d6b37..21a8ee8 100644
--- a/test/tint/builtins/gen/var/textureSampleGrad/2ecd8f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleGrad/2ecd8f.wgsl.expected.fxc.hlsl
@@ -2,10 +2,10 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleGrad_2ecd8f() {
-  float2 arg_2 = (0.0f).xx;
+  float2 arg_2 = (1.0f).xx;
   int arg_3 = 1;
-  float2 arg_4 = (0.0f).xx;
-  float2 arg_5 = (0.0f).xx;
+  float2 arg_4 = (1.0f).xx;
+  float2 arg_5 = (1.0f).xx;
   float4 res = arg_0.SampleGrad(arg_1, float3(arg_2, float(arg_3)), arg_4, arg_5);
 }
 
diff --git a/test/tint/builtins/gen/var/textureSampleGrad/2ecd8f.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureSampleGrad/2ecd8f.wgsl.expected.glsl
index 62edc15..b18edb0 100644
--- a/test/tint/builtins/gen/var/textureSampleGrad/2ecd8f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureSampleGrad/2ecd8f.wgsl.expected.glsl
@@ -3,10 +3,10 @@
 uniform highp sampler2DArray arg_0_arg_1;
 
 void textureSampleGrad_2ecd8f() {
-  vec2 arg_2 = vec2(0.0f);
+  vec2 arg_2 = vec2(1.0f);
   int arg_3 = 1;
-  vec2 arg_4 = vec2(0.0f);
-  vec2 arg_5 = vec2(0.0f);
+  vec2 arg_4 = vec2(1.0f);
+  vec2 arg_5 = vec2(1.0f);
   vec4 res = textureGrad(arg_0_arg_1, vec3(arg_2, float(arg_3)), arg_4, arg_5);
 }
 
@@ -29,10 +29,10 @@
 uniform highp sampler2DArray arg_0_arg_1;
 
 void textureSampleGrad_2ecd8f() {
-  vec2 arg_2 = vec2(0.0f);
+  vec2 arg_2 = vec2(1.0f);
   int arg_3 = 1;
-  vec2 arg_4 = vec2(0.0f);
-  vec2 arg_5 = vec2(0.0f);
+  vec2 arg_4 = vec2(1.0f);
+  vec2 arg_5 = vec2(1.0f);
   vec4 res = textureGrad(arg_0_arg_1, vec3(arg_2, float(arg_3)), arg_4, arg_5);
 }
 
@@ -49,10 +49,10 @@
 uniform highp sampler2DArray arg_0_arg_1;
 
 void textureSampleGrad_2ecd8f() {
-  vec2 arg_2 = vec2(0.0f);
+  vec2 arg_2 = vec2(1.0f);
   int arg_3 = 1;
-  vec2 arg_4 = vec2(0.0f);
-  vec2 arg_5 = vec2(0.0f);
+  vec2 arg_4 = vec2(1.0f);
+  vec2 arg_5 = vec2(1.0f);
   vec4 res = textureGrad(arg_0_arg_1, vec3(arg_2, float(arg_3)), arg_4, arg_5);
 }
 
diff --git a/test/tint/builtins/gen/var/textureSampleGrad/2ecd8f.wgsl.expected.msl b/test/tint/builtins/gen/var/textureSampleGrad/2ecd8f.wgsl.expected.msl
index 0fc4d01..6dedc05 100644
--- a/test/tint/builtins/gen/var/textureSampleGrad/2ecd8f.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureSampleGrad/2ecd8f.wgsl.expected.msl
@@ -2,10 +2,10 @@
 
 using namespace metal;
 void textureSampleGrad_2ecd8f(texture2d_array<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float2 arg_2 = float2(0.0f);
+  float2 arg_2 = float2(1.0f);
   int arg_3 = 1;
-  float2 arg_4 = float2(0.0f);
-  float2 arg_5 = float2(0.0f);
+  float2 arg_4 = float2(1.0f);
+  float2 arg_5 = float2(1.0f);
   float4 res = tint_symbol_1.sample(tint_symbol_2, arg_2, arg_3, gradient2d(arg_4, arg_5));
 }
 
diff --git a/test/tint/builtins/gen/var/textureSampleGrad/2ecd8f.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSampleGrad/2ecd8f.wgsl.expected.spvasm
index adfcab2..435994b 100644
--- a/test/tint/builtins/gen/var/textureSampleGrad/2ecd8f.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSampleGrad/2ecd8f.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 60
+; Bound: 61
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -47,62 +47,63 @@
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
-         %20 = OpConstantNull %v2float
+    %float_1 = OpConstant %float 1
+         %21 = OpConstantComposite %v2float %float_1 %float_1
 %_ptr_Function_v2float = OpTypePointer Function %v2float
+         %24 = OpConstantNull %v2float
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
-         %27 = OpConstantNull %int
-         %33 = OpTypeSampledImage %11
+         %29 = OpConstantNull %int
+         %35 = OpTypeSampledImage %11
     %v3float = OpTypeVector %float 3
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %46 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %48 = OpTypeFunction %v4float
 %textureSampleGrad_2ecd8f = OpFunction %void None %15
          %18 = OpLabel
-      %arg_2 = OpVariable %_ptr_Function_v2float Function %20
-      %arg_3 = OpVariable %_ptr_Function_int Function %27
-      %arg_4 = OpVariable %_ptr_Function_v2float Function %20
-      %arg_5 = OpVariable %_ptr_Function_v2float Function %20
+      %arg_2 = OpVariable %_ptr_Function_v2float Function %24
+      %arg_3 = OpVariable %_ptr_Function_int Function %29
+      %arg_4 = OpVariable %_ptr_Function_v2float Function %24
+      %arg_5 = OpVariable %_ptr_Function_v2float Function %24
         %res = OpVariable %_ptr_Function_v4float Function %5
-               OpStore %arg_2 %20
+               OpStore %arg_2 %21
                OpStore %arg_3 %int_1
-               OpStore %arg_4 %20
-               OpStore %arg_5 %20
-         %31 = OpLoad %14 %arg_1
-         %32 = OpLoad %11 %arg_0
-         %34 = OpSampledImage %33 %32 %31
-         %36 = OpLoad %v2float %arg_2
-         %37 = OpCompositeExtract %float %36 0
-         %38 = OpCompositeExtract %float %36 1
-         %40 = OpLoad %int %arg_3
-         %39 = OpConvertSToF %float %40
-         %41 = OpCompositeConstruct %v3float %37 %38 %39
-         %42 = OpLoad %v2float %arg_4
-         %43 = OpLoad %v2float %arg_5
-         %30 = OpImageSampleExplicitLod %v4float %34 %41 Grad %42 %43
-               OpStore %res %30
+               OpStore %arg_4 %21
+               OpStore %arg_5 %21
+         %33 = OpLoad %14 %arg_1
+         %34 = OpLoad %11 %arg_0
+         %36 = OpSampledImage %35 %34 %33
+         %38 = OpLoad %v2float %arg_2
+         %39 = OpCompositeExtract %float %38 0
+         %40 = OpCompositeExtract %float %38 1
+         %42 = OpLoad %int %arg_3
+         %41 = OpConvertSToF %float %42
+         %43 = OpCompositeConstruct %v3float %39 %40 %41
+         %44 = OpLoad %v2float %arg_4
+         %45 = OpLoad %v2float %arg_5
+         %32 = OpImageSampleExplicitLod %v4float %36 %43 Grad %44 %45
+               OpStore %res %32
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %46
-         %48 = OpLabel
-         %49 = OpFunctionCall %void %textureSampleGrad_2ecd8f
+%vertex_main_inner = OpFunction %v4float None %48
+         %50 = OpLabel
+         %51 = OpFunctionCall %void %textureSampleGrad_2ecd8f
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
-         %51 = OpLabel
-         %52 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %52
+         %53 = OpLabel
+         %54 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %54
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %15
-         %55 = OpLabel
-         %56 = OpFunctionCall %void %textureSampleGrad_2ecd8f
+         %56 = OpLabel
+         %57 = OpFunctionCall %void %textureSampleGrad_2ecd8f
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %15
-         %58 = OpLabel
-         %59 = OpFunctionCall %void %textureSampleGrad_2ecd8f
+         %59 = OpLabel
+         %60 = OpFunctionCall %void %textureSampleGrad_2ecd8f
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureSampleGrad/2ecd8f.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSampleGrad/2ecd8f.wgsl.expected.wgsl
index 84604a2..04e6328 100644
--- a/test/tint/builtins/gen/var/textureSampleGrad/2ecd8f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleGrad/2ecd8f.wgsl.expected.wgsl
@@ -3,10 +3,10 @@
 @group(1) @binding(1) var arg_1 : sampler;
 
 fn textureSampleGrad_2ecd8f() {
-  var arg_2 = vec2<f32>();
+  var arg_2 = vec2<f32>(1.0f);
   var arg_3 = 1i;
-  var arg_4 = vec2<f32>();
-  var arg_5 = vec2<f32>();
+  var arg_4 = vec2<f32>(1.0f);
+  var arg_5 = vec2<f32>(1.0f);
   var res : vec4<f32> = textureSampleGrad(arg_0, arg_1, arg_2, arg_3, arg_4, arg_5);
 }
 
diff --git a/test/tint/builtins/gen/var/textureSampleGrad/521263.wgsl b/test/tint/builtins/gen/var/textureSampleGrad/521263.wgsl
index d93e938..806c605 100644
--- a/test/tint/builtins/gen/var/textureSampleGrad/521263.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleGrad/521263.wgsl
@@ -25,9 +25,9 @@
 
 // fn textureSampleGrad(texture: texture_2d<f32>, sampler: sampler, coords: vec2<f32>, ddx: vec2<f32>, ddy: vec2<f32>) -> vec4<f32>
 fn textureSampleGrad_521263() {
-  var arg_2 = vec2<f32>();
-  var arg_3 = vec2<f32>();
-  var arg_4 = vec2<f32>();
+  var arg_2 = vec2<f32>(1.f);
+  var arg_3 = vec2<f32>(1.f);
+  var arg_4 = vec2<f32>(1.f);
   var res: vec4<f32> = textureSampleGrad(arg_0, arg_1, arg_2, arg_3, arg_4);
 }
 
diff --git a/test/tint/builtins/gen/var/textureSampleGrad/521263.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleGrad/521263.wgsl.expected.dxc.hlsl
index b184cd7..bfe8460 100644
--- a/test/tint/builtins/gen/var/textureSampleGrad/521263.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleGrad/521263.wgsl.expected.dxc.hlsl
@@ -2,9 +2,9 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleGrad_521263() {
-  float2 arg_2 = (0.0f).xx;
-  float2 arg_3 = (0.0f).xx;
-  float2 arg_4 = (0.0f).xx;
+  float2 arg_2 = (1.0f).xx;
+  float2 arg_3 = (1.0f).xx;
+  float2 arg_4 = (1.0f).xx;
   float4 res = arg_0.SampleGrad(arg_1, arg_2, arg_3, arg_4);
 }
 
diff --git a/test/tint/builtins/gen/var/textureSampleGrad/521263.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleGrad/521263.wgsl.expected.fxc.hlsl
index b184cd7..bfe8460 100644
--- a/test/tint/builtins/gen/var/textureSampleGrad/521263.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleGrad/521263.wgsl.expected.fxc.hlsl
@@ -2,9 +2,9 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleGrad_521263() {
-  float2 arg_2 = (0.0f).xx;
-  float2 arg_3 = (0.0f).xx;
-  float2 arg_4 = (0.0f).xx;
+  float2 arg_2 = (1.0f).xx;
+  float2 arg_3 = (1.0f).xx;
+  float2 arg_4 = (1.0f).xx;
   float4 res = arg_0.SampleGrad(arg_1, arg_2, arg_3, arg_4);
 }
 
diff --git a/test/tint/builtins/gen/var/textureSampleGrad/521263.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureSampleGrad/521263.wgsl.expected.glsl
index eb7aee0..0e9fd5c 100644
--- a/test/tint/builtins/gen/var/textureSampleGrad/521263.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureSampleGrad/521263.wgsl.expected.glsl
@@ -3,9 +3,9 @@
 uniform highp sampler2D arg_0_arg_1;
 
 void textureSampleGrad_521263() {
-  vec2 arg_2 = vec2(0.0f);
-  vec2 arg_3 = vec2(0.0f);
-  vec2 arg_4 = vec2(0.0f);
+  vec2 arg_2 = vec2(1.0f);
+  vec2 arg_3 = vec2(1.0f);
+  vec2 arg_4 = vec2(1.0f);
   vec4 res = textureGrad(arg_0_arg_1, arg_2, arg_3, arg_4);
 }
 
@@ -28,9 +28,9 @@
 uniform highp sampler2D arg_0_arg_1;
 
 void textureSampleGrad_521263() {
-  vec2 arg_2 = vec2(0.0f);
-  vec2 arg_3 = vec2(0.0f);
-  vec2 arg_4 = vec2(0.0f);
+  vec2 arg_2 = vec2(1.0f);
+  vec2 arg_3 = vec2(1.0f);
+  vec2 arg_4 = vec2(1.0f);
   vec4 res = textureGrad(arg_0_arg_1, arg_2, arg_3, arg_4);
 }
 
@@ -47,9 +47,9 @@
 uniform highp sampler2D arg_0_arg_1;
 
 void textureSampleGrad_521263() {
-  vec2 arg_2 = vec2(0.0f);
-  vec2 arg_3 = vec2(0.0f);
-  vec2 arg_4 = vec2(0.0f);
+  vec2 arg_2 = vec2(1.0f);
+  vec2 arg_3 = vec2(1.0f);
+  vec2 arg_4 = vec2(1.0f);
   vec4 res = textureGrad(arg_0_arg_1, arg_2, arg_3, arg_4);
 }
 
diff --git a/test/tint/builtins/gen/var/textureSampleGrad/521263.wgsl.expected.msl b/test/tint/builtins/gen/var/textureSampleGrad/521263.wgsl.expected.msl
index 89f9e87..1494a9c 100644
--- a/test/tint/builtins/gen/var/textureSampleGrad/521263.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureSampleGrad/521263.wgsl.expected.msl
@@ -2,9 +2,9 @@
 
 using namespace metal;
 void textureSampleGrad_521263(texture2d<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float2 arg_2 = float2(0.0f);
-  float2 arg_3 = float2(0.0f);
-  float2 arg_4 = float2(0.0f);
+  float2 arg_2 = float2(1.0f);
+  float2 arg_3 = float2(1.0f);
+  float2 arg_4 = float2(1.0f);
   float4 res = tint_symbol_1.sample(tint_symbol_2, arg_2, gradient2d(arg_3, arg_4));
 }
 
diff --git a/test/tint/builtins/gen/var/textureSampleGrad/521263.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSampleGrad/521263.wgsl.expected.spvasm
index 5b90d6c..50b4b51 100644
--- a/test/tint/builtins/gen/var/textureSampleGrad/521263.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSampleGrad/521263.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 49
+; Bound: 50
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -46,50 +46,51 @@
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
-         %20 = OpConstantNull %v2float
-%_ptr_Function_v2float = OpTypePointer Function %v2float
-         %28 = OpTypeSampledImage %11
-%_ptr_Function_v4float = OpTypePointer Function %v4float
-         %35 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
+         %21 = OpConstantComposite %v2float %float_1 %float_1
+%_ptr_Function_v2float = OpTypePointer Function %v2float
+         %24 = OpConstantNull %v2float
+         %30 = OpTypeSampledImage %11
+%_ptr_Function_v4float = OpTypePointer Function %v4float
+         %37 = OpTypeFunction %v4float
 %textureSampleGrad_521263 = OpFunction %void None %15
          %18 = OpLabel
-      %arg_2 = OpVariable %_ptr_Function_v2float Function %20
-      %arg_3 = OpVariable %_ptr_Function_v2float Function %20
-      %arg_4 = OpVariable %_ptr_Function_v2float Function %20
+      %arg_2 = OpVariable %_ptr_Function_v2float Function %24
+      %arg_3 = OpVariable %_ptr_Function_v2float Function %24
+      %arg_4 = OpVariable %_ptr_Function_v2float Function %24
         %res = OpVariable %_ptr_Function_v4float Function %5
-               OpStore %arg_2 %20
-               OpStore %arg_3 %20
-               OpStore %arg_4 %20
-         %26 = OpLoad %14 %arg_1
-         %27 = OpLoad %11 %arg_0
-         %29 = OpSampledImage %28 %27 %26
-         %30 = OpLoad %v2float %arg_2
-         %31 = OpLoad %v2float %arg_3
-         %32 = OpLoad %v2float %arg_4
-         %25 = OpImageSampleExplicitLod %v4float %29 %30 Grad %31 %32
-               OpStore %res %25
+               OpStore %arg_2 %21
+               OpStore %arg_3 %21
+               OpStore %arg_4 %21
+         %28 = OpLoad %14 %arg_1
+         %29 = OpLoad %11 %arg_0
+         %31 = OpSampledImage %30 %29 %28
+         %32 = OpLoad %v2float %arg_2
+         %33 = OpLoad %v2float %arg_3
+         %34 = OpLoad %v2float %arg_4
+         %27 = OpImageSampleExplicitLod %v4float %31 %32 Grad %33 %34
+               OpStore %res %27
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %35
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureSampleGrad_521263
+%vertex_main_inner = OpFunction %v4float None %37
+         %39 = OpLabel
+         %40 = OpFunctionCall %void %textureSampleGrad_521263
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
-         %40 = OpLabel
-         %41 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %41
+         %42 = OpLabel
+         %43 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %43
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %15
-         %44 = OpLabel
-         %45 = OpFunctionCall %void %textureSampleGrad_521263
+         %45 = OpLabel
+         %46 = OpFunctionCall %void %textureSampleGrad_521263
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %15
-         %47 = OpLabel
-         %48 = OpFunctionCall %void %textureSampleGrad_521263
+         %48 = OpLabel
+         %49 = OpFunctionCall %void %textureSampleGrad_521263
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureSampleGrad/521263.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSampleGrad/521263.wgsl.expected.wgsl
index 25a3852..025d0d7 100644
--- a/test/tint/builtins/gen/var/textureSampleGrad/521263.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleGrad/521263.wgsl.expected.wgsl
@@ -3,9 +3,9 @@
 @group(1) @binding(1) var arg_1 : sampler;
 
 fn textureSampleGrad_521263() {
-  var arg_2 = vec2<f32>();
-  var arg_3 = vec2<f32>();
-  var arg_4 = vec2<f32>();
+  var arg_2 = vec2<f32>(1.0f);
+  var arg_3 = vec2<f32>(1.0f);
+  var arg_4 = vec2<f32>(1.0f);
   var res : vec4<f32> = textureSampleGrad(arg_0, arg_1, arg_2, arg_3, arg_4);
 }
 
diff --git a/test/tint/builtins/gen/var/textureSampleGrad/5312f4.wgsl b/test/tint/builtins/gen/var/textureSampleGrad/5312f4.wgsl
index 4cd7722..53c0a00 100644
--- a/test/tint/builtins/gen/var/textureSampleGrad/5312f4.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleGrad/5312f4.wgsl
@@ -25,9 +25,9 @@
 
 // fn textureSampleGrad(texture: texture_cube<f32>, sampler: sampler, coords: vec3<f32>, ddx: vec3<f32>, ddy: vec3<f32>) -> vec4<f32>
 fn textureSampleGrad_5312f4() {
-  var arg_2 = vec3<f32>();
-  var arg_3 = vec3<f32>();
-  var arg_4 = vec3<f32>();
+  var arg_2 = vec3<f32>(1.f);
+  var arg_3 = vec3<f32>(1.f);
+  var arg_4 = vec3<f32>(1.f);
   var res: vec4<f32> = textureSampleGrad(arg_0, arg_1, arg_2, arg_3, arg_4);
 }
 
diff --git a/test/tint/builtins/gen/var/textureSampleGrad/5312f4.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleGrad/5312f4.wgsl.expected.dxc.hlsl
index 14508e1..61b7b3b 100644
--- a/test/tint/builtins/gen/var/textureSampleGrad/5312f4.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleGrad/5312f4.wgsl.expected.dxc.hlsl
@@ -2,9 +2,9 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleGrad_5312f4() {
-  float3 arg_2 = (0.0f).xxx;
-  float3 arg_3 = (0.0f).xxx;
-  float3 arg_4 = (0.0f).xxx;
+  float3 arg_2 = (1.0f).xxx;
+  float3 arg_3 = (1.0f).xxx;
+  float3 arg_4 = (1.0f).xxx;
   float4 res = arg_0.SampleGrad(arg_1, arg_2, arg_3, arg_4);
 }
 
diff --git a/test/tint/builtins/gen/var/textureSampleGrad/5312f4.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleGrad/5312f4.wgsl.expected.fxc.hlsl
index 14508e1..61b7b3b 100644
--- a/test/tint/builtins/gen/var/textureSampleGrad/5312f4.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleGrad/5312f4.wgsl.expected.fxc.hlsl
@@ -2,9 +2,9 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleGrad_5312f4() {
-  float3 arg_2 = (0.0f).xxx;
-  float3 arg_3 = (0.0f).xxx;
-  float3 arg_4 = (0.0f).xxx;
+  float3 arg_2 = (1.0f).xxx;
+  float3 arg_3 = (1.0f).xxx;
+  float3 arg_4 = (1.0f).xxx;
   float4 res = arg_0.SampleGrad(arg_1, arg_2, arg_3, arg_4);
 }
 
diff --git a/test/tint/builtins/gen/var/textureSampleGrad/5312f4.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureSampleGrad/5312f4.wgsl.expected.glsl
index 7278ce3..ce0c150 100644
--- a/test/tint/builtins/gen/var/textureSampleGrad/5312f4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureSampleGrad/5312f4.wgsl.expected.glsl
@@ -3,9 +3,9 @@
 uniform highp samplerCube arg_0_arg_1;
 
 void textureSampleGrad_5312f4() {
-  vec3 arg_2 = vec3(0.0f);
-  vec3 arg_3 = vec3(0.0f);
-  vec3 arg_4 = vec3(0.0f);
+  vec3 arg_2 = vec3(1.0f);
+  vec3 arg_3 = vec3(1.0f);
+  vec3 arg_4 = vec3(1.0f);
   vec4 res = textureGrad(arg_0_arg_1, arg_2, arg_3, arg_4);
 }
 
@@ -28,9 +28,9 @@
 uniform highp samplerCube arg_0_arg_1;
 
 void textureSampleGrad_5312f4() {
-  vec3 arg_2 = vec3(0.0f);
-  vec3 arg_3 = vec3(0.0f);
-  vec3 arg_4 = vec3(0.0f);
+  vec3 arg_2 = vec3(1.0f);
+  vec3 arg_3 = vec3(1.0f);
+  vec3 arg_4 = vec3(1.0f);
   vec4 res = textureGrad(arg_0_arg_1, arg_2, arg_3, arg_4);
 }
 
@@ -47,9 +47,9 @@
 uniform highp samplerCube arg_0_arg_1;
 
 void textureSampleGrad_5312f4() {
-  vec3 arg_2 = vec3(0.0f);
-  vec3 arg_3 = vec3(0.0f);
-  vec3 arg_4 = vec3(0.0f);
+  vec3 arg_2 = vec3(1.0f);
+  vec3 arg_3 = vec3(1.0f);
+  vec3 arg_4 = vec3(1.0f);
   vec4 res = textureGrad(arg_0_arg_1, arg_2, arg_3, arg_4);
 }
 
diff --git a/test/tint/builtins/gen/var/textureSampleGrad/5312f4.wgsl.expected.msl b/test/tint/builtins/gen/var/textureSampleGrad/5312f4.wgsl.expected.msl
index d7f4659..dcb72de 100644
--- a/test/tint/builtins/gen/var/textureSampleGrad/5312f4.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureSampleGrad/5312f4.wgsl.expected.msl
@@ -2,9 +2,9 @@
 
 using namespace metal;
 void textureSampleGrad_5312f4(texturecube<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float3 arg_2 = float3(0.0f);
-  float3 arg_3 = float3(0.0f);
-  float3 arg_4 = float3(0.0f);
+  float3 arg_2 = float3(1.0f);
+  float3 arg_3 = float3(1.0f);
+  float3 arg_4 = float3(1.0f);
   float4 res = tint_symbol_1.sample(tint_symbol_2, arg_2, gradientcube(arg_3, arg_4));
 }
 
diff --git a/test/tint/builtins/gen/var/textureSampleGrad/5312f4.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSampleGrad/5312f4.wgsl.expected.spvasm
index 149aba6..bbb5adb 100644
--- a/test/tint/builtins/gen/var/textureSampleGrad/5312f4.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSampleGrad/5312f4.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 49
+; Bound: 50
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -46,50 +46,51 @@
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
     %v3float = OpTypeVector %float 3
-         %20 = OpConstantNull %v3float
-%_ptr_Function_v3float = OpTypePointer Function %v3float
-         %28 = OpTypeSampledImage %11
-%_ptr_Function_v4float = OpTypePointer Function %v4float
-         %35 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
+         %21 = OpConstantComposite %v3float %float_1 %float_1 %float_1
+%_ptr_Function_v3float = OpTypePointer Function %v3float
+         %24 = OpConstantNull %v3float
+         %30 = OpTypeSampledImage %11
+%_ptr_Function_v4float = OpTypePointer Function %v4float
+         %37 = OpTypeFunction %v4float
 %textureSampleGrad_5312f4 = OpFunction %void None %15
          %18 = OpLabel
-      %arg_2 = OpVariable %_ptr_Function_v3float Function %20
-      %arg_3 = OpVariable %_ptr_Function_v3float Function %20
-      %arg_4 = OpVariable %_ptr_Function_v3float Function %20
+      %arg_2 = OpVariable %_ptr_Function_v3float Function %24
+      %arg_3 = OpVariable %_ptr_Function_v3float Function %24
+      %arg_4 = OpVariable %_ptr_Function_v3float Function %24
         %res = OpVariable %_ptr_Function_v4float Function %5
-               OpStore %arg_2 %20
-               OpStore %arg_3 %20
-               OpStore %arg_4 %20
-         %26 = OpLoad %14 %arg_1
-         %27 = OpLoad %11 %arg_0
-         %29 = OpSampledImage %28 %27 %26
-         %30 = OpLoad %v3float %arg_2
-         %31 = OpLoad %v3float %arg_3
-         %32 = OpLoad %v3float %arg_4
-         %25 = OpImageSampleExplicitLod %v4float %29 %30 Grad %31 %32
-               OpStore %res %25
+               OpStore %arg_2 %21
+               OpStore %arg_3 %21
+               OpStore %arg_4 %21
+         %28 = OpLoad %14 %arg_1
+         %29 = OpLoad %11 %arg_0
+         %31 = OpSampledImage %30 %29 %28
+         %32 = OpLoad %v3float %arg_2
+         %33 = OpLoad %v3float %arg_3
+         %34 = OpLoad %v3float %arg_4
+         %27 = OpImageSampleExplicitLod %v4float %31 %32 Grad %33 %34
+               OpStore %res %27
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %35
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureSampleGrad_5312f4
+%vertex_main_inner = OpFunction %v4float None %37
+         %39 = OpLabel
+         %40 = OpFunctionCall %void %textureSampleGrad_5312f4
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
-         %40 = OpLabel
-         %41 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %41
+         %42 = OpLabel
+         %43 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %43
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %15
-         %44 = OpLabel
-         %45 = OpFunctionCall %void %textureSampleGrad_5312f4
+         %45 = OpLabel
+         %46 = OpFunctionCall %void %textureSampleGrad_5312f4
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %15
-         %47 = OpLabel
-         %48 = OpFunctionCall %void %textureSampleGrad_5312f4
+         %48 = OpLabel
+         %49 = OpFunctionCall %void %textureSampleGrad_5312f4
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureSampleGrad/5312f4.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSampleGrad/5312f4.wgsl.expected.wgsl
index f4175ba..58801e8 100644
--- a/test/tint/builtins/gen/var/textureSampleGrad/5312f4.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleGrad/5312f4.wgsl.expected.wgsl
@@ -3,9 +3,9 @@
 @group(1) @binding(1) var arg_1 : sampler;
 
 fn textureSampleGrad_5312f4() {
-  var arg_2 = vec3<f32>();
-  var arg_3 = vec3<f32>();
-  var arg_4 = vec3<f32>();
+  var arg_2 = vec3<f32>(1.0f);
+  var arg_3 = vec3<f32>(1.0f);
+  var arg_4 = vec3<f32>(1.0f);
   var res : vec4<f32> = textureSampleGrad(arg_0, arg_1, arg_2, arg_3, arg_4);
 }
 
diff --git a/test/tint/builtins/gen/var/textureSampleGrad/5884dd.wgsl b/test/tint/builtins/gen/var/textureSampleGrad/5884dd.wgsl
index 082cf54..8f3892c 100644
--- a/test/tint/builtins/gen/var/textureSampleGrad/5884dd.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleGrad/5884dd.wgsl
@@ -25,10 +25,10 @@
 
 // fn textureSampleGrad(texture: texture_3d<f32>, sampler: sampler, coords: vec3<f32>, ddx: vec3<f32>, ddy: vec3<f32>, @const offset: vec3<i32>) -> vec4<f32>
 fn textureSampleGrad_5884dd() {
-  var arg_2 = vec3<f32>();
-  var arg_3 = vec3<f32>();
-  var arg_4 = vec3<f32>();
-  const arg_5 = vec3<i32>();
+  var arg_2 = vec3<f32>(1.f);
+  var arg_3 = vec3<f32>(1.f);
+  var arg_4 = vec3<f32>(1.f);
+  const arg_5 = vec3<i32>(1i);
   var res: vec4<f32> = textureSampleGrad(arg_0, arg_1, arg_2, arg_3, arg_4, arg_5);
 }
 
diff --git a/test/tint/builtins/gen/var/textureSampleGrad/5884dd.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleGrad/5884dd.wgsl.expected.dxc.hlsl
index 695dd30..05ae8f1 100644
--- a/test/tint/builtins/gen/var/textureSampleGrad/5884dd.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleGrad/5884dd.wgsl.expected.dxc.hlsl
@@ -2,10 +2,10 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleGrad_5884dd() {
-  float3 arg_2 = (0.0f).xxx;
-  float3 arg_3 = (0.0f).xxx;
-  float3 arg_4 = (0.0f).xxx;
-  float4 res = arg_0.SampleGrad(arg_1, arg_2, arg_3, arg_4, (0).xxx);
+  float3 arg_2 = (1.0f).xxx;
+  float3 arg_3 = (1.0f).xxx;
+  float3 arg_4 = (1.0f).xxx;
+  float4 res = arg_0.SampleGrad(arg_1, arg_2, arg_3, arg_4, (1).xxx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/textureSampleGrad/5884dd.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleGrad/5884dd.wgsl.expected.fxc.hlsl
index 695dd30..05ae8f1 100644
--- a/test/tint/builtins/gen/var/textureSampleGrad/5884dd.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleGrad/5884dd.wgsl.expected.fxc.hlsl
@@ -2,10 +2,10 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleGrad_5884dd() {
-  float3 arg_2 = (0.0f).xxx;
-  float3 arg_3 = (0.0f).xxx;
-  float3 arg_4 = (0.0f).xxx;
-  float4 res = arg_0.SampleGrad(arg_1, arg_2, arg_3, arg_4, (0).xxx);
+  float3 arg_2 = (1.0f).xxx;
+  float3 arg_3 = (1.0f).xxx;
+  float3 arg_4 = (1.0f).xxx;
+  float4 res = arg_0.SampleGrad(arg_1, arg_2, arg_3, arg_4, (1).xxx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/textureSampleGrad/5884dd.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureSampleGrad/5884dd.wgsl.expected.glsl
index a20b4b4..c3bafa5 100644
--- a/test/tint/builtins/gen/var/textureSampleGrad/5884dd.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureSampleGrad/5884dd.wgsl.expected.glsl
@@ -3,10 +3,10 @@
 uniform highp sampler3D arg_0_arg_1;
 
 void textureSampleGrad_5884dd() {
-  vec3 arg_2 = vec3(0.0f);
-  vec3 arg_3 = vec3(0.0f);
-  vec3 arg_4 = vec3(0.0f);
-  vec4 res = textureGradOffset(arg_0_arg_1, arg_2, arg_3, arg_4, ivec3(0));
+  vec3 arg_2 = vec3(1.0f);
+  vec3 arg_3 = vec3(1.0f);
+  vec3 arg_4 = vec3(1.0f);
+  vec4 res = textureGradOffset(arg_0_arg_1, arg_2, arg_3, arg_4, ivec3(1));
 }
 
 vec4 vertex_main() {
@@ -28,10 +28,10 @@
 uniform highp sampler3D arg_0_arg_1;
 
 void textureSampleGrad_5884dd() {
-  vec3 arg_2 = vec3(0.0f);
-  vec3 arg_3 = vec3(0.0f);
-  vec3 arg_4 = vec3(0.0f);
-  vec4 res = textureGradOffset(arg_0_arg_1, arg_2, arg_3, arg_4, ivec3(0));
+  vec3 arg_2 = vec3(1.0f);
+  vec3 arg_3 = vec3(1.0f);
+  vec3 arg_4 = vec3(1.0f);
+  vec4 res = textureGradOffset(arg_0_arg_1, arg_2, arg_3, arg_4, ivec3(1));
 }
 
 void fragment_main() {
@@ -47,10 +47,10 @@
 uniform highp sampler3D arg_0_arg_1;
 
 void textureSampleGrad_5884dd() {
-  vec3 arg_2 = vec3(0.0f);
-  vec3 arg_3 = vec3(0.0f);
-  vec3 arg_4 = vec3(0.0f);
-  vec4 res = textureGradOffset(arg_0_arg_1, arg_2, arg_3, arg_4, ivec3(0));
+  vec3 arg_2 = vec3(1.0f);
+  vec3 arg_3 = vec3(1.0f);
+  vec3 arg_4 = vec3(1.0f);
+  vec4 res = textureGradOffset(arg_0_arg_1, arg_2, arg_3, arg_4, ivec3(1));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/var/textureSampleGrad/5884dd.wgsl.expected.msl b/test/tint/builtins/gen/var/textureSampleGrad/5884dd.wgsl.expected.msl
index 87a518a..b9f3bf6 100644
--- a/test/tint/builtins/gen/var/textureSampleGrad/5884dd.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureSampleGrad/5884dd.wgsl.expected.msl
@@ -2,10 +2,10 @@
 
 using namespace metal;
 void textureSampleGrad_5884dd(texture3d<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float3 arg_2 = float3(0.0f);
-  float3 arg_3 = float3(0.0f);
-  float3 arg_4 = float3(0.0f);
-  float4 res = tint_symbol_1.sample(tint_symbol_2, arg_2, gradient3d(arg_3, arg_4), int3(0));
+  float3 arg_2 = float3(1.0f);
+  float3 arg_3 = float3(1.0f);
+  float3 arg_4 = float3(1.0f);
+  float4 res = tint_symbol_1.sample(tint_symbol_2, arg_2, gradient3d(arg_3, arg_4), int3(1));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/textureSampleGrad/5884dd.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSampleGrad/5884dd.wgsl.expected.spvasm
index cfe63eb..a0799ad 100644
--- a/test/tint/builtins/gen/var/textureSampleGrad/5884dd.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSampleGrad/5884dd.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 52
+; Bound: 54
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -46,53 +46,55 @@
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
     %v3float = OpTypeVector %float 3
-         %20 = OpConstantNull %v3float
+    %float_1 = OpConstant %float 1
+         %21 = OpConstantComposite %v3float %float_1 %float_1 %float_1
 %_ptr_Function_v3float = OpTypePointer Function %v3float
-         %28 = OpTypeSampledImage %11
+         %24 = OpConstantNull %v3float
+         %30 = OpTypeSampledImage %11
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
-         %35 = OpConstantNull %v3int
+      %int_1 = OpConstant %int 1
+         %38 = OpConstantComposite %v3int %int_1 %int_1 %int_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %38 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %41 = OpTypeFunction %v4float
 %textureSampleGrad_5884dd = OpFunction %void None %15
          %18 = OpLabel
-      %arg_2 = OpVariable %_ptr_Function_v3float Function %20
-      %arg_3 = OpVariable %_ptr_Function_v3float Function %20
-      %arg_4 = OpVariable %_ptr_Function_v3float Function %20
+      %arg_2 = OpVariable %_ptr_Function_v3float Function %24
+      %arg_3 = OpVariable %_ptr_Function_v3float Function %24
+      %arg_4 = OpVariable %_ptr_Function_v3float Function %24
         %res = OpVariable %_ptr_Function_v4float Function %5
-               OpStore %arg_2 %20
-               OpStore %arg_3 %20
-               OpStore %arg_4 %20
-         %26 = OpLoad %14 %arg_1
-         %27 = OpLoad %11 %arg_0
-         %29 = OpSampledImage %28 %27 %26
-         %30 = OpLoad %v3float %arg_2
-         %31 = OpLoad %v3float %arg_3
-         %32 = OpLoad %v3float %arg_4
-         %25 = OpImageSampleExplicitLod %v4float %29 %30 Grad|ConstOffset %31 %32 %35
-               OpStore %res %25
+               OpStore %arg_2 %21
+               OpStore %arg_3 %21
+               OpStore %arg_4 %21
+         %28 = OpLoad %14 %arg_1
+         %29 = OpLoad %11 %arg_0
+         %31 = OpSampledImage %30 %29 %28
+         %32 = OpLoad %v3float %arg_2
+         %33 = OpLoad %v3float %arg_3
+         %34 = OpLoad %v3float %arg_4
+         %27 = OpImageSampleExplicitLod %v4float %31 %32 Grad|ConstOffset %33 %34 %38
+               OpStore %res %27
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %38
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureSampleGrad_5884dd
+%vertex_main_inner = OpFunction %v4float None %41
+         %43 = OpLabel
+         %44 = OpFunctionCall %void %textureSampleGrad_5884dd
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
-         %43 = OpLabel
-         %44 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %44
+         %46 = OpLabel
+         %47 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %47
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %15
-         %47 = OpLabel
-         %48 = OpFunctionCall %void %textureSampleGrad_5884dd
+         %49 = OpLabel
+         %50 = OpFunctionCall %void %textureSampleGrad_5884dd
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %15
-         %50 = OpLabel
-         %51 = OpFunctionCall %void %textureSampleGrad_5884dd
+         %52 = OpLabel
+         %53 = OpFunctionCall %void %textureSampleGrad_5884dd
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureSampleGrad/5884dd.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSampleGrad/5884dd.wgsl.expected.wgsl
index 9a43b69..bd81e44 100644
--- a/test/tint/builtins/gen/var/textureSampleGrad/5884dd.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleGrad/5884dd.wgsl.expected.wgsl
@@ -3,10 +3,10 @@
 @group(1) @binding(1) var arg_1 : sampler;
 
 fn textureSampleGrad_5884dd() {
-  var arg_2 = vec3<f32>();
-  var arg_3 = vec3<f32>();
-  var arg_4 = vec3<f32>();
-  const arg_5 = vec3<i32>();
+  var arg_2 = vec3<f32>(1.0f);
+  var arg_3 = vec3<f32>(1.0f);
+  var arg_4 = vec3<f32>(1.0f);
+  const arg_5 = vec3<i32>(1i);
   var res : vec4<f32> = textureSampleGrad(arg_0, arg_1, arg_2, arg_3, arg_4, arg_5);
 }
 
diff --git a/test/tint/builtins/gen/var/textureSampleGrad/7cd6de.wgsl b/test/tint/builtins/gen/var/textureSampleGrad/7cd6de.wgsl
index d77c4f5..ca3e634 100644
--- a/test/tint/builtins/gen/var/textureSampleGrad/7cd6de.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleGrad/7cd6de.wgsl
@@ -25,11 +25,11 @@
 
 // fn textureSampleGrad(texture: texture_2d_array<f32>, sampler: sampler, coords: vec2<f32>, array_index: u32, ddx: vec2<f32>, ddy: vec2<f32>, @const offset: vec2<i32>) -> vec4<f32>
 fn textureSampleGrad_7cd6de() {
-  var arg_2 = vec2<f32>();
+  var arg_2 = vec2<f32>(1.f);
   var arg_3 = 1u;
-  var arg_4 = vec2<f32>();
-  var arg_5 = vec2<f32>();
-  const arg_6 = vec2<i32>();
+  var arg_4 = vec2<f32>(1.f);
+  var arg_5 = vec2<f32>(1.f);
+  const arg_6 = vec2<i32>(1i);
   var res: vec4<f32> = textureSampleGrad(arg_0, arg_1, arg_2, arg_3, arg_4, arg_5, arg_6);
 }
 
diff --git a/test/tint/builtins/gen/var/textureSampleGrad/7cd6de.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleGrad/7cd6de.wgsl.expected.dxc.hlsl
index 9bbb852..30e5c08 100644
--- a/test/tint/builtins/gen/var/textureSampleGrad/7cd6de.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleGrad/7cd6de.wgsl.expected.dxc.hlsl
@@ -2,11 +2,11 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleGrad_7cd6de() {
-  float2 arg_2 = (0.0f).xx;
+  float2 arg_2 = (1.0f).xx;
   uint arg_3 = 1u;
-  float2 arg_4 = (0.0f).xx;
-  float2 arg_5 = (0.0f).xx;
-  float4 res = arg_0.SampleGrad(arg_1, float3(arg_2, float(arg_3)), arg_4, arg_5, (0).xx);
+  float2 arg_4 = (1.0f).xx;
+  float2 arg_5 = (1.0f).xx;
+  float4 res = arg_0.SampleGrad(arg_1, float3(arg_2, float(arg_3)), arg_4, arg_5, (1).xx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/textureSampleGrad/7cd6de.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleGrad/7cd6de.wgsl.expected.fxc.hlsl
index 9bbb852..30e5c08 100644
--- a/test/tint/builtins/gen/var/textureSampleGrad/7cd6de.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleGrad/7cd6de.wgsl.expected.fxc.hlsl
@@ -2,11 +2,11 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleGrad_7cd6de() {
-  float2 arg_2 = (0.0f).xx;
+  float2 arg_2 = (1.0f).xx;
   uint arg_3 = 1u;
-  float2 arg_4 = (0.0f).xx;
-  float2 arg_5 = (0.0f).xx;
-  float4 res = arg_0.SampleGrad(arg_1, float3(arg_2, float(arg_3)), arg_4, arg_5, (0).xx);
+  float2 arg_4 = (1.0f).xx;
+  float2 arg_5 = (1.0f).xx;
+  float4 res = arg_0.SampleGrad(arg_1, float3(arg_2, float(arg_3)), arg_4, arg_5, (1).xx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/textureSampleGrad/7cd6de.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureSampleGrad/7cd6de.wgsl.expected.glsl
index 876815f..d8c267f 100644
--- a/test/tint/builtins/gen/var/textureSampleGrad/7cd6de.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureSampleGrad/7cd6de.wgsl.expected.glsl
@@ -3,11 +3,11 @@
 uniform highp sampler2DArray arg_0_arg_1;
 
 void textureSampleGrad_7cd6de() {
-  vec2 arg_2 = vec2(0.0f);
+  vec2 arg_2 = vec2(1.0f);
   uint arg_3 = 1u;
-  vec2 arg_4 = vec2(0.0f);
-  vec2 arg_5 = vec2(0.0f);
-  vec4 res = textureGradOffset(arg_0_arg_1, vec3(arg_2, float(arg_3)), arg_4, arg_5, ivec2(0));
+  vec2 arg_4 = vec2(1.0f);
+  vec2 arg_5 = vec2(1.0f);
+  vec4 res = textureGradOffset(arg_0_arg_1, vec3(arg_2, float(arg_3)), arg_4, arg_5, ivec2(1));
 }
 
 vec4 vertex_main() {
@@ -29,11 +29,11 @@
 uniform highp sampler2DArray arg_0_arg_1;
 
 void textureSampleGrad_7cd6de() {
-  vec2 arg_2 = vec2(0.0f);
+  vec2 arg_2 = vec2(1.0f);
   uint arg_3 = 1u;
-  vec2 arg_4 = vec2(0.0f);
-  vec2 arg_5 = vec2(0.0f);
-  vec4 res = textureGradOffset(arg_0_arg_1, vec3(arg_2, float(arg_3)), arg_4, arg_5, ivec2(0));
+  vec2 arg_4 = vec2(1.0f);
+  vec2 arg_5 = vec2(1.0f);
+  vec4 res = textureGradOffset(arg_0_arg_1, vec3(arg_2, float(arg_3)), arg_4, arg_5, ivec2(1));
 }
 
 void fragment_main() {
@@ -49,11 +49,11 @@
 uniform highp sampler2DArray arg_0_arg_1;
 
 void textureSampleGrad_7cd6de() {
-  vec2 arg_2 = vec2(0.0f);
+  vec2 arg_2 = vec2(1.0f);
   uint arg_3 = 1u;
-  vec2 arg_4 = vec2(0.0f);
-  vec2 arg_5 = vec2(0.0f);
-  vec4 res = textureGradOffset(arg_0_arg_1, vec3(arg_2, float(arg_3)), arg_4, arg_5, ivec2(0));
+  vec2 arg_4 = vec2(1.0f);
+  vec2 arg_5 = vec2(1.0f);
+  vec4 res = textureGradOffset(arg_0_arg_1, vec3(arg_2, float(arg_3)), arg_4, arg_5, ivec2(1));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/var/textureSampleGrad/7cd6de.wgsl.expected.msl b/test/tint/builtins/gen/var/textureSampleGrad/7cd6de.wgsl.expected.msl
index b8f980b..00d9c11 100644
--- a/test/tint/builtins/gen/var/textureSampleGrad/7cd6de.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureSampleGrad/7cd6de.wgsl.expected.msl
@@ -2,11 +2,11 @@
 
 using namespace metal;
 void textureSampleGrad_7cd6de(texture2d_array<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float2 arg_2 = float2(0.0f);
+  float2 arg_2 = float2(1.0f);
   uint arg_3 = 1u;
-  float2 arg_4 = float2(0.0f);
-  float2 arg_5 = float2(0.0f);
-  float4 res = tint_symbol_1.sample(tint_symbol_2, arg_2, arg_3, gradient2d(arg_4, arg_5), int2(0));
+  float2 arg_4 = float2(1.0f);
+  float2 arg_5 = float2(1.0f);
+  float4 res = tint_symbol_1.sample(tint_symbol_2, arg_2, arg_3, gradient2d(arg_4, arg_5), int2(1));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/textureSampleGrad/7cd6de.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSampleGrad/7cd6de.wgsl.expected.spvasm
index 174acb5..c44f828 100644
--- a/test/tint/builtins/gen/var/textureSampleGrad/7cd6de.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSampleGrad/7cd6de.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 63
+; Bound: 65
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -47,65 +47,67 @@
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
-         %20 = OpConstantNull %v2float
+    %float_1 = OpConstant %float 1
+         %21 = OpConstantComposite %v2float %float_1 %float_1
 %_ptr_Function_v2float = OpTypePointer Function %v2float
+         %24 = OpConstantNull %v2float
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %27 = OpConstantNull %uint
-         %33 = OpTypeSampledImage %11
+         %29 = OpConstantNull %uint
+         %35 = OpTypeSampledImage %11
     %v3float = OpTypeVector %float 3
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
-         %46 = OpConstantNull %v2int
+      %int_1 = OpConstant %int 1
+         %49 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %49 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %52 = OpTypeFunction %v4float
 %textureSampleGrad_7cd6de = OpFunction %void None %15
          %18 = OpLabel
-      %arg_2 = OpVariable %_ptr_Function_v2float Function %20
-      %arg_3 = OpVariable %_ptr_Function_uint Function %27
-      %arg_4 = OpVariable %_ptr_Function_v2float Function %20
-      %arg_5 = OpVariable %_ptr_Function_v2float Function %20
+      %arg_2 = OpVariable %_ptr_Function_v2float Function %24
+      %arg_3 = OpVariable %_ptr_Function_uint Function %29
+      %arg_4 = OpVariable %_ptr_Function_v2float Function %24
+      %arg_5 = OpVariable %_ptr_Function_v2float Function %24
         %res = OpVariable %_ptr_Function_v4float Function %5
-               OpStore %arg_2 %20
+               OpStore %arg_2 %21
                OpStore %arg_3 %uint_1
-               OpStore %arg_4 %20
-               OpStore %arg_5 %20
-         %31 = OpLoad %14 %arg_1
-         %32 = OpLoad %11 %arg_0
-         %34 = OpSampledImage %33 %32 %31
-         %36 = OpLoad %v2float %arg_2
-         %37 = OpCompositeExtract %float %36 0
-         %38 = OpCompositeExtract %float %36 1
-         %40 = OpLoad %uint %arg_3
-         %39 = OpConvertUToF %float %40
-         %41 = OpCompositeConstruct %v3float %37 %38 %39
-         %42 = OpLoad %v2float %arg_4
-         %43 = OpLoad %v2float %arg_5
-         %30 = OpImageSampleExplicitLod %v4float %34 %41 Grad|ConstOffset %42 %43 %46
-               OpStore %res %30
+               OpStore %arg_4 %21
+               OpStore %arg_5 %21
+         %33 = OpLoad %14 %arg_1
+         %34 = OpLoad %11 %arg_0
+         %36 = OpSampledImage %35 %34 %33
+         %38 = OpLoad %v2float %arg_2
+         %39 = OpCompositeExtract %float %38 0
+         %40 = OpCompositeExtract %float %38 1
+         %42 = OpLoad %uint %arg_3
+         %41 = OpConvertUToF %float %42
+         %43 = OpCompositeConstruct %v3float %39 %40 %41
+         %44 = OpLoad %v2float %arg_4
+         %45 = OpLoad %v2float %arg_5
+         %32 = OpImageSampleExplicitLod %v4float %36 %43 Grad|ConstOffset %44 %45 %49
+               OpStore %res %32
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %49
-         %51 = OpLabel
-         %52 = OpFunctionCall %void %textureSampleGrad_7cd6de
+%vertex_main_inner = OpFunction %v4float None %52
+         %54 = OpLabel
+         %55 = OpFunctionCall %void %textureSampleGrad_7cd6de
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
-         %54 = OpLabel
-         %55 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %55
+         %57 = OpLabel
+         %58 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %58
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %15
-         %58 = OpLabel
-         %59 = OpFunctionCall %void %textureSampleGrad_7cd6de
+         %60 = OpLabel
+         %61 = OpFunctionCall %void %textureSampleGrad_7cd6de
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %15
-         %61 = OpLabel
-         %62 = OpFunctionCall %void %textureSampleGrad_7cd6de
+         %63 = OpLabel
+         %64 = OpFunctionCall %void %textureSampleGrad_7cd6de
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureSampleGrad/7cd6de.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSampleGrad/7cd6de.wgsl.expected.wgsl
index 96e7b81..ecdd746 100644
--- a/test/tint/builtins/gen/var/textureSampleGrad/7cd6de.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleGrad/7cd6de.wgsl.expected.wgsl
@@ -3,11 +3,11 @@
 @group(1) @binding(1) var arg_1 : sampler;
 
 fn textureSampleGrad_7cd6de() {
-  var arg_2 = vec2<f32>();
+  var arg_2 = vec2<f32>(1.0f);
   var arg_3 = 1u;
-  var arg_4 = vec2<f32>();
-  var arg_5 = vec2<f32>();
-  const arg_6 = vec2<i32>();
+  var arg_4 = vec2<f32>(1.0f);
+  var arg_5 = vec2<f32>(1.0f);
+  const arg_6 = vec2<i32>(1i);
   var res : vec4<f32> = textureSampleGrad(arg_0, arg_1, arg_2, arg_3, arg_4, arg_5, arg_6);
 }
 
diff --git a/test/tint/builtins/gen/var/textureSampleGrad/a09131.wgsl b/test/tint/builtins/gen/var/textureSampleGrad/a09131.wgsl
index b741911..4ece919 100644
--- a/test/tint/builtins/gen/var/textureSampleGrad/a09131.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleGrad/a09131.wgsl
@@ -25,10 +25,10 @@
 
 // fn textureSampleGrad(texture: texture_2d_array<f32>, sampler: sampler, coords: vec2<f32>, array_index: u32, ddx: vec2<f32>, ddy: vec2<f32>) -> vec4<f32>
 fn textureSampleGrad_a09131() {
-  var arg_2 = vec2<f32>();
+  var arg_2 = vec2<f32>(1.f);
   var arg_3 = 1u;
-  var arg_4 = vec2<f32>();
-  var arg_5 = vec2<f32>();
+  var arg_4 = vec2<f32>(1.f);
+  var arg_5 = vec2<f32>(1.f);
   var res: vec4<f32> = textureSampleGrad(arg_0, arg_1, arg_2, arg_3, arg_4, arg_5);
 }
 
diff --git a/test/tint/builtins/gen/var/textureSampleGrad/a09131.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleGrad/a09131.wgsl.expected.dxc.hlsl
index 408ec2f..b77b05f 100644
--- a/test/tint/builtins/gen/var/textureSampleGrad/a09131.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleGrad/a09131.wgsl.expected.dxc.hlsl
@@ -2,10 +2,10 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleGrad_a09131() {
-  float2 arg_2 = (0.0f).xx;
+  float2 arg_2 = (1.0f).xx;
   uint arg_3 = 1u;
-  float2 arg_4 = (0.0f).xx;
-  float2 arg_5 = (0.0f).xx;
+  float2 arg_4 = (1.0f).xx;
+  float2 arg_5 = (1.0f).xx;
   float4 res = arg_0.SampleGrad(arg_1, float3(arg_2, float(arg_3)), arg_4, arg_5);
 }
 
diff --git a/test/tint/builtins/gen/var/textureSampleGrad/a09131.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleGrad/a09131.wgsl.expected.fxc.hlsl
index 408ec2f..b77b05f 100644
--- a/test/tint/builtins/gen/var/textureSampleGrad/a09131.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleGrad/a09131.wgsl.expected.fxc.hlsl
@@ -2,10 +2,10 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleGrad_a09131() {
-  float2 arg_2 = (0.0f).xx;
+  float2 arg_2 = (1.0f).xx;
   uint arg_3 = 1u;
-  float2 arg_4 = (0.0f).xx;
-  float2 arg_5 = (0.0f).xx;
+  float2 arg_4 = (1.0f).xx;
+  float2 arg_5 = (1.0f).xx;
   float4 res = arg_0.SampleGrad(arg_1, float3(arg_2, float(arg_3)), arg_4, arg_5);
 }
 
diff --git a/test/tint/builtins/gen/var/textureSampleGrad/a09131.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureSampleGrad/a09131.wgsl.expected.glsl
index ce8038c..931674d 100644
--- a/test/tint/builtins/gen/var/textureSampleGrad/a09131.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureSampleGrad/a09131.wgsl.expected.glsl
@@ -3,10 +3,10 @@
 uniform highp sampler2DArray arg_0_arg_1;
 
 void textureSampleGrad_a09131() {
-  vec2 arg_2 = vec2(0.0f);
+  vec2 arg_2 = vec2(1.0f);
   uint arg_3 = 1u;
-  vec2 arg_4 = vec2(0.0f);
-  vec2 arg_5 = vec2(0.0f);
+  vec2 arg_4 = vec2(1.0f);
+  vec2 arg_5 = vec2(1.0f);
   vec4 res = textureGrad(arg_0_arg_1, vec3(arg_2, float(arg_3)), arg_4, arg_5);
 }
 
@@ -29,10 +29,10 @@
 uniform highp sampler2DArray arg_0_arg_1;
 
 void textureSampleGrad_a09131() {
-  vec2 arg_2 = vec2(0.0f);
+  vec2 arg_2 = vec2(1.0f);
   uint arg_3 = 1u;
-  vec2 arg_4 = vec2(0.0f);
-  vec2 arg_5 = vec2(0.0f);
+  vec2 arg_4 = vec2(1.0f);
+  vec2 arg_5 = vec2(1.0f);
   vec4 res = textureGrad(arg_0_arg_1, vec3(arg_2, float(arg_3)), arg_4, arg_5);
 }
 
@@ -49,10 +49,10 @@
 uniform highp sampler2DArray arg_0_arg_1;
 
 void textureSampleGrad_a09131() {
-  vec2 arg_2 = vec2(0.0f);
+  vec2 arg_2 = vec2(1.0f);
   uint arg_3 = 1u;
-  vec2 arg_4 = vec2(0.0f);
-  vec2 arg_5 = vec2(0.0f);
+  vec2 arg_4 = vec2(1.0f);
+  vec2 arg_5 = vec2(1.0f);
   vec4 res = textureGrad(arg_0_arg_1, vec3(arg_2, float(arg_3)), arg_4, arg_5);
 }
 
diff --git a/test/tint/builtins/gen/var/textureSampleGrad/a09131.wgsl.expected.msl b/test/tint/builtins/gen/var/textureSampleGrad/a09131.wgsl.expected.msl
index 1065f83..54fa329 100644
--- a/test/tint/builtins/gen/var/textureSampleGrad/a09131.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureSampleGrad/a09131.wgsl.expected.msl
@@ -2,10 +2,10 @@
 
 using namespace metal;
 void textureSampleGrad_a09131(texture2d_array<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float2 arg_2 = float2(0.0f);
+  float2 arg_2 = float2(1.0f);
   uint arg_3 = 1u;
-  float2 arg_4 = float2(0.0f);
-  float2 arg_5 = float2(0.0f);
+  float2 arg_4 = float2(1.0f);
+  float2 arg_5 = float2(1.0f);
   float4 res = tint_symbol_1.sample(tint_symbol_2, arg_2, arg_3, gradient2d(arg_4, arg_5));
 }
 
diff --git a/test/tint/builtins/gen/var/textureSampleGrad/a09131.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSampleGrad/a09131.wgsl.expected.spvasm
index 031b5d1..013b899 100644
--- a/test/tint/builtins/gen/var/textureSampleGrad/a09131.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSampleGrad/a09131.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 60
+; Bound: 61
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -47,62 +47,63 @@
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
-         %20 = OpConstantNull %v2float
+    %float_1 = OpConstant %float 1
+         %21 = OpConstantComposite %v2float %float_1 %float_1
 %_ptr_Function_v2float = OpTypePointer Function %v2float
+         %24 = OpConstantNull %v2float
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %27 = OpConstantNull %uint
-         %33 = OpTypeSampledImage %11
+         %29 = OpConstantNull %uint
+         %35 = OpTypeSampledImage %11
     %v3float = OpTypeVector %float 3
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %46 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %48 = OpTypeFunction %v4float
 %textureSampleGrad_a09131 = OpFunction %void None %15
          %18 = OpLabel
-      %arg_2 = OpVariable %_ptr_Function_v2float Function %20
-      %arg_3 = OpVariable %_ptr_Function_uint Function %27
-      %arg_4 = OpVariable %_ptr_Function_v2float Function %20
-      %arg_5 = OpVariable %_ptr_Function_v2float Function %20
+      %arg_2 = OpVariable %_ptr_Function_v2float Function %24
+      %arg_3 = OpVariable %_ptr_Function_uint Function %29
+      %arg_4 = OpVariable %_ptr_Function_v2float Function %24
+      %arg_5 = OpVariable %_ptr_Function_v2float Function %24
         %res = OpVariable %_ptr_Function_v4float Function %5
-               OpStore %arg_2 %20
+               OpStore %arg_2 %21
                OpStore %arg_3 %uint_1
-               OpStore %arg_4 %20
-               OpStore %arg_5 %20
-         %31 = OpLoad %14 %arg_1
-         %32 = OpLoad %11 %arg_0
-         %34 = OpSampledImage %33 %32 %31
-         %36 = OpLoad %v2float %arg_2
-         %37 = OpCompositeExtract %float %36 0
-         %38 = OpCompositeExtract %float %36 1
-         %40 = OpLoad %uint %arg_3
-         %39 = OpConvertUToF %float %40
-         %41 = OpCompositeConstruct %v3float %37 %38 %39
-         %42 = OpLoad %v2float %arg_4
-         %43 = OpLoad %v2float %arg_5
-         %30 = OpImageSampleExplicitLod %v4float %34 %41 Grad %42 %43
-               OpStore %res %30
+               OpStore %arg_4 %21
+               OpStore %arg_5 %21
+         %33 = OpLoad %14 %arg_1
+         %34 = OpLoad %11 %arg_0
+         %36 = OpSampledImage %35 %34 %33
+         %38 = OpLoad %v2float %arg_2
+         %39 = OpCompositeExtract %float %38 0
+         %40 = OpCompositeExtract %float %38 1
+         %42 = OpLoad %uint %arg_3
+         %41 = OpConvertUToF %float %42
+         %43 = OpCompositeConstruct %v3float %39 %40 %41
+         %44 = OpLoad %v2float %arg_4
+         %45 = OpLoad %v2float %arg_5
+         %32 = OpImageSampleExplicitLod %v4float %36 %43 Grad %44 %45
+               OpStore %res %32
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %46
-         %48 = OpLabel
-         %49 = OpFunctionCall %void %textureSampleGrad_a09131
+%vertex_main_inner = OpFunction %v4float None %48
+         %50 = OpLabel
+         %51 = OpFunctionCall %void %textureSampleGrad_a09131
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
-         %51 = OpLabel
-         %52 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %52
+         %53 = OpLabel
+         %54 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %54
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %15
-         %55 = OpLabel
-         %56 = OpFunctionCall %void %textureSampleGrad_a09131
+         %56 = OpLabel
+         %57 = OpFunctionCall %void %textureSampleGrad_a09131
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %15
-         %58 = OpLabel
-         %59 = OpFunctionCall %void %textureSampleGrad_a09131
+         %59 = OpLabel
+         %60 = OpFunctionCall %void %textureSampleGrad_a09131
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureSampleGrad/a09131.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSampleGrad/a09131.wgsl.expected.wgsl
index b15bd3a..c358991 100644
--- a/test/tint/builtins/gen/var/textureSampleGrad/a09131.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleGrad/a09131.wgsl.expected.wgsl
@@ -3,10 +3,10 @@
 @group(1) @binding(1) var arg_1 : sampler;
 
 fn textureSampleGrad_a09131() {
-  var arg_2 = vec2<f32>();
+  var arg_2 = vec2<f32>(1.0f);
   var arg_3 = 1u;
-  var arg_4 = vec2<f32>();
-  var arg_5 = vec2<f32>();
+  var arg_4 = vec2<f32>(1.0f);
+  var arg_5 = vec2<f32>(1.0f);
   var res : vec4<f32> = textureSampleGrad(arg_0, arg_1, arg_2, arg_3, arg_4, arg_5);
 }
 
diff --git a/test/tint/builtins/gen/var/textureSampleGrad/bbb58f.wgsl b/test/tint/builtins/gen/var/textureSampleGrad/bbb58f.wgsl
index 0df48a1..911b398 100644
--- a/test/tint/builtins/gen/var/textureSampleGrad/bbb58f.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleGrad/bbb58f.wgsl
@@ -25,10 +25,10 @@
 
 // fn textureSampleGrad(texture: texture_cube_array<f32>, sampler: sampler, coords: vec3<f32>, array_index: u32, ddx: vec3<f32>, ddy: vec3<f32>) -> vec4<f32>
 fn textureSampleGrad_bbb58f() {
-  var arg_2 = vec3<f32>();
+  var arg_2 = vec3<f32>(1.f);
   var arg_3 = 1u;
-  var arg_4 = vec3<f32>();
-  var arg_5 = vec3<f32>();
+  var arg_4 = vec3<f32>(1.f);
+  var arg_5 = vec3<f32>(1.f);
   var res: vec4<f32> = textureSampleGrad(arg_0, arg_1, arg_2, arg_3, arg_4, arg_5);
 }
 
diff --git a/test/tint/builtins/gen/var/textureSampleGrad/bbb58f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleGrad/bbb58f.wgsl.expected.dxc.hlsl
index da308d6..fbe11fc 100644
--- a/test/tint/builtins/gen/var/textureSampleGrad/bbb58f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleGrad/bbb58f.wgsl.expected.dxc.hlsl
@@ -2,10 +2,10 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleGrad_bbb58f() {
-  float3 arg_2 = (0.0f).xxx;
+  float3 arg_2 = (1.0f).xxx;
   uint arg_3 = 1u;
-  float3 arg_4 = (0.0f).xxx;
-  float3 arg_5 = (0.0f).xxx;
+  float3 arg_4 = (1.0f).xxx;
+  float3 arg_5 = (1.0f).xxx;
   float4 res = arg_0.SampleGrad(arg_1, float4(arg_2, float(arg_3)), arg_4, arg_5);
 }
 
diff --git a/test/tint/builtins/gen/var/textureSampleGrad/bbb58f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleGrad/bbb58f.wgsl.expected.fxc.hlsl
index da308d6..fbe11fc 100644
--- a/test/tint/builtins/gen/var/textureSampleGrad/bbb58f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleGrad/bbb58f.wgsl.expected.fxc.hlsl
@@ -2,10 +2,10 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleGrad_bbb58f() {
-  float3 arg_2 = (0.0f).xxx;
+  float3 arg_2 = (1.0f).xxx;
   uint arg_3 = 1u;
-  float3 arg_4 = (0.0f).xxx;
-  float3 arg_5 = (0.0f).xxx;
+  float3 arg_4 = (1.0f).xxx;
+  float3 arg_5 = (1.0f).xxx;
   float4 res = arg_0.SampleGrad(arg_1, float4(arg_2, float(arg_3)), arg_4, arg_5);
 }
 
diff --git a/test/tint/builtins/gen/var/textureSampleGrad/bbb58f.wgsl.expected.msl b/test/tint/builtins/gen/var/textureSampleGrad/bbb58f.wgsl.expected.msl
index 53879d7..ec2e05e 100644
--- a/test/tint/builtins/gen/var/textureSampleGrad/bbb58f.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureSampleGrad/bbb58f.wgsl.expected.msl
@@ -2,10 +2,10 @@
 
 using namespace metal;
 void textureSampleGrad_bbb58f(texturecube_array<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float3 arg_2 = float3(0.0f);
+  float3 arg_2 = float3(1.0f);
   uint arg_3 = 1u;
-  float3 arg_4 = float3(0.0f);
-  float3 arg_5 = float3(0.0f);
+  float3 arg_4 = float3(1.0f);
+  float3 arg_5 = float3(1.0f);
   float4 res = tint_symbol_1.sample(tint_symbol_2, arg_2, arg_3, gradientcube(arg_4, arg_5));
 }
 
diff --git a/test/tint/builtins/gen/var/textureSampleGrad/bbb58f.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSampleGrad/bbb58f.wgsl.expected.spvasm
index 4905a93..f95babe 100644
--- a/test/tint/builtins/gen/var/textureSampleGrad/bbb58f.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSampleGrad/bbb58f.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 60
+; Bound: 61
 ; Schema: 0
                OpCapability Shader
                OpCapability SampledCubeArray
@@ -48,62 +48,63 @@
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
     %v3float = OpTypeVector %float 3
-         %20 = OpConstantNull %v3float
+    %float_1 = OpConstant %float 1
+         %21 = OpConstantComposite %v3float %float_1 %float_1 %float_1
 %_ptr_Function_v3float = OpTypePointer Function %v3float
+         %24 = OpConstantNull %v3float
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %27 = OpConstantNull %uint
-         %33 = OpTypeSampledImage %11
+         %29 = OpConstantNull %uint
+         %35 = OpTypeSampledImage %11
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %46 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %48 = OpTypeFunction %v4float
 %textureSampleGrad_bbb58f = OpFunction %void None %15
          %18 = OpLabel
-      %arg_2 = OpVariable %_ptr_Function_v3float Function %20
-      %arg_3 = OpVariable %_ptr_Function_uint Function %27
-      %arg_4 = OpVariable %_ptr_Function_v3float Function %20
-      %arg_5 = OpVariable %_ptr_Function_v3float Function %20
+      %arg_2 = OpVariable %_ptr_Function_v3float Function %24
+      %arg_3 = OpVariable %_ptr_Function_uint Function %29
+      %arg_4 = OpVariable %_ptr_Function_v3float Function %24
+      %arg_5 = OpVariable %_ptr_Function_v3float Function %24
         %res = OpVariable %_ptr_Function_v4float Function %5
-               OpStore %arg_2 %20
+               OpStore %arg_2 %21
                OpStore %arg_3 %uint_1
-               OpStore %arg_4 %20
-               OpStore %arg_5 %20
-         %31 = OpLoad %14 %arg_1
-         %32 = OpLoad %11 %arg_0
-         %34 = OpSampledImage %33 %32 %31
-         %35 = OpLoad %v3float %arg_2
-         %36 = OpCompositeExtract %float %35 0
-         %37 = OpCompositeExtract %float %35 1
-         %38 = OpCompositeExtract %float %35 2
-         %40 = OpLoad %uint %arg_3
-         %39 = OpConvertUToF %float %40
-         %41 = OpCompositeConstruct %v4float %36 %37 %38 %39
-         %42 = OpLoad %v3float %arg_4
-         %43 = OpLoad %v3float %arg_5
-         %30 = OpImageSampleExplicitLod %v4float %34 %41 Grad %42 %43
-               OpStore %res %30
+               OpStore %arg_4 %21
+               OpStore %arg_5 %21
+         %33 = OpLoad %14 %arg_1
+         %34 = OpLoad %11 %arg_0
+         %36 = OpSampledImage %35 %34 %33
+         %37 = OpLoad %v3float %arg_2
+         %38 = OpCompositeExtract %float %37 0
+         %39 = OpCompositeExtract %float %37 1
+         %40 = OpCompositeExtract %float %37 2
+         %42 = OpLoad %uint %arg_3
+         %41 = OpConvertUToF %float %42
+         %43 = OpCompositeConstruct %v4float %38 %39 %40 %41
+         %44 = OpLoad %v3float %arg_4
+         %45 = OpLoad %v3float %arg_5
+         %32 = OpImageSampleExplicitLod %v4float %36 %43 Grad %44 %45
+               OpStore %res %32
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %46
-         %48 = OpLabel
-         %49 = OpFunctionCall %void %textureSampleGrad_bbb58f
+%vertex_main_inner = OpFunction %v4float None %48
+         %50 = OpLabel
+         %51 = OpFunctionCall %void %textureSampleGrad_bbb58f
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
-         %51 = OpLabel
-         %52 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %52
+         %53 = OpLabel
+         %54 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %54
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %15
-         %55 = OpLabel
-         %56 = OpFunctionCall %void %textureSampleGrad_bbb58f
+         %56 = OpLabel
+         %57 = OpFunctionCall %void %textureSampleGrad_bbb58f
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %15
-         %58 = OpLabel
-         %59 = OpFunctionCall %void %textureSampleGrad_bbb58f
+         %59 = OpLabel
+         %60 = OpFunctionCall %void %textureSampleGrad_bbb58f
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureSampleGrad/bbb58f.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSampleGrad/bbb58f.wgsl.expected.wgsl
index 2419db8..e05c270 100644
--- a/test/tint/builtins/gen/var/textureSampleGrad/bbb58f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleGrad/bbb58f.wgsl.expected.wgsl
@@ -3,10 +3,10 @@
 @group(1) @binding(1) var arg_1 : sampler;
 
 fn textureSampleGrad_bbb58f() {
-  var arg_2 = vec3<f32>();
+  var arg_2 = vec3<f32>(1.0f);
   var arg_3 = 1u;
-  var arg_4 = vec3<f32>();
-  var arg_5 = vec3<f32>();
+  var arg_4 = vec3<f32>(1.0f);
+  var arg_5 = vec3<f32>(1.0f);
   var res : vec4<f32> = textureSampleGrad(arg_0, arg_1, arg_2, arg_3, arg_4, arg_5);
 }
 
diff --git a/test/tint/builtins/gen/var/textureSampleGrad/d4e3c5.wgsl b/test/tint/builtins/gen/var/textureSampleGrad/d4e3c5.wgsl
index d612765..2fc3391 100644
--- a/test/tint/builtins/gen/var/textureSampleGrad/d4e3c5.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleGrad/d4e3c5.wgsl
@@ -25,10 +25,10 @@
 
 // fn textureSampleGrad(texture: texture_2d<f32>, sampler: sampler, coords: vec2<f32>, ddx: vec2<f32>, ddy: vec2<f32>, @const offset: vec2<i32>) -> vec4<f32>
 fn textureSampleGrad_d4e3c5() {
-  var arg_2 = vec2<f32>();
-  var arg_3 = vec2<f32>();
-  var arg_4 = vec2<f32>();
-  const arg_5 = vec2<i32>();
+  var arg_2 = vec2<f32>(1.f);
+  var arg_3 = vec2<f32>(1.f);
+  var arg_4 = vec2<f32>(1.f);
+  const arg_5 = vec2<i32>(1i);
   var res: vec4<f32> = textureSampleGrad(arg_0, arg_1, arg_2, arg_3, arg_4, arg_5);
 }
 
diff --git a/test/tint/builtins/gen/var/textureSampleGrad/d4e3c5.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleGrad/d4e3c5.wgsl.expected.dxc.hlsl
index 203eca8..411191f 100644
--- a/test/tint/builtins/gen/var/textureSampleGrad/d4e3c5.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleGrad/d4e3c5.wgsl.expected.dxc.hlsl
@@ -2,10 +2,10 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleGrad_d4e3c5() {
-  float2 arg_2 = (0.0f).xx;
-  float2 arg_3 = (0.0f).xx;
-  float2 arg_4 = (0.0f).xx;
-  float4 res = arg_0.SampleGrad(arg_1, arg_2, arg_3, arg_4, (0).xx);
+  float2 arg_2 = (1.0f).xx;
+  float2 arg_3 = (1.0f).xx;
+  float2 arg_4 = (1.0f).xx;
+  float4 res = arg_0.SampleGrad(arg_1, arg_2, arg_3, arg_4, (1).xx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/textureSampleGrad/d4e3c5.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleGrad/d4e3c5.wgsl.expected.fxc.hlsl
index 203eca8..411191f 100644
--- a/test/tint/builtins/gen/var/textureSampleGrad/d4e3c5.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleGrad/d4e3c5.wgsl.expected.fxc.hlsl
@@ -2,10 +2,10 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleGrad_d4e3c5() {
-  float2 arg_2 = (0.0f).xx;
-  float2 arg_3 = (0.0f).xx;
-  float2 arg_4 = (0.0f).xx;
-  float4 res = arg_0.SampleGrad(arg_1, arg_2, arg_3, arg_4, (0).xx);
+  float2 arg_2 = (1.0f).xx;
+  float2 arg_3 = (1.0f).xx;
+  float2 arg_4 = (1.0f).xx;
+  float4 res = arg_0.SampleGrad(arg_1, arg_2, arg_3, arg_4, (1).xx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/textureSampleGrad/d4e3c5.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureSampleGrad/d4e3c5.wgsl.expected.glsl
index a772706..fbc2291 100644
--- a/test/tint/builtins/gen/var/textureSampleGrad/d4e3c5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureSampleGrad/d4e3c5.wgsl.expected.glsl
@@ -3,10 +3,10 @@
 uniform highp sampler2D arg_0_arg_1;
 
 void textureSampleGrad_d4e3c5() {
-  vec2 arg_2 = vec2(0.0f);
-  vec2 arg_3 = vec2(0.0f);
-  vec2 arg_4 = vec2(0.0f);
-  vec4 res = textureGradOffset(arg_0_arg_1, arg_2, arg_3, arg_4, ivec2(0));
+  vec2 arg_2 = vec2(1.0f);
+  vec2 arg_3 = vec2(1.0f);
+  vec2 arg_4 = vec2(1.0f);
+  vec4 res = textureGradOffset(arg_0_arg_1, arg_2, arg_3, arg_4, ivec2(1));
 }
 
 vec4 vertex_main() {
@@ -28,10 +28,10 @@
 uniform highp sampler2D arg_0_arg_1;
 
 void textureSampleGrad_d4e3c5() {
-  vec2 arg_2 = vec2(0.0f);
-  vec2 arg_3 = vec2(0.0f);
-  vec2 arg_4 = vec2(0.0f);
-  vec4 res = textureGradOffset(arg_0_arg_1, arg_2, arg_3, arg_4, ivec2(0));
+  vec2 arg_2 = vec2(1.0f);
+  vec2 arg_3 = vec2(1.0f);
+  vec2 arg_4 = vec2(1.0f);
+  vec4 res = textureGradOffset(arg_0_arg_1, arg_2, arg_3, arg_4, ivec2(1));
 }
 
 void fragment_main() {
@@ -47,10 +47,10 @@
 uniform highp sampler2D arg_0_arg_1;
 
 void textureSampleGrad_d4e3c5() {
-  vec2 arg_2 = vec2(0.0f);
-  vec2 arg_3 = vec2(0.0f);
-  vec2 arg_4 = vec2(0.0f);
-  vec4 res = textureGradOffset(arg_0_arg_1, arg_2, arg_3, arg_4, ivec2(0));
+  vec2 arg_2 = vec2(1.0f);
+  vec2 arg_3 = vec2(1.0f);
+  vec2 arg_4 = vec2(1.0f);
+  vec4 res = textureGradOffset(arg_0_arg_1, arg_2, arg_3, arg_4, ivec2(1));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/var/textureSampleGrad/d4e3c5.wgsl.expected.msl b/test/tint/builtins/gen/var/textureSampleGrad/d4e3c5.wgsl.expected.msl
index 166bab5..8a6867e 100644
--- a/test/tint/builtins/gen/var/textureSampleGrad/d4e3c5.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureSampleGrad/d4e3c5.wgsl.expected.msl
@@ -2,10 +2,10 @@
 
 using namespace metal;
 void textureSampleGrad_d4e3c5(texture2d<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float2 arg_2 = float2(0.0f);
-  float2 arg_3 = float2(0.0f);
-  float2 arg_4 = float2(0.0f);
-  float4 res = tint_symbol_1.sample(tint_symbol_2, arg_2, gradient2d(arg_3, arg_4), int2(0));
+  float2 arg_2 = float2(1.0f);
+  float2 arg_3 = float2(1.0f);
+  float2 arg_4 = float2(1.0f);
+  float4 res = tint_symbol_1.sample(tint_symbol_2, arg_2, gradient2d(arg_3, arg_4), int2(1));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/textureSampleGrad/d4e3c5.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSampleGrad/d4e3c5.wgsl.expected.spvasm
index 817905a..08693ff 100644
--- a/test/tint/builtins/gen/var/textureSampleGrad/d4e3c5.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSampleGrad/d4e3c5.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 52
+; Bound: 54
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -46,53 +46,55 @@
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
-         %20 = OpConstantNull %v2float
+    %float_1 = OpConstant %float 1
+         %21 = OpConstantComposite %v2float %float_1 %float_1
 %_ptr_Function_v2float = OpTypePointer Function %v2float
-         %28 = OpTypeSampledImage %11
+         %24 = OpConstantNull %v2float
+         %30 = OpTypeSampledImage %11
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
-         %35 = OpConstantNull %v2int
+      %int_1 = OpConstant %int 1
+         %38 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %38 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %41 = OpTypeFunction %v4float
 %textureSampleGrad_d4e3c5 = OpFunction %void None %15
          %18 = OpLabel
-      %arg_2 = OpVariable %_ptr_Function_v2float Function %20
-      %arg_3 = OpVariable %_ptr_Function_v2float Function %20
-      %arg_4 = OpVariable %_ptr_Function_v2float Function %20
+      %arg_2 = OpVariable %_ptr_Function_v2float Function %24
+      %arg_3 = OpVariable %_ptr_Function_v2float Function %24
+      %arg_4 = OpVariable %_ptr_Function_v2float Function %24
         %res = OpVariable %_ptr_Function_v4float Function %5
-               OpStore %arg_2 %20
-               OpStore %arg_3 %20
-               OpStore %arg_4 %20
-         %26 = OpLoad %14 %arg_1
-         %27 = OpLoad %11 %arg_0
-         %29 = OpSampledImage %28 %27 %26
-         %30 = OpLoad %v2float %arg_2
-         %31 = OpLoad %v2float %arg_3
-         %32 = OpLoad %v2float %arg_4
-         %25 = OpImageSampleExplicitLod %v4float %29 %30 Grad|ConstOffset %31 %32 %35
-               OpStore %res %25
+               OpStore %arg_2 %21
+               OpStore %arg_3 %21
+               OpStore %arg_4 %21
+         %28 = OpLoad %14 %arg_1
+         %29 = OpLoad %11 %arg_0
+         %31 = OpSampledImage %30 %29 %28
+         %32 = OpLoad %v2float %arg_2
+         %33 = OpLoad %v2float %arg_3
+         %34 = OpLoad %v2float %arg_4
+         %27 = OpImageSampleExplicitLod %v4float %31 %32 Grad|ConstOffset %33 %34 %38
+               OpStore %res %27
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %38
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureSampleGrad_d4e3c5
+%vertex_main_inner = OpFunction %v4float None %41
+         %43 = OpLabel
+         %44 = OpFunctionCall %void %textureSampleGrad_d4e3c5
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
-         %43 = OpLabel
-         %44 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %44
+         %46 = OpLabel
+         %47 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %47
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %15
-         %47 = OpLabel
-         %48 = OpFunctionCall %void %textureSampleGrad_d4e3c5
+         %49 = OpLabel
+         %50 = OpFunctionCall %void %textureSampleGrad_d4e3c5
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %15
-         %50 = OpLabel
-         %51 = OpFunctionCall %void %textureSampleGrad_d4e3c5
+         %52 = OpLabel
+         %53 = OpFunctionCall %void %textureSampleGrad_d4e3c5
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureSampleGrad/d4e3c5.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSampleGrad/d4e3c5.wgsl.expected.wgsl
index 47a0090..8989eb7 100644
--- a/test/tint/builtins/gen/var/textureSampleGrad/d4e3c5.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleGrad/d4e3c5.wgsl.expected.wgsl
@@ -3,10 +3,10 @@
 @group(1) @binding(1) var arg_1 : sampler;
 
 fn textureSampleGrad_d4e3c5() {
-  var arg_2 = vec2<f32>();
-  var arg_3 = vec2<f32>();
-  var arg_4 = vec2<f32>();
-  const arg_5 = vec2<i32>();
+  var arg_2 = vec2<f32>(1.0f);
+  var arg_3 = vec2<f32>(1.0f);
+  var arg_4 = vec2<f32>(1.0f);
+  const arg_5 = vec2<i32>(1i);
   var res : vec4<f32> = textureSampleGrad(arg_0, arg_1, arg_2, arg_3, arg_4, arg_5);
 }
 
diff --git a/test/tint/builtins/gen/var/textureSampleGrad/d65515.wgsl b/test/tint/builtins/gen/var/textureSampleGrad/d65515.wgsl
index 165faad..f198c4e 100644
--- a/test/tint/builtins/gen/var/textureSampleGrad/d65515.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleGrad/d65515.wgsl
@@ -25,11 +25,11 @@
 
 // fn textureSampleGrad(texture: texture_2d_array<f32>, sampler: sampler, coords: vec2<f32>, array_index: i32, ddx: vec2<f32>, ddy: vec2<f32>, @const offset: vec2<i32>) -> vec4<f32>
 fn textureSampleGrad_d65515() {
-  var arg_2 = vec2<f32>();
+  var arg_2 = vec2<f32>(1.f);
   var arg_3 = 1i;
-  var arg_4 = vec2<f32>();
-  var arg_5 = vec2<f32>();
-  const arg_6 = vec2<i32>();
+  var arg_4 = vec2<f32>(1.f);
+  var arg_5 = vec2<f32>(1.f);
+  const arg_6 = vec2<i32>(1i);
   var res: vec4<f32> = textureSampleGrad(arg_0, arg_1, arg_2, arg_3, arg_4, arg_5, arg_6);
 }
 
diff --git a/test/tint/builtins/gen/var/textureSampleGrad/d65515.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleGrad/d65515.wgsl.expected.dxc.hlsl
index 91e62c1..62d6d63 100644
--- a/test/tint/builtins/gen/var/textureSampleGrad/d65515.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleGrad/d65515.wgsl.expected.dxc.hlsl
@@ -2,11 +2,11 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleGrad_d65515() {
-  float2 arg_2 = (0.0f).xx;
+  float2 arg_2 = (1.0f).xx;
   int arg_3 = 1;
-  float2 arg_4 = (0.0f).xx;
-  float2 arg_5 = (0.0f).xx;
-  float4 res = arg_0.SampleGrad(arg_1, float3(arg_2, float(arg_3)), arg_4, arg_5, (0).xx);
+  float2 arg_4 = (1.0f).xx;
+  float2 arg_5 = (1.0f).xx;
+  float4 res = arg_0.SampleGrad(arg_1, float3(arg_2, float(arg_3)), arg_4, arg_5, (1).xx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/textureSampleGrad/d65515.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleGrad/d65515.wgsl.expected.fxc.hlsl
index 91e62c1..62d6d63 100644
--- a/test/tint/builtins/gen/var/textureSampleGrad/d65515.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleGrad/d65515.wgsl.expected.fxc.hlsl
@@ -2,11 +2,11 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleGrad_d65515() {
-  float2 arg_2 = (0.0f).xx;
+  float2 arg_2 = (1.0f).xx;
   int arg_3 = 1;
-  float2 arg_4 = (0.0f).xx;
-  float2 arg_5 = (0.0f).xx;
-  float4 res = arg_0.SampleGrad(arg_1, float3(arg_2, float(arg_3)), arg_4, arg_5, (0).xx);
+  float2 arg_4 = (1.0f).xx;
+  float2 arg_5 = (1.0f).xx;
+  float4 res = arg_0.SampleGrad(arg_1, float3(arg_2, float(arg_3)), arg_4, arg_5, (1).xx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/textureSampleGrad/d65515.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureSampleGrad/d65515.wgsl.expected.glsl
index 31c47a2..8c93957 100644
--- a/test/tint/builtins/gen/var/textureSampleGrad/d65515.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureSampleGrad/d65515.wgsl.expected.glsl
@@ -3,11 +3,11 @@
 uniform highp sampler2DArray arg_0_arg_1;
 
 void textureSampleGrad_d65515() {
-  vec2 arg_2 = vec2(0.0f);
+  vec2 arg_2 = vec2(1.0f);
   int arg_3 = 1;
-  vec2 arg_4 = vec2(0.0f);
-  vec2 arg_5 = vec2(0.0f);
-  vec4 res = textureGradOffset(arg_0_arg_1, vec3(arg_2, float(arg_3)), arg_4, arg_5, ivec2(0));
+  vec2 arg_4 = vec2(1.0f);
+  vec2 arg_5 = vec2(1.0f);
+  vec4 res = textureGradOffset(arg_0_arg_1, vec3(arg_2, float(arg_3)), arg_4, arg_5, ivec2(1));
 }
 
 vec4 vertex_main() {
@@ -29,11 +29,11 @@
 uniform highp sampler2DArray arg_0_arg_1;
 
 void textureSampleGrad_d65515() {
-  vec2 arg_2 = vec2(0.0f);
+  vec2 arg_2 = vec2(1.0f);
   int arg_3 = 1;
-  vec2 arg_4 = vec2(0.0f);
-  vec2 arg_5 = vec2(0.0f);
-  vec4 res = textureGradOffset(arg_0_arg_1, vec3(arg_2, float(arg_3)), arg_4, arg_5, ivec2(0));
+  vec2 arg_4 = vec2(1.0f);
+  vec2 arg_5 = vec2(1.0f);
+  vec4 res = textureGradOffset(arg_0_arg_1, vec3(arg_2, float(arg_3)), arg_4, arg_5, ivec2(1));
 }
 
 void fragment_main() {
@@ -49,11 +49,11 @@
 uniform highp sampler2DArray arg_0_arg_1;
 
 void textureSampleGrad_d65515() {
-  vec2 arg_2 = vec2(0.0f);
+  vec2 arg_2 = vec2(1.0f);
   int arg_3 = 1;
-  vec2 arg_4 = vec2(0.0f);
-  vec2 arg_5 = vec2(0.0f);
-  vec4 res = textureGradOffset(arg_0_arg_1, vec3(arg_2, float(arg_3)), arg_4, arg_5, ivec2(0));
+  vec2 arg_4 = vec2(1.0f);
+  vec2 arg_5 = vec2(1.0f);
+  vec4 res = textureGradOffset(arg_0_arg_1, vec3(arg_2, float(arg_3)), arg_4, arg_5, ivec2(1));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/var/textureSampleGrad/d65515.wgsl.expected.msl b/test/tint/builtins/gen/var/textureSampleGrad/d65515.wgsl.expected.msl
index ad234a0..cf94801 100644
--- a/test/tint/builtins/gen/var/textureSampleGrad/d65515.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureSampleGrad/d65515.wgsl.expected.msl
@@ -2,11 +2,11 @@
 
 using namespace metal;
 void textureSampleGrad_d65515(texture2d_array<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float2 arg_2 = float2(0.0f);
+  float2 arg_2 = float2(1.0f);
   int arg_3 = 1;
-  float2 arg_4 = float2(0.0f);
-  float2 arg_5 = float2(0.0f);
-  float4 res = tint_symbol_1.sample(tint_symbol_2, arg_2, arg_3, gradient2d(arg_4, arg_5), int2(0));
+  float2 arg_4 = float2(1.0f);
+  float2 arg_5 = float2(1.0f);
+  float4 res = tint_symbol_1.sample(tint_symbol_2, arg_2, arg_3, gradient2d(arg_4, arg_5), int2(1));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/textureSampleGrad/d65515.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSampleGrad/d65515.wgsl.expected.spvasm
index 274c793..f99de76 100644
--- a/test/tint/builtins/gen/var/textureSampleGrad/d65515.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSampleGrad/d65515.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 62
+; Bound: 63
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -47,64 +47,65 @@
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
-         %20 = OpConstantNull %v2float
+    %float_1 = OpConstant %float 1
+         %21 = OpConstantComposite %v2float %float_1 %float_1
 %_ptr_Function_v2float = OpTypePointer Function %v2float
+         %24 = OpConstantNull %v2float
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
-         %27 = OpConstantNull %int
-         %33 = OpTypeSampledImage %11
+         %29 = OpConstantNull %int
+         %35 = OpTypeSampledImage %11
     %v3float = OpTypeVector %float 3
       %v2int = OpTypeVector %int 2
-         %45 = OpConstantNull %v2int
+         %47 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %48 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %50 = OpTypeFunction %v4float
 %textureSampleGrad_d65515 = OpFunction %void None %15
          %18 = OpLabel
-      %arg_2 = OpVariable %_ptr_Function_v2float Function %20
-      %arg_3 = OpVariable %_ptr_Function_int Function %27
-      %arg_4 = OpVariable %_ptr_Function_v2float Function %20
-      %arg_5 = OpVariable %_ptr_Function_v2float Function %20
+      %arg_2 = OpVariable %_ptr_Function_v2float Function %24
+      %arg_3 = OpVariable %_ptr_Function_int Function %29
+      %arg_4 = OpVariable %_ptr_Function_v2float Function %24
+      %arg_5 = OpVariable %_ptr_Function_v2float Function %24
         %res = OpVariable %_ptr_Function_v4float Function %5
-               OpStore %arg_2 %20
+               OpStore %arg_2 %21
                OpStore %arg_3 %int_1
-               OpStore %arg_4 %20
-               OpStore %arg_5 %20
-         %31 = OpLoad %14 %arg_1
-         %32 = OpLoad %11 %arg_0
-         %34 = OpSampledImage %33 %32 %31
-         %36 = OpLoad %v2float %arg_2
-         %37 = OpCompositeExtract %float %36 0
-         %38 = OpCompositeExtract %float %36 1
-         %40 = OpLoad %int %arg_3
-         %39 = OpConvertSToF %float %40
-         %41 = OpCompositeConstruct %v3float %37 %38 %39
-         %42 = OpLoad %v2float %arg_4
-         %43 = OpLoad %v2float %arg_5
-         %30 = OpImageSampleExplicitLod %v4float %34 %41 Grad|ConstOffset %42 %43 %45
-               OpStore %res %30
+               OpStore %arg_4 %21
+               OpStore %arg_5 %21
+         %33 = OpLoad %14 %arg_1
+         %34 = OpLoad %11 %arg_0
+         %36 = OpSampledImage %35 %34 %33
+         %38 = OpLoad %v2float %arg_2
+         %39 = OpCompositeExtract %float %38 0
+         %40 = OpCompositeExtract %float %38 1
+         %42 = OpLoad %int %arg_3
+         %41 = OpConvertSToF %float %42
+         %43 = OpCompositeConstruct %v3float %39 %40 %41
+         %44 = OpLoad %v2float %arg_4
+         %45 = OpLoad %v2float %arg_5
+         %32 = OpImageSampleExplicitLod %v4float %36 %43 Grad|ConstOffset %44 %45 %47
+               OpStore %res %32
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %48
-         %50 = OpLabel
-         %51 = OpFunctionCall %void %textureSampleGrad_d65515
+%vertex_main_inner = OpFunction %v4float None %50
+         %52 = OpLabel
+         %53 = OpFunctionCall %void %textureSampleGrad_d65515
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
-         %53 = OpLabel
-         %54 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %54
+         %55 = OpLabel
+         %56 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %56
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %15
-         %57 = OpLabel
-         %58 = OpFunctionCall %void %textureSampleGrad_d65515
+         %58 = OpLabel
+         %59 = OpFunctionCall %void %textureSampleGrad_d65515
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %15
-         %60 = OpLabel
-         %61 = OpFunctionCall %void %textureSampleGrad_d65515
+         %61 = OpLabel
+         %62 = OpFunctionCall %void %textureSampleGrad_d65515
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureSampleGrad/d65515.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSampleGrad/d65515.wgsl.expected.wgsl
index 1397fcf..30244fd 100644
--- a/test/tint/builtins/gen/var/textureSampleGrad/d65515.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleGrad/d65515.wgsl.expected.wgsl
@@ -3,11 +3,11 @@
 @group(1) @binding(1) var arg_1 : sampler;
 
 fn textureSampleGrad_d65515() {
-  var arg_2 = vec2<f32>();
+  var arg_2 = vec2<f32>(1.0f);
   var arg_3 = 1i;
-  var arg_4 = vec2<f32>();
-  var arg_5 = vec2<f32>();
-  const arg_6 = vec2<i32>();
+  var arg_4 = vec2<f32>(1.0f);
+  var arg_5 = vec2<f32>(1.0f);
+  const arg_6 = vec2<i32>(1i);
   var res : vec4<f32> = textureSampleGrad(arg_0, arg_1, arg_2, arg_3, arg_4, arg_5, arg_6);
 }
 
diff --git a/test/tint/builtins/gen/var/textureSampleGrad/e383db.wgsl b/test/tint/builtins/gen/var/textureSampleGrad/e383db.wgsl
index ff1e7cf..9100f4d 100644
--- a/test/tint/builtins/gen/var/textureSampleGrad/e383db.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleGrad/e383db.wgsl
@@ -25,10 +25,10 @@
 
 // fn textureSampleGrad(texture: texture_cube_array<f32>, sampler: sampler, coords: vec3<f32>, array_index: i32, ddx: vec3<f32>, ddy: vec3<f32>) -> vec4<f32>
 fn textureSampleGrad_e383db() {
-  var arg_2 = vec3<f32>();
+  var arg_2 = vec3<f32>(1.f);
   var arg_3 = 1i;
-  var arg_4 = vec3<f32>();
-  var arg_5 = vec3<f32>();
+  var arg_4 = vec3<f32>(1.f);
+  var arg_5 = vec3<f32>(1.f);
   var res: vec4<f32> = textureSampleGrad(arg_0, arg_1, arg_2, arg_3, arg_4, arg_5);
 }
 
diff --git a/test/tint/builtins/gen/var/textureSampleGrad/e383db.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleGrad/e383db.wgsl.expected.dxc.hlsl
index 1f111fb..bb27c4d 100644
--- a/test/tint/builtins/gen/var/textureSampleGrad/e383db.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleGrad/e383db.wgsl.expected.dxc.hlsl
@@ -2,10 +2,10 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleGrad_e383db() {
-  float3 arg_2 = (0.0f).xxx;
+  float3 arg_2 = (1.0f).xxx;
   int arg_3 = 1;
-  float3 arg_4 = (0.0f).xxx;
-  float3 arg_5 = (0.0f).xxx;
+  float3 arg_4 = (1.0f).xxx;
+  float3 arg_5 = (1.0f).xxx;
   float4 res = arg_0.SampleGrad(arg_1, float4(arg_2, float(arg_3)), arg_4, arg_5);
 }
 
diff --git a/test/tint/builtins/gen/var/textureSampleGrad/e383db.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleGrad/e383db.wgsl.expected.fxc.hlsl
index 1f111fb..bb27c4d 100644
--- a/test/tint/builtins/gen/var/textureSampleGrad/e383db.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleGrad/e383db.wgsl.expected.fxc.hlsl
@@ -2,10 +2,10 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleGrad_e383db() {
-  float3 arg_2 = (0.0f).xxx;
+  float3 arg_2 = (1.0f).xxx;
   int arg_3 = 1;
-  float3 arg_4 = (0.0f).xxx;
-  float3 arg_5 = (0.0f).xxx;
+  float3 arg_4 = (1.0f).xxx;
+  float3 arg_5 = (1.0f).xxx;
   float4 res = arg_0.SampleGrad(arg_1, float4(arg_2, float(arg_3)), arg_4, arg_5);
 }
 
diff --git a/test/tint/builtins/gen/var/textureSampleGrad/e383db.wgsl.expected.msl b/test/tint/builtins/gen/var/textureSampleGrad/e383db.wgsl.expected.msl
index e452422..dcd5806 100644
--- a/test/tint/builtins/gen/var/textureSampleGrad/e383db.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureSampleGrad/e383db.wgsl.expected.msl
@@ -2,10 +2,10 @@
 
 using namespace metal;
 void textureSampleGrad_e383db(texturecube_array<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float3 arg_2 = float3(0.0f);
+  float3 arg_2 = float3(1.0f);
   int arg_3 = 1;
-  float3 arg_4 = float3(0.0f);
-  float3 arg_5 = float3(0.0f);
+  float3 arg_4 = float3(1.0f);
+  float3 arg_5 = float3(1.0f);
   float4 res = tint_symbol_1.sample(tint_symbol_2, arg_2, arg_3, gradientcube(arg_4, arg_5));
 }
 
diff --git a/test/tint/builtins/gen/var/textureSampleGrad/e383db.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSampleGrad/e383db.wgsl.expected.spvasm
index b63df46..206ee79 100644
--- a/test/tint/builtins/gen/var/textureSampleGrad/e383db.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSampleGrad/e383db.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 60
+; Bound: 61
 ; Schema: 0
                OpCapability Shader
                OpCapability SampledCubeArray
@@ -48,62 +48,63 @@
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
     %v3float = OpTypeVector %float 3
-         %20 = OpConstantNull %v3float
+    %float_1 = OpConstant %float 1
+         %21 = OpConstantComposite %v3float %float_1 %float_1 %float_1
 %_ptr_Function_v3float = OpTypePointer Function %v3float
+         %24 = OpConstantNull %v3float
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
-         %27 = OpConstantNull %int
-         %33 = OpTypeSampledImage %11
+         %29 = OpConstantNull %int
+         %35 = OpTypeSampledImage %11
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %46 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %48 = OpTypeFunction %v4float
 %textureSampleGrad_e383db = OpFunction %void None %15
          %18 = OpLabel
-      %arg_2 = OpVariable %_ptr_Function_v3float Function %20
-      %arg_3 = OpVariable %_ptr_Function_int Function %27
-      %arg_4 = OpVariable %_ptr_Function_v3float Function %20
-      %arg_5 = OpVariable %_ptr_Function_v3float Function %20
+      %arg_2 = OpVariable %_ptr_Function_v3float Function %24
+      %arg_3 = OpVariable %_ptr_Function_int Function %29
+      %arg_4 = OpVariable %_ptr_Function_v3float Function %24
+      %arg_5 = OpVariable %_ptr_Function_v3float Function %24
         %res = OpVariable %_ptr_Function_v4float Function %5
-               OpStore %arg_2 %20
+               OpStore %arg_2 %21
                OpStore %arg_3 %int_1
-               OpStore %arg_4 %20
-               OpStore %arg_5 %20
-         %31 = OpLoad %14 %arg_1
-         %32 = OpLoad %11 %arg_0
-         %34 = OpSampledImage %33 %32 %31
-         %35 = OpLoad %v3float %arg_2
-         %36 = OpCompositeExtract %float %35 0
-         %37 = OpCompositeExtract %float %35 1
-         %38 = OpCompositeExtract %float %35 2
-         %40 = OpLoad %int %arg_3
-         %39 = OpConvertSToF %float %40
-         %41 = OpCompositeConstruct %v4float %36 %37 %38 %39
-         %42 = OpLoad %v3float %arg_4
-         %43 = OpLoad %v3float %arg_5
-         %30 = OpImageSampleExplicitLod %v4float %34 %41 Grad %42 %43
-               OpStore %res %30
+               OpStore %arg_4 %21
+               OpStore %arg_5 %21
+         %33 = OpLoad %14 %arg_1
+         %34 = OpLoad %11 %arg_0
+         %36 = OpSampledImage %35 %34 %33
+         %37 = OpLoad %v3float %arg_2
+         %38 = OpCompositeExtract %float %37 0
+         %39 = OpCompositeExtract %float %37 1
+         %40 = OpCompositeExtract %float %37 2
+         %42 = OpLoad %int %arg_3
+         %41 = OpConvertSToF %float %42
+         %43 = OpCompositeConstruct %v4float %38 %39 %40 %41
+         %44 = OpLoad %v3float %arg_4
+         %45 = OpLoad %v3float %arg_5
+         %32 = OpImageSampleExplicitLod %v4float %36 %43 Grad %44 %45
+               OpStore %res %32
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %46
-         %48 = OpLabel
-         %49 = OpFunctionCall %void %textureSampleGrad_e383db
+%vertex_main_inner = OpFunction %v4float None %48
+         %50 = OpLabel
+         %51 = OpFunctionCall %void %textureSampleGrad_e383db
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
-         %51 = OpLabel
-         %52 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %52
+         %53 = OpLabel
+         %54 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %54
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %15
-         %55 = OpLabel
-         %56 = OpFunctionCall %void %textureSampleGrad_e383db
+         %56 = OpLabel
+         %57 = OpFunctionCall %void %textureSampleGrad_e383db
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %15
-         %58 = OpLabel
-         %59 = OpFunctionCall %void %textureSampleGrad_e383db
+         %59 = OpLabel
+         %60 = OpFunctionCall %void %textureSampleGrad_e383db
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureSampleGrad/e383db.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSampleGrad/e383db.wgsl.expected.wgsl
index 792b22d..e4f9c71 100644
--- a/test/tint/builtins/gen/var/textureSampleGrad/e383db.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleGrad/e383db.wgsl.expected.wgsl
@@ -3,10 +3,10 @@
 @group(1) @binding(1) var arg_1 : sampler;
 
 fn textureSampleGrad_e383db() {
-  var arg_2 = vec3<f32>();
+  var arg_2 = vec3<f32>(1.0f);
   var arg_3 = 1i;
-  var arg_4 = vec3<f32>();
-  var arg_5 = vec3<f32>();
+  var arg_4 = vec3<f32>(1.0f);
+  var arg_5 = vec3<f32>(1.0f);
   var res : vec4<f32> = textureSampleGrad(arg_0, arg_1, arg_2, arg_3, arg_4, arg_5);
 }
 
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/02be59.wgsl b/test/tint/builtins/gen/var/textureSampleLevel/02be59.wgsl
index 5b14236..cf57717 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/02be59.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/02be59.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureSampleLevel(texture: texture_depth_2d, sampler: sampler, coords: vec2<f32>, level: i32) -> f32
 fn textureSampleLevel_02be59() {
-  var arg_2 = vec2<f32>();
+  var arg_2 = vec2<f32>(1.f);
   var arg_3 = 1i;
   var res: f32 = textureSampleLevel(arg_0, arg_1, arg_2, arg_3);
 }
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/02be59.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/02be59.wgsl.expected.dxc.hlsl
index d3cce44..ce6b9cd 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/02be59.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/02be59.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleLevel_02be59() {
-  float2 arg_2 = (0.0f).xx;
+  float2 arg_2 = (1.0f).xx;
   int arg_3 = 1;
   float res = arg_0.SampleLevel(arg_1, arg_2, arg_3).x;
 }
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/02be59.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/02be59.wgsl.expected.fxc.hlsl
index d3cce44..ce6b9cd 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/02be59.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/02be59.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleLevel_02be59() {
-  float2 arg_2 = (0.0f).xx;
+  float2 arg_2 = (1.0f).xx;
   int arg_3 = 1;
   float res = arg_0.SampleLevel(arg_1, arg_2, arg_3).x;
 }
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/02be59.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureSampleLevel/02be59.wgsl.expected.glsl
index b24ee0b..ecada9c 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/02be59.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/02be59.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 uniform highp sampler2DShadow arg_0_arg_1;
 
 void textureSampleLevel_02be59() {
-  vec2 arg_2 = vec2(0.0f);
+  vec2 arg_2 = vec2(1.0f);
   int arg_3 = 1;
   float res = textureLod(arg_0_arg_1, vec3(arg_2, 0.0f), float(arg_3));
 }
@@ -27,7 +27,7 @@
 uniform highp sampler2DShadow arg_0_arg_1;
 
 void textureSampleLevel_02be59() {
-  vec2 arg_2 = vec2(0.0f);
+  vec2 arg_2 = vec2(1.0f);
   int arg_3 = 1;
   float res = textureLod(arg_0_arg_1, vec3(arg_2, 0.0f), float(arg_3));
 }
@@ -45,7 +45,7 @@
 uniform highp sampler2DShadow arg_0_arg_1;
 
 void textureSampleLevel_02be59() {
-  vec2 arg_2 = vec2(0.0f);
+  vec2 arg_2 = vec2(1.0f);
   int arg_3 = 1;
   float res = textureLod(arg_0_arg_1, vec3(arg_2, 0.0f), float(arg_3));
 }
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/02be59.wgsl.expected.msl b/test/tint/builtins/gen/var/textureSampleLevel/02be59.wgsl.expected.msl
index a3aee72..d40c8b3 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/02be59.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/02be59.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureSampleLevel_02be59(depth2d<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float2 arg_2 = float2(0.0f);
+  float2 arg_2 = float2(1.0f);
   int arg_3 = 1;
   float res = tint_symbol_1.sample(tint_symbol_2, arg_2, level(arg_3));
 }
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/02be59.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSampleLevel/02be59.wgsl.expected.spvasm
index 4d6810d..2a9f874 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/02be59.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSampleLevel/02be59.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 53
+; Bound: 54
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -45,53 +45,54 @@
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
-         %20 = OpConstantNull %v2float
+    %float_1 = OpConstant %float 1
+         %21 = OpConstantComposite %v2float %float_1 %float_1
 %_ptr_Function_v2float = OpTypePointer Function %v2float
+         %24 = OpConstantNull %v2float
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
-         %27 = OpConstantNull %int
-         %32 = OpTypeSampledImage %11
+         %29 = OpConstantNull %int
+         %34 = OpTypeSampledImage %11
 %_ptr_Function_float = OpTypePointer Function %float
-         %39 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %41 = OpTypeFunction %v4float
 %textureSampleLevel_02be59 = OpFunction %void None %15
          %18 = OpLabel
-      %arg_2 = OpVariable %_ptr_Function_v2float Function %20
-      %arg_3 = OpVariable %_ptr_Function_int Function %27
+      %arg_2 = OpVariable %_ptr_Function_v2float Function %24
+      %arg_3 = OpVariable %_ptr_Function_int Function %29
         %res = OpVariable %_ptr_Function_float Function %8
-               OpStore %arg_2 %20
+               OpStore %arg_2 %21
                OpStore %arg_3 %int_1
-         %30 = OpLoad %14 %arg_1
-         %31 = OpLoad %11 %arg_0
-         %33 = OpSampledImage %32 %31 %30
-         %34 = OpLoad %v2float %arg_2
-         %36 = OpLoad %int %arg_3
-         %35 = OpConvertSToF %float %36
-         %29 = OpImageSampleExplicitLod %v4float %33 %34 Lod %35
-         %28 = OpCompositeExtract %float %29 0
-               OpStore %res %28
+         %32 = OpLoad %14 %arg_1
+         %33 = OpLoad %11 %arg_0
+         %35 = OpSampledImage %34 %33 %32
+         %36 = OpLoad %v2float %arg_2
+         %38 = OpLoad %int %arg_3
+         %37 = OpConvertSToF %float %38
+         %31 = OpImageSampleExplicitLod %v4float %35 %36 Lod %37
+         %30 = OpCompositeExtract %float %31 0
+               OpStore %res %30
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %39
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureSampleLevel_02be59
+%vertex_main_inner = OpFunction %v4float None %41
+         %43 = OpLabel
+         %44 = OpFunctionCall %void %textureSampleLevel_02be59
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
-         %44 = OpLabel
-         %45 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %45
+         %46 = OpLabel
+         %47 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %47
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %15
-         %48 = OpLabel
-         %49 = OpFunctionCall %void %textureSampleLevel_02be59
+         %49 = OpLabel
+         %50 = OpFunctionCall %void %textureSampleLevel_02be59
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %15
-         %51 = OpLabel
-         %52 = OpFunctionCall %void %textureSampleLevel_02be59
+         %52 = OpLabel
+         %53 = OpFunctionCall %void %textureSampleLevel_02be59
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/02be59.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSampleLevel/02be59.wgsl.expected.wgsl
index cab9d73..3596bc5 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/02be59.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/02be59.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(1) var arg_1 : sampler;
 
 fn textureSampleLevel_02be59() {
-  var arg_2 = vec2<f32>();
+  var arg_2 = vec2<f32>(1.0f);
   var arg_3 = 1i;
   var res : f32 = textureSampleLevel(arg_0, arg_1, arg_2, arg_3);
 }
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/0b0a1b.wgsl b/test/tint/builtins/gen/var/textureSampleLevel/0b0a1b.wgsl
index 2a9a9c7..6755159 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/0b0a1b.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/0b0a1b.wgsl
@@ -25,9 +25,9 @@
 
 // fn textureSampleLevel(texture: texture_2d<f32>, sampler: sampler, coords: vec2<f32>, level: f32, @const offset: vec2<i32>) -> vec4<f32>
 fn textureSampleLevel_0b0a1b() {
-  var arg_2 = vec2<f32>();
+  var arg_2 = vec2<f32>(1.f);
   var arg_3 = 1.f;
-  const arg_4 = vec2<i32>();
+  const arg_4 = vec2<i32>(1i);
   var res: vec4<f32> = textureSampleLevel(arg_0, arg_1, arg_2, arg_3, arg_4);
 }
 
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/0b0a1b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/0b0a1b.wgsl.expected.dxc.hlsl
index d57bb5e..905839c 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/0b0a1b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/0b0a1b.wgsl.expected.dxc.hlsl
@@ -2,9 +2,9 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleLevel_0b0a1b() {
-  float2 arg_2 = (0.0f).xx;
+  float2 arg_2 = (1.0f).xx;
   float arg_3 = 1.0f;
-  float4 res = arg_0.SampleLevel(arg_1, arg_2, arg_3, (0).xx);
+  float4 res = arg_0.SampleLevel(arg_1, arg_2, arg_3, (1).xx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/0b0a1b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/0b0a1b.wgsl.expected.fxc.hlsl
index d57bb5e..905839c 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/0b0a1b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/0b0a1b.wgsl.expected.fxc.hlsl
@@ -2,9 +2,9 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleLevel_0b0a1b() {
-  float2 arg_2 = (0.0f).xx;
+  float2 arg_2 = (1.0f).xx;
   float arg_3 = 1.0f;
-  float4 res = arg_0.SampleLevel(arg_1, arg_2, arg_3, (0).xx);
+  float4 res = arg_0.SampleLevel(arg_1, arg_2, arg_3, (1).xx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/0b0a1b.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureSampleLevel/0b0a1b.wgsl.expected.glsl
index 1562346..07d5757 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/0b0a1b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/0b0a1b.wgsl.expected.glsl
@@ -3,9 +3,9 @@
 uniform highp sampler2D arg_0_arg_1;
 
 void textureSampleLevel_0b0a1b() {
-  vec2 arg_2 = vec2(0.0f);
+  vec2 arg_2 = vec2(1.0f);
   float arg_3 = 1.0f;
-  vec4 res = textureLodOffset(arg_0_arg_1, arg_2, arg_3, ivec2(0));
+  vec4 res = textureLodOffset(arg_0_arg_1, arg_2, arg_3, ivec2(1));
 }
 
 vec4 vertex_main() {
@@ -27,9 +27,9 @@
 uniform highp sampler2D arg_0_arg_1;
 
 void textureSampleLevel_0b0a1b() {
-  vec2 arg_2 = vec2(0.0f);
+  vec2 arg_2 = vec2(1.0f);
   float arg_3 = 1.0f;
-  vec4 res = textureLodOffset(arg_0_arg_1, arg_2, arg_3, ivec2(0));
+  vec4 res = textureLodOffset(arg_0_arg_1, arg_2, arg_3, ivec2(1));
 }
 
 void fragment_main() {
@@ -45,9 +45,9 @@
 uniform highp sampler2D arg_0_arg_1;
 
 void textureSampleLevel_0b0a1b() {
-  vec2 arg_2 = vec2(0.0f);
+  vec2 arg_2 = vec2(1.0f);
   float arg_3 = 1.0f;
-  vec4 res = textureLodOffset(arg_0_arg_1, arg_2, arg_3, ivec2(0));
+  vec4 res = textureLodOffset(arg_0_arg_1, arg_2, arg_3, ivec2(1));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/0b0a1b.wgsl.expected.msl b/test/tint/builtins/gen/var/textureSampleLevel/0b0a1b.wgsl.expected.msl
index 5aec41a..8f75c79 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/0b0a1b.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/0b0a1b.wgsl.expected.msl
@@ -2,9 +2,9 @@
 
 using namespace metal;
 void textureSampleLevel_0b0a1b(texture2d<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float2 arg_2 = float2(0.0f);
+  float2 arg_2 = float2(1.0f);
   float arg_3 = 1.0f;
-  float4 res = tint_symbol_1.sample(tint_symbol_2, arg_2, level(arg_3), int2(0));
+  float4 res = tint_symbol_1.sample(tint_symbol_2, arg_2, level(arg_3), int2(1));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/0b0a1b.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSampleLevel/0b0a1b.wgsl.expected.spvasm
index 128e2c9..aeac662 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/0b0a1b.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSampleLevel/0b0a1b.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 51
+; Bound: 53
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -45,51 +45,53 @@
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
-         %20 = OpConstantNull %v2float
-%_ptr_Function_v2float = OpTypePointer Function %v2float
     %float_1 = OpConstant %float 1
+         %21 = OpConstantComposite %v2float %float_1 %float_1
+%_ptr_Function_v2float = OpTypePointer Function %v2float
+         %24 = OpConstantNull %v2float
 %_ptr_Function_float = OpTypePointer Function %float
-         %29 = OpTypeSampledImage %11
+         %30 = OpTypeSampledImage %11
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
-         %35 = OpConstantNull %v2int
+      %int_1 = OpConstant %int 1
+         %37 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %38 = OpTypeFunction %v4float
+         %40 = OpTypeFunction %v4float
 %textureSampleLevel_0b0a1b = OpFunction %void None %15
          %18 = OpLabel
-      %arg_2 = OpVariable %_ptr_Function_v2float Function %20
+      %arg_2 = OpVariable %_ptr_Function_v2float Function %24
       %arg_3 = OpVariable %_ptr_Function_float Function %8
         %res = OpVariable %_ptr_Function_v4float Function %5
-               OpStore %arg_2 %20
+               OpStore %arg_2 %21
                OpStore %arg_3 %float_1
-         %27 = OpLoad %14 %arg_1
-         %28 = OpLoad %11 %arg_0
-         %30 = OpSampledImage %29 %28 %27
-         %31 = OpLoad %v2float %arg_2
-         %32 = OpLoad %float %arg_3
-         %26 = OpImageSampleExplicitLod %v4float %30 %31 Lod|ConstOffset %32 %35
-               OpStore %res %26
+         %28 = OpLoad %14 %arg_1
+         %29 = OpLoad %11 %arg_0
+         %31 = OpSampledImage %30 %29 %28
+         %32 = OpLoad %v2float %arg_2
+         %33 = OpLoad %float %arg_3
+         %27 = OpImageSampleExplicitLod %v4float %31 %32 Lod|ConstOffset %33 %37
+               OpStore %res %27
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %38
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureSampleLevel_0b0a1b
+%vertex_main_inner = OpFunction %v4float None %40
+         %42 = OpLabel
+         %43 = OpFunctionCall %void %textureSampleLevel_0b0a1b
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
-         %43 = OpLabel
-         %44 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %44
+         %45 = OpLabel
+         %46 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %46
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %15
-         %46 = OpLabel
-         %47 = OpFunctionCall %void %textureSampleLevel_0b0a1b
+         %48 = OpLabel
+         %49 = OpFunctionCall %void %textureSampleLevel_0b0a1b
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %15
-         %49 = OpLabel
-         %50 = OpFunctionCall %void %textureSampleLevel_0b0a1b
+         %51 = OpLabel
+         %52 = OpFunctionCall %void %textureSampleLevel_0b0a1b
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/0b0a1b.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSampleLevel/0b0a1b.wgsl.expected.wgsl
index cfa94cf..2ec980a 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/0b0a1b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/0b0a1b.wgsl.expected.wgsl
@@ -3,9 +3,9 @@
 @group(1) @binding(1) var arg_1 : sampler;
 
 fn textureSampleLevel_0b0a1b() {
-  var arg_2 = vec2<f32>();
+  var arg_2 = vec2<f32>(1.0f);
   var arg_3 = 1.0f;
-  const arg_4 = vec2<i32>();
+  const arg_4 = vec2<i32>(1i);
   var res : vec4<f32> = textureSampleLevel(arg_0, arg_1, arg_2, arg_3, arg_4);
 }
 
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/0bdd9a.wgsl b/test/tint/builtins/gen/var/textureSampleLevel/0bdd9a.wgsl
index a7858f0..b02c9c6 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/0bdd9a.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/0bdd9a.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureSampleLevel(texture: texture_cube_array<f32>, sampler: sampler, coords: vec3<f32>, array_index: i32, level: f32) -> vec4<f32>
 fn textureSampleLevel_0bdd9a() {
-  var arg_2 = vec3<f32>();
+  var arg_2 = vec3<f32>(1.f);
   var arg_3 = 1i;
   var arg_4 = 1.f;
   var res: vec4<f32> = textureSampleLevel(arg_0, arg_1, arg_2, arg_3, arg_4);
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/0bdd9a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/0bdd9a.wgsl.expected.dxc.hlsl
index fd1c612..a8e6b49 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/0bdd9a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/0bdd9a.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleLevel_0bdd9a() {
-  float3 arg_2 = (0.0f).xxx;
+  float3 arg_2 = (1.0f).xxx;
   int arg_3 = 1;
   float arg_4 = 1.0f;
   float4 res = arg_0.SampleLevel(arg_1, float4(arg_2, float(arg_3)), arg_4);
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/0bdd9a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/0bdd9a.wgsl.expected.fxc.hlsl
index fd1c612..a8e6b49 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/0bdd9a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/0bdd9a.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleLevel_0bdd9a() {
-  float3 arg_2 = (0.0f).xxx;
+  float3 arg_2 = (1.0f).xxx;
   int arg_3 = 1;
   float arg_4 = 1.0f;
   float4 res = arg_0.SampleLevel(arg_1, float4(arg_2, float(arg_3)), arg_4);
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/0bdd9a.wgsl.expected.msl b/test/tint/builtins/gen/var/textureSampleLevel/0bdd9a.wgsl.expected.msl
index 1a157e0..8a29dcc 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/0bdd9a.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/0bdd9a.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureSampleLevel_0bdd9a(texturecube_array<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float3 arg_2 = float3(0.0f);
+  float3 arg_2 = float3(1.0f);
   int arg_3 = 1;
   float arg_4 = 1.0f;
   float4 res = tint_symbol_1.sample(tint_symbol_2, arg_2, arg_3, level(arg_4));
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/0bdd9a.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSampleLevel/0bdd9a.wgsl.expected.spvasm
index 31adb35..c8663d9 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/0bdd9a.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSampleLevel/0bdd9a.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 59
+; Bound: 60
 ; Schema: 0
                OpCapability Shader
                OpCapability SampledCubeArray
@@ -47,60 +47,61 @@
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
     %v3float = OpTypeVector %float 3
-         %20 = OpConstantNull %v3float
+    %float_1 = OpConstant %float 1
+         %21 = OpConstantComposite %v3float %float_1 %float_1 %float_1
 %_ptr_Function_v3float = OpTypePointer Function %v3float
+         %24 = OpConstantNull %v3float
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
-         %27 = OpConstantNull %int
-    %float_1 = OpConstant %float 1
+         %29 = OpConstantNull %int
 %_ptr_Function_float = OpTypePointer Function %float
-         %34 = OpTypeSampledImage %11
+         %35 = OpTypeSampledImage %11
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %46 = OpTypeFunction %v4float
+         %47 = OpTypeFunction %v4float
 %textureSampleLevel_0bdd9a = OpFunction %void None %15
          %18 = OpLabel
-      %arg_2 = OpVariable %_ptr_Function_v3float Function %20
-      %arg_3 = OpVariable %_ptr_Function_int Function %27
+      %arg_2 = OpVariable %_ptr_Function_v3float Function %24
+      %arg_3 = OpVariable %_ptr_Function_int Function %29
       %arg_4 = OpVariable %_ptr_Function_float Function %8
         %res = OpVariable %_ptr_Function_v4float Function %5
-               OpStore %arg_2 %20
+               OpStore %arg_2 %21
                OpStore %arg_3 %int_1
                OpStore %arg_4 %float_1
-         %32 = OpLoad %14 %arg_1
-         %33 = OpLoad %11 %arg_0
-         %35 = OpSampledImage %34 %33 %32
-         %36 = OpLoad %v3float %arg_2
-         %37 = OpCompositeExtract %float %36 0
-         %38 = OpCompositeExtract %float %36 1
-         %39 = OpCompositeExtract %float %36 2
-         %41 = OpLoad %int %arg_3
-         %40 = OpConvertSToF %float %41
-         %42 = OpCompositeConstruct %v4float %37 %38 %39 %40
-         %43 = OpLoad %float %arg_4
-         %31 = OpImageSampleExplicitLod %v4float %35 %42 Lod %43
-               OpStore %res %31
+         %33 = OpLoad %14 %arg_1
+         %34 = OpLoad %11 %arg_0
+         %36 = OpSampledImage %35 %34 %33
+         %37 = OpLoad %v3float %arg_2
+         %38 = OpCompositeExtract %float %37 0
+         %39 = OpCompositeExtract %float %37 1
+         %40 = OpCompositeExtract %float %37 2
+         %42 = OpLoad %int %arg_3
+         %41 = OpConvertSToF %float %42
+         %43 = OpCompositeConstruct %v4float %38 %39 %40 %41
+         %44 = OpLoad %float %arg_4
+         %32 = OpImageSampleExplicitLod %v4float %36 %43 Lod %44
+               OpStore %res %32
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %46
-         %48 = OpLabel
-         %49 = OpFunctionCall %void %textureSampleLevel_0bdd9a
+%vertex_main_inner = OpFunction %v4float None %47
+         %49 = OpLabel
+         %50 = OpFunctionCall %void %textureSampleLevel_0bdd9a
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
-         %51 = OpLabel
-         %52 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %52
+         %52 = OpLabel
+         %53 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %53
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %15
-         %54 = OpLabel
-         %55 = OpFunctionCall %void %textureSampleLevel_0bdd9a
+         %55 = OpLabel
+         %56 = OpFunctionCall %void %textureSampleLevel_0bdd9a
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %15
-         %57 = OpLabel
-         %58 = OpFunctionCall %void %textureSampleLevel_0bdd9a
+         %58 = OpLabel
+         %59 = OpFunctionCall %void %textureSampleLevel_0bdd9a
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/0bdd9a.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSampleLevel/0bdd9a.wgsl.expected.wgsl
index 554139b..c3d8c93 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/0bdd9a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/0bdd9a.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(1) var arg_1 : sampler;
 
 fn textureSampleLevel_0bdd9a() {
-  var arg_2 = vec3<f32>();
+  var arg_2 = vec3<f32>(1.0f);
   var arg_3 = 1i;
   var arg_4 = 1.0f;
   var res : vec4<f32> = textureSampleLevel(arg_0, arg_1, arg_2, arg_3, arg_4);
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/1b0291.wgsl b/test/tint/builtins/gen/var/textureSampleLevel/1b0291.wgsl
index 9717bef..51222b0 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/1b0291.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/1b0291.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureSampleLevel(texture: texture_depth_cube, sampler: sampler, coords: vec3<f32>, level: i32) -> f32
 fn textureSampleLevel_1b0291() {
-  var arg_2 = vec3<f32>();
+  var arg_2 = vec3<f32>(1.f);
   var arg_3 = 1i;
   var res: f32 = textureSampleLevel(arg_0, arg_1, arg_2, arg_3);
 }
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/1b0291.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/1b0291.wgsl.expected.dxc.hlsl
index 4126c93..b4f563f 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/1b0291.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/1b0291.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleLevel_1b0291() {
-  float3 arg_2 = (0.0f).xxx;
+  float3 arg_2 = (1.0f).xxx;
   int arg_3 = 1;
   float res = arg_0.SampleLevel(arg_1, arg_2, arg_3).x;
 }
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/1b0291.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/1b0291.wgsl.expected.fxc.hlsl
index 4126c93..b4f563f 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/1b0291.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/1b0291.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleLevel_1b0291() {
-  float3 arg_2 = (0.0f).xxx;
+  float3 arg_2 = (1.0f).xxx;
   int arg_3 = 1;
   float res = arg_0.SampleLevel(arg_1, arg_2, arg_3).x;
 }
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/1b0291.wgsl.expected.msl b/test/tint/builtins/gen/var/textureSampleLevel/1b0291.wgsl.expected.msl
index 780a19c..0aeb5a1 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/1b0291.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/1b0291.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureSampleLevel_1b0291(depthcube<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float3 arg_2 = float3(0.0f);
+  float3 arg_2 = float3(1.0f);
   int arg_3 = 1;
   float res = tint_symbol_1.sample(tint_symbol_2, arg_2, level(arg_3));
 }
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/1b0291.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSampleLevel/1b0291.wgsl.expected.spvasm
index 0ce4354..97476be 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/1b0291.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSampleLevel/1b0291.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 53
+; Bound: 54
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -45,53 +45,54 @@
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
     %v3float = OpTypeVector %float 3
-         %20 = OpConstantNull %v3float
+    %float_1 = OpConstant %float 1
+         %21 = OpConstantComposite %v3float %float_1 %float_1 %float_1
 %_ptr_Function_v3float = OpTypePointer Function %v3float
+         %24 = OpConstantNull %v3float
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
-         %27 = OpConstantNull %int
-         %32 = OpTypeSampledImage %11
+         %29 = OpConstantNull %int
+         %34 = OpTypeSampledImage %11
 %_ptr_Function_float = OpTypePointer Function %float
-         %39 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %41 = OpTypeFunction %v4float
 %textureSampleLevel_1b0291 = OpFunction %void None %15
          %18 = OpLabel
-      %arg_2 = OpVariable %_ptr_Function_v3float Function %20
-      %arg_3 = OpVariable %_ptr_Function_int Function %27
+      %arg_2 = OpVariable %_ptr_Function_v3float Function %24
+      %arg_3 = OpVariable %_ptr_Function_int Function %29
         %res = OpVariable %_ptr_Function_float Function %8
-               OpStore %arg_2 %20
+               OpStore %arg_2 %21
                OpStore %arg_3 %int_1
-         %30 = OpLoad %14 %arg_1
-         %31 = OpLoad %11 %arg_0
-         %33 = OpSampledImage %32 %31 %30
-         %34 = OpLoad %v3float %arg_2
-         %36 = OpLoad %int %arg_3
-         %35 = OpConvertSToF %float %36
-         %29 = OpImageSampleExplicitLod %v4float %33 %34 Lod %35
-         %28 = OpCompositeExtract %float %29 0
-               OpStore %res %28
+         %32 = OpLoad %14 %arg_1
+         %33 = OpLoad %11 %arg_0
+         %35 = OpSampledImage %34 %33 %32
+         %36 = OpLoad %v3float %arg_2
+         %38 = OpLoad %int %arg_3
+         %37 = OpConvertSToF %float %38
+         %31 = OpImageSampleExplicitLod %v4float %35 %36 Lod %37
+         %30 = OpCompositeExtract %float %31 0
+               OpStore %res %30
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %39
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureSampleLevel_1b0291
+%vertex_main_inner = OpFunction %v4float None %41
+         %43 = OpLabel
+         %44 = OpFunctionCall %void %textureSampleLevel_1b0291
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
-         %44 = OpLabel
-         %45 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %45
+         %46 = OpLabel
+         %47 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %47
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %15
-         %48 = OpLabel
-         %49 = OpFunctionCall %void %textureSampleLevel_1b0291
+         %49 = OpLabel
+         %50 = OpFunctionCall %void %textureSampleLevel_1b0291
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %15
-         %51 = OpLabel
-         %52 = OpFunctionCall %void %textureSampleLevel_1b0291
+         %52 = OpLabel
+         %53 = OpFunctionCall %void %textureSampleLevel_1b0291
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/1b0291.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSampleLevel/1b0291.wgsl.expected.wgsl
index 979eb55..859e5f4 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/1b0291.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/1b0291.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(1) var arg_1 : sampler;
 
 fn textureSampleLevel_1b0291() {
-  var arg_2 = vec3<f32>();
+  var arg_2 = vec3<f32>(1.0f);
   var arg_3 = 1i;
   var res : f32 = textureSampleLevel(arg_0, arg_1, arg_2, arg_3);
 }
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/1bf73e.wgsl b/test/tint/builtins/gen/var/textureSampleLevel/1bf73e.wgsl
index 1807e7f..4f106f7 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/1bf73e.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/1bf73e.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureSampleLevel(texture: texture_depth_2d_array, sampler: sampler, coords: vec2<f32>, array_index: i32, level: i32) -> f32
 fn textureSampleLevel_1bf73e() {
-  var arg_2 = vec2<f32>();
+  var arg_2 = vec2<f32>(1.f);
   var arg_3 = 1i;
   var arg_4 = 1i;
   var res: f32 = textureSampleLevel(arg_0, arg_1, arg_2, arg_3, arg_4);
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/1bf73e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/1bf73e.wgsl.expected.dxc.hlsl
index 745e694..aebf22d 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/1bf73e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/1bf73e.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleLevel_1bf73e() {
-  float2 arg_2 = (0.0f).xx;
+  float2 arg_2 = (1.0f).xx;
   int arg_3 = 1;
   int arg_4 = 1;
   float res = arg_0.SampleLevel(arg_1, float3(arg_2, float(arg_3)), arg_4).x;
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/1bf73e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/1bf73e.wgsl.expected.fxc.hlsl
index 745e694..aebf22d 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/1bf73e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/1bf73e.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleLevel_1bf73e() {
-  float2 arg_2 = (0.0f).xx;
+  float2 arg_2 = (1.0f).xx;
   int arg_3 = 1;
   int arg_4 = 1;
   float res = arg_0.SampleLevel(arg_1, float3(arg_2, float(arg_3)), arg_4).x;
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/1bf73e.wgsl.expected.msl b/test/tint/builtins/gen/var/textureSampleLevel/1bf73e.wgsl.expected.msl
index f6e0ca1..86811a4 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/1bf73e.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/1bf73e.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureSampleLevel_1bf73e(depth2d_array<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float2 arg_2 = float2(0.0f);
+  float2 arg_2 = float2(1.0f);
   int arg_3 = 1;
   int arg_4 = 1;
   float res = tint_symbol_1.sample(tint_symbol_2, arg_2, arg_3, level(arg_4));
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/1bf73e.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSampleLevel/1bf73e.wgsl.expected.spvasm
index 8bc6559..2ac3b75 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/1bf73e.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSampleLevel/1bf73e.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 60
+; Bound: 61
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -46,61 +46,62 @@
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
-         %20 = OpConstantNull %v2float
+    %float_1 = OpConstant %float 1
+         %21 = OpConstantComposite %v2float %float_1 %float_1
 %_ptr_Function_v2float = OpTypePointer Function %v2float
+         %24 = OpConstantNull %v2float
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
-         %27 = OpConstantNull %int
-         %33 = OpTypeSampledImage %11
+         %29 = OpConstantNull %int
+         %35 = OpTypeSampledImage %11
     %v3float = OpTypeVector %float 3
 %_ptr_Function_float = OpTypePointer Function %float
-         %46 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %48 = OpTypeFunction %v4float
 %textureSampleLevel_1bf73e = OpFunction %void None %15
          %18 = OpLabel
-      %arg_2 = OpVariable %_ptr_Function_v2float Function %20
-      %arg_3 = OpVariable %_ptr_Function_int Function %27
-      %arg_4 = OpVariable %_ptr_Function_int Function %27
+      %arg_2 = OpVariable %_ptr_Function_v2float Function %24
+      %arg_3 = OpVariable %_ptr_Function_int Function %29
+      %arg_4 = OpVariable %_ptr_Function_int Function %29
         %res = OpVariable %_ptr_Function_float Function %8
-               OpStore %arg_2 %20
+               OpStore %arg_2 %21
                OpStore %arg_3 %int_1
                OpStore %arg_4 %int_1
-         %31 = OpLoad %14 %arg_1
-         %32 = OpLoad %11 %arg_0
-         %34 = OpSampledImage %33 %32 %31
-         %36 = OpLoad %v2float %arg_2
-         %37 = OpCompositeExtract %float %36 0
-         %38 = OpCompositeExtract %float %36 1
-         %40 = OpLoad %int %arg_3
-         %39 = OpConvertSToF %float %40
-         %41 = OpCompositeConstruct %v3float %37 %38 %39
-         %43 = OpLoad %int %arg_4
-         %42 = OpConvertSToF %float %43
-         %30 = OpImageSampleExplicitLod %v4float %34 %41 Lod %42
-         %29 = OpCompositeExtract %float %30 0
-               OpStore %res %29
+         %33 = OpLoad %14 %arg_1
+         %34 = OpLoad %11 %arg_0
+         %36 = OpSampledImage %35 %34 %33
+         %38 = OpLoad %v2float %arg_2
+         %39 = OpCompositeExtract %float %38 0
+         %40 = OpCompositeExtract %float %38 1
+         %42 = OpLoad %int %arg_3
+         %41 = OpConvertSToF %float %42
+         %43 = OpCompositeConstruct %v3float %39 %40 %41
+         %45 = OpLoad %int %arg_4
+         %44 = OpConvertSToF %float %45
+         %32 = OpImageSampleExplicitLod %v4float %36 %43 Lod %44
+         %31 = OpCompositeExtract %float %32 0
+               OpStore %res %31
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %46
-         %48 = OpLabel
-         %49 = OpFunctionCall %void %textureSampleLevel_1bf73e
+%vertex_main_inner = OpFunction %v4float None %48
+         %50 = OpLabel
+         %51 = OpFunctionCall %void %textureSampleLevel_1bf73e
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
-         %51 = OpLabel
-         %52 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %52
+         %53 = OpLabel
+         %54 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %54
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %15
-         %55 = OpLabel
-         %56 = OpFunctionCall %void %textureSampleLevel_1bf73e
+         %56 = OpLabel
+         %57 = OpFunctionCall %void %textureSampleLevel_1bf73e
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %15
-         %58 = OpLabel
-         %59 = OpFunctionCall %void %textureSampleLevel_1bf73e
+         %59 = OpLabel
+         %60 = OpFunctionCall %void %textureSampleLevel_1bf73e
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/1bf73e.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSampleLevel/1bf73e.wgsl.expected.wgsl
index 82a8adc..f286a51 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/1bf73e.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/1bf73e.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(1) var arg_1 : sampler;
 
 fn textureSampleLevel_1bf73e() {
-  var arg_2 = vec2<f32>();
+  var arg_2 = vec2<f32>(1.0f);
   var arg_3 = 1i;
   var arg_4 = 1i;
   var res : f32 = textureSampleLevel(arg_0, arg_1, arg_2, arg_3, arg_4);
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/265cc7.wgsl b/test/tint/builtins/gen/var/textureSampleLevel/265cc7.wgsl
index 20ae0d8..0ad52fb 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/265cc7.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/265cc7.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureSampleLevel(texture: texture_2d_array<f32>, sampler: sampler, coords: vec2<f32>, array_index: u32, level: f32) -> vec4<f32>
 fn textureSampleLevel_265cc7() {
-  var arg_2 = vec2<f32>();
+  var arg_2 = vec2<f32>(1.f);
   var arg_3 = 1u;
   var arg_4 = 1.f;
   var res: vec4<f32> = textureSampleLevel(arg_0, arg_1, arg_2, arg_3, arg_4);
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/265cc7.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/265cc7.wgsl.expected.dxc.hlsl
index b5bdc03..ad30972 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/265cc7.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/265cc7.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleLevel_265cc7() {
-  float2 arg_2 = (0.0f).xx;
+  float2 arg_2 = (1.0f).xx;
   uint arg_3 = 1u;
   float arg_4 = 1.0f;
   float4 res = arg_0.SampleLevel(arg_1, float3(arg_2, float(arg_3)), arg_4);
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/265cc7.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/265cc7.wgsl.expected.fxc.hlsl
index b5bdc03..ad30972 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/265cc7.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/265cc7.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleLevel_265cc7() {
-  float2 arg_2 = (0.0f).xx;
+  float2 arg_2 = (1.0f).xx;
   uint arg_3 = 1u;
   float arg_4 = 1.0f;
   float4 res = arg_0.SampleLevel(arg_1, float3(arg_2, float(arg_3)), arg_4);
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/265cc7.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureSampleLevel/265cc7.wgsl.expected.glsl
index e6ee969..0d6741f 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/265cc7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/265cc7.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 uniform highp sampler2DArray arg_0_arg_1;
 
 void textureSampleLevel_265cc7() {
-  vec2 arg_2 = vec2(0.0f);
+  vec2 arg_2 = vec2(1.0f);
   uint arg_3 = 1u;
   float arg_4 = 1.0f;
   vec4 res = textureLod(arg_0_arg_1, vec3(arg_2, float(arg_3)), arg_4);
@@ -28,7 +28,7 @@
 uniform highp sampler2DArray arg_0_arg_1;
 
 void textureSampleLevel_265cc7() {
-  vec2 arg_2 = vec2(0.0f);
+  vec2 arg_2 = vec2(1.0f);
   uint arg_3 = 1u;
   float arg_4 = 1.0f;
   vec4 res = textureLod(arg_0_arg_1, vec3(arg_2, float(arg_3)), arg_4);
@@ -47,7 +47,7 @@
 uniform highp sampler2DArray arg_0_arg_1;
 
 void textureSampleLevel_265cc7() {
-  vec2 arg_2 = vec2(0.0f);
+  vec2 arg_2 = vec2(1.0f);
   uint arg_3 = 1u;
   float arg_4 = 1.0f;
   vec4 res = textureLod(arg_0_arg_1, vec3(arg_2, float(arg_3)), arg_4);
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/265cc7.wgsl.expected.msl b/test/tint/builtins/gen/var/textureSampleLevel/265cc7.wgsl.expected.msl
index 87765ee..81fc96a 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/265cc7.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/265cc7.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureSampleLevel_265cc7(texture2d_array<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float2 arg_2 = float2(0.0f);
+  float2 arg_2 = float2(1.0f);
   uint arg_3 = 1u;
   float arg_4 = 1.0f;
   float4 res = tint_symbol_1.sample(tint_symbol_2, arg_2, arg_3, level(arg_4));
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/265cc7.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSampleLevel/265cc7.wgsl.expected.spvasm
index 1c0eae9..dfbca6a 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/265cc7.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSampleLevel/265cc7.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 59
+; Bound: 60
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -46,60 +46,61 @@
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
-         %20 = OpConstantNull %v2float
+    %float_1 = OpConstant %float 1
+         %21 = OpConstantComposite %v2float %float_1 %float_1
 %_ptr_Function_v2float = OpTypePointer Function %v2float
+         %24 = OpConstantNull %v2float
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %27 = OpConstantNull %uint
-    %float_1 = OpConstant %float 1
+         %29 = OpConstantNull %uint
 %_ptr_Function_float = OpTypePointer Function %float
-         %34 = OpTypeSampledImage %11
+         %35 = OpTypeSampledImage %11
     %v3float = OpTypeVector %float 3
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %46 = OpTypeFunction %v4float
+         %47 = OpTypeFunction %v4float
 %textureSampleLevel_265cc7 = OpFunction %void None %15
          %18 = OpLabel
-      %arg_2 = OpVariable %_ptr_Function_v2float Function %20
-      %arg_3 = OpVariable %_ptr_Function_uint Function %27
+      %arg_2 = OpVariable %_ptr_Function_v2float Function %24
+      %arg_3 = OpVariable %_ptr_Function_uint Function %29
       %arg_4 = OpVariable %_ptr_Function_float Function %8
         %res = OpVariable %_ptr_Function_v4float Function %5
-               OpStore %arg_2 %20
+               OpStore %arg_2 %21
                OpStore %arg_3 %uint_1
                OpStore %arg_4 %float_1
-         %32 = OpLoad %14 %arg_1
-         %33 = OpLoad %11 %arg_0
-         %35 = OpSampledImage %34 %33 %32
-         %37 = OpLoad %v2float %arg_2
-         %38 = OpCompositeExtract %float %37 0
-         %39 = OpCompositeExtract %float %37 1
-         %41 = OpLoad %uint %arg_3
-         %40 = OpConvertUToF %float %41
-         %42 = OpCompositeConstruct %v3float %38 %39 %40
-         %43 = OpLoad %float %arg_4
-         %31 = OpImageSampleExplicitLod %v4float %35 %42 Lod %43
-               OpStore %res %31
+         %33 = OpLoad %14 %arg_1
+         %34 = OpLoad %11 %arg_0
+         %36 = OpSampledImage %35 %34 %33
+         %38 = OpLoad %v2float %arg_2
+         %39 = OpCompositeExtract %float %38 0
+         %40 = OpCompositeExtract %float %38 1
+         %42 = OpLoad %uint %arg_3
+         %41 = OpConvertUToF %float %42
+         %43 = OpCompositeConstruct %v3float %39 %40 %41
+         %44 = OpLoad %float %arg_4
+         %32 = OpImageSampleExplicitLod %v4float %36 %43 Lod %44
+               OpStore %res %32
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %46
-         %48 = OpLabel
-         %49 = OpFunctionCall %void %textureSampleLevel_265cc7
+%vertex_main_inner = OpFunction %v4float None %47
+         %49 = OpLabel
+         %50 = OpFunctionCall %void %textureSampleLevel_265cc7
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
-         %51 = OpLabel
-         %52 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %52
+         %52 = OpLabel
+         %53 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %53
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %15
-         %54 = OpLabel
-         %55 = OpFunctionCall %void %textureSampleLevel_265cc7
+         %55 = OpLabel
+         %56 = OpFunctionCall %void %textureSampleLevel_265cc7
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %15
-         %57 = OpLabel
-         %58 = OpFunctionCall %void %textureSampleLevel_265cc7
+         %58 = OpLabel
+         %59 = OpFunctionCall %void %textureSampleLevel_265cc7
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/265cc7.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSampleLevel/265cc7.wgsl.expected.wgsl
index d46530b..44e2223 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/265cc7.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/265cc7.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(1) var arg_1 : sampler;
 
 fn textureSampleLevel_265cc7() {
-  var arg_2 = vec2<f32>();
+  var arg_2 = vec2<f32>(1.0f);
   var arg_3 = 1u;
   var arg_4 = 1.0f;
   var res : vec4<f32> = textureSampleLevel(arg_0, arg_1, arg_2, arg_3, arg_4);
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/2974eb.wgsl b/test/tint/builtins/gen/var/textureSampleLevel/2974eb.wgsl
index afaddb5..3112aef 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/2974eb.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/2974eb.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureSampleLevel(texture: texture_depth_2d_array, sampler: sampler, coords: vec2<f32>, array_index: i32, level: u32) -> f32
 fn textureSampleLevel_2974eb() {
-  var arg_2 = vec2<f32>();
+  var arg_2 = vec2<f32>(1.f);
   var arg_3 = 1i;
   var arg_4 = 1u;
   var res: f32 = textureSampleLevel(arg_0, arg_1, arg_2, arg_3, arg_4);
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/2974eb.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/2974eb.wgsl.expected.dxc.hlsl
index 22626f8..21e3ab2 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/2974eb.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/2974eb.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleLevel_2974eb() {
-  float2 arg_2 = (0.0f).xx;
+  float2 arg_2 = (1.0f).xx;
   int arg_3 = 1;
   uint arg_4 = 1u;
   float res = arg_0.SampleLevel(arg_1, float3(arg_2, float(arg_3)), arg_4).x;
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/2974eb.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/2974eb.wgsl.expected.fxc.hlsl
index 22626f8..21e3ab2 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/2974eb.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/2974eb.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleLevel_2974eb() {
-  float2 arg_2 = (0.0f).xx;
+  float2 arg_2 = (1.0f).xx;
   int arg_3 = 1;
   uint arg_4 = 1u;
   float res = arg_0.SampleLevel(arg_1, float3(arg_2, float(arg_3)), arg_4).x;
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/2974eb.wgsl.expected.msl b/test/tint/builtins/gen/var/textureSampleLevel/2974eb.wgsl.expected.msl
index 8c3cf62..c665c33 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/2974eb.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/2974eb.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureSampleLevel_2974eb(depth2d_array<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float2 arg_2 = float2(0.0f);
+  float2 arg_2 = float2(1.0f);
   int arg_3 = 1;
   uint arg_4 = 1u;
   float res = tint_symbol_1.sample(tint_symbol_2, arg_2, arg_3, level(arg_4));
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/2974eb.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSampleLevel/2974eb.wgsl.expected.spvasm
index 05d6dc5..0262bb6 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/2974eb.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSampleLevel/2974eb.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 64
+; Bound: 65
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -46,65 +46,66 @@
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
-         %20 = OpConstantNull %v2float
+    %float_1 = OpConstant %float 1
+         %21 = OpConstantComposite %v2float %float_1 %float_1
 %_ptr_Function_v2float = OpTypePointer Function %v2float
+         %24 = OpConstantNull %v2float
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
-         %27 = OpConstantNull %int
+         %29 = OpConstantNull %int
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %32 = OpConstantNull %uint
-         %37 = OpTypeSampledImage %11
+         %34 = OpConstantNull %uint
+         %39 = OpTypeSampledImage %11
     %v3float = OpTypeVector %float 3
 %_ptr_Function_float = OpTypePointer Function %float
-         %50 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %52 = OpTypeFunction %v4float
 %textureSampleLevel_2974eb = OpFunction %void None %15
          %18 = OpLabel
-      %arg_2 = OpVariable %_ptr_Function_v2float Function %20
-      %arg_3 = OpVariable %_ptr_Function_int Function %27
-      %arg_4 = OpVariable %_ptr_Function_uint Function %32
+      %arg_2 = OpVariable %_ptr_Function_v2float Function %24
+      %arg_3 = OpVariable %_ptr_Function_int Function %29
+      %arg_4 = OpVariable %_ptr_Function_uint Function %34
         %res = OpVariable %_ptr_Function_float Function %8
-               OpStore %arg_2 %20
+               OpStore %arg_2 %21
                OpStore %arg_3 %int_1
                OpStore %arg_4 %uint_1
-         %35 = OpLoad %14 %arg_1
-         %36 = OpLoad %11 %arg_0
-         %38 = OpSampledImage %37 %36 %35
-         %40 = OpLoad %v2float %arg_2
-         %41 = OpCompositeExtract %float %40 0
-         %42 = OpCompositeExtract %float %40 1
-         %44 = OpLoad %int %arg_3
-         %43 = OpConvertSToF %float %44
-         %45 = OpCompositeConstruct %v3float %41 %42 %43
-         %47 = OpLoad %uint %arg_4
-         %46 = OpConvertSToF %float %47
-         %34 = OpImageSampleExplicitLod %v4float %38 %45 Lod %46
-         %33 = OpCompositeExtract %float %34 0
-               OpStore %res %33
+         %37 = OpLoad %14 %arg_1
+         %38 = OpLoad %11 %arg_0
+         %40 = OpSampledImage %39 %38 %37
+         %42 = OpLoad %v2float %arg_2
+         %43 = OpCompositeExtract %float %42 0
+         %44 = OpCompositeExtract %float %42 1
+         %46 = OpLoad %int %arg_3
+         %45 = OpConvertSToF %float %46
+         %47 = OpCompositeConstruct %v3float %43 %44 %45
+         %49 = OpLoad %uint %arg_4
+         %48 = OpConvertSToF %float %49
+         %36 = OpImageSampleExplicitLod %v4float %40 %47 Lod %48
+         %35 = OpCompositeExtract %float %36 0
+               OpStore %res %35
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %50
-         %52 = OpLabel
-         %53 = OpFunctionCall %void %textureSampleLevel_2974eb
+%vertex_main_inner = OpFunction %v4float None %52
+         %54 = OpLabel
+         %55 = OpFunctionCall %void %textureSampleLevel_2974eb
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
-         %55 = OpLabel
-         %56 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %56
+         %57 = OpLabel
+         %58 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %58
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %15
-         %59 = OpLabel
-         %60 = OpFunctionCall %void %textureSampleLevel_2974eb
+         %60 = OpLabel
+         %61 = OpFunctionCall %void %textureSampleLevel_2974eb
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %15
-         %62 = OpLabel
-         %63 = OpFunctionCall %void %textureSampleLevel_2974eb
+         %63 = OpLabel
+         %64 = OpFunctionCall %void %textureSampleLevel_2974eb
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/2974eb.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSampleLevel/2974eb.wgsl.expected.wgsl
index 3d501ea..5785bac 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/2974eb.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/2974eb.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(1) var arg_1 : sampler;
 
 fn textureSampleLevel_2974eb() {
-  var arg_2 = vec2<f32>();
+  var arg_2 = vec2<f32>(1.0f);
   var arg_3 = 1i;
   var arg_4 = 1u;
   var res : f32 = textureSampleLevel(arg_0, arg_1, arg_2, arg_3, arg_4);
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/302be4.wgsl b/test/tint/builtins/gen/var/textureSampleLevel/302be4.wgsl
index f7a6b3b..5d4fa18 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/302be4.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/302be4.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureSampleLevel(texture: texture_2d_array<f32>, sampler: sampler, coords: vec2<f32>, array_index: i32, level: f32) -> vec4<f32>
 fn textureSampleLevel_302be4() {
-  var arg_2 = vec2<f32>();
+  var arg_2 = vec2<f32>(1.f);
   var arg_3 = 1i;
   var arg_4 = 1.f;
   var res: vec4<f32> = textureSampleLevel(arg_0, arg_1, arg_2, arg_3, arg_4);
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/302be4.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/302be4.wgsl.expected.dxc.hlsl
index 997a9e9..349d78a 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/302be4.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/302be4.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleLevel_302be4() {
-  float2 arg_2 = (0.0f).xx;
+  float2 arg_2 = (1.0f).xx;
   int arg_3 = 1;
   float arg_4 = 1.0f;
   float4 res = arg_0.SampleLevel(arg_1, float3(arg_2, float(arg_3)), arg_4);
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/302be4.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/302be4.wgsl.expected.fxc.hlsl
index 997a9e9..349d78a 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/302be4.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/302be4.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleLevel_302be4() {
-  float2 arg_2 = (0.0f).xx;
+  float2 arg_2 = (1.0f).xx;
   int arg_3 = 1;
   float arg_4 = 1.0f;
   float4 res = arg_0.SampleLevel(arg_1, float3(arg_2, float(arg_3)), arg_4);
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/302be4.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureSampleLevel/302be4.wgsl.expected.glsl
index faded30..c808922 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/302be4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/302be4.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 uniform highp sampler2DArray arg_0_arg_1;
 
 void textureSampleLevel_302be4() {
-  vec2 arg_2 = vec2(0.0f);
+  vec2 arg_2 = vec2(1.0f);
   int arg_3 = 1;
   float arg_4 = 1.0f;
   vec4 res = textureLod(arg_0_arg_1, vec3(arg_2, float(arg_3)), arg_4);
@@ -28,7 +28,7 @@
 uniform highp sampler2DArray arg_0_arg_1;
 
 void textureSampleLevel_302be4() {
-  vec2 arg_2 = vec2(0.0f);
+  vec2 arg_2 = vec2(1.0f);
   int arg_3 = 1;
   float arg_4 = 1.0f;
   vec4 res = textureLod(arg_0_arg_1, vec3(arg_2, float(arg_3)), arg_4);
@@ -47,7 +47,7 @@
 uniform highp sampler2DArray arg_0_arg_1;
 
 void textureSampleLevel_302be4() {
-  vec2 arg_2 = vec2(0.0f);
+  vec2 arg_2 = vec2(1.0f);
   int arg_3 = 1;
   float arg_4 = 1.0f;
   vec4 res = textureLod(arg_0_arg_1, vec3(arg_2, float(arg_3)), arg_4);
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/302be4.wgsl.expected.msl b/test/tint/builtins/gen/var/textureSampleLevel/302be4.wgsl.expected.msl
index ec28870..3e68abc 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/302be4.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/302be4.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureSampleLevel_302be4(texture2d_array<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float2 arg_2 = float2(0.0f);
+  float2 arg_2 = float2(1.0f);
   int arg_3 = 1;
   float arg_4 = 1.0f;
   float4 res = tint_symbol_1.sample(tint_symbol_2, arg_2, arg_3, level(arg_4));
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/302be4.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSampleLevel/302be4.wgsl.expected.spvasm
index bebc87f..4f760f9 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/302be4.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSampleLevel/302be4.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 59
+; Bound: 60
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -46,60 +46,61 @@
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
-         %20 = OpConstantNull %v2float
+    %float_1 = OpConstant %float 1
+         %21 = OpConstantComposite %v2float %float_1 %float_1
 %_ptr_Function_v2float = OpTypePointer Function %v2float
+         %24 = OpConstantNull %v2float
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
-         %27 = OpConstantNull %int
-    %float_1 = OpConstant %float 1
+         %29 = OpConstantNull %int
 %_ptr_Function_float = OpTypePointer Function %float
-         %34 = OpTypeSampledImage %11
+         %35 = OpTypeSampledImage %11
     %v3float = OpTypeVector %float 3
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %46 = OpTypeFunction %v4float
+         %47 = OpTypeFunction %v4float
 %textureSampleLevel_302be4 = OpFunction %void None %15
          %18 = OpLabel
-      %arg_2 = OpVariable %_ptr_Function_v2float Function %20
-      %arg_3 = OpVariable %_ptr_Function_int Function %27
+      %arg_2 = OpVariable %_ptr_Function_v2float Function %24
+      %arg_3 = OpVariable %_ptr_Function_int Function %29
       %arg_4 = OpVariable %_ptr_Function_float Function %8
         %res = OpVariable %_ptr_Function_v4float Function %5
-               OpStore %arg_2 %20
+               OpStore %arg_2 %21
                OpStore %arg_3 %int_1
                OpStore %arg_4 %float_1
-         %32 = OpLoad %14 %arg_1
-         %33 = OpLoad %11 %arg_0
-         %35 = OpSampledImage %34 %33 %32
-         %37 = OpLoad %v2float %arg_2
-         %38 = OpCompositeExtract %float %37 0
-         %39 = OpCompositeExtract %float %37 1
-         %41 = OpLoad %int %arg_3
-         %40 = OpConvertSToF %float %41
-         %42 = OpCompositeConstruct %v3float %38 %39 %40
-         %43 = OpLoad %float %arg_4
-         %31 = OpImageSampleExplicitLod %v4float %35 %42 Lod %43
-               OpStore %res %31
+         %33 = OpLoad %14 %arg_1
+         %34 = OpLoad %11 %arg_0
+         %36 = OpSampledImage %35 %34 %33
+         %38 = OpLoad %v2float %arg_2
+         %39 = OpCompositeExtract %float %38 0
+         %40 = OpCompositeExtract %float %38 1
+         %42 = OpLoad %int %arg_3
+         %41 = OpConvertSToF %float %42
+         %43 = OpCompositeConstruct %v3float %39 %40 %41
+         %44 = OpLoad %float %arg_4
+         %32 = OpImageSampleExplicitLod %v4float %36 %43 Lod %44
+               OpStore %res %32
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %46
-         %48 = OpLabel
-         %49 = OpFunctionCall %void %textureSampleLevel_302be4
+%vertex_main_inner = OpFunction %v4float None %47
+         %49 = OpLabel
+         %50 = OpFunctionCall %void %textureSampleLevel_302be4
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
-         %51 = OpLabel
-         %52 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %52
+         %52 = OpLabel
+         %53 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %53
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %15
-         %54 = OpLabel
-         %55 = OpFunctionCall %void %textureSampleLevel_302be4
+         %55 = OpLabel
+         %56 = OpFunctionCall %void %textureSampleLevel_302be4
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %15
-         %57 = OpLabel
-         %58 = OpFunctionCall %void %textureSampleLevel_302be4
+         %58 = OpLabel
+         %59 = OpFunctionCall %void %textureSampleLevel_302be4
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/302be4.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSampleLevel/302be4.wgsl.expected.wgsl
index 00560c0..d70cb89 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/302be4.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/302be4.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(1) var arg_1 : sampler;
 
 fn textureSampleLevel_302be4() {
-  var arg_2 = vec2<f32>();
+  var arg_2 = vec2<f32>(1.0f);
   var arg_3 = 1i;
   var arg_4 = 1.0f;
   var res : vec4<f32> = textureSampleLevel(arg_0, arg_1, arg_2, arg_3, arg_4);
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/36780e.wgsl b/test/tint/builtins/gen/var/textureSampleLevel/36780e.wgsl
index ea0e79f..109df30 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/36780e.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/36780e.wgsl
@@ -25,10 +25,10 @@
 
 // fn textureSampleLevel(texture: texture_depth_2d_array, sampler: sampler, coords: vec2<f32>, array_index: i32, level: i32, @const offset: vec2<i32>) -> f32
 fn textureSampleLevel_36780e() {
-  var arg_2 = vec2<f32>();
+  var arg_2 = vec2<f32>(1.f);
   var arg_3 = 1i;
   var arg_4 = 1i;
-  const arg_5 = vec2<i32>();
+  const arg_5 = vec2<i32>(1i);
   var res: f32 = textureSampleLevel(arg_0, arg_1, arg_2, arg_3, arg_4, arg_5);
 }
 
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/36780e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/36780e.wgsl.expected.dxc.hlsl
index f746f37..631b705 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/36780e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/36780e.wgsl.expected.dxc.hlsl
@@ -2,10 +2,10 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleLevel_36780e() {
-  float2 arg_2 = (0.0f).xx;
+  float2 arg_2 = (1.0f).xx;
   int arg_3 = 1;
   int arg_4 = 1;
-  float res = arg_0.SampleLevel(arg_1, float3(arg_2, float(arg_3)), arg_4, (0).xx).x;
+  float res = arg_0.SampleLevel(arg_1, float3(arg_2, float(arg_3)), arg_4, (1).xx).x;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/36780e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/36780e.wgsl.expected.fxc.hlsl
index f746f37..631b705 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/36780e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/36780e.wgsl.expected.fxc.hlsl
@@ -2,10 +2,10 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleLevel_36780e() {
-  float2 arg_2 = (0.0f).xx;
+  float2 arg_2 = (1.0f).xx;
   int arg_3 = 1;
   int arg_4 = 1;
-  float res = arg_0.SampleLevel(arg_1, float3(arg_2, float(arg_3)), arg_4, (0).xx).x;
+  float res = arg_0.SampleLevel(arg_1, float3(arg_2, float(arg_3)), arg_4, (1).xx).x;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/36780e.wgsl.expected.msl b/test/tint/builtins/gen/var/textureSampleLevel/36780e.wgsl.expected.msl
index 8f31669..53ffa0d 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/36780e.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/36780e.wgsl.expected.msl
@@ -2,10 +2,10 @@
 
 using namespace metal;
 void textureSampleLevel_36780e(depth2d_array<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float2 arg_2 = float2(0.0f);
+  float2 arg_2 = float2(1.0f);
   int arg_3 = 1;
   int arg_4 = 1;
-  float res = tint_symbol_1.sample(tint_symbol_2, arg_2, arg_3, level(arg_4), int2(0));
+  float res = tint_symbol_1.sample(tint_symbol_2, arg_2, arg_3, level(arg_4), int2(1));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/36780e.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSampleLevel/36780e.wgsl.expected.spvasm
index 284fa74..4e64bdd 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/36780e.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSampleLevel/36780e.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 62
+; Bound: 63
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -46,63 +46,64 @@
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
-         %20 = OpConstantNull %v2float
+    %float_1 = OpConstant %float 1
+         %21 = OpConstantComposite %v2float %float_1 %float_1
 %_ptr_Function_v2float = OpTypePointer Function %v2float
+         %24 = OpConstantNull %v2float
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
-         %27 = OpConstantNull %int
-         %33 = OpTypeSampledImage %11
+         %29 = OpConstantNull %int
+         %35 = OpTypeSampledImage %11
     %v3float = OpTypeVector %float 3
       %v2int = OpTypeVector %int 2
-         %45 = OpConstantNull %v2int
+         %47 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_float = OpTypePointer Function %float
-         %48 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %50 = OpTypeFunction %v4float
 %textureSampleLevel_36780e = OpFunction %void None %15
          %18 = OpLabel
-      %arg_2 = OpVariable %_ptr_Function_v2float Function %20
-      %arg_3 = OpVariable %_ptr_Function_int Function %27
-      %arg_4 = OpVariable %_ptr_Function_int Function %27
+      %arg_2 = OpVariable %_ptr_Function_v2float Function %24
+      %arg_3 = OpVariable %_ptr_Function_int Function %29
+      %arg_4 = OpVariable %_ptr_Function_int Function %29
         %res = OpVariable %_ptr_Function_float Function %8
-               OpStore %arg_2 %20
+               OpStore %arg_2 %21
                OpStore %arg_3 %int_1
                OpStore %arg_4 %int_1
-         %31 = OpLoad %14 %arg_1
-         %32 = OpLoad %11 %arg_0
-         %34 = OpSampledImage %33 %32 %31
-         %36 = OpLoad %v2float %arg_2
-         %37 = OpCompositeExtract %float %36 0
-         %38 = OpCompositeExtract %float %36 1
-         %40 = OpLoad %int %arg_3
-         %39 = OpConvertSToF %float %40
-         %41 = OpCompositeConstruct %v3float %37 %38 %39
-         %43 = OpLoad %int %arg_4
-         %42 = OpConvertSToF %float %43
-         %30 = OpImageSampleExplicitLod %v4float %34 %41 Lod|ConstOffset %42 %45
-         %29 = OpCompositeExtract %float %30 0
-               OpStore %res %29
+         %33 = OpLoad %14 %arg_1
+         %34 = OpLoad %11 %arg_0
+         %36 = OpSampledImage %35 %34 %33
+         %38 = OpLoad %v2float %arg_2
+         %39 = OpCompositeExtract %float %38 0
+         %40 = OpCompositeExtract %float %38 1
+         %42 = OpLoad %int %arg_3
+         %41 = OpConvertSToF %float %42
+         %43 = OpCompositeConstruct %v3float %39 %40 %41
+         %45 = OpLoad %int %arg_4
+         %44 = OpConvertSToF %float %45
+         %32 = OpImageSampleExplicitLod %v4float %36 %43 Lod|ConstOffset %44 %47
+         %31 = OpCompositeExtract %float %32 0
+               OpStore %res %31
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %48
-         %50 = OpLabel
-         %51 = OpFunctionCall %void %textureSampleLevel_36780e
+%vertex_main_inner = OpFunction %v4float None %50
+         %52 = OpLabel
+         %53 = OpFunctionCall %void %textureSampleLevel_36780e
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
-         %53 = OpLabel
-         %54 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %54
+         %55 = OpLabel
+         %56 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %56
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %15
-         %57 = OpLabel
-         %58 = OpFunctionCall %void %textureSampleLevel_36780e
+         %58 = OpLabel
+         %59 = OpFunctionCall %void %textureSampleLevel_36780e
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %15
-         %60 = OpLabel
-         %61 = OpFunctionCall %void %textureSampleLevel_36780e
+         %61 = OpLabel
+         %62 = OpFunctionCall %void %textureSampleLevel_36780e
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/36780e.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSampleLevel/36780e.wgsl.expected.wgsl
index e299691..efa2a14 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/36780e.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/36780e.wgsl.expected.wgsl
@@ -3,10 +3,10 @@
 @group(1) @binding(1) var arg_1 : sampler;
 
 fn textureSampleLevel_36780e() {
-  var arg_2 = vec2<f32>();
+  var arg_2 = vec2<f32>(1.0f);
   var arg_3 = 1i;
   var arg_4 = 1i;
-  const arg_5 = vec2<i32>();
+  const arg_5 = vec2<i32>(1i);
   var res : f32 = textureSampleLevel(arg_0, arg_1, arg_2, arg_3, arg_4, arg_5);
 }
 
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/36f0d3.wgsl b/test/tint/builtins/gen/var/textureSampleLevel/36f0d3.wgsl
index c03589d..d9222e8 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/36f0d3.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/36f0d3.wgsl
@@ -25,10 +25,10 @@
 
 // fn textureSampleLevel(texture: texture_depth_2d_array, sampler: sampler, coords: vec2<f32>, array_index: i32, level: u32, @const offset: vec2<i32>) -> f32
 fn textureSampleLevel_36f0d3() {
-  var arg_2 = vec2<f32>();
+  var arg_2 = vec2<f32>(1.f);
   var arg_3 = 1i;
   var arg_4 = 1u;
-  const arg_5 = vec2<i32>();
+  const arg_5 = vec2<i32>(1i);
   var res: f32 = textureSampleLevel(arg_0, arg_1, arg_2, arg_3, arg_4, arg_5);
 }
 
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/36f0d3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/36f0d3.wgsl.expected.dxc.hlsl
index 15d3909..8959ed2 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/36f0d3.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/36f0d3.wgsl.expected.dxc.hlsl
@@ -2,10 +2,10 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleLevel_36f0d3() {
-  float2 arg_2 = (0.0f).xx;
+  float2 arg_2 = (1.0f).xx;
   int arg_3 = 1;
   uint arg_4 = 1u;
-  float res = arg_0.SampleLevel(arg_1, float3(arg_2, float(arg_3)), arg_4, (0).xx).x;
+  float res = arg_0.SampleLevel(arg_1, float3(arg_2, float(arg_3)), arg_4, (1).xx).x;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/36f0d3.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/36f0d3.wgsl.expected.fxc.hlsl
index 15d3909..8959ed2 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/36f0d3.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/36f0d3.wgsl.expected.fxc.hlsl
@@ -2,10 +2,10 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleLevel_36f0d3() {
-  float2 arg_2 = (0.0f).xx;
+  float2 arg_2 = (1.0f).xx;
   int arg_3 = 1;
   uint arg_4 = 1u;
-  float res = arg_0.SampleLevel(arg_1, float3(arg_2, float(arg_3)), arg_4, (0).xx).x;
+  float res = arg_0.SampleLevel(arg_1, float3(arg_2, float(arg_3)), arg_4, (1).xx).x;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/36f0d3.wgsl.expected.msl b/test/tint/builtins/gen/var/textureSampleLevel/36f0d3.wgsl.expected.msl
index 253a816..f7c22f2 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/36f0d3.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/36f0d3.wgsl.expected.msl
@@ -2,10 +2,10 @@
 
 using namespace metal;
 void textureSampleLevel_36f0d3(depth2d_array<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float2 arg_2 = float2(0.0f);
+  float2 arg_2 = float2(1.0f);
   int arg_3 = 1;
   uint arg_4 = 1u;
-  float res = tint_symbol_1.sample(tint_symbol_2, arg_2, arg_3, level(arg_4), int2(0));
+  float res = tint_symbol_1.sample(tint_symbol_2, arg_2, arg_3, level(arg_4), int2(1));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/36f0d3.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSampleLevel/36f0d3.wgsl.expected.spvasm
index c672f18..612754f 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/36f0d3.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSampleLevel/36f0d3.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 66
+; Bound: 67
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -46,67 +46,68 @@
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
-         %20 = OpConstantNull %v2float
+    %float_1 = OpConstant %float 1
+         %21 = OpConstantComposite %v2float %float_1 %float_1
 %_ptr_Function_v2float = OpTypePointer Function %v2float
+         %24 = OpConstantNull %v2float
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
-         %27 = OpConstantNull %int
+         %29 = OpConstantNull %int
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %32 = OpConstantNull %uint
-         %37 = OpTypeSampledImage %11
+         %34 = OpConstantNull %uint
+         %39 = OpTypeSampledImage %11
     %v3float = OpTypeVector %float 3
       %v2int = OpTypeVector %int 2
-         %49 = OpConstantNull %v2int
+         %51 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_float = OpTypePointer Function %float
-         %52 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %54 = OpTypeFunction %v4float
 %textureSampleLevel_36f0d3 = OpFunction %void None %15
          %18 = OpLabel
-      %arg_2 = OpVariable %_ptr_Function_v2float Function %20
-      %arg_3 = OpVariable %_ptr_Function_int Function %27
-      %arg_4 = OpVariable %_ptr_Function_uint Function %32
+      %arg_2 = OpVariable %_ptr_Function_v2float Function %24
+      %arg_3 = OpVariable %_ptr_Function_int Function %29
+      %arg_4 = OpVariable %_ptr_Function_uint Function %34
         %res = OpVariable %_ptr_Function_float Function %8
-               OpStore %arg_2 %20
+               OpStore %arg_2 %21
                OpStore %arg_3 %int_1
                OpStore %arg_4 %uint_1
-         %35 = OpLoad %14 %arg_1
-         %36 = OpLoad %11 %arg_0
-         %38 = OpSampledImage %37 %36 %35
-         %40 = OpLoad %v2float %arg_2
-         %41 = OpCompositeExtract %float %40 0
-         %42 = OpCompositeExtract %float %40 1
-         %44 = OpLoad %int %arg_3
-         %43 = OpConvertSToF %float %44
-         %45 = OpCompositeConstruct %v3float %41 %42 %43
-         %47 = OpLoad %uint %arg_4
-         %46 = OpConvertSToF %float %47
-         %34 = OpImageSampleExplicitLod %v4float %38 %45 Lod|ConstOffset %46 %49
-         %33 = OpCompositeExtract %float %34 0
-               OpStore %res %33
+         %37 = OpLoad %14 %arg_1
+         %38 = OpLoad %11 %arg_0
+         %40 = OpSampledImage %39 %38 %37
+         %42 = OpLoad %v2float %arg_2
+         %43 = OpCompositeExtract %float %42 0
+         %44 = OpCompositeExtract %float %42 1
+         %46 = OpLoad %int %arg_3
+         %45 = OpConvertSToF %float %46
+         %47 = OpCompositeConstruct %v3float %43 %44 %45
+         %49 = OpLoad %uint %arg_4
+         %48 = OpConvertSToF %float %49
+         %36 = OpImageSampleExplicitLod %v4float %40 %47 Lod|ConstOffset %48 %51
+         %35 = OpCompositeExtract %float %36 0
+               OpStore %res %35
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %52
-         %54 = OpLabel
-         %55 = OpFunctionCall %void %textureSampleLevel_36f0d3
+%vertex_main_inner = OpFunction %v4float None %54
+         %56 = OpLabel
+         %57 = OpFunctionCall %void %textureSampleLevel_36f0d3
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
-         %57 = OpLabel
-         %58 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %58
+         %59 = OpLabel
+         %60 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %60
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %15
-         %61 = OpLabel
-         %62 = OpFunctionCall %void %textureSampleLevel_36f0d3
+         %62 = OpLabel
+         %63 = OpFunctionCall %void %textureSampleLevel_36f0d3
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %15
-         %64 = OpLabel
-         %65 = OpFunctionCall %void %textureSampleLevel_36f0d3
+         %65 = OpLabel
+         %66 = OpFunctionCall %void %textureSampleLevel_36f0d3
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/36f0d3.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSampleLevel/36f0d3.wgsl.expected.wgsl
index 5812a97..b7aa845 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/36f0d3.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/36f0d3.wgsl.expected.wgsl
@@ -3,10 +3,10 @@
 @group(1) @binding(1) var arg_1 : sampler;
 
 fn textureSampleLevel_36f0d3() {
-  var arg_2 = vec2<f32>();
+  var arg_2 = vec2<f32>(1.0f);
   var arg_3 = 1i;
   var arg_4 = 1u;
-  const arg_5 = vec2<i32>();
+  const arg_5 = vec2<i32>(1i);
   var res : f32 = textureSampleLevel(arg_0, arg_1, arg_2, arg_3, arg_4, arg_5);
 }
 
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/3c3442.wgsl b/test/tint/builtins/gen/var/textureSampleLevel/3c3442.wgsl
index bca9bb7..b971e4d 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/3c3442.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/3c3442.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureSampleLevel(texture: texture_depth_2d_array, sampler: sampler, coords: vec2<f32>, array_index: u32, level: i32) -> f32
 fn textureSampleLevel_3c3442() {
-  var arg_2 = vec2<f32>();
+  var arg_2 = vec2<f32>(1.f);
   var arg_3 = 1u;
   var arg_4 = 1i;
   var res: f32 = textureSampleLevel(arg_0, arg_1, arg_2, arg_3, arg_4);
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/3c3442.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/3c3442.wgsl.expected.dxc.hlsl
index d26576d..3865538 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/3c3442.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/3c3442.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleLevel_3c3442() {
-  float2 arg_2 = (0.0f).xx;
+  float2 arg_2 = (1.0f).xx;
   uint arg_3 = 1u;
   int arg_4 = 1;
   float res = arg_0.SampleLevel(arg_1, float3(arg_2, float(arg_3)), arg_4).x;
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/3c3442.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/3c3442.wgsl.expected.fxc.hlsl
index d26576d..3865538 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/3c3442.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/3c3442.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleLevel_3c3442() {
-  float2 arg_2 = (0.0f).xx;
+  float2 arg_2 = (1.0f).xx;
   uint arg_3 = 1u;
   int arg_4 = 1;
   float res = arg_0.SampleLevel(arg_1, float3(arg_2, float(arg_3)), arg_4).x;
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/3c3442.wgsl.expected.msl b/test/tint/builtins/gen/var/textureSampleLevel/3c3442.wgsl.expected.msl
index 35a4af2..93bd50c 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/3c3442.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/3c3442.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureSampleLevel_3c3442(depth2d_array<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float2 arg_2 = float2(0.0f);
+  float2 arg_2 = float2(1.0f);
   uint arg_3 = 1u;
   int arg_4 = 1;
   float res = tint_symbol_1.sample(tint_symbol_2, arg_2, arg_3, level(arg_4));
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/3c3442.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSampleLevel/3c3442.wgsl.expected.spvasm
index 764f969..1fa0e90 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/3c3442.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSampleLevel/3c3442.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 64
+; Bound: 65
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -46,65 +46,66 @@
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
-         %20 = OpConstantNull %v2float
+    %float_1 = OpConstant %float 1
+         %21 = OpConstantComposite %v2float %float_1 %float_1
 %_ptr_Function_v2float = OpTypePointer Function %v2float
+         %24 = OpConstantNull %v2float
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %27 = OpConstantNull %uint
+         %29 = OpConstantNull %uint
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
-         %32 = OpConstantNull %int
-         %37 = OpTypeSampledImage %11
+         %34 = OpConstantNull %int
+         %39 = OpTypeSampledImage %11
     %v3float = OpTypeVector %float 3
 %_ptr_Function_float = OpTypePointer Function %float
-         %50 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %52 = OpTypeFunction %v4float
 %textureSampleLevel_3c3442 = OpFunction %void None %15
          %18 = OpLabel
-      %arg_2 = OpVariable %_ptr_Function_v2float Function %20
-      %arg_3 = OpVariable %_ptr_Function_uint Function %27
-      %arg_4 = OpVariable %_ptr_Function_int Function %32
+      %arg_2 = OpVariable %_ptr_Function_v2float Function %24
+      %arg_3 = OpVariable %_ptr_Function_uint Function %29
+      %arg_4 = OpVariable %_ptr_Function_int Function %34
         %res = OpVariable %_ptr_Function_float Function %8
-               OpStore %arg_2 %20
+               OpStore %arg_2 %21
                OpStore %arg_3 %uint_1
                OpStore %arg_4 %int_1
-         %35 = OpLoad %14 %arg_1
-         %36 = OpLoad %11 %arg_0
-         %38 = OpSampledImage %37 %36 %35
-         %40 = OpLoad %v2float %arg_2
-         %41 = OpCompositeExtract %float %40 0
-         %42 = OpCompositeExtract %float %40 1
-         %44 = OpLoad %uint %arg_3
-         %43 = OpConvertUToF %float %44
-         %45 = OpCompositeConstruct %v3float %41 %42 %43
-         %47 = OpLoad %int %arg_4
-         %46 = OpConvertSToF %float %47
-         %34 = OpImageSampleExplicitLod %v4float %38 %45 Lod %46
-         %33 = OpCompositeExtract %float %34 0
-               OpStore %res %33
+         %37 = OpLoad %14 %arg_1
+         %38 = OpLoad %11 %arg_0
+         %40 = OpSampledImage %39 %38 %37
+         %42 = OpLoad %v2float %arg_2
+         %43 = OpCompositeExtract %float %42 0
+         %44 = OpCompositeExtract %float %42 1
+         %46 = OpLoad %uint %arg_3
+         %45 = OpConvertUToF %float %46
+         %47 = OpCompositeConstruct %v3float %43 %44 %45
+         %49 = OpLoad %int %arg_4
+         %48 = OpConvertSToF %float %49
+         %36 = OpImageSampleExplicitLod %v4float %40 %47 Lod %48
+         %35 = OpCompositeExtract %float %36 0
+               OpStore %res %35
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %50
-         %52 = OpLabel
-         %53 = OpFunctionCall %void %textureSampleLevel_3c3442
+%vertex_main_inner = OpFunction %v4float None %52
+         %54 = OpLabel
+         %55 = OpFunctionCall %void %textureSampleLevel_3c3442
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
-         %55 = OpLabel
-         %56 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %56
+         %57 = OpLabel
+         %58 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %58
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %15
-         %59 = OpLabel
-         %60 = OpFunctionCall %void %textureSampleLevel_3c3442
+         %60 = OpLabel
+         %61 = OpFunctionCall %void %textureSampleLevel_3c3442
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %15
-         %62 = OpLabel
-         %63 = OpFunctionCall %void %textureSampleLevel_3c3442
+         %63 = OpLabel
+         %64 = OpFunctionCall %void %textureSampleLevel_3c3442
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/3c3442.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSampleLevel/3c3442.wgsl.expected.wgsl
index 2196df7..0320df3 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/3c3442.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/3c3442.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(1) var arg_1 : sampler;
 
 fn textureSampleLevel_3c3442() {
-  var arg_2 = vec2<f32>();
+  var arg_2 = vec2<f32>(1.0f);
   var arg_3 = 1u;
   var arg_4 = 1i;
   var res : f32 = textureSampleLevel(arg_0, arg_1, arg_2, arg_3, arg_4);
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/615583.wgsl b/test/tint/builtins/gen/var/textureSampleLevel/615583.wgsl
index e158313..9a88375 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/615583.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/615583.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureSampleLevel(texture: texture_depth_2d_array, sampler: sampler, coords: vec2<f32>, array_index: u32, level: u32) -> f32
 fn textureSampleLevel_615583() {
-  var arg_2 = vec2<f32>();
+  var arg_2 = vec2<f32>(1.f);
   var arg_3 = 1u;
   var arg_4 = 1u;
   var res: f32 = textureSampleLevel(arg_0, arg_1, arg_2, arg_3, arg_4);
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/615583.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/615583.wgsl.expected.dxc.hlsl
index cbc17e9..a581ba2 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/615583.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/615583.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleLevel_615583() {
-  float2 arg_2 = (0.0f).xx;
+  float2 arg_2 = (1.0f).xx;
   uint arg_3 = 1u;
   uint arg_4 = 1u;
   float res = arg_0.SampleLevel(arg_1, float3(arg_2, float(arg_3)), arg_4).x;
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/615583.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/615583.wgsl.expected.fxc.hlsl
index cbc17e9..a581ba2 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/615583.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/615583.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleLevel_615583() {
-  float2 arg_2 = (0.0f).xx;
+  float2 arg_2 = (1.0f).xx;
   uint arg_3 = 1u;
   uint arg_4 = 1u;
   float res = arg_0.SampleLevel(arg_1, float3(arg_2, float(arg_3)), arg_4).x;
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/615583.wgsl.expected.msl b/test/tint/builtins/gen/var/textureSampleLevel/615583.wgsl.expected.msl
index 34af000..a162e3a 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/615583.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/615583.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureSampleLevel_615583(depth2d_array<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float2 arg_2 = float2(0.0f);
+  float2 arg_2 = float2(1.0f);
   uint arg_3 = 1u;
   uint arg_4 = 1u;
   float res = tint_symbol_1.sample(tint_symbol_2, arg_2, arg_3, level(arg_4));
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/615583.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSampleLevel/615583.wgsl.expected.spvasm
index 68e107d..6f3511f 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/615583.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSampleLevel/615583.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 60
+; Bound: 61
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -46,61 +46,62 @@
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
-         %20 = OpConstantNull %v2float
+    %float_1 = OpConstant %float 1
+         %21 = OpConstantComposite %v2float %float_1 %float_1
 %_ptr_Function_v2float = OpTypePointer Function %v2float
+         %24 = OpConstantNull %v2float
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %27 = OpConstantNull %uint
-         %33 = OpTypeSampledImage %11
+         %29 = OpConstantNull %uint
+         %35 = OpTypeSampledImage %11
     %v3float = OpTypeVector %float 3
 %_ptr_Function_float = OpTypePointer Function %float
-         %46 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %48 = OpTypeFunction %v4float
 %textureSampleLevel_615583 = OpFunction %void None %15
          %18 = OpLabel
-      %arg_2 = OpVariable %_ptr_Function_v2float Function %20
-      %arg_3 = OpVariable %_ptr_Function_uint Function %27
-      %arg_4 = OpVariable %_ptr_Function_uint Function %27
+      %arg_2 = OpVariable %_ptr_Function_v2float Function %24
+      %arg_3 = OpVariable %_ptr_Function_uint Function %29
+      %arg_4 = OpVariable %_ptr_Function_uint Function %29
         %res = OpVariable %_ptr_Function_float Function %8
-               OpStore %arg_2 %20
+               OpStore %arg_2 %21
                OpStore %arg_3 %uint_1
                OpStore %arg_4 %uint_1
-         %31 = OpLoad %14 %arg_1
-         %32 = OpLoad %11 %arg_0
-         %34 = OpSampledImage %33 %32 %31
-         %36 = OpLoad %v2float %arg_2
-         %37 = OpCompositeExtract %float %36 0
-         %38 = OpCompositeExtract %float %36 1
-         %40 = OpLoad %uint %arg_3
-         %39 = OpConvertUToF %float %40
-         %41 = OpCompositeConstruct %v3float %37 %38 %39
-         %43 = OpLoad %uint %arg_4
-         %42 = OpConvertSToF %float %43
-         %30 = OpImageSampleExplicitLod %v4float %34 %41 Lod %42
-         %29 = OpCompositeExtract %float %30 0
-               OpStore %res %29
+         %33 = OpLoad %14 %arg_1
+         %34 = OpLoad %11 %arg_0
+         %36 = OpSampledImage %35 %34 %33
+         %38 = OpLoad %v2float %arg_2
+         %39 = OpCompositeExtract %float %38 0
+         %40 = OpCompositeExtract %float %38 1
+         %42 = OpLoad %uint %arg_3
+         %41 = OpConvertUToF %float %42
+         %43 = OpCompositeConstruct %v3float %39 %40 %41
+         %45 = OpLoad %uint %arg_4
+         %44 = OpConvertSToF %float %45
+         %32 = OpImageSampleExplicitLod %v4float %36 %43 Lod %44
+         %31 = OpCompositeExtract %float %32 0
+               OpStore %res %31
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %46
-         %48 = OpLabel
-         %49 = OpFunctionCall %void %textureSampleLevel_615583
+%vertex_main_inner = OpFunction %v4float None %48
+         %50 = OpLabel
+         %51 = OpFunctionCall %void %textureSampleLevel_615583
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
-         %51 = OpLabel
-         %52 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %52
+         %53 = OpLabel
+         %54 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %54
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %15
-         %55 = OpLabel
-         %56 = OpFunctionCall %void %textureSampleLevel_615583
+         %56 = OpLabel
+         %57 = OpFunctionCall %void %textureSampleLevel_615583
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %15
-         %58 = OpLabel
-         %59 = OpFunctionCall %void %textureSampleLevel_615583
+         %59 = OpLabel
+         %60 = OpFunctionCall %void %textureSampleLevel_615583
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/615583.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSampleLevel/615583.wgsl.expected.wgsl
index 0c0d65d..1c573ad 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/615583.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/615583.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(1) var arg_1 : sampler;
 
 fn textureSampleLevel_615583() {
-  var arg_2 = vec2<f32>();
+  var arg_2 = vec2<f32>(1.0f);
   var arg_3 = 1u;
   var arg_4 = 1u;
   var res : f32 = textureSampleLevel(arg_0, arg_1, arg_2, arg_3, arg_4);
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/73e892.wgsl b/test/tint/builtins/gen/var/textureSampleLevel/73e892.wgsl
index 077d173..d5a1e74 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/73e892.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/73e892.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureSampleLevel(texture: texture_depth_2d, sampler: sampler, coords: vec2<f32>, level: u32) -> f32
 fn textureSampleLevel_73e892() {
-  var arg_2 = vec2<f32>();
+  var arg_2 = vec2<f32>(1.f);
   var arg_3 = 1u;
   var res: f32 = textureSampleLevel(arg_0, arg_1, arg_2, arg_3);
 }
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/73e892.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/73e892.wgsl.expected.dxc.hlsl
index e381e9f..8e507ed 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/73e892.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/73e892.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleLevel_73e892() {
-  float2 arg_2 = (0.0f).xx;
+  float2 arg_2 = (1.0f).xx;
   uint arg_3 = 1u;
   float res = arg_0.SampleLevel(arg_1, arg_2, arg_3).x;
 }
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/73e892.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/73e892.wgsl.expected.fxc.hlsl
index e381e9f..8e507ed 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/73e892.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/73e892.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleLevel_73e892() {
-  float2 arg_2 = (0.0f).xx;
+  float2 arg_2 = (1.0f).xx;
   uint arg_3 = 1u;
   float res = arg_0.SampleLevel(arg_1, arg_2, arg_3).x;
 }
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/73e892.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureSampleLevel/73e892.wgsl.expected.glsl
index 14e1df9..d634058 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/73e892.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/73e892.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 uniform highp sampler2DShadow arg_0_arg_1;
 
 void textureSampleLevel_73e892() {
-  vec2 arg_2 = vec2(0.0f);
+  vec2 arg_2 = vec2(1.0f);
   uint arg_3 = 1u;
   float res = textureLod(arg_0_arg_1, vec3(arg_2, 0.0f), float(arg_3));
 }
@@ -27,7 +27,7 @@
 uniform highp sampler2DShadow arg_0_arg_1;
 
 void textureSampleLevel_73e892() {
-  vec2 arg_2 = vec2(0.0f);
+  vec2 arg_2 = vec2(1.0f);
   uint arg_3 = 1u;
   float res = textureLod(arg_0_arg_1, vec3(arg_2, 0.0f), float(arg_3));
 }
@@ -45,7 +45,7 @@
 uniform highp sampler2DShadow arg_0_arg_1;
 
 void textureSampleLevel_73e892() {
-  vec2 arg_2 = vec2(0.0f);
+  vec2 arg_2 = vec2(1.0f);
   uint arg_3 = 1u;
   float res = textureLod(arg_0_arg_1, vec3(arg_2, 0.0f), float(arg_3));
 }
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/73e892.wgsl.expected.msl b/test/tint/builtins/gen/var/textureSampleLevel/73e892.wgsl.expected.msl
index 4eb86fb..fd1ebab 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/73e892.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/73e892.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureSampleLevel_73e892(depth2d<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float2 arg_2 = float2(0.0f);
+  float2 arg_2 = float2(1.0f);
   uint arg_3 = 1u;
   float res = tint_symbol_1.sample(tint_symbol_2, arg_2, level(arg_3));
 }
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/73e892.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSampleLevel/73e892.wgsl.expected.spvasm
index 1c0551a..88bb69b 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/73e892.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSampleLevel/73e892.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 53
+; Bound: 54
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -45,53 +45,54 @@
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
-         %20 = OpConstantNull %v2float
+    %float_1 = OpConstant %float 1
+         %21 = OpConstantComposite %v2float %float_1 %float_1
 %_ptr_Function_v2float = OpTypePointer Function %v2float
+         %24 = OpConstantNull %v2float
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %27 = OpConstantNull %uint
-         %32 = OpTypeSampledImage %11
+         %29 = OpConstantNull %uint
+         %34 = OpTypeSampledImage %11
 %_ptr_Function_float = OpTypePointer Function %float
-         %39 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %41 = OpTypeFunction %v4float
 %textureSampleLevel_73e892 = OpFunction %void None %15
          %18 = OpLabel
-      %arg_2 = OpVariable %_ptr_Function_v2float Function %20
-      %arg_3 = OpVariable %_ptr_Function_uint Function %27
+      %arg_2 = OpVariable %_ptr_Function_v2float Function %24
+      %arg_3 = OpVariable %_ptr_Function_uint Function %29
         %res = OpVariable %_ptr_Function_float Function %8
-               OpStore %arg_2 %20
+               OpStore %arg_2 %21
                OpStore %arg_3 %uint_1
-         %30 = OpLoad %14 %arg_1
-         %31 = OpLoad %11 %arg_0
-         %33 = OpSampledImage %32 %31 %30
-         %34 = OpLoad %v2float %arg_2
-         %36 = OpLoad %uint %arg_3
-         %35 = OpConvertSToF %float %36
-         %29 = OpImageSampleExplicitLod %v4float %33 %34 Lod %35
-         %28 = OpCompositeExtract %float %29 0
-               OpStore %res %28
+         %32 = OpLoad %14 %arg_1
+         %33 = OpLoad %11 %arg_0
+         %35 = OpSampledImage %34 %33 %32
+         %36 = OpLoad %v2float %arg_2
+         %38 = OpLoad %uint %arg_3
+         %37 = OpConvertSToF %float %38
+         %31 = OpImageSampleExplicitLod %v4float %35 %36 Lod %37
+         %30 = OpCompositeExtract %float %31 0
+               OpStore %res %30
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %39
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureSampleLevel_73e892
+%vertex_main_inner = OpFunction %v4float None %41
+         %43 = OpLabel
+         %44 = OpFunctionCall %void %textureSampleLevel_73e892
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
-         %44 = OpLabel
-         %45 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %45
+         %46 = OpLabel
+         %47 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %47
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %15
-         %48 = OpLabel
-         %49 = OpFunctionCall %void %textureSampleLevel_73e892
+         %49 = OpLabel
+         %50 = OpFunctionCall %void %textureSampleLevel_73e892
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %15
-         %51 = OpLabel
-         %52 = OpFunctionCall %void %textureSampleLevel_73e892
+         %52 = OpLabel
+         %53 = OpFunctionCall %void %textureSampleLevel_73e892
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/73e892.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSampleLevel/73e892.wgsl.expected.wgsl
index 1d25212..e61a548 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/73e892.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/73e892.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(1) var arg_1 : sampler;
 
 fn textureSampleLevel_73e892() {
-  var arg_2 = vec2<f32>();
+  var arg_2 = vec2<f32>(1.0f);
   var arg_3 = 1u;
   var res : f32 = textureSampleLevel(arg_0, arg_1, arg_2, arg_3);
 }
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/749baf.wgsl b/test/tint/builtins/gen/var/textureSampleLevel/749baf.wgsl
index f9bcd90..cb1b048 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/749baf.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/749baf.wgsl
@@ -25,9 +25,9 @@
 
 // fn textureSampleLevel(texture: texture_depth_2d, sampler: sampler, coords: vec2<f32>, level: i32, @const offset: vec2<i32>) -> f32
 fn textureSampleLevel_749baf() {
-  var arg_2 = vec2<f32>();
+  var arg_2 = vec2<f32>(1.f);
   var arg_3 = 1i;
-  const arg_4 = vec2<i32>();
+  const arg_4 = vec2<i32>(1i);
   var res: f32 = textureSampleLevel(arg_0, arg_1, arg_2, arg_3, arg_4);
 }
 
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/749baf.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/749baf.wgsl.expected.dxc.hlsl
index 0431b6e1..9e1020a 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/749baf.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/749baf.wgsl.expected.dxc.hlsl
@@ -2,9 +2,9 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleLevel_749baf() {
-  float2 arg_2 = (0.0f).xx;
+  float2 arg_2 = (1.0f).xx;
   int arg_3 = 1;
-  float res = arg_0.SampleLevel(arg_1, arg_2, arg_3, (0).xx).x;
+  float res = arg_0.SampleLevel(arg_1, arg_2, arg_3, (1).xx).x;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/749baf.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/749baf.wgsl.expected.fxc.hlsl
index 0431b6e1..9e1020a 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/749baf.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/749baf.wgsl.expected.fxc.hlsl
@@ -2,9 +2,9 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleLevel_749baf() {
-  float2 arg_2 = (0.0f).xx;
+  float2 arg_2 = (1.0f).xx;
   int arg_3 = 1;
-  float res = arg_0.SampleLevel(arg_1, arg_2, arg_3, (0).xx).x;
+  float res = arg_0.SampleLevel(arg_1, arg_2, arg_3, (1).xx).x;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/749baf.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureSampleLevel/749baf.wgsl.expected.glsl
index e6a0500..f2fbbd3 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/749baf.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/749baf.wgsl.expected.glsl
@@ -3,9 +3,9 @@
 uniform highp sampler2DShadow arg_0_arg_1;
 
 void textureSampleLevel_749baf() {
-  vec2 arg_2 = vec2(0.0f);
+  vec2 arg_2 = vec2(1.0f);
   int arg_3 = 1;
-  float res = textureLodOffset(arg_0_arg_1, vec3(arg_2, 0.0f), float(arg_3), ivec2(0));
+  float res = textureLodOffset(arg_0_arg_1, vec3(arg_2, 0.0f), float(arg_3), ivec2(1));
 }
 
 vec4 vertex_main() {
@@ -27,9 +27,9 @@
 uniform highp sampler2DShadow arg_0_arg_1;
 
 void textureSampleLevel_749baf() {
-  vec2 arg_2 = vec2(0.0f);
+  vec2 arg_2 = vec2(1.0f);
   int arg_3 = 1;
-  float res = textureLodOffset(arg_0_arg_1, vec3(arg_2, 0.0f), float(arg_3), ivec2(0));
+  float res = textureLodOffset(arg_0_arg_1, vec3(arg_2, 0.0f), float(arg_3), ivec2(1));
 }
 
 void fragment_main() {
@@ -45,9 +45,9 @@
 uniform highp sampler2DShadow arg_0_arg_1;
 
 void textureSampleLevel_749baf() {
-  vec2 arg_2 = vec2(0.0f);
+  vec2 arg_2 = vec2(1.0f);
   int arg_3 = 1;
-  float res = textureLodOffset(arg_0_arg_1, vec3(arg_2, 0.0f), float(arg_3), ivec2(0));
+  float res = textureLodOffset(arg_0_arg_1, vec3(arg_2, 0.0f), float(arg_3), ivec2(1));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/749baf.wgsl.expected.msl b/test/tint/builtins/gen/var/textureSampleLevel/749baf.wgsl.expected.msl
index 2802a73..dbd714d 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/749baf.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/749baf.wgsl.expected.msl
@@ -2,9 +2,9 @@
 
 using namespace metal;
 void textureSampleLevel_749baf(depth2d<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float2 arg_2 = float2(0.0f);
+  float2 arg_2 = float2(1.0f);
   int arg_3 = 1;
-  float res = tint_symbol_1.sample(tint_symbol_2, arg_2, level(arg_3), int2(0));
+  float res = tint_symbol_1.sample(tint_symbol_2, arg_2, level(arg_3), int2(1));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/749baf.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSampleLevel/749baf.wgsl.expected.spvasm
index 93494bd..2a9f5e2 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/749baf.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSampleLevel/749baf.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 55
+; Bound: 56
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -45,55 +45,56 @@
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
-         %20 = OpConstantNull %v2float
+    %float_1 = OpConstant %float 1
+         %21 = OpConstantComposite %v2float %float_1 %float_1
 %_ptr_Function_v2float = OpTypePointer Function %v2float
+         %24 = OpConstantNull %v2float
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
-         %27 = OpConstantNull %int
-         %32 = OpTypeSampledImage %11
+         %29 = OpConstantNull %int
+         %34 = OpTypeSampledImage %11
       %v2int = OpTypeVector %int 2
-         %38 = OpConstantNull %v2int
+         %40 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_float = OpTypePointer Function %float
-         %41 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %43 = OpTypeFunction %v4float
 %textureSampleLevel_749baf = OpFunction %void None %15
          %18 = OpLabel
-      %arg_2 = OpVariable %_ptr_Function_v2float Function %20
-      %arg_3 = OpVariable %_ptr_Function_int Function %27
+      %arg_2 = OpVariable %_ptr_Function_v2float Function %24
+      %arg_3 = OpVariable %_ptr_Function_int Function %29
         %res = OpVariable %_ptr_Function_float Function %8
-               OpStore %arg_2 %20
+               OpStore %arg_2 %21
                OpStore %arg_3 %int_1
-         %30 = OpLoad %14 %arg_1
-         %31 = OpLoad %11 %arg_0
-         %33 = OpSampledImage %32 %31 %30
-         %34 = OpLoad %v2float %arg_2
-         %36 = OpLoad %int %arg_3
-         %35 = OpConvertSToF %float %36
-         %29 = OpImageSampleExplicitLod %v4float %33 %34 Lod|ConstOffset %35 %38
-         %28 = OpCompositeExtract %float %29 0
-               OpStore %res %28
+         %32 = OpLoad %14 %arg_1
+         %33 = OpLoad %11 %arg_0
+         %35 = OpSampledImage %34 %33 %32
+         %36 = OpLoad %v2float %arg_2
+         %38 = OpLoad %int %arg_3
+         %37 = OpConvertSToF %float %38
+         %31 = OpImageSampleExplicitLod %v4float %35 %36 Lod|ConstOffset %37 %40
+         %30 = OpCompositeExtract %float %31 0
+               OpStore %res %30
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %41
-         %43 = OpLabel
-         %44 = OpFunctionCall %void %textureSampleLevel_749baf
+%vertex_main_inner = OpFunction %v4float None %43
+         %45 = OpLabel
+         %46 = OpFunctionCall %void %textureSampleLevel_749baf
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
-         %46 = OpLabel
-         %47 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %47
+         %48 = OpLabel
+         %49 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %49
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %15
-         %50 = OpLabel
-         %51 = OpFunctionCall %void %textureSampleLevel_749baf
+         %51 = OpLabel
+         %52 = OpFunctionCall %void %textureSampleLevel_749baf
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %15
-         %53 = OpLabel
-         %54 = OpFunctionCall %void %textureSampleLevel_749baf
+         %54 = OpLabel
+         %55 = OpFunctionCall %void %textureSampleLevel_749baf
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/749baf.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSampleLevel/749baf.wgsl.expected.wgsl
index c9215b1..80a39fb 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/749baf.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/749baf.wgsl.expected.wgsl
@@ -3,9 +3,9 @@
 @group(1) @binding(1) var arg_1 : sampler;
 
 fn textureSampleLevel_749baf() {
-  var arg_2 = vec2<f32>();
+  var arg_2 = vec2<f32>(1.0f);
   var arg_3 = 1i;
-  const arg_4 = vec2<i32>();
+  const arg_4 = vec2<i32>(1i);
   var res : f32 = textureSampleLevel(arg_0, arg_1, arg_2, arg_3, arg_4);
 }
 
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/941a53.wgsl b/test/tint/builtins/gen/var/textureSampleLevel/941a53.wgsl
index 0a8b7ad..13fd205 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/941a53.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/941a53.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureSampleLevel(texture: texture_depth_cube_array, sampler: sampler, coords: vec3<f32>, array_index: u32, level: u32) -> f32
 fn textureSampleLevel_941a53() {
-  var arg_2 = vec3<f32>();
+  var arg_2 = vec3<f32>(1.f);
   var arg_3 = 1u;
   var arg_4 = 1u;
   var res: f32 = textureSampleLevel(arg_0, arg_1, arg_2, arg_3, arg_4);
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/941a53.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/941a53.wgsl.expected.dxc.hlsl
index ded6e21..1d07f98 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/941a53.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/941a53.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleLevel_941a53() {
-  float3 arg_2 = (0.0f).xxx;
+  float3 arg_2 = (1.0f).xxx;
   uint arg_3 = 1u;
   uint arg_4 = 1u;
   float res = arg_0.SampleLevel(arg_1, float4(arg_2, float(arg_3)), arg_4).x;
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/941a53.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/941a53.wgsl.expected.fxc.hlsl
index ded6e21..1d07f98 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/941a53.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/941a53.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleLevel_941a53() {
-  float3 arg_2 = (0.0f).xxx;
+  float3 arg_2 = (1.0f).xxx;
   uint arg_3 = 1u;
   uint arg_4 = 1u;
   float res = arg_0.SampleLevel(arg_1, float4(arg_2, float(arg_3)), arg_4).x;
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/941a53.wgsl.expected.msl b/test/tint/builtins/gen/var/textureSampleLevel/941a53.wgsl.expected.msl
index 4bbcda9..17b58e6 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/941a53.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/941a53.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureSampleLevel_941a53(depthcube_array<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float3 arg_2 = float3(0.0f);
+  float3 arg_2 = float3(1.0f);
   uint arg_3 = 1u;
   uint arg_4 = 1u;
   float res = tint_symbol_1.sample(tint_symbol_2, arg_2, arg_3, level(arg_4));
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/941a53.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSampleLevel/941a53.wgsl.expected.spvasm
index b6f33ce..f725458 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/941a53.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSampleLevel/941a53.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 60
+; Bound: 61
 ; Schema: 0
                OpCapability Shader
                OpCapability SampledCubeArray
@@ -47,61 +47,62 @@
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
     %v3float = OpTypeVector %float 3
-         %20 = OpConstantNull %v3float
+    %float_1 = OpConstant %float 1
+         %21 = OpConstantComposite %v3float %float_1 %float_1 %float_1
 %_ptr_Function_v3float = OpTypePointer Function %v3float
+         %24 = OpConstantNull %v3float
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %27 = OpConstantNull %uint
-         %33 = OpTypeSampledImage %11
+         %29 = OpConstantNull %uint
+         %35 = OpTypeSampledImage %11
 %_ptr_Function_float = OpTypePointer Function %float
-         %46 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %48 = OpTypeFunction %v4float
 %textureSampleLevel_941a53 = OpFunction %void None %15
          %18 = OpLabel
-      %arg_2 = OpVariable %_ptr_Function_v3float Function %20
-      %arg_3 = OpVariable %_ptr_Function_uint Function %27
-      %arg_4 = OpVariable %_ptr_Function_uint Function %27
+      %arg_2 = OpVariable %_ptr_Function_v3float Function %24
+      %arg_3 = OpVariable %_ptr_Function_uint Function %29
+      %arg_4 = OpVariable %_ptr_Function_uint Function %29
         %res = OpVariable %_ptr_Function_float Function %8
-               OpStore %arg_2 %20
+               OpStore %arg_2 %21
                OpStore %arg_3 %uint_1
                OpStore %arg_4 %uint_1
-         %31 = OpLoad %14 %arg_1
-         %32 = OpLoad %11 %arg_0
-         %34 = OpSampledImage %33 %32 %31
-         %35 = OpLoad %v3float %arg_2
-         %36 = OpCompositeExtract %float %35 0
-         %37 = OpCompositeExtract %float %35 1
-         %38 = OpCompositeExtract %float %35 2
-         %40 = OpLoad %uint %arg_3
-         %39 = OpConvertUToF %float %40
-         %41 = OpCompositeConstruct %v4float %36 %37 %38 %39
-         %43 = OpLoad %uint %arg_4
-         %42 = OpConvertSToF %float %43
-         %30 = OpImageSampleExplicitLod %v4float %34 %41 Lod %42
-         %29 = OpCompositeExtract %float %30 0
-               OpStore %res %29
+         %33 = OpLoad %14 %arg_1
+         %34 = OpLoad %11 %arg_0
+         %36 = OpSampledImage %35 %34 %33
+         %37 = OpLoad %v3float %arg_2
+         %38 = OpCompositeExtract %float %37 0
+         %39 = OpCompositeExtract %float %37 1
+         %40 = OpCompositeExtract %float %37 2
+         %42 = OpLoad %uint %arg_3
+         %41 = OpConvertUToF %float %42
+         %43 = OpCompositeConstruct %v4float %38 %39 %40 %41
+         %45 = OpLoad %uint %arg_4
+         %44 = OpConvertSToF %float %45
+         %32 = OpImageSampleExplicitLod %v4float %36 %43 Lod %44
+         %31 = OpCompositeExtract %float %32 0
+               OpStore %res %31
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %46
-         %48 = OpLabel
-         %49 = OpFunctionCall %void %textureSampleLevel_941a53
+%vertex_main_inner = OpFunction %v4float None %48
+         %50 = OpLabel
+         %51 = OpFunctionCall %void %textureSampleLevel_941a53
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
-         %51 = OpLabel
-         %52 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %52
+         %53 = OpLabel
+         %54 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %54
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %15
-         %55 = OpLabel
-         %56 = OpFunctionCall %void %textureSampleLevel_941a53
+         %56 = OpLabel
+         %57 = OpFunctionCall %void %textureSampleLevel_941a53
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %15
-         %58 = OpLabel
-         %59 = OpFunctionCall %void %textureSampleLevel_941a53
+         %59 = OpLabel
+         %60 = OpFunctionCall %void %textureSampleLevel_941a53
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/941a53.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSampleLevel/941a53.wgsl.expected.wgsl
index 02a28c8..118ea63 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/941a53.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/941a53.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(1) var arg_1 : sampler;
 
 fn textureSampleLevel_941a53() {
-  var arg_2 = vec3<f32>();
+  var arg_2 = vec3<f32>(1.0f);
   var arg_3 = 1u;
   var arg_4 = 1u;
   var res : f32 = textureSampleLevel(arg_0, arg_1, arg_2, arg_3, arg_4);
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/979816.wgsl b/test/tint/builtins/gen/var/textureSampleLevel/979816.wgsl
index a54008b..2bcb61c 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/979816.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/979816.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureSampleLevel(texture: texture_external, sampler: sampler, coords: vec2<f32>) -> vec4<f32>
 fn textureSampleLevel_979816() {
-  var arg_2 = vec2<f32>();
+  var arg_2 = vec2<f32>(1.f);
   var res: vec4<f32> = textureSampleLevel(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/979816.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/979816.wgsl.expected.dxc.hlsl
index 42293b9..115d746 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/979816.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/979816.wgsl.expected.dxc.hlsl
@@ -85,7 +85,7 @@
 }
 
 void textureSampleLevel_979816() {
-  float2 arg_2 = (0.0f).xx;
+  float2 arg_2 = (1.0f).xx;
   float4 res = textureSampleExternal(arg_0, ext_tex_plane_1, arg_1, arg_2, tint_symbol_1(ext_tex_params, 0u));
 }
 
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/979816.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/979816.wgsl.expected.fxc.hlsl
index 42293b9..115d746 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/979816.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/979816.wgsl.expected.fxc.hlsl
@@ -85,7 +85,7 @@
 }
 
 void textureSampleLevel_979816() {
-  float2 arg_2 = (0.0f).xx;
+  float2 arg_2 = (1.0f).xx;
   float4 res = textureSampleExternal(arg_0, ext_tex_plane_1, arg_1, arg_2, tint_symbol_1(ext_tex_params, 0u));
 }
 
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/979816.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureSampleLevel/979816.wgsl.expected.glsl
index 45fab17..6364e84 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/979816.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/979816.wgsl.expected.glsl
@@ -54,7 +54,7 @@
 uniform highp sampler2D arg_0_arg_1;
 uniform highp sampler2D ext_tex_plane_1_arg_1;
 void textureSampleLevel_979816() {
-  vec2 arg_2 = vec2(0.0f);
+  vec2 arg_2 = vec2(1.0f);
   vec4 res = textureSampleExternal(arg_0_arg_1, ext_tex_plane_1_arg_1, arg_2, ext_tex_params.inner);
 }
 
@@ -124,7 +124,7 @@
 uniform highp sampler2D arg_0_arg_1;
 uniform highp sampler2D ext_tex_plane_1_arg_1;
 void textureSampleLevel_979816() {
-  vec2 arg_2 = vec2(0.0f);
+  vec2 arg_2 = vec2(1.0f);
   vec4 res = textureSampleExternal(arg_0_arg_1, ext_tex_plane_1_arg_1, arg_2, ext_tex_params.inner);
 }
 
@@ -188,7 +188,7 @@
 uniform highp sampler2D arg_0_arg_1;
 uniform highp sampler2D ext_tex_plane_1_arg_1;
 void textureSampleLevel_979816() {
-  vec2 arg_2 = vec2(0.0f);
+  vec2 arg_2 = vec2(1.0f);
   vec4 res = textureSampleExternal(arg_0_arg_1, ext_tex_plane_1_arg_1, arg_2, ext_tex_params.inner);
 }
 
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/979816.wgsl.expected.msl b/test/tint/builtins/gen/var/textureSampleLevel/979816.wgsl.expected.msl
index efa8279..c9d722e 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/979816.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/979816.wgsl.expected.msl
@@ -62,7 +62,7 @@
 }
 
 void textureSampleLevel_979816(texture2d<float, access::sample> tint_symbol_1, texture2d<float, access::sample> tint_symbol_2, sampler tint_symbol_3, const constant ExternalTextureParams* const tint_symbol_4) {
-  float2 arg_2 = float2(0.0f);
+  float2 arg_2 = float2(1.0f);
   float4 res = textureSampleExternal(tint_symbol_1, tint_symbol_2, tint_symbol_3, arg_2, *(tint_symbol_4));
 }
 
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/979816.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSampleLevel/979816.wgsl.expected.spvasm
index 4d772dc..58d2130 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/979816.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSampleLevel/979816.wgsl.expected.spvasm
@@ -5,7 +5,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 147
+; Bound: 148
 ; Schema: 0
                OpCapability Shader
          %31 = OpExtInstImport "GLSL.std.450"
@@ -124,12 +124,13 @@
          %98 = OpConstantNull %uint
        %void = OpTypeVoid
         %116 = OpTypeFunction %void
-        %120 = OpConstantNull %v2float
+        %120 = OpConstantComposite %v2float %float_1 %float_1
 %_ptr_Function_v2float = OpTypePointer Function %v2float
+        %123 = OpConstantNull %v2float
      %uint_0 = OpConstant %uint 0
 %_ptr_Uniform_ExternalTextureParams = OpTypePointer Uniform %ExternalTextureParams
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-        %134 = OpTypeFunction %v4float
+        %135 = OpTypeFunction %v4float
 %gammaCorrection = OpFunction %v3float None %25
           %v = OpFunctionParameter %v3float
      %params = OpFunctionParameter %GammaTransferParams
@@ -227,38 +228,38 @@
                OpFunctionEnd
 %textureSampleLevel_979816 = OpFunction %void None %116
         %119 = OpLabel
-      %arg_2 = OpVariable %_ptr_Function_v2float Function %120
+      %arg_2 = OpVariable %_ptr_Function_v2float Function %123
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_2 %120
-        %124 = OpLoad %11 %arg_0
-        %125 = OpLoad %11 %ext_tex_plane_1
-        %126 = OpLoad %24 %arg_1
-        %127 = OpLoad %v2float %arg_2
-        %130 = OpAccessChain %_ptr_Uniform_ExternalTextureParams %ext_tex_params %uint_0
-        %131 = OpLoad %ExternalTextureParams %130
-        %123 = OpFunctionCall %v4float %textureSampleExternal %124 %125 %126 %127 %131
-               OpStore %res %123
+        %125 = OpLoad %11 %arg_0
+        %126 = OpLoad %11 %ext_tex_plane_1
+        %127 = OpLoad %24 %arg_1
+        %128 = OpLoad %v2float %arg_2
+        %131 = OpAccessChain %_ptr_Uniform_ExternalTextureParams %ext_tex_params %uint_0
+        %132 = OpLoad %ExternalTextureParams %131
+        %124 = OpFunctionCall %v4float %textureSampleExternal %125 %126 %127 %128 %132
+               OpStore %res %124
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %134
-        %136 = OpLabel
-        %137 = OpFunctionCall %void %textureSampleLevel_979816
+%vertex_main_inner = OpFunction %v4float None %135
+        %137 = OpLabel
+        %138 = OpFunctionCall %void %textureSampleLevel_979816
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %116
-        %139 = OpLabel
-        %140 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %140
+        %140 = OpLabel
+        %141 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %141
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %116
-        %142 = OpLabel
-        %143 = OpFunctionCall %void %textureSampleLevel_979816
+        %143 = OpLabel
+        %144 = OpFunctionCall %void %textureSampleLevel_979816
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %116
-        %145 = OpLabel
-        %146 = OpFunctionCall %void %textureSampleLevel_979816
+        %146 = OpLabel
+        %147 = OpFunctionCall %void %textureSampleLevel_979816
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/979816.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSampleLevel/979816.wgsl.expected.wgsl
index 1b4da99..ca58ef1 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/979816.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/979816.wgsl.expected.wgsl
@@ -7,7 +7,7 @@
 @group(1) @binding(1) var arg_1 : sampler;
 
 fn textureSampleLevel_979816() {
-  var arg_2 = vec2<f32>();
+  var arg_2 = vec2<f32>(1.0f);
   var res : vec4<f32> = textureSampleLevel(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/a12142.wgsl b/test/tint/builtins/gen/var/textureSampleLevel/a12142.wgsl
index 6a38486..7d6e3ff 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/a12142.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/a12142.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureSampleLevel(texture: texture_depth_cube_array, sampler: sampler, coords: vec3<f32>, array_index: i32, level: u32) -> f32
 fn textureSampleLevel_a12142() {
-  var arg_2 = vec3<f32>();
+  var arg_2 = vec3<f32>(1.f);
   var arg_3 = 1i;
   var arg_4 = 1u;
   var res: f32 = textureSampleLevel(arg_0, arg_1, arg_2, arg_3, arg_4);
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/a12142.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/a12142.wgsl.expected.dxc.hlsl
index 25a17d6..87c53a0 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/a12142.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/a12142.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleLevel_a12142() {
-  float3 arg_2 = (0.0f).xxx;
+  float3 arg_2 = (1.0f).xxx;
   int arg_3 = 1;
   uint arg_4 = 1u;
   float res = arg_0.SampleLevel(arg_1, float4(arg_2, float(arg_3)), arg_4).x;
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/a12142.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/a12142.wgsl.expected.fxc.hlsl
index 25a17d6..87c53a0 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/a12142.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/a12142.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleLevel_a12142() {
-  float3 arg_2 = (0.0f).xxx;
+  float3 arg_2 = (1.0f).xxx;
   int arg_3 = 1;
   uint arg_4 = 1u;
   float res = arg_0.SampleLevel(arg_1, float4(arg_2, float(arg_3)), arg_4).x;
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/a12142.wgsl.expected.msl b/test/tint/builtins/gen/var/textureSampleLevel/a12142.wgsl.expected.msl
index e8b772e..f3d6ea6 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/a12142.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/a12142.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureSampleLevel_a12142(depthcube_array<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float3 arg_2 = float3(0.0f);
+  float3 arg_2 = float3(1.0f);
   int arg_3 = 1;
   uint arg_4 = 1u;
   float res = tint_symbol_1.sample(tint_symbol_2, arg_2, arg_3, level(arg_4));
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/a12142.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSampleLevel/a12142.wgsl.expected.spvasm
index ebde5f0..60fe8b6 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/a12142.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSampleLevel/a12142.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 64
+; Bound: 65
 ; Schema: 0
                OpCapability Shader
                OpCapability SampledCubeArray
@@ -47,65 +47,66 @@
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
     %v3float = OpTypeVector %float 3
-         %20 = OpConstantNull %v3float
+    %float_1 = OpConstant %float 1
+         %21 = OpConstantComposite %v3float %float_1 %float_1 %float_1
 %_ptr_Function_v3float = OpTypePointer Function %v3float
+         %24 = OpConstantNull %v3float
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
-         %27 = OpConstantNull %int
+         %29 = OpConstantNull %int
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %32 = OpConstantNull %uint
-         %37 = OpTypeSampledImage %11
+         %34 = OpConstantNull %uint
+         %39 = OpTypeSampledImage %11
 %_ptr_Function_float = OpTypePointer Function %float
-         %50 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %52 = OpTypeFunction %v4float
 %textureSampleLevel_a12142 = OpFunction %void None %15
          %18 = OpLabel
-      %arg_2 = OpVariable %_ptr_Function_v3float Function %20
-      %arg_3 = OpVariable %_ptr_Function_int Function %27
-      %arg_4 = OpVariable %_ptr_Function_uint Function %32
+      %arg_2 = OpVariable %_ptr_Function_v3float Function %24
+      %arg_3 = OpVariable %_ptr_Function_int Function %29
+      %arg_4 = OpVariable %_ptr_Function_uint Function %34
         %res = OpVariable %_ptr_Function_float Function %8
-               OpStore %arg_2 %20
+               OpStore %arg_2 %21
                OpStore %arg_3 %int_1
                OpStore %arg_4 %uint_1
-         %35 = OpLoad %14 %arg_1
-         %36 = OpLoad %11 %arg_0
-         %38 = OpSampledImage %37 %36 %35
-         %39 = OpLoad %v3float %arg_2
-         %40 = OpCompositeExtract %float %39 0
-         %41 = OpCompositeExtract %float %39 1
-         %42 = OpCompositeExtract %float %39 2
-         %44 = OpLoad %int %arg_3
-         %43 = OpConvertSToF %float %44
-         %45 = OpCompositeConstruct %v4float %40 %41 %42 %43
-         %47 = OpLoad %uint %arg_4
-         %46 = OpConvertSToF %float %47
-         %34 = OpImageSampleExplicitLod %v4float %38 %45 Lod %46
-         %33 = OpCompositeExtract %float %34 0
-               OpStore %res %33
+         %37 = OpLoad %14 %arg_1
+         %38 = OpLoad %11 %arg_0
+         %40 = OpSampledImage %39 %38 %37
+         %41 = OpLoad %v3float %arg_2
+         %42 = OpCompositeExtract %float %41 0
+         %43 = OpCompositeExtract %float %41 1
+         %44 = OpCompositeExtract %float %41 2
+         %46 = OpLoad %int %arg_3
+         %45 = OpConvertSToF %float %46
+         %47 = OpCompositeConstruct %v4float %42 %43 %44 %45
+         %49 = OpLoad %uint %arg_4
+         %48 = OpConvertSToF %float %49
+         %36 = OpImageSampleExplicitLod %v4float %40 %47 Lod %48
+         %35 = OpCompositeExtract %float %36 0
+               OpStore %res %35
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %50
-         %52 = OpLabel
-         %53 = OpFunctionCall %void %textureSampleLevel_a12142
+%vertex_main_inner = OpFunction %v4float None %52
+         %54 = OpLabel
+         %55 = OpFunctionCall %void %textureSampleLevel_a12142
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
-         %55 = OpLabel
-         %56 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %56
+         %57 = OpLabel
+         %58 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %58
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %15
-         %59 = OpLabel
-         %60 = OpFunctionCall %void %textureSampleLevel_a12142
+         %60 = OpLabel
+         %61 = OpFunctionCall %void %textureSampleLevel_a12142
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %15
-         %62 = OpLabel
-         %63 = OpFunctionCall %void %textureSampleLevel_a12142
+         %63 = OpLabel
+         %64 = OpFunctionCall %void %textureSampleLevel_a12142
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/a12142.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSampleLevel/a12142.wgsl.expected.wgsl
index 4b06240..be10276 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/a12142.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/a12142.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(1) var arg_1 : sampler;
 
 fn textureSampleLevel_a12142() {
-  var arg_2 = vec3<f32>();
+  var arg_2 = vec3<f32>(1.0f);
   var arg_3 = 1i;
   var arg_4 = 1u;
   var res : f32 = textureSampleLevel(arg_0, arg_1, arg_2, arg_3, arg_4);
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/aab3b9.wgsl b/test/tint/builtins/gen/var/textureSampleLevel/aab3b9.wgsl
index f562a0d..7b91247 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/aab3b9.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/aab3b9.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureSampleLevel(texture: texture_cube_array<f32>, sampler: sampler, coords: vec3<f32>, array_index: u32, level: f32) -> vec4<f32>
 fn textureSampleLevel_aab3b9() {
-  var arg_2 = vec3<f32>();
+  var arg_2 = vec3<f32>(1.f);
   var arg_3 = 1u;
   var arg_4 = 1.f;
   var res: vec4<f32> = textureSampleLevel(arg_0, arg_1, arg_2, arg_3, arg_4);
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/aab3b9.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/aab3b9.wgsl.expected.dxc.hlsl
index 481da2b..f11a31b 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/aab3b9.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/aab3b9.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleLevel_aab3b9() {
-  float3 arg_2 = (0.0f).xxx;
+  float3 arg_2 = (1.0f).xxx;
   uint arg_3 = 1u;
   float arg_4 = 1.0f;
   float4 res = arg_0.SampleLevel(arg_1, float4(arg_2, float(arg_3)), arg_4);
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/aab3b9.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/aab3b9.wgsl.expected.fxc.hlsl
index 481da2b..f11a31b 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/aab3b9.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/aab3b9.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleLevel_aab3b9() {
-  float3 arg_2 = (0.0f).xxx;
+  float3 arg_2 = (1.0f).xxx;
   uint arg_3 = 1u;
   float arg_4 = 1.0f;
   float4 res = arg_0.SampleLevel(arg_1, float4(arg_2, float(arg_3)), arg_4);
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/aab3b9.wgsl.expected.msl b/test/tint/builtins/gen/var/textureSampleLevel/aab3b9.wgsl.expected.msl
index 44aa130..2493730 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/aab3b9.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/aab3b9.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureSampleLevel_aab3b9(texturecube_array<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float3 arg_2 = float3(0.0f);
+  float3 arg_2 = float3(1.0f);
   uint arg_3 = 1u;
   float arg_4 = 1.0f;
   float4 res = tint_symbol_1.sample(tint_symbol_2, arg_2, arg_3, level(arg_4));
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/aab3b9.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSampleLevel/aab3b9.wgsl.expected.spvasm
index 155f61c..b11e9f1 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/aab3b9.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSampleLevel/aab3b9.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 59
+; Bound: 60
 ; Schema: 0
                OpCapability Shader
                OpCapability SampledCubeArray
@@ -47,60 +47,61 @@
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
     %v3float = OpTypeVector %float 3
-         %20 = OpConstantNull %v3float
+    %float_1 = OpConstant %float 1
+         %21 = OpConstantComposite %v3float %float_1 %float_1 %float_1
 %_ptr_Function_v3float = OpTypePointer Function %v3float
+         %24 = OpConstantNull %v3float
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %27 = OpConstantNull %uint
-    %float_1 = OpConstant %float 1
+         %29 = OpConstantNull %uint
 %_ptr_Function_float = OpTypePointer Function %float
-         %34 = OpTypeSampledImage %11
+         %35 = OpTypeSampledImage %11
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %46 = OpTypeFunction %v4float
+         %47 = OpTypeFunction %v4float
 %textureSampleLevel_aab3b9 = OpFunction %void None %15
          %18 = OpLabel
-      %arg_2 = OpVariable %_ptr_Function_v3float Function %20
-      %arg_3 = OpVariable %_ptr_Function_uint Function %27
+      %arg_2 = OpVariable %_ptr_Function_v3float Function %24
+      %arg_3 = OpVariable %_ptr_Function_uint Function %29
       %arg_4 = OpVariable %_ptr_Function_float Function %8
         %res = OpVariable %_ptr_Function_v4float Function %5
-               OpStore %arg_2 %20
+               OpStore %arg_2 %21
                OpStore %arg_3 %uint_1
                OpStore %arg_4 %float_1
-         %32 = OpLoad %14 %arg_1
-         %33 = OpLoad %11 %arg_0
-         %35 = OpSampledImage %34 %33 %32
-         %36 = OpLoad %v3float %arg_2
-         %37 = OpCompositeExtract %float %36 0
-         %38 = OpCompositeExtract %float %36 1
-         %39 = OpCompositeExtract %float %36 2
-         %41 = OpLoad %uint %arg_3
-         %40 = OpConvertUToF %float %41
-         %42 = OpCompositeConstruct %v4float %37 %38 %39 %40
-         %43 = OpLoad %float %arg_4
-         %31 = OpImageSampleExplicitLod %v4float %35 %42 Lod %43
-               OpStore %res %31
+         %33 = OpLoad %14 %arg_1
+         %34 = OpLoad %11 %arg_0
+         %36 = OpSampledImage %35 %34 %33
+         %37 = OpLoad %v3float %arg_2
+         %38 = OpCompositeExtract %float %37 0
+         %39 = OpCompositeExtract %float %37 1
+         %40 = OpCompositeExtract %float %37 2
+         %42 = OpLoad %uint %arg_3
+         %41 = OpConvertUToF %float %42
+         %43 = OpCompositeConstruct %v4float %38 %39 %40 %41
+         %44 = OpLoad %float %arg_4
+         %32 = OpImageSampleExplicitLod %v4float %36 %43 Lod %44
+               OpStore %res %32
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %46
-         %48 = OpLabel
-         %49 = OpFunctionCall %void %textureSampleLevel_aab3b9
+%vertex_main_inner = OpFunction %v4float None %47
+         %49 = OpLabel
+         %50 = OpFunctionCall %void %textureSampleLevel_aab3b9
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
-         %51 = OpLabel
-         %52 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %52
+         %52 = OpLabel
+         %53 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %53
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %15
-         %54 = OpLabel
-         %55 = OpFunctionCall %void %textureSampleLevel_aab3b9
+         %55 = OpLabel
+         %56 = OpFunctionCall %void %textureSampleLevel_aab3b9
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %15
-         %57 = OpLabel
-         %58 = OpFunctionCall %void %textureSampleLevel_aab3b9
+         %58 = OpLabel
+         %59 = OpFunctionCall %void %textureSampleLevel_aab3b9
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/aab3b9.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSampleLevel/aab3b9.wgsl.expected.wgsl
index bfc6754..3c0fb7f 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/aab3b9.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/aab3b9.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(1) var arg_1 : sampler;
 
 fn textureSampleLevel_aab3b9() {
-  var arg_2 = vec3<f32>();
+  var arg_2 = vec3<f32>(1.0f);
   var arg_3 = 1u;
   var arg_4 = 1.0f;
   var res : vec4<f32> = textureSampleLevel(arg_0, arg_1, arg_2, arg_3, arg_4);
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/abfcc0.wgsl b/test/tint/builtins/gen/var/textureSampleLevel/abfcc0.wgsl
index 7d31330..a55b802 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/abfcc0.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/abfcc0.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureSampleLevel(texture: texture_3d<f32>, sampler: sampler, coords: vec3<f32>, level: f32) -> vec4<f32>
 fn textureSampleLevel_abfcc0() {
-  var arg_2 = vec3<f32>();
+  var arg_2 = vec3<f32>(1.f);
   var arg_3 = 1.f;
   var res: vec4<f32> = textureSampleLevel(arg_0, arg_1, arg_2, arg_3);
 }
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/abfcc0.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/abfcc0.wgsl.expected.dxc.hlsl
index cabcb90..a9952cd 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/abfcc0.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/abfcc0.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleLevel_abfcc0() {
-  float3 arg_2 = (0.0f).xxx;
+  float3 arg_2 = (1.0f).xxx;
   float arg_3 = 1.0f;
   float4 res = arg_0.SampleLevel(arg_1, arg_2, arg_3);
 }
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/abfcc0.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/abfcc0.wgsl.expected.fxc.hlsl
index cabcb90..a9952cd 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/abfcc0.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/abfcc0.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleLevel_abfcc0() {
-  float3 arg_2 = (0.0f).xxx;
+  float3 arg_2 = (1.0f).xxx;
   float arg_3 = 1.0f;
   float4 res = arg_0.SampleLevel(arg_1, arg_2, arg_3);
 }
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/abfcc0.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureSampleLevel/abfcc0.wgsl.expected.glsl
index f94eaea..26e29df 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/abfcc0.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/abfcc0.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 uniform highp sampler3D arg_0_arg_1;
 
 void textureSampleLevel_abfcc0() {
-  vec3 arg_2 = vec3(0.0f);
+  vec3 arg_2 = vec3(1.0f);
   float arg_3 = 1.0f;
   vec4 res = textureLod(arg_0_arg_1, arg_2, arg_3);
 }
@@ -27,7 +27,7 @@
 uniform highp sampler3D arg_0_arg_1;
 
 void textureSampleLevel_abfcc0() {
-  vec3 arg_2 = vec3(0.0f);
+  vec3 arg_2 = vec3(1.0f);
   float arg_3 = 1.0f;
   vec4 res = textureLod(arg_0_arg_1, arg_2, arg_3);
 }
@@ -45,7 +45,7 @@
 uniform highp sampler3D arg_0_arg_1;
 
 void textureSampleLevel_abfcc0() {
-  vec3 arg_2 = vec3(0.0f);
+  vec3 arg_2 = vec3(1.0f);
   float arg_3 = 1.0f;
   vec4 res = textureLod(arg_0_arg_1, arg_2, arg_3);
 }
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/abfcc0.wgsl.expected.msl b/test/tint/builtins/gen/var/textureSampleLevel/abfcc0.wgsl.expected.msl
index 399820b..92c1064 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/abfcc0.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/abfcc0.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureSampleLevel_abfcc0(texture3d<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float3 arg_2 = float3(0.0f);
+  float3 arg_2 = float3(1.0f);
   float arg_3 = 1.0f;
   float4 res = tint_symbol_1.sample(tint_symbol_2, arg_2, level(arg_3));
 }
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/abfcc0.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSampleLevel/abfcc0.wgsl.expected.spvasm
index 46b9eb5..4b754e7 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/abfcc0.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSampleLevel/abfcc0.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 48
+; Bound: 49
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -45,48 +45,49 @@
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
     %v3float = OpTypeVector %float 3
-         %20 = OpConstantNull %v3float
-%_ptr_Function_v3float = OpTypePointer Function %v3float
     %float_1 = OpConstant %float 1
+         %21 = OpConstantComposite %v3float %float_1 %float_1 %float_1
+%_ptr_Function_v3float = OpTypePointer Function %v3float
+         %24 = OpConstantNull %v3float
 %_ptr_Function_float = OpTypePointer Function %float
-         %29 = OpTypeSampledImage %11
+         %30 = OpTypeSampledImage %11
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %35 = OpTypeFunction %v4float
+         %36 = OpTypeFunction %v4float
 %textureSampleLevel_abfcc0 = OpFunction %void None %15
          %18 = OpLabel
-      %arg_2 = OpVariable %_ptr_Function_v3float Function %20
+      %arg_2 = OpVariable %_ptr_Function_v3float Function %24
       %arg_3 = OpVariable %_ptr_Function_float Function %8
         %res = OpVariable %_ptr_Function_v4float Function %5
-               OpStore %arg_2 %20
+               OpStore %arg_2 %21
                OpStore %arg_3 %float_1
-         %27 = OpLoad %14 %arg_1
-         %28 = OpLoad %11 %arg_0
-         %30 = OpSampledImage %29 %28 %27
-         %31 = OpLoad %v3float %arg_2
-         %32 = OpLoad %float %arg_3
-         %26 = OpImageSampleExplicitLod %v4float %30 %31 Lod %32
-               OpStore %res %26
+         %28 = OpLoad %14 %arg_1
+         %29 = OpLoad %11 %arg_0
+         %31 = OpSampledImage %30 %29 %28
+         %32 = OpLoad %v3float %arg_2
+         %33 = OpLoad %float %arg_3
+         %27 = OpImageSampleExplicitLod %v4float %31 %32 Lod %33
+               OpStore %res %27
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %35
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureSampleLevel_abfcc0
+%vertex_main_inner = OpFunction %v4float None %36
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %textureSampleLevel_abfcc0
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
-         %40 = OpLabel
-         %41 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %41
+         %41 = OpLabel
+         %42 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %42
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %15
-         %43 = OpLabel
-         %44 = OpFunctionCall %void %textureSampleLevel_abfcc0
+         %44 = OpLabel
+         %45 = OpFunctionCall %void %textureSampleLevel_abfcc0
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %15
-         %46 = OpLabel
-         %47 = OpFunctionCall %void %textureSampleLevel_abfcc0
+         %47 = OpLabel
+         %48 = OpFunctionCall %void %textureSampleLevel_abfcc0
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/abfcc0.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSampleLevel/abfcc0.wgsl.expected.wgsl
index 73e7921..3d87e97 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/abfcc0.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/abfcc0.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(1) var arg_1 : sampler;
 
 fn textureSampleLevel_abfcc0() {
-  var arg_2 = vec3<f32>();
+  var arg_2 = vec3<f32>(1.0f);
   var arg_3 = 1.0f;
   var res : vec4<f32> = textureSampleLevel(arg_0, arg_1, arg_2, arg_3);
 }
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/ae5e39.wgsl b/test/tint/builtins/gen/var/textureSampleLevel/ae5e39.wgsl
index 890f04d..e083760 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/ae5e39.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/ae5e39.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureSampleLevel(texture: texture_depth_cube_array, sampler: sampler, coords: vec3<f32>, array_index: i32, level: i32) -> f32
 fn textureSampleLevel_ae5e39() {
-  var arg_2 = vec3<f32>();
+  var arg_2 = vec3<f32>(1.f);
   var arg_3 = 1i;
   var arg_4 = 1i;
   var res: f32 = textureSampleLevel(arg_0, arg_1, arg_2, arg_3, arg_4);
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/ae5e39.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/ae5e39.wgsl.expected.dxc.hlsl
index 94ec7e4..ab9072b 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/ae5e39.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/ae5e39.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleLevel_ae5e39() {
-  float3 arg_2 = (0.0f).xxx;
+  float3 arg_2 = (1.0f).xxx;
   int arg_3 = 1;
   int arg_4 = 1;
   float res = arg_0.SampleLevel(arg_1, float4(arg_2, float(arg_3)), arg_4).x;
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/ae5e39.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/ae5e39.wgsl.expected.fxc.hlsl
index 94ec7e4..ab9072b 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/ae5e39.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/ae5e39.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleLevel_ae5e39() {
-  float3 arg_2 = (0.0f).xxx;
+  float3 arg_2 = (1.0f).xxx;
   int arg_3 = 1;
   int arg_4 = 1;
   float res = arg_0.SampleLevel(arg_1, float4(arg_2, float(arg_3)), arg_4).x;
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/ae5e39.wgsl.expected.msl b/test/tint/builtins/gen/var/textureSampleLevel/ae5e39.wgsl.expected.msl
index baee28a..ba65b1f 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/ae5e39.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/ae5e39.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureSampleLevel_ae5e39(depthcube_array<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float3 arg_2 = float3(0.0f);
+  float3 arg_2 = float3(1.0f);
   int arg_3 = 1;
   int arg_4 = 1;
   float res = tint_symbol_1.sample(tint_symbol_2, arg_2, arg_3, level(arg_4));
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/ae5e39.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSampleLevel/ae5e39.wgsl.expected.spvasm
index 7046031..2fcafc0 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/ae5e39.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSampleLevel/ae5e39.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 60
+; Bound: 61
 ; Schema: 0
                OpCapability Shader
                OpCapability SampledCubeArray
@@ -47,61 +47,62 @@
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
     %v3float = OpTypeVector %float 3
-         %20 = OpConstantNull %v3float
+    %float_1 = OpConstant %float 1
+         %21 = OpConstantComposite %v3float %float_1 %float_1 %float_1
 %_ptr_Function_v3float = OpTypePointer Function %v3float
+         %24 = OpConstantNull %v3float
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
-         %27 = OpConstantNull %int
-         %33 = OpTypeSampledImage %11
+         %29 = OpConstantNull %int
+         %35 = OpTypeSampledImage %11
 %_ptr_Function_float = OpTypePointer Function %float
-         %46 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %48 = OpTypeFunction %v4float
 %textureSampleLevel_ae5e39 = OpFunction %void None %15
          %18 = OpLabel
-      %arg_2 = OpVariable %_ptr_Function_v3float Function %20
-      %arg_3 = OpVariable %_ptr_Function_int Function %27
-      %arg_4 = OpVariable %_ptr_Function_int Function %27
+      %arg_2 = OpVariable %_ptr_Function_v3float Function %24
+      %arg_3 = OpVariable %_ptr_Function_int Function %29
+      %arg_4 = OpVariable %_ptr_Function_int Function %29
         %res = OpVariable %_ptr_Function_float Function %8
-               OpStore %arg_2 %20
+               OpStore %arg_2 %21
                OpStore %arg_3 %int_1
                OpStore %arg_4 %int_1
-         %31 = OpLoad %14 %arg_1
-         %32 = OpLoad %11 %arg_0
-         %34 = OpSampledImage %33 %32 %31
-         %35 = OpLoad %v3float %arg_2
-         %36 = OpCompositeExtract %float %35 0
-         %37 = OpCompositeExtract %float %35 1
-         %38 = OpCompositeExtract %float %35 2
-         %40 = OpLoad %int %arg_3
-         %39 = OpConvertSToF %float %40
-         %41 = OpCompositeConstruct %v4float %36 %37 %38 %39
-         %43 = OpLoad %int %arg_4
-         %42 = OpConvertSToF %float %43
-         %30 = OpImageSampleExplicitLod %v4float %34 %41 Lod %42
-         %29 = OpCompositeExtract %float %30 0
-               OpStore %res %29
+         %33 = OpLoad %14 %arg_1
+         %34 = OpLoad %11 %arg_0
+         %36 = OpSampledImage %35 %34 %33
+         %37 = OpLoad %v3float %arg_2
+         %38 = OpCompositeExtract %float %37 0
+         %39 = OpCompositeExtract %float %37 1
+         %40 = OpCompositeExtract %float %37 2
+         %42 = OpLoad %int %arg_3
+         %41 = OpConvertSToF %float %42
+         %43 = OpCompositeConstruct %v4float %38 %39 %40 %41
+         %45 = OpLoad %int %arg_4
+         %44 = OpConvertSToF %float %45
+         %32 = OpImageSampleExplicitLod %v4float %36 %43 Lod %44
+         %31 = OpCompositeExtract %float %32 0
+               OpStore %res %31
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %46
-         %48 = OpLabel
-         %49 = OpFunctionCall %void %textureSampleLevel_ae5e39
+%vertex_main_inner = OpFunction %v4float None %48
+         %50 = OpLabel
+         %51 = OpFunctionCall %void %textureSampleLevel_ae5e39
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
-         %51 = OpLabel
-         %52 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %52
+         %53 = OpLabel
+         %54 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %54
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %15
-         %55 = OpLabel
-         %56 = OpFunctionCall %void %textureSampleLevel_ae5e39
+         %56 = OpLabel
+         %57 = OpFunctionCall %void %textureSampleLevel_ae5e39
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %15
-         %58 = OpLabel
-         %59 = OpFunctionCall %void %textureSampleLevel_ae5e39
+         %59 = OpLabel
+         %60 = OpFunctionCall %void %textureSampleLevel_ae5e39
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/ae5e39.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSampleLevel/ae5e39.wgsl.expected.wgsl
index 64bd88b..b2ae0da 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/ae5e39.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/ae5e39.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(1) var arg_1 : sampler;
 
 fn textureSampleLevel_ae5e39() {
-  var arg_2 = vec3<f32>();
+  var arg_2 = vec3<f32>(1.0f);
   var arg_3 = 1i;
   var arg_4 = 1i;
   var res : f32 = textureSampleLevel(arg_0, arg_1, arg_2, arg_3, arg_4);
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/ae92a2.wgsl b/test/tint/builtins/gen/var/textureSampleLevel/ae92a2.wgsl
index e11d71f..ce45b30 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/ae92a2.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/ae92a2.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureSampleLevel(texture: texture_depth_cube, sampler: sampler, coords: vec3<f32>, level: u32) -> f32
 fn textureSampleLevel_ae92a2() {
-  var arg_2 = vec3<f32>();
+  var arg_2 = vec3<f32>(1.f);
   var arg_3 = 1u;
   var res: f32 = textureSampleLevel(arg_0, arg_1, arg_2, arg_3);
 }
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/ae92a2.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/ae92a2.wgsl.expected.dxc.hlsl
index 9e0a41a..1b711c4 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/ae92a2.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/ae92a2.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleLevel_ae92a2() {
-  float3 arg_2 = (0.0f).xxx;
+  float3 arg_2 = (1.0f).xxx;
   uint arg_3 = 1u;
   float res = arg_0.SampleLevel(arg_1, arg_2, arg_3).x;
 }
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/ae92a2.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/ae92a2.wgsl.expected.fxc.hlsl
index 9e0a41a..1b711c4 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/ae92a2.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/ae92a2.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleLevel_ae92a2() {
-  float3 arg_2 = (0.0f).xxx;
+  float3 arg_2 = (1.0f).xxx;
   uint arg_3 = 1u;
   float res = arg_0.SampleLevel(arg_1, arg_2, arg_3).x;
 }
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/ae92a2.wgsl.expected.msl b/test/tint/builtins/gen/var/textureSampleLevel/ae92a2.wgsl.expected.msl
index d8dd6ce..4c6aa45 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/ae92a2.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/ae92a2.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureSampleLevel_ae92a2(depthcube<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float3 arg_2 = float3(0.0f);
+  float3 arg_2 = float3(1.0f);
   uint arg_3 = 1u;
   float res = tint_symbol_1.sample(tint_symbol_2, arg_2, level(arg_3));
 }
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/ae92a2.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSampleLevel/ae92a2.wgsl.expected.spvasm
index 7d9df9a..29bcc63 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/ae92a2.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSampleLevel/ae92a2.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 53
+; Bound: 54
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -45,53 +45,54 @@
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
     %v3float = OpTypeVector %float 3
-         %20 = OpConstantNull %v3float
+    %float_1 = OpConstant %float 1
+         %21 = OpConstantComposite %v3float %float_1 %float_1 %float_1
 %_ptr_Function_v3float = OpTypePointer Function %v3float
+         %24 = OpConstantNull %v3float
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %27 = OpConstantNull %uint
-         %32 = OpTypeSampledImage %11
+         %29 = OpConstantNull %uint
+         %34 = OpTypeSampledImage %11
 %_ptr_Function_float = OpTypePointer Function %float
-         %39 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %41 = OpTypeFunction %v4float
 %textureSampleLevel_ae92a2 = OpFunction %void None %15
          %18 = OpLabel
-      %arg_2 = OpVariable %_ptr_Function_v3float Function %20
-      %arg_3 = OpVariable %_ptr_Function_uint Function %27
+      %arg_2 = OpVariable %_ptr_Function_v3float Function %24
+      %arg_3 = OpVariable %_ptr_Function_uint Function %29
         %res = OpVariable %_ptr_Function_float Function %8
-               OpStore %arg_2 %20
+               OpStore %arg_2 %21
                OpStore %arg_3 %uint_1
-         %30 = OpLoad %14 %arg_1
-         %31 = OpLoad %11 %arg_0
-         %33 = OpSampledImage %32 %31 %30
-         %34 = OpLoad %v3float %arg_2
-         %36 = OpLoad %uint %arg_3
-         %35 = OpConvertSToF %float %36
-         %29 = OpImageSampleExplicitLod %v4float %33 %34 Lod %35
-         %28 = OpCompositeExtract %float %29 0
-               OpStore %res %28
+         %32 = OpLoad %14 %arg_1
+         %33 = OpLoad %11 %arg_0
+         %35 = OpSampledImage %34 %33 %32
+         %36 = OpLoad %v3float %arg_2
+         %38 = OpLoad %uint %arg_3
+         %37 = OpConvertSToF %float %38
+         %31 = OpImageSampleExplicitLod %v4float %35 %36 Lod %37
+         %30 = OpCompositeExtract %float %31 0
+               OpStore %res %30
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %39
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureSampleLevel_ae92a2
+%vertex_main_inner = OpFunction %v4float None %41
+         %43 = OpLabel
+         %44 = OpFunctionCall %void %textureSampleLevel_ae92a2
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
-         %44 = OpLabel
-         %45 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %45
+         %46 = OpLabel
+         %47 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %47
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %15
-         %48 = OpLabel
-         %49 = OpFunctionCall %void %textureSampleLevel_ae92a2
+         %49 = OpLabel
+         %50 = OpFunctionCall %void %textureSampleLevel_ae92a2
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %15
-         %51 = OpLabel
-         %52 = OpFunctionCall %void %textureSampleLevel_ae92a2
+         %52 = OpLabel
+         %53 = OpFunctionCall %void %textureSampleLevel_ae92a2
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/ae92a2.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSampleLevel/ae92a2.wgsl.expected.wgsl
index b44c095..6e70dbc 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/ae92a2.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/ae92a2.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(1) var arg_1 : sampler;
 
 fn textureSampleLevel_ae92a2() {
-  var arg_2 = vec3<f32>();
+  var arg_2 = vec3<f32>(1.0f);
   var arg_3 = 1u;
   var res : f32 = textureSampleLevel(arg_0, arg_1, arg_2, arg_3);
 }
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/b7c55c.wgsl b/test/tint/builtins/gen/var/textureSampleLevel/b7c55c.wgsl
index 3824a55..6763b94 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/b7c55c.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/b7c55c.wgsl
@@ -25,10 +25,10 @@
 
 // fn textureSampleLevel(texture: texture_2d_array<f32>, sampler: sampler, coords: vec2<f32>, array_index: i32, level: f32, @const offset: vec2<i32>) -> vec4<f32>
 fn textureSampleLevel_b7c55c() {
-  var arg_2 = vec2<f32>();
+  var arg_2 = vec2<f32>(1.f);
   var arg_3 = 1i;
   var arg_4 = 1.f;
-  const arg_5 = vec2<i32>();
+  const arg_5 = vec2<i32>(1i);
   var res: vec4<f32> = textureSampleLevel(arg_0, arg_1, arg_2, arg_3, arg_4, arg_5);
 }
 
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/b7c55c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/b7c55c.wgsl.expected.dxc.hlsl
index df52dfd..80efd9f 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/b7c55c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/b7c55c.wgsl.expected.dxc.hlsl
@@ -2,10 +2,10 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleLevel_b7c55c() {
-  float2 arg_2 = (0.0f).xx;
+  float2 arg_2 = (1.0f).xx;
   int arg_3 = 1;
   float arg_4 = 1.0f;
-  float4 res = arg_0.SampleLevel(arg_1, float3(arg_2, float(arg_3)), arg_4, (0).xx);
+  float4 res = arg_0.SampleLevel(arg_1, float3(arg_2, float(arg_3)), arg_4, (1).xx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/b7c55c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/b7c55c.wgsl.expected.fxc.hlsl
index df52dfd..80efd9f 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/b7c55c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/b7c55c.wgsl.expected.fxc.hlsl
@@ -2,10 +2,10 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleLevel_b7c55c() {
-  float2 arg_2 = (0.0f).xx;
+  float2 arg_2 = (1.0f).xx;
   int arg_3 = 1;
   float arg_4 = 1.0f;
-  float4 res = arg_0.SampleLevel(arg_1, float3(arg_2, float(arg_3)), arg_4, (0).xx);
+  float4 res = arg_0.SampleLevel(arg_1, float3(arg_2, float(arg_3)), arg_4, (1).xx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/b7c55c.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureSampleLevel/b7c55c.wgsl.expected.glsl
index baad622..4fda959 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/b7c55c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/b7c55c.wgsl.expected.glsl
@@ -3,10 +3,10 @@
 uniform highp sampler2DArray arg_0_arg_1;
 
 void textureSampleLevel_b7c55c() {
-  vec2 arg_2 = vec2(0.0f);
+  vec2 arg_2 = vec2(1.0f);
   int arg_3 = 1;
   float arg_4 = 1.0f;
-  vec4 res = textureLodOffset(arg_0_arg_1, vec3(arg_2, float(arg_3)), arg_4, ivec2(0));
+  vec4 res = textureLodOffset(arg_0_arg_1, vec3(arg_2, float(arg_3)), arg_4, ivec2(1));
 }
 
 vec4 vertex_main() {
@@ -28,10 +28,10 @@
 uniform highp sampler2DArray arg_0_arg_1;
 
 void textureSampleLevel_b7c55c() {
-  vec2 arg_2 = vec2(0.0f);
+  vec2 arg_2 = vec2(1.0f);
   int arg_3 = 1;
   float arg_4 = 1.0f;
-  vec4 res = textureLodOffset(arg_0_arg_1, vec3(arg_2, float(arg_3)), arg_4, ivec2(0));
+  vec4 res = textureLodOffset(arg_0_arg_1, vec3(arg_2, float(arg_3)), arg_4, ivec2(1));
 }
 
 void fragment_main() {
@@ -47,10 +47,10 @@
 uniform highp sampler2DArray arg_0_arg_1;
 
 void textureSampleLevel_b7c55c() {
-  vec2 arg_2 = vec2(0.0f);
+  vec2 arg_2 = vec2(1.0f);
   int arg_3 = 1;
   float arg_4 = 1.0f;
-  vec4 res = textureLodOffset(arg_0_arg_1, vec3(arg_2, float(arg_3)), arg_4, ivec2(0));
+  vec4 res = textureLodOffset(arg_0_arg_1, vec3(arg_2, float(arg_3)), arg_4, ivec2(1));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/b7c55c.wgsl.expected.msl b/test/tint/builtins/gen/var/textureSampleLevel/b7c55c.wgsl.expected.msl
index a1882e9..4f18a1e 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/b7c55c.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/b7c55c.wgsl.expected.msl
@@ -2,10 +2,10 @@
 
 using namespace metal;
 void textureSampleLevel_b7c55c(texture2d_array<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float2 arg_2 = float2(0.0f);
+  float2 arg_2 = float2(1.0f);
   int arg_3 = 1;
   float arg_4 = 1.0f;
-  float4 res = tint_symbol_1.sample(tint_symbol_2, arg_2, arg_3, level(arg_4), int2(0));
+  float4 res = tint_symbol_1.sample(tint_symbol_2, arg_2, arg_3, level(arg_4), int2(1));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/b7c55c.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSampleLevel/b7c55c.wgsl.expected.spvasm
index d7121f1..d46e0ac 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/b7c55c.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSampleLevel/b7c55c.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 61
+; Bound: 62
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -46,62 +46,63 @@
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
-         %20 = OpConstantNull %v2float
+    %float_1 = OpConstant %float 1
+         %21 = OpConstantComposite %v2float %float_1 %float_1
 %_ptr_Function_v2float = OpTypePointer Function %v2float
+         %24 = OpConstantNull %v2float
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
-         %27 = OpConstantNull %int
-    %float_1 = OpConstant %float 1
+         %29 = OpConstantNull %int
 %_ptr_Function_float = OpTypePointer Function %float
-         %34 = OpTypeSampledImage %11
+         %35 = OpTypeSampledImage %11
     %v3float = OpTypeVector %float 3
       %v2int = OpTypeVector %int 2
-         %45 = OpConstantNull %v2int
+         %46 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %48 = OpTypeFunction %v4float
+         %49 = OpTypeFunction %v4float
 %textureSampleLevel_b7c55c = OpFunction %void None %15
          %18 = OpLabel
-      %arg_2 = OpVariable %_ptr_Function_v2float Function %20
-      %arg_3 = OpVariable %_ptr_Function_int Function %27
+      %arg_2 = OpVariable %_ptr_Function_v2float Function %24
+      %arg_3 = OpVariable %_ptr_Function_int Function %29
       %arg_4 = OpVariable %_ptr_Function_float Function %8
         %res = OpVariable %_ptr_Function_v4float Function %5
-               OpStore %arg_2 %20
+               OpStore %arg_2 %21
                OpStore %arg_3 %int_1
                OpStore %arg_4 %float_1
-         %32 = OpLoad %14 %arg_1
-         %33 = OpLoad %11 %arg_0
-         %35 = OpSampledImage %34 %33 %32
-         %37 = OpLoad %v2float %arg_2
-         %38 = OpCompositeExtract %float %37 0
-         %39 = OpCompositeExtract %float %37 1
-         %41 = OpLoad %int %arg_3
-         %40 = OpConvertSToF %float %41
-         %42 = OpCompositeConstruct %v3float %38 %39 %40
-         %43 = OpLoad %float %arg_4
-         %31 = OpImageSampleExplicitLod %v4float %35 %42 Lod|ConstOffset %43 %45
-               OpStore %res %31
+         %33 = OpLoad %14 %arg_1
+         %34 = OpLoad %11 %arg_0
+         %36 = OpSampledImage %35 %34 %33
+         %38 = OpLoad %v2float %arg_2
+         %39 = OpCompositeExtract %float %38 0
+         %40 = OpCompositeExtract %float %38 1
+         %42 = OpLoad %int %arg_3
+         %41 = OpConvertSToF %float %42
+         %43 = OpCompositeConstruct %v3float %39 %40 %41
+         %44 = OpLoad %float %arg_4
+         %32 = OpImageSampleExplicitLod %v4float %36 %43 Lod|ConstOffset %44 %46
+               OpStore %res %32
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %48
-         %50 = OpLabel
-         %51 = OpFunctionCall %void %textureSampleLevel_b7c55c
+%vertex_main_inner = OpFunction %v4float None %49
+         %51 = OpLabel
+         %52 = OpFunctionCall %void %textureSampleLevel_b7c55c
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
-         %53 = OpLabel
-         %54 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %54
+         %54 = OpLabel
+         %55 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %55
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %15
-         %56 = OpLabel
-         %57 = OpFunctionCall %void %textureSampleLevel_b7c55c
+         %57 = OpLabel
+         %58 = OpFunctionCall %void %textureSampleLevel_b7c55c
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %15
-         %59 = OpLabel
-         %60 = OpFunctionCall %void %textureSampleLevel_b7c55c
+         %60 = OpLabel
+         %61 = OpFunctionCall %void %textureSampleLevel_b7c55c
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/b7c55c.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSampleLevel/b7c55c.wgsl.expected.wgsl
index cfd0309..00db2de 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/b7c55c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/b7c55c.wgsl.expected.wgsl
@@ -3,10 +3,10 @@
 @group(1) @binding(1) var arg_1 : sampler;
 
 fn textureSampleLevel_b7c55c() {
-  var arg_2 = vec2<f32>();
+  var arg_2 = vec2<f32>(1.0f);
   var arg_3 = 1i;
   var arg_4 = 1.0f;
-  const arg_5 = vec2<i32>();
+  const arg_5 = vec2<i32>(1i);
   var res : vec4<f32> = textureSampleLevel(arg_0, arg_1, arg_2, arg_3, arg_4, arg_5);
 }
 
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/c32df7.wgsl b/test/tint/builtins/gen/var/textureSampleLevel/c32df7.wgsl
index 9339db5..2b59e72 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/c32df7.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/c32df7.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureSampleLevel(texture: texture_cube<f32>, sampler: sampler, coords: vec3<f32>, level: f32) -> vec4<f32>
 fn textureSampleLevel_c32df7() {
-  var arg_2 = vec3<f32>();
+  var arg_2 = vec3<f32>(1.f);
   var arg_3 = 1.f;
   var res: vec4<f32> = textureSampleLevel(arg_0, arg_1, arg_2, arg_3);
 }
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/c32df7.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/c32df7.wgsl.expected.dxc.hlsl
index e5a4de6..825239f 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/c32df7.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/c32df7.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleLevel_c32df7() {
-  float3 arg_2 = (0.0f).xxx;
+  float3 arg_2 = (1.0f).xxx;
   float arg_3 = 1.0f;
   float4 res = arg_0.SampleLevel(arg_1, arg_2, arg_3);
 }
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/c32df7.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/c32df7.wgsl.expected.fxc.hlsl
index e5a4de6..825239f 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/c32df7.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/c32df7.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleLevel_c32df7() {
-  float3 arg_2 = (0.0f).xxx;
+  float3 arg_2 = (1.0f).xxx;
   float arg_3 = 1.0f;
   float4 res = arg_0.SampleLevel(arg_1, arg_2, arg_3);
 }
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/c32df7.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureSampleLevel/c32df7.wgsl.expected.glsl
index 91a2a08..533331f 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/c32df7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/c32df7.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 uniform highp samplerCube arg_0_arg_1;
 
 void textureSampleLevel_c32df7() {
-  vec3 arg_2 = vec3(0.0f);
+  vec3 arg_2 = vec3(1.0f);
   float arg_3 = 1.0f;
   vec4 res = textureLod(arg_0_arg_1, arg_2, arg_3);
 }
@@ -27,7 +27,7 @@
 uniform highp samplerCube arg_0_arg_1;
 
 void textureSampleLevel_c32df7() {
-  vec3 arg_2 = vec3(0.0f);
+  vec3 arg_2 = vec3(1.0f);
   float arg_3 = 1.0f;
   vec4 res = textureLod(arg_0_arg_1, arg_2, arg_3);
 }
@@ -45,7 +45,7 @@
 uniform highp samplerCube arg_0_arg_1;
 
 void textureSampleLevel_c32df7() {
-  vec3 arg_2 = vec3(0.0f);
+  vec3 arg_2 = vec3(1.0f);
   float arg_3 = 1.0f;
   vec4 res = textureLod(arg_0_arg_1, arg_2, arg_3);
 }
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/c32df7.wgsl.expected.msl b/test/tint/builtins/gen/var/textureSampleLevel/c32df7.wgsl.expected.msl
index aed7544..b08aa7d 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/c32df7.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/c32df7.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureSampleLevel_c32df7(texturecube<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float3 arg_2 = float3(0.0f);
+  float3 arg_2 = float3(1.0f);
   float arg_3 = 1.0f;
   float4 res = tint_symbol_1.sample(tint_symbol_2, arg_2, level(arg_3));
 }
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/c32df7.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSampleLevel/c32df7.wgsl.expected.spvasm
index a5cb38f..12dd55a 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/c32df7.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSampleLevel/c32df7.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 48
+; Bound: 49
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -45,48 +45,49 @@
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
     %v3float = OpTypeVector %float 3
-         %20 = OpConstantNull %v3float
-%_ptr_Function_v3float = OpTypePointer Function %v3float
     %float_1 = OpConstant %float 1
+         %21 = OpConstantComposite %v3float %float_1 %float_1 %float_1
+%_ptr_Function_v3float = OpTypePointer Function %v3float
+         %24 = OpConstantNull %v3float
 %_ptr_Function_float = OpTypePointer Function %float
-         %29 = OpTypeSampledImage %11
+         %30 = OpTypeSampledImage %11
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %35 = OpTypeFunction %v4float
+         %36 = OpTypeFunction %v4float
 %textureSampleLevel_c32df7 = OpFunction %void None %15
          %18 = OpLabel
-      %arg_2 = OpVariable %_ptr_Function_v3float Function %20
+      %arg_2 = OpVariable %_ptr_Function_v3float Function %24
       %arg_3 = OpVariable %_ptr_Function_float Function %8
         %res = OpVariable %_ptr_Function_v4float Function %5
-               OpStore %arg_2 %20
+               OpStore %arg_2 %21
                OpStore %arg_3 %float_1
-         %27 = OpLoad %14 %arg_1
-         %28 = OpLoad %11 %arg_0
-         %30 = OpSampledImage %29 %28 %27
-         %31 = OpLoad %v3float %arg_2
-         %32 = OpLoad %float %arg_3
-         %26 = OpImageSampleExplicitLod %v4float %30 %31 Lod %32
-               OpStore %res %26
+         %28 = OpLoad %14 %arg_1
+         %29 = OpLoad %11 %arg_0
+         %31 = OpSampledImage %30 %29 %28
+         %32 = OpLoad %v3float %arg_2
+         %33 = OpLoad %float %arg_3
+         %27 = OpImageSampleExplicitLod %v4float %31 %32 Lod %33
+               OpStore %res %27
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %35
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureSampleLevel_c32df7
+%vertex_main_inner = OpFunction %v4float None %36
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %textureSampleLevel_c32df7
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
-         %40 = OpLabel
-         %41 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %41
+         %41 = OpLabel
+         %42 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %42
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %15
-         %43 = OpLabel
-         %44 = OpFunctionCall %void %textureSampleLevel_c32df7
+         %44 = OpLabel
+         %45 = OpFunctionCall %void %textureSampleLevel_c32df7
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %15
-         %46 = OpLabel
-         %47 = OpFunctionCall %void %textureSampleLevel_c32df7
+         %47 = OpLabel
+         %48 = OpFunctionCall %void %textureSampleLevel_c32df7
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/c32df7.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSampleLevel/c32df7.wgsl.expected.wgsl
index 4620939..475f975 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/c32df7.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/c32df7.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(1) var arg_1 : sampler;
 
 fn textureSampleLevel_c32df7() {
-  var arg_2 = vec3<f32>();
+  var arg_2 = vec3<f32>(1.0f);
   var arg_3 = 1.0f;
   var res : vec4<f32> = textureSampleLevel(arg_0, arg_1, arg_2, arg_3);
 }
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/c6aca6.wgsl b/test/tint/builtins/gen/var/textureSampleLevel/c6aca6.wgsl
index 9c03fdc..20e1dda 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/c6aca6.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/c6aca6.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureSampleLevel(texture: texture_2d<f32>, sampler: sampler, coords: vec2<f32>, level: f32) -> vec4<f32>
 fn textureSampleLevel_c6aca6() {
-  var arg_2 = vec2<f32>();
+  var arg_2 = vec2<f32>(1.f);
   var arg_3 = 1.f;
   var res: vec4<f32> = textureSampleLevel(arg_0, arg_1, arg_2, arg_3);
 }
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/c6aca6.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/c6aca6.wgsl.expected.dxc.hlsl
index 812fee1..e8d8bba 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/c6aca6.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/c6aca6.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleLevel_c6aca6() {
-  float2 arg_2 = (0.0f).xx;
+  float2 arg_2 = (1.0f).xx;
   float arg_3 = 1.0f;
   float4 res = arg_0.SampleLevel(arg_1, arg_2, arg_3);
 }
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/c6aca6.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/c6aca6.wgsl.expected.fxc.hlsl
index 812fee1..e8d8bba 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/c6aca6.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/c6aca6.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleLevel_c6aca6() {
-  float2 arg_2 = (0.0f).xx;
+  float2 arg_2 = (1.0f).xx;
   float arg_3 = 1.0f;
   float4 res = arg_0.SampleLevel(arg_1, arg_2, arg_3);
 }
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/c6aca6.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureSampleLevel/c6aca6.wgsl.expected.glsl
index 7784b1e..8b40949 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/c6aca6.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/c6aca6.wgsl.expected.glsl
@@ -3,7 +3,7 @@
 uniform highp sampler2D arg_0_arg_1;
 
 void textureSampleLevel_c6aca6() {
-  vec2 arg_2 = vec2(0.0f);
+  vec2 arg_2 = vec2(1.0f);
   float arg_3 = 1.0f;
   vec4 res = textureLod(arg_0_arg_1, arg_2, arg_3);
 }
@@ -27,7 +27,7 @@
 uniform highp sampler2D arg_0_arg_1;
 
 void textureSampleLevel_c6aca6() {
-  vec2 arg_2 = vec2(0.0f);
+  vec2 arg_2 = vec2(1.0f);
   float arg_3 = 1.0f;
   vec4 res = textureLod(arg_0_arg_1, arg_2, arg_3);
 }
@@ -45,7 +45,7 @@
 uniform highp sampler2D arg_0_arg_1;
 
 void textureSampleLevel_c6aca6() {
-  vec2 arg_2 = vec2(0.0f);
+  vec2 arg_2 = vec2(1.0f);
   float arg_3 = 1.0f;
   vec4 res = textureLod(arg_0_arg_1, arg_2, arg_3);
 }
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/c6aca6.wgsl.expected.msl b/test/tint/builtins/gen/var/textureSampleLevel/c6aca6.wgsl.expected.msl
index 1f0f432..074bcb0 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/c6aca6.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/c6aca6.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureSampleLevel_c6aca6(texture2d<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float2 arg_2 = float2(0.0f);
+  float2 arg_2 = float2(1.0f);
   float arg_3 = 1.0f;
   float4 res = tint_symbol_1.sample(tint_symbol_2, arg_2, level(arg_3));
 }
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/c6aca6.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSampleLevel/c6aca6.wgsl.expected.spvasm
index f0f3069..5e35948 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/c6aca6.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSampleLevel/c6aca6.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 48
+; Bound: 49
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -45,48 +45,49 @@
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
-         %20 = OpConstantNull %v2float
-%_ptr_Function_v2float = OpTypePointer Function %v2float
     %float_1 = OpConstant %float 1
+         %21 = OpConstantComposite %v2float %float_1 %float_1
+%_ptr_Function_v2float = OpTypePointer Function %v2float
+         %24 = OpConstantNull %v2float
 %_ptr_Function_float = OpTypePointer Function %float
-         %29 = OpTypeSampledImage %11
+         %30 = OpTypeSampledImage %11
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %35 = OpTypeFunction %v4float
+         %36 = OpTypeFunction %v4float
 %textureSampleLevel_c6aca6 = OpFunction %void None %15
          %18 = OpLabel
-      %arg_2 = OpVariable %_ptr_Function_v2float Function %20
+      %arg_2 = OpVariable %_ptr_Function_v2float Function %24
       %arg_3 = OpVariable %_ptr_Function_float Function %8
         %res = OpVariable %_ptr_Function_v4float Function %5
-               OpStore %arg_2 %20
+               OpStore %arg_2 %21
                OpStore %arg_3 %float_1
-         %27 = OpLoad %14 %arg_1
-         %28 = OpLoad %11 %arg_0
-         %30 = OpSampledImage %29 %28 %27
-         %31 = OpLoad %v2float %arg_2
-         %32 = OpLoad %float %arg_3
-         %26 = OpImageSampleExplicitLod %v4float %30 %31 Lod %32
-               OpStore %res %26
+         %28 = OpLoad %14 %arg_1
+         %29 = OpLoad %11 %arg_0
+         %31 = OpSampledImage %30 %29 %28
+         %32 = OpLoad %v2float %arg_2
+         %33 = OpLoad %float %arg_3
+         %27 = OpImageSampleExplicitLod %v4float %31 %32 Lod %33
+               OpStore %res %27
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %35
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureSampleLevel_c6aca6
+%vertex_main_inner = OpFunction %v4float None %36
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %textureSampleLevel_c6aca6
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
-         %40 = OpLabel
-         %41 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %41
+         %41 = OpLabel
+         %42 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %42
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %15
-         %43 = OpLabel
-         %44 = OpFunctionCall %void %textureSampleLevel_c6aca6
+         %44 = OpLabel
+         %45 = OpFunctionCall %void %textureSampleLevel_c6aca6
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %15
-         %46 = OpLabel
-         %47 = OpFunctionCall %void %textureSampleLevel_c6aca6
+         %47 = OpLabel
+         %48 = OpFunctionCall %void %textureSampleLevel_c6aca6
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/c6aca6.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSampleLevel/c6aca6.wgsl.expected.wgsl
index 9fe9c9f..a7f1a9d 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/c6aca6.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/c6aca6.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(1) var arg_1 : sampler;
 
 fn textureSampleLevel_c6aca6() {
-  var arg_2 = vec2<f32>();
+  var arg_2 = vec2<f32>(1.0f);
   var arg_3 = 1.0f;
   var res : vec4<f32> = textureSampleLevel(arg_0, arg_1, arg_2, arg_3);
 }
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/cdfe0f.wgsl b/test/tint/builtins/gen/var/textureSampleLevel/cdfe0f.wgsl
index c4ea22f..d3e1c5b 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/cdfe0f.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/cdfe0f.wgsl
@@ -25,10 +25,10 @@
 
 // fn textureSampleLevel(texture: texture_depth_2d_array, sampler: sampler, coords: vec2<f32>, array_index: u32, level: u32, @const offset: vec2<i32>) -> f32
 fn textureSampleLevel_cdfe0f() {
-  var arg_2 = vec2<f32>();
+  var arg_2 = vec2<f32>(1.f);
   var arg_3 = 1u;
   var arg_4 = 1u;
-  const arg_5 = vec2<i32>();
+  const arg_5 = vec2<i32>(1i);
   var res: f32 = textureSampleLevel(arg_0, arg_1, arg_2, arg_3, arg_4, arg_5);
 }
 
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/cdfe0f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/cdfe0f.wgsl.expected.dxc.hlsl
index 7b8c192..d226209 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/cdfe0f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/cdfe0f.wgsl.expected.dxc.hlsl
@@ -2,10 +2,10 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleLevel_cdfe0f() {
-  float2 arg_2 = (0.0f).xx;
+  float2 arg_2 = (1.0f).xx;
   uint arg_3 = 1u;
   uint arg_4 = 1u;
-  float res = arg_0.SampleLevel(arg_1, float3(arg_2, float(arg_3)), arg_4, (0).xx).x;
+  float res = arg_0.SampleLevel(arg_1, float3(arg_2, float(arg_3)), arg_4, (1).xx).x;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/cdfe0f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/cdfe0f.wgsl.expected.fxc.hlsl
index 7b8c192..d226209 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/cdfe0f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/cdfe0f.wgsl.expected.fxc.hlsl
@@ -2,10 +2,10 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleLevel_cdfe0f() {
-  float2 arg_2 = (0.0f).xx;
+  float2 arg_2 = (1.0f).xx;
   uint arg_3 = 1u;
   uint arg_4 = 1u;
-  float res = arg_0.SampleLevel(arg_1, float3(arg_2, float(arg_3)), arg_4, (0).xx).x;
+  float res = arg_0.SampleLevel(arg_1, float3(arg_2, float(arg_3)), arg_4, (1).xx).x;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/cdfe0f.wgsl.expected.msl b/test/tint/builtins/gen/var/textureSampleLevel/cdfe0f.wgsl.expected.msl
index a56b58c..b572e16 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/cdfe0f.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/cdfe0f.wgsl.expected.msl
@@ -2,10 +2,10 @@
 
 using namespace metal;
 void textureSampleLevel_cdfe0f(depth2d_array<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float2 arg_2 = float2(0.0f);
+  float2 arg_2 = float2(1.0f);
   uint arg_3 = 1u;
   uint arg_4 = 1u;
-  float res = tint_symbol_1.sample(tint_symbol_2, arg_2, arg_3, level(arg_4), int2(0));
+  float res = tint_symbol_1.sample(tint_symbol_2, arg_2, arg_3, level(arg_4), int2(1));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/cdfe0f.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSampleLevel/cdfe0f.wgsl.expected.spvasm
index 60850e5..37ea878 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/cdfe0f.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSampleLevel/cdfe0f.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 63
+; Bound: 65
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -46,64 +46,66 @@
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
-         %20 = OpConstantNull %v2float
+    %float_1 = OpConstant %float 1
+         %21 = OpConstantComposite %v2float %float_1 %float_1
 %_ptr_Function_v2float = OpTypePointer Function %v2float
+         %24 = OpConstantNull %v2float
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %27 = OpConstantNull %uint
-         %33 = OpTypeSampledImage %11
+         %29 = OpConstantNull %uint
+         %35 = OpTypeSampledImage %11
     %v3float = OpTypeVector %float 3
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
-         %46 = OpConstantNull %v2int
+      %int_1 = OpConstant %int 1
+         %49 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_float = OpTypePointer Function %float
-         %49 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %52 = OpTypeFunction %v4float
 %textureSampleLevel_cdfe0f = OpFunction %void None %15
          %18 = OpLabel
-      %arg_2 = OpVariable %_ptr_Function_v2float Function %20
-      %arg_3 = OpVariable %_ptr_Function_uint Function %27
-      %arg_4 = OpVariable %_ptr_Function_uint Function %27
+      %arg_2 = OpVariable %_ptr_Function_v2float Function %24
+      %arg_3 = OpVariable %_ptr_Function_uint Function %29
+      %arg_4 = OpVariable %_ptr_Function_uint Function %29
         %res = OpVariable %_ptr_Function_float Function %8
-               OpStore %arg_2 %20
+               OpStore %arg_2 %21
                OpStore %arg_3 %uint_1
                OpStore %arg_4 %uint_1
-         %31 = OpLoad %14 %arg_1
-         %32 = OpLoad %11 %arg_0
-         %34 = OpSampledImage %33 %32 %31
-         %36 = OpLoad %v2float %arg_2
-         %37 = OpCompositeExtract %float %36 0
-         %38 = OpCompositeExtract %float %36 1
-         %40 = OpLoad %uint %arg_3
-         %39 = OpConvertUToF %float %40
-         %41 = OpCompositeConstruct %v3float %37 %38 %39
-         %43 = OpLoad %uint %arg_4
-         %42 = OpConvertSToF %float %43
-         %30 = OpImageSampleExplicitLod %v4float %34 %41 Lod|ConstOffset %42 %46
-         %29 = OpCompositeExtract %float %30 0
-               OpStore %res %29
+         %33 = OpLoad %14 %arg_1
+         %34 = OpLoad %11 %arg_0
+         %36 = OpSampledImage %35 %34 %33
+         %38 = OpLoad %v2float %arg_2
+         %39 = OpCompositeExtract %float %38 0
+         %40 = OpCompositeExtract %float %38 1
+         %42 = OpLoad %uint %arg_3
+         %41 = OpConvertUToF %float %42
+         %43 = OpCompositeConstruct %v3float %39 %40 %41
+         %45 = OpLoad %uint %arg_4
+         %44 = OpConvertSToF %float %45
+         %32 = OpImageSampleExplicitLod %v4float %36 %43 Lod|ConstOffset %44 %49
+         %31 = OpCompositeExtract %float %32 0
+               OpStore %res %31
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %49
-         %51 = OpLabel
-         %52 = OpFunctionCall %void %textureSampleLevel_cdfe0f
+%vertex_main_inner = OpFunction %v4float None %52
+         %54 = OpLabel
+         %55 = OpFunctionCall %void %textureSampleLevel_cdfe0f
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
-         %54 = OpLabel
-         %55 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %55
+         %57 = OpLabel
+         %58 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %58
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %15
-         %58 = OpLabel
-         %59 = OpFunctionCall %void %textureSampleLevel_cdfe0f
+         %60 = OpLabel
+         %61 = OpFunctionCall %void %textureSampleLevel_cdfe0f
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %15
-         %61 = OpLabel
-         %62 = OpFunctionCall %void %textureSampleLevel_cdfe0f
+         %63 = OpLabel
+         %64 = OpFunctionCall %void %textureSampleLevel_cdfe0f
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/cdfe0f.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSampleLevel/cdfe0f.wgsl.expected.wgsl
index c835321..9332bbe 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/cdfe0f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/cdfe0f.wgsl.expected.wgsl
@@ -3,10 +3,10 @@
 @group(1) @binding(1) var arg_1 : sampler;
 
 fn textureSampleLevel_cdfe0f() {
-  var arg_2 = vec2<f32>();
+  var arg_2 = vec2<f32>(1.0f);
   var arg_3 = 1u;
   var arg_4 = 1u;
-  const arg_5 = vec2<i32>();
+  const arg_5 = vec2<i32>(1i);
   var res : f32 = textureSampleLevel(arg_0, arg_1, arg_2, arg_3, arg_4, arg_5);
 }
 
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/dcbecb.wgsl b/test/tint/builtins/gen/var/textureSampleLevel/dcbecb.wgsl
index 288aa58..611aa36 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/dcbecb.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/dcbecb.wgsl
@@ -25,9 +25,9 @@
 
 // fn textureSampleLevel(texture: texture_3d<f32>, sampler: sampler, coords: vec3<f32>, level: f32, @const offset: vec3<i32>) -> vec4<f32>
 fn textureSampleLevel_dcbecb() {
-  var arg_2 = vec3<f32>();
+  var arg_2 = vec3<f32>(1.f);
   var arg_3 = 1.f;
-  const arg_4 = vec3<i32>();
+  const arg_4 = vec3<i32>(1i);
   var res: vec4<f32> = textureSampleLevel(arg_0, arg_1, arg_2, arg_3, arg_4);
 }
 
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/dcbecb.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/dcbecb.wgsl.expected.dxc.hlsl
index 1c3bad7..2da8cf6 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/dcbecb.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/dcbecb.wgsl.expected.dxc.hlsl
@@ -2,9 +2,9 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleLevel_dcbecb() {
-  float3 arg_2 = (0.0f).xxx;
+  float3 arg_2 = (1.0f).xxx;
   float arg_3 = 1.0f;
-  float4 res = arg_0.SampleLevel(arg_1, arg_2, arg_3, (0).xxx);
+  float4 res = arg_0.SampleLevel(arg_1, arg_2, arg_3, (1).xxx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/dcbecb.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/dcbecb.wgsl.expected.fxc.hlsl
index 1c3bad7..2da8cf6 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/dcbecb.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/dcbecb.wgsl.expected.fxc.hlsl
@@ -2,9 +2,9 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleLevel_dcbecb() {
-  float3 arg_2 = (0.0f).xxx;
+  float3 arg_2 = (1.0f).xxx;
   float arg_3 = 1.0f;
-  float4 res = arg_0.SampleLevel(arg_1, arg_2, arg_3, (0).xxx);
+  float4 res = arg_0.SampleLevel(arg_1, arg_2, arg_3, (1).xxx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/dcbecb.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureSampleLevel/dcbecb.wgsl.expected.glsl
index 3875ed6..e0c5e7e 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/dcbecb.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/dcbecb.wgsl.expected.glsl
@@ -3,9 +3,9 @@
 uniform highp sampler3D arg_0_arg_1;
 
 void textureSampleLevel_dcbecb() {
-  vec3 arg_2 = vec3(0.0f);
+  vec3 arg_2 = vec3(1.0f);
   float arg_3 = 1.0f;
-  vec4 res = textureLodOffset(arg_0_arg_1, arg_2, arg_3, ivec3(0));
+  vec4 res = textureLodOffset(arg_0_arg_1, arg_2, arg_3, ivec3(1));
 }
 
 vec4 vertex_main() {
@@ -27,9 +27,9 @@
 uniform highp sampler3D arg_0_arg_1;
 
 void textureSampleLevel_dcbecb() {
-  vec3 arg_2 = vec3(0.0f);
+  vec3 arg_2 = vec3(1.0f);
   float arg_3 = 1.0f;
-  vec4 res = textureLodOffset(arg_0_arg_1, arg_2, arg_3, ivec3(0));
+  vec4 res = textureLodOffset(arg_0_arg_1, arg_2, arg_3, ivec3(1));
 }
 
 void fragment_main() {
@@ -45,9 +45,9 @@
 uniform highp sampler3D arg_0_arg_1;
 
 void textureSampleLevel_dcbecb() {
-  vec3 arg_2 = vec3(0.0f);
+  vec3 arg_2 = vec3(1.0f);
   float arg_3 = 1.0f;
-  vec4 res = textureLodOffset(arg_0_arg_1, arg_2, arg_3, ivec3(0));
+  vec4 res = textureLodOffset(arg_0_arg_1, arg_2, arg_3, ivec3(1));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/dcbecb.wgsl.expected.msl b/test/tint/builtins/gen/var/textureSampleLevel/dcbecb.wgsl.expected.msl
index 9068307..5512f6a 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/dcbecb.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/dcbecb.wgsl.expected.msl
@@ -2,9 +2,9 @@
 
 using namespace metal;
 void textureSampleLevel_dcbecb(texture3d<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float3 arg_2 = float3(0.0f);
+  float3 arg_2 = float3(1.0f);
   float arg_3 = 1.0f;
-  float4 res = tint_symbol_1.sample(tint_symbol_2, arg_2, level(arg_3), int3(0));
+  float4 res = tint_symbol_1.sample(tint_symbol_2, arg_2, level(arg_3), int3(1));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/dcbecb.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSampleLevel/dcbecb.wgsl.expected.spvasm
index 59538e7..f3ec385 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/dcbecb.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSampleLevel/dcbecb.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 51
+; Bound: 53
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -45,51 +45,53 @@
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
     %v3float = OpTypeVector %float 3
-         %20 = OpConstantNull %v3float
-%_ptr_Function_v3float = OpTypePointer Function %v3float
     %float_1 = OpConstant %float 1
+         %21 = OpConstantComposite %v3float %float_1 %float_1 %float_1
+%_ptr_Function_v3float = OpTypePointer Function %v3float
+         %24 = OpConstantNull %v3float
 %_ptr_Function_float = OpTypePointer Function %float
-         %29 = OpTypeSampledImage %11
+         %30 = OpTypeSampledImage %11
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
-         %35 = OpConstantNull %v3int
+      %int_1 = OpConstant %int 1
+         %37 = OpConstantComposite %v3int %int_1 %int_1 %int_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %38 = OpTypeFunction %v4float
+         %40 = OpTypeFunction %v4float
 %textureSampleLevel_dcbecb = OpFunction %void None %15
          %18 = OpLabel
-      %arg_2 = OpVariable %_ptr_Function_v3float Function %20
+      %arg_2 = OpVariable %_ptr_Function_v3float Function %24
       %arg_3 = OpVariable %_ptr_Function_float Function %8
         %res = OpVariable %_ptr_Function_v4float Function %5
-               OpStore %arg_2 %20
+               OpStore %arg_2 %21
                OpStore %arg_3 %float_1
-         %27 = OpLoad %14 %arg_1
-         %28 = OpLoad %11 %arg_0
-         %30 = OpSampledImage %29 %28 %27
-         %31 = OpLoad %v3float %arg_2
-         %32 = OpLoad %float %arg_3
-         %26 = OpImageSampleExplicitLod %v4float %30 %31 Lod|ConstOffset %32 %35
-               OpStore %res %26
+         %28 = OpLoad %14 %arg_1
+         %29 = OpLoad %11 %arg_0
+         %31 = OpSampledImage %30 %29 %28
+         %32 = OpLoad %v3float %arg_2
+         %33 = OpLoad %float %arg_3
+         %27 = OpImageSampleExplicitLod %v4float %31 %32 Lod|ConstOffset %33 %37
+               OpStore %res %27
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %38
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureSampleLevel_dcbecb
+%vertex_main_inner = OpFunction %v4float None %40
+         %42 = OpLabel
+         %43 = OpFunctionCall %void %textureSampleLevel_dcbecb
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
-         %43 = OpLabel
-         %44 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %44
+         %45 = OpLabel
+         %46 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %46
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %15
-         %46 = OpLabel
-         %47 = OpFunctionCall %void %textureSampleLevel_dcbecb
+         %48 = OpLabel
+         %49 = OpFunctionCall %void %textureSampleLevel_dcbecb
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %15
-         %49 = OpLabel
-         %50 = OpFunctionCall %void %textureSampleLevel_dcbecb
+         %51 = OpLabel
+         %52 = OpFunctionCall %void %textureSampleLevel_dcbecb
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/dcbecb.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSampleLevel/dcbecb.wgsl.expected.wgsl
index 0169878..0bb9522 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/dcbecb.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/dcbecb.wgsl.expected.wgsl
@@ -3,9 +3,9 @@
 @group(1) @binding(1) var arg_1 : sampler;
 
 fn textureSampleLevel_dcbecb() {
-  var arg_2 = vec3<f32>();
+  var arg_2 = vec3<f32>(1.0f);
   var arg_3 = 1.0f;
-  const arg_4 = vec3<i32>();
+  const arg_4 = vec3<i32>(1i);
   var res : vec4<f32> = textureSampleLevel(arg_0, arg_1, arg_2, arg_3, arg_4);
 }
 
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/e6ce9e.wgsl b/test/tint/builtins/gen/var/textureSampleLevel/e6ce9e.wgsl
index 284904f..4aa6650 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/e6ce9e.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/e6ce9e.wgsl
@@ -25,10 +25,10 @@
 
 // fn textureSampleLevel(texture: texture_depth_2d_array, sampler: sampler, coords: vec2<f32>, array_index: u32, level: i32, @const offset: vec2<i32>) -> f32
 fn textureSampleLevel_e6ce9e() {
-  var arg_2 = vec2<f32>();
+  var arg_2 = vec2<f32>(1.f);
   var arg_3 = 1u;
   var arg_4 = 1i;
-  const arg_5 = vec2<i32>();
+  const arg_5 = vec2<i32>(1i);
   var res: f32 = textureSampleLevel(arg_0, arg_1, arg_2, arg_3, arg_4, arg_5);
 }
 
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/e6ce9e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/e6ce9e.wgsl.expected.dxc.hlsl
index 416f7c1..b836f82 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/e6ce9e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/e6ce9e.wgsl.expected.dxc.hlsl
@@ -2,10 +2,10 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleLevel_e6ce9e() {
-  float2 arg_2 = (0.0f).xx;
+  float2 arg_2 = (1.0f).xx;
   uint arg_3 = 1u;
   int arg_4 = 1;
-  float res = arg_0.SampleLevel(arg_1, float3(arg_2, float(arg_3)), arg_4, (0).xx).x;
+  float res = arg_0.SampleLevel(arg_1, float3(arg_2, float(arg_3)), arg_4, (1).xx).x;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/e6ce9e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/e6ce9e.wgsl.expected.fxc.hlsl
index 416f7c1..b836f82 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/e6ce9e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/e6ce9e.wgsl.expected.fxc.hlsl
@@ -2,10 +2,10 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleLevel_e6ce9e() {
-  float2 arg_2 = (0.0f).xx;
+  float2 arg_2 = (1.0f).xx;
   uint arg_3 = 1u;
   int arg_4 = 1;
-  float res = arg_0.SampleLevel(arg_1, float3(arg_2, float(arg_3)), arg_4, (0).xx).x;
+  float res = arg_0.SampleLevel(arg_1, float3(arg_2, float(arg_3)), arg_4, (1).xx).x;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/e6ce9e.wgsl.expected.msl b/test/tint/builtins/gen/var/textureSampleLevel/e6ce9e.wgsl.expected.msl
index d4cb9c0..222b2c3 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/e6ce9e.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/e6ce9e.wgsl.expected.msl
@@ -2,10 +2,10 @@
 
 using namespace metal;
 void textureSampleLevel_e6ce9e(depth2d_array<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float2 arg_2 = float2(0.0f);
+  float2 arg_2 = float2(1.0f);
   uint arg_3 = 1u;
   int arg_4 = 1;
-  float res = tint_symbol_1.sample(tint_symbol_2, arg_2, arg_3, level(arg_4), int2(0));
+  float res = tint_symbol_1.sample(tint_symbol_2, arg_2, arg_3, level(arg_4), int2(1));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/e6ce9e.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSampleLevel/e6ce9e.wgsl.expected.spvasm
index 55a16bd..ea6785b 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/e6ce9e.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSampleLevel/e6ce9e.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 66
+; Bound: 67
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -46,67 +46,68 @@
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
-         %20 = OpConstantNull %v2float
+    %float_1 = OpConstant %float 1
+         %21 = OpConstantComposite %v2float %float_1 %float_1
 %_ptr_Function_v2float = OpTypePointer Function %v2float
+         %24 = OpConstantNull %v2float
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %27 = OpConstantNull %uint
+         %29 = OpConstantNull %uint
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
-         %32 = OpConstantNull %int
-         %37 = OpTypeSampledImage %11
+         %34 = OpConstantNull %int
+         %39 = OpTypeSampledImage %11
     %v3float = OpTypeVector %float 3
       %v2int = OpTypeVector %int 2
-         %49 = OpConstantNull %v2int
+         %51 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_float = OpTypePointer Function %float
-         %52 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %54 = OpTypeFunction %v4float
 %textureSampleLevel_e6ce9e = OpFunction %void None %15
          %18 = OpLabel
-      %arg_2 = OpVariable %_ptr_Function_v2float Function %20
-      %arg_3 = OpVariable %_ptr_Function_uint Function %27
-      %arg_4 = OpVariable %_ptr_Function_int Function %32
+      %arg_2 = OpVariable %_ptr_Function_v2float Function %24
+      %arg_3 = OpVariable %_ptr_Function_uint Function %29
+      %arg_4 = OpVariable %_ptr_Function_int Function %34
         %res = OpVariable %_ptr_Function_float Function %8
-               OpStore %arg_2 %20
+               OpStore %arg_2 %21
                OpStore %arg_3 %uint_1
                OpStore %arg_4 %int_1
-         %35 = OpLoad %14 %arg_1
-         %36 = OpLoad %11 %arg_0
-         %38 = OpSampledImage %37 %36 %35
-         %40 = OpLoad %v2float %arg_2
-         %41 = OpCompositeExtract %float %40 0
-         %42 = OpCompositeExtract %float %40 1
-         %44 = OpLoad %uint %arg_3
-         %43 = OpConvertUToF %float %44
-         %45 = OpCompositeConstruct %v3float %41 %42 %43
-         %47 = OpLoad %int %arg_4
-         %46 = OpConvertSToF %float %47
-         %34 = OpImageSampleExplicitLod %v4float %38 %45 Lod|ConstOffset %46 %49
-         %33 = OpCompositeExtract %float %34 0
-               OpStore %res %33
+         %37 = OpLoad %14 %arg_1
+         %38 = OpLoad %11 %arg_0
+         %40 = OpSampledImage %39 %38 %37
+         %42 = OpLoad %v2float %arg_2
+         %43 = OpCompositeExtract %float %42 0
+         %44 = OpCompositeExtract %float %42 1
+         %46 = OpLoad %uint %arg_3
+         %45 = OpConvertUToF %float %46
+         %47 = OpCompositeConstruct %v3float %43 %44 %45
+         %49 = OpLoad %int %arg_4
+         %48 = OpConvertSToF %float %49
+         %36 = OpImageSampleExplicitLod %v4float %40 %47 Lod|ConstOffset %48 %51
+         %35 = OpCompositeExtract %float %36 0
+               OpStore %res %35
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %52
-         %54 = OpLabel
-         %55 = OpFunctionCall %void %textureSampleLevel_e6ce9e
+%vertex_main_inner = OpFunction %v4float None %54
+         %56 = OpLabel
+         %57 = OpFunctionCall %void %textureSampleLevel_e6ce9e
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
-         %57 = OpLabel
-         %58 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %58
+         %59 = OpLabel
+         %60 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %60
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %15
-         %61 = OpLabel
-         %62 = OpFunctionCall %void %textureSampleLevel_e6ce9e
+         %62 = OpLabel
+         %63 = OpFunctionCall %void %textureSampleLevel_e6ce9e
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %15
-         %64 = OpLabel
-         %65 = OpFunctionCall %void %textureSampleLevel_e6ce9e
+         %65 = OpLabel
+         %66 = OpFunctionCall %void %textureSampleLevel_e6ce9e
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/e6ce9e.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSampleLevel/e6ce9e.wgsl.expected.wgsl
index c1ddb35..724e8e3 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/e6ce9e.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/e6ce9e.wgsl.expected.wgsl
@@ -3,10 +3,10 @@
 @group(1) @binding(1) var arg_1 : sampler;
 
 fn textureSampleLevel_e6ce9e() {
-  var arg_2 = vec2<f32>();
+  var arg_2 = vec2<f32>(1.0f);
   var arg_3 = 1u;
   var arg_4 = 1i;
-  const arg_5 = vec2<i32>();
+  const arg_5 = vec2<i32>(1i);
   var res : f32 = textureSampleLevel(arg_0, arg_1, arg_2, arg_3, arg_4, arg_5);
 }
 
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/f3b2c8.wgsl b/test/tint/builtins/gen/var/textureSampleLevel/f3b2c8.wgsl
index 438cfbf..3392a3e 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/f3b2c8.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/f3b2c8.wgsl
@@ -25,9 +25,9 @@
 
 // fn textureSampleLevel(texture: texture_depth_2d, sampler: sampler, coords: vec2<f32>, level: u32, @const offset: vec2<i32>) -> f32
 fn textureSampleLevel_f3b2c8() {
-  var arg_2 = vec2<f32>();
+  var arg_2 = vec2<f32>(1.f);
   var arg_3 = 1u;
-  const arg_4 = vec2<i32>();
+  const arg_4 = vec2<i32>(1i);
   var res: f32 = textureSampleLevel(arg_0, arg_1, arg_2, arg_3, arg_4);
 }
 
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/f3b2c8.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/f3b2c8.wgsl.expected.dxc.hlsl
index 86d0fd6..84069c6 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/f3b2c8.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/f3b2c8.wgsl.expected.dxc.hlsl
@@ -2,9 +2,9 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleLevel_f3b2c8() {
-  float2 arg_2 = (0.0f).xx;
+  float2 arg_2 = (1.0f).xx;
   uint arg_3 = 1u;
-  float res = arg_0.SampleLevel(arg_1, arg_2, arg_3, (0).xx).x;
+  float res = arg_0.SampleLevel(arg_1, arg_2, arg_3, (1).xx).x;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/f3b2c8.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/f3b2c8.wgsl.expected.fxc.hlsl
index 86d0fd6..84069c6 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/f3b2c8.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/f3b2c8.wgsl.expected.fxc.hlsl
@@ -2,9 +2,9 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleLevel_f3b2c8() {
-  float2 arg_2 = (0.0f).xx;
+  float2 arg_2 = (1.0f).xx;
   uint arg_3 = 1u;
-  float res = arg_0.SampleLevel(arg_1, arg_2, arg_3, (0).xx).x;
+  float res = arg_0.SampleLevel(arg_1, arg_2, arg_3, (1).xx).x;
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/f3b2c8.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureSampleLevel/f3b2c8.wgsl.expected.glsl
index b75e321..c5343b9 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/f3b2c8.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/f3b2c8.wgsl.expected.glsl
@@ -3,9 +3,9 @@
 uniform highp sampler2DShadow arg_0_arg_1;
 
 void textureSampleLevel_f3b2c8() {
-  vec2 arg_2 = vec2(0.0f);
+  vec2 arg_2 = vec2(1.0f);
   uint arg_3 = 1u;
-  float res = textureLodOffset(arg_0_arg_1, vec3(arg_2, 0.0f), float(arg_3), ivec2(0));
+  float res = textureLodOffset(arg_0_arg_1, vec3(arg_2, 0.0f), float(arg_3), ivec2(1));
 }
 
 vec4 vertex_main() {
@@ -27,9 +27,9 @@
 uniform highp sampler2DShadow arg_0_arg_1;
 
 void textureSampleLevel_f3b2c8() {
-  vec2 arg_2 = vec2(0.0f);
+  vec2 arg_2 = vec2(1.0f);
   uint arg_3 = 1u;
-  float res = textureLodOffset(arg_0_arg_1, vec3(arg_2, 0.0f), float(arg_3), ivec2(0));
+  float res = textureLodOffset(arg_0_arg_1, vec3(arg_2, 0.0f), float(arg_3), ivec2(1));
 }
 
 void fragment_main() {
@@ -45,9 +45,9 @@
 uniform highp sampler2DShadow arg_0_arg_1;
 
 void textureSampleLevel_f3b2c8() {
-  vec2 arg_2 = vec2(0.0f);
+  vec2 arg_2 = vec2(1.0f);
   uint arg_3 = 1u;
-  float res = textureLodOffset(arg_0_arg_1, vec3(arg_2, 0.0f), float(arg_3), ivec2(0));
+  float res = textureLodOffset(arg_0_arg_1, vec3(arg_2, 0.0f), float(arg_3), ivec2(1));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/f3b2c8.wgsl.expected.msl b/test/tint/builtins/gen/var/textureSampleLevel/f3b2c8.wgsl.expected.msl
index 71b03c8..3be2b49 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/f3b2c8.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/f3b2c8.wgsl.expected.msl
@@ -2,9 +2,9 @@
 
 using namespace metal;
 void textureSampleLevel_f3b2c8(depth2d<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float2 arg_2 = float2(0.0f);
+  float2 arg_2 = float2(1.0f);
   uint arg_3 = 1u;
-  float res = tint_symbol_1.sample(tint_symbol_2, arg_2, level(arg_3), int2(0));
+  float res = tint_symbol_1.sample(tint_symbol_2, arg_2, level(arg_3), int2(1));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/f3b2c8.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSampleLevel/f3b2c8.wgsl.expected.spvasm
index d36a678..8d13036 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/f3b2c8.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSampleLevel/f3b2c8.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 56
+; Bound: 58
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -45,56 +45,58 @@
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
-         %20 = OpConstantNull %v2float
+    %float_1 = OpConstant %float 1
+         %21 = OpConstantComposite %v2float %float_1 %float_1
 %_ptr_Function_v2float = OpTypePointer Function %v2float
+         %24 = OpConstantNull %v2float
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %27 = OpConstantNull %uint
-         %32 = OpTypeSampledImage %11
+         %29 = OpConstantNull %uint
+         %34 = OpTypeSampledImage %11
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
-         %39 = OpConstantNull %v2int
+      %int_1 = OpConstant %int 1
+         %42 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_float = OpTypePointer Function %float
-         %42 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %45 = OpTypeFunction %v4float
 %textureSampleLevel_f3b2c8 = OpFunction %void None %15
          %18 = OpLabel
-      %arg_2 = OpVariable %_ptr_Function_v2float Function %20
-      %arg_3 = OpVariable %_ptr_Function_uint Function %27
+      %arg_2 = OpVariable %_ptr_Function_v2float Function %24
+      %arg_3 = OpVariable %_ptr_Function_uint Function %29
         %res = OpVariable %_ptr_Function_float Function %8
-               OpStore %arg_2 %20
+               OpStore %arg_2 %21
                OpStore %arg_3 %uint_1
-         %30 = OpLoad %14 %arg_1
-         %31 = OpLoad %11 %arg_0
-         %33 = OpSampledImage %32 %31 %30
-         %34 = OpLoad %v2float %arg_2
-         %36 = OpLoad %uint %arg_3
-         %35 = OpConvertSToF %float %36
-         %29 = OpImageSampleExplicitLod %v4float %33 %34 Lod|ConstOffset %35 %39
-         %28 = OpCompositeExtract %float %29 0
-               OpStore %res %28
+         %32 = OpLoad %14 %arg_1
+         %33 = OpLoad %11 %arg_0
+         %35 = OpSampledImage %34 %33 %32
+         %36 = OpLoad %v2float %arg_2
+         %38 = OpLoad %uint %arg_3
+         %37 = OpConvertSToF %float %38
+         %31 = OpImageSampleExplicitLod %v4float %35 %36 Lod|ConstOffset %37 %42
+         %30 = OpCompositeExtract %float %31 0
+               OpStore %res %30
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %42
-         %44 = OpLabel
-         %45 = OpFunctionCall %void %textureSampleLevel_f3b2c8
+%vertex_main_inner = OpFunction %v4float None %45
+         %47 = OpLabel
+         %48 = OpFunctionCall %void %textureSampleLevel_f3b2c8
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
-         %47 = OpLabel
-         %48 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %48
+         %50 = OpLabel
+         %51 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %51
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %15
-         %51 = OpLabel
-         %52 = OpFunctionCall %void %textureSampleLevel_f3b2c8
+         %53 = OpLabel
+         %54 = OpFunctionCall %void %textureSampleLevel_f3b2c8
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %15
-         %54 = OpLabel
-         %55 = OpFunctionCall %void %textureSampleLevel_f3b2c8
+         %56 = OpLabel
+         %57 = OpFunctionCall %void %textureSampleLevel_f3b2c8
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/f3b2c8.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSampleLevel/f3b2c8.wgsl.expected.wgsl
index 7f7484a..b8c2a96 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/f3b2c8.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/f3b2c8.wgsl.expected.wgsl
@@ -3,9 +3,9 @@
 @group(1) @binding(1) var arg_1 : sampler;
 
 fn textureSampleLevel_f3b2c8() {
-  var arg_2 = vec2<f32>();
+  var arg_2 = vec2<f32>(1.0f);
   var arg_3 = 1u;
-  const arg_4 = vec2<i32>();
+  const arg_4 = vec2<i32>(1i);
   var res : f32 = textureSampleLevel(arg_0, arg_1, arg_2, arg_3, arg_4);
 }
 
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/faa6d7.wgsl b/test/tint/builtins/gen/var/textureSampleLevel/faa6d7.wgsl
index 4589577..711b6a6 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/faa6d7.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/faa6d7.wgsl
@@ -25,10 +25,10 @@
 
 // fn textureSampleLevel(texture: texture_2d_array<f32>, sampler: sampler, coords: vec2<f32>, array_index: u32, level: f32, @const offset: vec2<i32>) -> vec4<f32>
 fn textureSampleLevel_faa6d7() {
-  var arg_2 = vec2<f32>();
+  var arg_2 = vec2<f32>(1.f);
   var arg_3 = 1u;
   var arg_4 = 1.f;
-  const arg_5 = vec2<i32>();
+  const arg_5 = vec2<i32>(1i);
   var res: vec4<f32> = textureSampleLevel(arg_0, arg_1, arg_2, arg_3, arg_4, arg_5);
 }
 
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/faa6d7.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/faa6d7.wgsl.expected.dxc.hlsl
index 9aa6734..f6a9777 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/faa6d7.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/faa6d7.wgsl.expected.dxc.hlsl
@@ -2,10 +2,10 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleLevel_faa6d7() {
-  float2 arg_2 = (0.0f).xx;
+  float2 arg_2 = (1.0f).xx;
   uint arg_3 = 1u;
   float arg_4 = 1.0f;
-  float4 res = arg_0.SampleLevel(arg_1, float3(arg_2, float(arg_3)), arg_4, (0).xx);
+  float4 res = arg_0.SampleLevel(arg_1, float3(arg_2, float(arg_3)), arg_4, (1).xx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/faa6d7.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/faa6d7.wgsl.expected.fxc.hlsl
index 9aa6734..f6a9777 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/faa6d7.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/faa6d7.wgsl.expected.fxc.hlsl
@@ -2,10 +2,10 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleLevel_faa6d7() {
-  float2 arg_2 = (0.0f).xx;
+  float2 arg_2 = (1.0f).xx;
   uint arg_3 = 1u;
   float arg_4 = 1.0f;
-  float4 res = arg_0.SampleLevel(arg_1, float3(arg_2, float(arg_3)), arg_4, (0).xx);
+  float4 res = arg_0.SampleLevel(arg_1, float3(arg_2, float(arg_3)), arg_4, (1).xx);
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/faa6d7.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureSampleLevel/faa6d7.wgsl.expected.glsl
index 28b00f3..cf4331e 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/faa6d7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/faa6d7.wgsl.expected.glsl
@@ -3,10 +3,10 @@
 uniform highp sampler2DArray arg_0_arg_1;
 
 void textureSampleLevel_faa6d7() {
-  vec2 arg_2 = vec2(0.0f);
+  vec2 arg_2 = vec2(1.0f);
   uint arg_3 = 1u;
   float arg_4 = 1.0f;
-  vec4 res = textureLodOffset(arg_0_arg_1, vec3(arg_2, float(arg_3)), arg_4, ivec2(0));
+  vec4 res = textureLodOffset(arg_0_arg_1, vec3(arg_2, float(arg_3)), arg_4, ivec2(1));
 }
 
 vec4 vertex_main() {
@@ -28,10 +28,10 @@
 uniform highp sampler2DArray arg_0_arg_1;
 
 void textureSampleLevel_faa6d7() {
-  vec2 arg_2 = vec2(0.0f);
+  vec2 arg_2 = vec2(1.0f);
   uint arg_3 = 1u;
   float arg_4 = 1.0f;
-  vec4 res = textureLodOffset(arg_0_arg_1, vec3(arg_2, float(arg_3)), arg_4, ivec2(0));
+  vec4 res = textureLodOffset(arg_0_arg_1, vec3(arg_2, float(arg_3)), arg_4, ivec2(1));
 }
 
 void fragment_main() {
@@ -47,10 +47,10 @@
 uniform highp sampler2DArray arg_0_arg_1;
 
 void textureSampleLevel_faa6d7() {
-  vec2 arg_2 = vec2(0.0f);
+  vec2 arg_2 = vec2(1.0f);
   uint arg_3 = 1u;
   float arg_4 = 1.0f;
-  vec4 res = textureLodOffset(arg_0_arg_1, vec3(arg_2, float(arg_3)), arg_4, ivec2(0));
+  vec4 res = textureLodOffset(arg_0_arg_1, vec3(arg_2, float(arg_3)), arg_4, ivec2(1));
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/faa6d7.wgsl.expected.msl b/test/tint/builtins/gen/var/textureSampleLevel/faa6d7.wgsl.expected.msl
index 04351fe..04ccb6e 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/faa6d7.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/faa6d7.wgsl.expected.msl
@@ -2,10 +2,10 @@
 
 using namespace metal;
 void textureSampleLevel_faa6d7(texture2d_array<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float2 arg_2 = float2(0.0f);
+  float2 arg_2 = float2(1.0f);
   uint arg_3 = 1u;
   float arg_4 = 1.0f;
-  float4 res = tint_symbol_1.sample(tint_symbol_2, arg_2, arg_3, level(arg_4), int2(0));
+  float4 res = tint_symbol_1.sample(tint_symbol_2, arg_2, arg_3, level(arg_4), int2(1));
 }
 
 struct tint_symbol {
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/faa6d7.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSampleLevel/faa6d7.wgsl.expected.spvasm
index 4329382..c43e66d 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/faa6d7.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSampleLevel/faa6d7.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 62
+; Bound: 64
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -46,63 +46,65 @@
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
-         %20 = OpConstantNull %v2float
+    %float_1 = OpConstant %float 1
+         %21 = OpConstantComposite %v2float %float_1 %float_1
 %_ptr_Function_v2float = OpTypePointer Function %v2float
+         %24 = OpConstantNull %v2float
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %27 = OpConstantNull %uint
-    %float_1 = OpConstant %float 1
+         %29 = OpConstantNull %uint
 %_ptr_Function_float = OpTypePointer Function %float
-         %34 = OpTypeSampledImage %11
+         %35 = OpTypeSampledImage %11
     %v3float = OpTypeVector %float 3
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
-         %46 = OpConstantNull %v2int
+      %int_1 = OpConstant %int 1
+         %48 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %49 = OpTypeFunction %v4float
+         %51 = OpTypeFunction %v4float
 %textureSampleLevel_faa6d7 = OpFunction %void None %15
          %18 = OpLabel
-      %arg_2 = OpVariable %_ptr_Function_v2float Function %20
-      %arg_3 = OpVariable %_ptr_Function_uint Function %27
+      %arg_2 = OpVariable %_ptr_Function_v2float Function %24
+      %arg_3 = OpVariable %_ptr_Function_uint Function %29
       %arg_4 = OpVariable %_ptr_Function_float Function %8
         %res = OpVariable %_ptr_Function_v4float Function %5
-               OpStore %arg_2 %20
+               OpStore %arg_2 %21
                OpStore %arg_3 %uint_1
                OpStore %arg_4 %float_1
-         %32 = OpLoad %14 %arg_1
-         %33 = OpLoad %11 %arg_0
-         %35 = OpSampledImage %34 %33 %32
-         %37 = OpLoad %v2float %arg_2
-         %38 = OpCompositeExtract %float %37 0
-         %39 = OpCompositeExtract %float %37 1
-         %41 = OpLoad %uint %arg_3
-         %40 = OpConvertUToF %float %41
-         %42 = OpCompositeConstruct %v3float %38 %39 %40
-         %43 = OpLoad %float %arg_4
-         %31 = OpImageSampleExplicitLod %v4float %35 %42 Lod|ConstOffset %43 %46
-               OpStore %res %31
+         %33 = OpLoad %14 %arg_1
+         %34 = OpLoad %11 %arg_0
+         %36 = OpSampledImage %35 %34 %33
+         %38 = OpLoad %v2float %arg_2
+         %39 = OpCompositeExtract %float %38 0
+         %40 = OpCompositeExtract %float %38 1
+         %42 = OpLoad %uint %arg_3
+         %41 = OpConvertUToF %float %42
+         %43 = OpCompositeConstruct %v3float %39 %40 %41
+         %44 = OpLoad %float %arg_4
+         %32 = OpImageSampleExplicitLod %v4float %36 %43 Lod|ConstOffset %44 %48
+               OpStore %res %32
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %49
-         %51 = OpLabel
-         %52 = OpFunctionCall %void %textureSampleLevel_faa6d7
+%vertex_main_inner = OpFunction %v4float None %51
+         %53 = OpLabel
+         %54 = OpFunctionCall %void %textureSampleLevel_faa6d7
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
-         %54 = OpLabel
-         %55 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %55
+         %56 = OpLabel
+         %57 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %57
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %15
-         %57 = OpLabel
-         %58 = OpFunctionCall %void %textureSampleLevel_faa6d7
+         %59 = OpLabel
+         %60 = OpFunctionCall %void %textureSampleLevel_faa6d7
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %15
-         %60 = OpLabel
-         %61 = OpFunctionCall %void %textureSampleLevel_faa6d7
+         %62 = OpLabel
+         %63 = OpFunctionCall %void %textureSampleLevel_faa6d7
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/faa6d7.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSampleLevel/faa6d7.wgsl.expected.wgsl
index b9a723f..aa0a6a9 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/faa6d7.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/faa6d7.wgsl.expected.wgsl
@@ -3,10 +3,10 @@
 @group(1) @binding(1) var arg_1 : sampler;
 
 fn textureSampleLevel_faa6d7() {
-  var arg_2 = vec2<f32>();
+  var arg_2 = vec2<f32>(1.0f);
   var arg_3 = 1u;
   var arg_4 = 1.0f;
-  const arg_5 = vec2<i32>();
+  const arg_5 = vec2<i32>(1i);
   var res : vec4<f32> = textureSampleLevel(arg_0, arg_1, arg_2, arg_3, arg_4, arg_5);
 }
 
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/ff11bc.wgsl b/test/tint/builtins/gen/var/textureSampleLevel/ff11bc.wgsl
index 013b132..4b45581 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/ff11bc.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/ff11bc.wgsl
@@ -25,7 +25,7 @@
 
 // fn textureSampleLevel(texture: texture_depth_cube_array, sampler: sampler, coords: vec3<f32>, array_index: u32, level: i32) -> f32
 fn textureSampleLevel_ff11bc() {
-  var arg_2 = vec3<f32>();
+  var arg_2 = vec3<f32>(1.f);
   var arg_3 = 1u;
   var arg_4 = 1i;
   var res: f32 = textureSampleLevel(arg_0, arg_1, arg_2, arg_3, arg_4);
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/ff11bc.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/ff11bc.wgsl.expected.dxc.hlsl
index fc2da63..a185c7e 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/ff11bc.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/ff11bc.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleLevel_ff11bc() {
-  float3 arg_2 = (0.0f).xxx;
+  float3 arg_2 = (1.0f).xxx;
   uint arg_3 = 1u;
   int arg_4 = 1;
   float res = arg_0.SampleLevel(arg_1, float4(arg_2, float(arg_3)), arg_4).x;
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/ff11bc.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/ff11bc.wgsl.expected.fxc.hlsl
index fc2da63..a185c7e 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/ff11bc.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/ff11bc.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 SamplerState arg_1 : register(s1, space1);
 
 void textureSampleLevel_ff11bc() {
-  float3 arg_2 = (0.0f).xxx;
+  float3 arg_2 = (1.0f).xxx;
   uint arg_3 = 1u;
   int arg_4 = 1;
   float res = arg_0.SampleLevel(arg_1, float4(arg_2, float(arg_3)), arg_4).x;
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/ff11bc.wgsl.expected.msl b/test/tint/builtins/gen/var/textureSampleLevel/ff11bc.wgsl.expected.msl
index a6166a0..a6909d5 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/ff11bc.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/ff11bc.wgsl.expected.msl
@@ -2,7 +2,7 @@
 
 using namespace metal;
 void textureSampleLevel_ff11bc(depthcube_array<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
-  float3 arg_2 = float3(0.0f);
+  float3 arg_2 = float3(1.0f);
   uint arg_3 = 1u;
   int arg_4 = 1;
   float res = tint_symbol_1.sample(tint_symbol_2, arg_2, arg_3, level(arg_4));
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/ff11bc.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSampleLevel/ff11bc.wgsl.expected.spvasm
index 65b80ac..ce0b555 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/ff11bc.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSampleLevel/ff11bc.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 64
+; Bound: 65
 ; Schema: 0
                OpCapability Shader
                OpCapability SampledCubeArray
@@ -47,65 +47,66 @@
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
     %v3float = OpTypeVector %float 3
-         %20 = OpConstantNull %v3float
+    %float_1 = OpConstant %float 1
+         %21 = OpConstantComposite %v3float %float_1 %float_1 %float_1
 %_ptr_Function_v3float = OpTypePointer Function %v3float
+         %24 = OpConstantNull %v3float
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %27 = OpConstantNull %uint
+         %29 = OpConstantNull %uint
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
-         %32 = OpConstantNull %int
-         %37 = OpTypeSampledImage %11
+         %34 = OpConstantNull %int
+         %39 = OpTypeSampledImage %11
 %_ptr_Function_float = OpTypePointer Function %float
-         %50 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %52 = OpTypeFunction %v4float
 %textureSampleLevel_ff11bc = OpFunction %void None %15
          %18 = OpLabel
-      %arg_2 = OpVariable %_ptr_Function_v3float Function %20
-      %arg_3 = OpVariable %_ptr_Function_uint Function %27
-      %arg_4 = OpVariable %_ptr_Function_int Function %32
+      %arg_2 = OpVariable %_ptr_Function_v3float Function %24
+      %arg_3 = OpVariable %_ptr_Function_uint Function %29
+      %arg_4 = OpVariable %_ptr_Function_int Function %34
         %res = OpVariable %_ptr_Function_float Function %8
-               OpStore %arg_2 %20
+               OpStore %arg_2 %21
                OpStore %arg_3 %uint_1
                OpStore %arg_4 %int_1
-         %35 = OpLoad %14 %arg_1
-         %36 = OpLoad %11 %arg_0
-         %38 = OpSampledImage %37 %36 %35
-         %39 = OpLoad %v3float %arg_2
-         %40 = OpCompositeExtract %float %39 0
-         %41 = OpCompositeExtract %float %39 1
-         %42 = OpCompositeExtract %float %39 2
-         %44 = OpLoad %uint %arg_3
-         %43 = OpConvertUToF %float %44
-         %45 = OpCompositeConstruct %v4float %40 %41 %42 %43
-         %47 = OpLoad %int %arg_4
-         %46 = OpConvertSToF %float %47
-         %34 = OpImageSampleExplicitLod %v4float %38 %45 Lod %46
-         %33 = OpCompositeExtract %float %34 0
-               OpStore %res %33
+         %37 = OpLoad %14 %arg_1
+         %38 = OpLoad %11 %arg_0
+         %40 = OpSampledImage %39 %38 %37
+         %41 = OpLoad %v3float %arg_2
+         %42 = OpCompositeExtract %float %41 0
+         %43 = OpCompositeExtract %float %41 1
+         %44 = OpCompositeExtract %float %41 2
+         %46 = OpLoad %uint %arg_3
+         %45 = OpConvertUToF %float %46
+         %47 = OpCompositeConstruct %v4float %42 %43 %44 %45
+         %49 = OpLoad %int %arg_4
+         %48 = OpConvertSToF %float %49
+         %36 = OpImageSampleExplicitLod %v4float %40 %47 Lod %48
+         %35 = OpCompositeExtract %float %36 0
+               OpStore %res %35
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %50
-         %52 = OpLabel
-         %53 = OpFunctionCall %void %textureSampleLevel_ff11bc
+%vertex_main_inner = OpFunction %v4float None %52
+         %54 = OpLabel
+         %55 = OpFunctionCall %void %textureSampleLevel_ff11bc
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
-         %55 = OpLabel
-         %56 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %56
+         %57 = OpLabel
+         %58 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %58
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %15
-         %59 = OpLabel
-         %60 = OpFunctionCall %void %textureSampleLevel_ff11bc
+         %60 = OpLabel
+         %61 = OpFunctionCall %void %textureSampleLevel_ff11bc
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %15
-         %62 = OpLabel
-         %63 = OpFunctionCall %void %textureSampleLevel_ff11bc
+         %63 = OpLabel
+         %64 = OpFunctionCall %void %textureSampleLevel_ff11bc
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/ff11bc.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSampleLevel/ff11bc.wgsl.expected.wgsl
index 31ed6fe..3f0462a 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/ff11bc.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/ff11bc.wgsl.expected.wgsl
@@ -3,7 +3,7 @@
 @group(1) @binding(1) var arg_1 : sampler;
 
 fn textureSampleLevel_ff11bc() {
-  var arg_2 = vec3<f32>();
+  var arg_2 = vec3<f32>(1.0f);
   var arg_3 = 1u;
   var arg_4 = 1i;
   var res : f32 = textureSampleLevel(arg_0, arg_1, arg_2, arg_3, arg_4);
diff --git a/test/tint/builtins/gen/var/textureStore/00ca64.wgsl b/test/tint/builtins/gen/var/textureStore/00ca64.wgsl
index 8c8d6c6..7cd1264 100644
--- a/test/tint/builtins/gen/var/textureStore/00ca64.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/00ca64.wgsl
@@ -24,9 +24,9 @@
 
 // fn textureStore(texture: texture_storage_2d_array<rgba32uint, write>, coords: vec2<i32>, array_index: u32, value: vec4<u32>)
 fn textureStore_00ca64() {
-  var arg_1 = vec2<i32>();
+  var arg_1 = vec2<i32>(1i);
   var arg_2 = 1u;
-  var arg_3 = vec4<u32>();
+  var arg_3 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/00ca64.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/00ca64.wgsl.expected.dxc.hlsl
index bc0aef6..28af169 100644
--- a/test/tint/builtins/gen/var/textureStore/00ca64.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/00ca64.wgsl.expected.dxc.hlsl
@@ -1,9 +1,9 @@
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 void textureStore_00ca64() {
-  int2 arg_1 = (0).xx;
+  int2 arg_1 = (1).xx;
   uint arg_2 = 1u;
-  uint4 arg_3 = (0u).xxxx;
+  uint4 arg_3 = (1u).xxxx;
   arg_0[int3(arg_1, int(arg_2))] = arg_3;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/00ca64.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/00ca64.wgsl.expected.fxc.hlsl
index bc0aef6..28af169 100644
--- a/test/tint/builtins/gen/var/textureStore/00ca64.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/00ca64.wgsl.expected.fxc.hlsl
@@ -1,9 +1,9 @@
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 void textureStore_00ca64() {
-  int2 arg_1 = (0).xx;
+  int2 arg_1 = (1).xx;
   uint arg_2 = 1u;
-  uint4 arg_3 = (0u).xxxx;
+  uint4 arg_3 = (1u).xxxx;
   arg_0[int3(arg_1, int(arg_2))] = arg_3;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/00ca64.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/00ca64.wgsl.expected.glsl
index 2d80cee..7f9cf0d 100644
--- a/test/tint/builtins/gen/var/textureStore/00ca64.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/00ca64.wgsl.expected.glsl
@@ -2,9 +2,9 @@
 
 layout(rgba32ui) uniform highp writeonly uimage2DArray arg_0;
 void textureStore_00ca64() {
-  ivec2 arg_1 = ivec2(0);
+  ivec2 arg_1 = ivec2(1);
   uint arg_2 = 1u;
-  uvec4 arg_3 = uvec4(0u);
+  uvec4 arg_3 = uvec4(1u);
   imageStore(arg_0, ivec3(arg_1, int(arg_2)), arg_3);
 }
 
@@ -26,9 +26,9 @@
 
 layout(rgba32ui) uniform highp writeonly uimage2DArray arg_0;
 void textureStore_00ca64() {
-  ivec2 arg_1 = ivec2(0);
+  ivec2 arg_1 = ivec2(1);
   uint arg_2 = 1u;
-  uvec4 arg_3 = uvec4(0u);
+  uvec4 arg_3 = uvec4(1u);
   imageStore(arg_0, ivec3(arg_1, int(arg_2)), arg_3);
 }
 
@@ -44,9 +44,9 @@
 
 layout(rgba32ui) uniform highp writeonly uimage2DArray arg_0;
 void textureStore_00ca64() {
-  ivec2 arg_1 = ivec2(0);
+  ivec2 arg_1 = ivec2(1);
   uint arg_2 = 1u;
-  uvec4 arg_3 = uvec4(0u);
+  uvec4 arg_3 = uvec4(1u);
   imageStore(arg_0, ivec3(arg_1, int(arg_2)), arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/00ca64.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/00ca64.wgsl.expected.msl
index eb9a573..f99ba1f 100644
--- a/test/tint/builtins/gen/var/textureStore/00ca64.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/00ca64.wgsl.expected.msl
@@ -2,9 +2,9 @@
 
 using namespace metal;
 void textureStore_00ca64(texture2d_array<uint, access::write> tint_symbol_1) {
-  int2 arg_1 = int2(0);
+  int2 arg_1 = int2(1);
   uint arg_2 = 1u;
-  uint4 arg_3 = uint4(0u);
+  uint4 arg_3 = uint4(1u);
   tint_symbol_1.write(arg_3, uint2(arg_1), arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/00ca64.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/00ca64.wgsl.expected.spvasm
index 4469ec0..5c08814 100644
--- a/test/tint/builtins/gen/var/textureStore/00ca64.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/00ca64.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 54
+; Bound: 57
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -42,55 +42,58 @@
          %13 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
-         %19 = OpConstantNull %v2int
+      %int_1 = OpConstant %int 1
+         %20 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v2int = OpTypePointer Function %v2int
+         %23 = OpConstantNull %v2int
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %25 = OpConstantNull %uint
+         %27 = OpConstantNull %uint
      %v4uint = OpTypeVector %uint 4
-         %27 = OpConstantNull %v4uint
+         %29 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
+         %32 = OpConstantNull %v4uint
       %v3int = OpTypeVector %int 3
-         %40 = OpTypeFunction %v4float
+         %43 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_00ca64 = OpFunction %void None %13
          %16 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2int Function %19
-      %arg_2 = OpVariable %_ptr_Function_uint Function %25
-      %arg_3 = OpVariable %_ptr_Function_v4uint Function %27
-               OpStore %arg_1 %19
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %23
+      %arg_2 = OpVariable %_ptr_Function_uint Function %27
+      %arg_3 = OpVariable %_ptr_Function_v4uint Function %32
+               OpStore %arg_1 %20
                OpStore %arg_2 %uint_1
-               OpStore %arg_3 %27
-         %31 = OpLoad %11 %arg_0
-         %33 = OpLoad %v2int %arg_1
-         %34 = OpCompositeExtract %int %33 0
-         %35 = OpCompositeExtract %int %33 1
-         %37 = OpLoad %uint %arg_2
-         %36 = OpBitcast %int %37
-         %38 = OpCompositeConstruct %v3int %34 %35 %36
-         %39 = OpLoad %v4uint %arg_3
-               OpImageWrite %31 %38 %39
+               OpStore %arg_3 %29
+         %34 = OpLoad %11 %arg_0
+         %36 = OpLoad %v2int %arg_1
+         %37 = OpCompositeExtract %int %36 0
+         %38 = OpCompositeExtract %int %36 1
+         %40 = OpLoad %uint %arg_2
+         %39 = OpBitcast %int %40
+         %41 = OpCompositeConstruct %v3int %37 %38 %39
+         %42 = OpLoad %v4uint %arg_3
+               OpImageWrite %34 %41 %42
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %40
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_00ca64
+%vertex_main_inner = OpFunction %v4float None %43
+         %45 = OpLabel
+         %46 = OpFunctionCall %void %textureStore_00ca64
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %45 = OpLabel
-         %46 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %46
+         %48 = OpLabel
+         %49 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %49
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %49 = OpLabel
-         %50 = OpFunctionCall %void %textureStore_00ca64
+         %52 = OpLabel
+         %53 = OpFunctionCall %void %textureStore_00ca64
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %52 = OpLabel
-         %53 = OpFunctionCall %void %textureStore_00ca64
+         %55 = OpLabel
+         %56 = OpFunctionCall %void %textureStore_00ca64
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/00ca64.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/00ca64.wgsl.expected.wgsl
index a9d8fc4..9672254 100644
--- a/test/tint/builtins/gen/var/textureStore/00ca64.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/00ca64.wgsl.expected.wgsl
@@ -1,9 +1,9 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba32uint, write>;
 
 fn textureStore_00ca64() {
-  var arg_1 = vec2<i32>();
+  var arg_1 = vec2<i32>(1i);
   var arg_2 = 1u;
-  var arg_3 = vec4<u32>();
+  var arg_3 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/0148bd.wgsl b/test/tint/builtins/gen/var/textureStore/0148bd.wgsl
index 8ca7f68..64ec2f8 100644
--- a/test/tint/builtins/gen/var/textureStore/0148bd.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/0148bd.wgsl
@@ -24,9 +24,9 @@
 
 // fn textureStore(texture: texture_storage_2d_array<rgba32sint, write>, coords: vec2<u32>, array_index: i32, value: vec4<i32>)
 fn textureStore_0148bd() {
-  var arg_1 = vec2<u32>();
+  var arg_1 = vec2<u32>(1u);
   var arg_2 = 1i;
-  var arg_3 = vec4<i32>();
+  var arg_3 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/0148bd.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/0148bd.wgsl.expected.dxc.hlsl
index 05d3e35..dcf713b 100644
--- a/test/tint/builtins/gen/var/textureStore/0148bd.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/0148bd.wgsl.expected.dxc.hlsl
@@ -1,9 +1,9 @@
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 void textureStore_0148bd() {
-  uint2 arg_1 = (0u).xx;
+  uint2 arg_1 = (1u).xx;
   int arg_2 = 1;
-  int4 arg_3 = (0).xxxx;
+  int4 arg_3 = (1).xxxx;
   arg_0[uint3(arg_1, uint(arg_2))] = arg_3;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/0148bd.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/0148bd.wgsl.expected.fxc.hlsl
index 05d3e35..dcf713b 100644
--- a/test/tint/builtins/gen/var/textureStore/0148bd.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/0148bd.wgsl.expected.fxc.hlsl
@@ -1,9 +1,9 @@
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 void textureStore_0148bd() {
-  uint2 arg_1 = (0u).xx;
+  uint2 arg_1 = (1u).xx;
   int arg_2 = 1;
-  int4 arg_3 = (0).xxxx;
+  int4 arg_3 = (1).xxxx;
   arg_0[uint3(arg_1, uint(arg_2))] = arg_3;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/0148bd.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/0148bd.wgsl.expected.glsl
index c028f23..54ea295 100644
--- a/test/tint/builtins/gen/var/textureStore/0148bd.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/0148bd.wgsl.expected.glsl
@@ -2,9 +2,9 @@
 
 layout(rgba32i) uniform highp writeonly iimage2DArray arg_0;
 void textureStore_0148bd() {
-  uvec2 arg_1 = uvec2(0u);
+  uvec2 arg_1 = uvec2(1u);
   int arg_2 = 1;
-  ivec4 arg_3 = ivec4(0);
+  ivec4 arg_3 = ivec4(1);
   imageStore(arg_0, ivec3(uvec3(arg_1, uint(arg_2))), arg_3);
 }
 
@@ -26,9 +26,9 @@
 
 layout(rgba32i) uniform highp writeonly iimage2DArray arg_0;
 void textureStore_0148bd() {
-  uvec2 arg_1 = uvec2(0u);
+  uvec2 arg_1 = uvec2(1u);
   int arg_2 = 1;
-  ivec4 arg_3 = ivec4(0);
+  ivec4 arg_3 = ivec4(1);
   imageStore(arg_0, ivec3(uvec3(arg_1, uint(arg_2))), arg_3);
 }
 
@@ -44,9 +44,9 @@
 
 layout(rgba32i) uniform highp writeonly iimage2DArray arg_0;
 void textureStore_0148bd() {
-  uvec2 arg_1 = uvec2(0u);
+  uvec2 arg_1 = uvec2(1u);
   int arg_2 = 1;
-  ivec4 arg_3 = ivec4(0);
+  ivec4 arg_3 = ivec4(1);
   imageStore(arg_0, ivec3(uvec3(arg_1, uint(arg_2))), arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/0148bd.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/0148bd.wgsl.expected.msl
index 0426dc0..c813cb2 100644
--- a/test/tint/builtins/gen/var/textureStore/0148bd.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/0148bd.wgsl.expected.msl
@@ -2,9 +2,9 @@
 
 using namespace metal;
 void textureStore_0148bd(texture2d_array<int, access::write> tint_symbol_1) {
-  uint2 arg_1 = uint2(0u);
+  uint2 arg_1 = uint2(1u);
   int arg_2 = 1;
-  int4 arg_3 = int4(0);
+  int4 arg_3 = int4(1);
   tint_symbol_1.write(arg_3, uint2(arg_1), arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/0148bd.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/0148bd.wgsl.expected.spvasm
index 2d64adc..046daad 100644
--- a/test/tint/builtins/gen/var/textureStore/0148bd.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/0148bd.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 54
+; Bound: 57
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -42,55 +42,58 @@
          %13 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
-         %19 = OpConstantNull %v2uint
+     %uint_1 = OpConstant %uint 1
+         %20 = OpConstantComposite %v2uint %uint_1 %uint_1
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
+         %23 = OpConstantNull %v2uint
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
-         %25 = OpConstantNull %int
+         %27 = OpConstantNull %int
       %v4int = OpTypeVector %int 4
-         %27 = OpConstantNull %v4int
+         %29 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
+         %32 = OpConstantNull %v4int
      %v3uint = OpTypeVector %uint 3
-         %40 = OpTypeFunction %v4float
+         %43 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_0148bd = OpFunction %void None %13
          %16 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2uint Function %19
-      %arg_2 = OpVariable %_ptr_Function_int Function %25
-      %arg_3 = OpVariable %_ptr_Function_v4int Function %27
-               OpStore %arg_1 %19
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %23
+      %arg_2 = OpVariable %_ptr_Function_int Function %27
+      %arg_3 = OpVariable %_ptr_Function_v4int Function %32
+               OpStore %arg_1 %20
                OpStore %arg_2 %int_1
-               OpStore %arg_3 %27
-         %31 = OpLoad %11 %arg_0
-         %33 = OpLoad %v2uint %arg_1
-         %34 = OpCompositeExtract %uint %33 0
-         %35 = OpCompositeExtract %uint %33 1
-         %37 = OpLoad %int %arg_2
-         %36 = OpBitcast %uint %37
-         %38 = OpCompositeConstruct %v3uint %34 %35 %36
-         %39 = OpLoad %v4int %arg_3
-               OpImageWrite %31 %38 %39
+               OpStore %arg_3 %29
+         %34 = OpLoad %11 %arg_0
+         %36 = OpLoad %v2uint %arg_1
+         %37 = OpCompositeExtract %uint %36 0
+         %38 = OpCompositeExtract %uint %36 1
+         %40 = OpLoad %int %arg_2
+         %39 = OpBitcast %uint %40
+         %41 = OpCompositeConstruct %v3uint %37 %38 %39
+         %42 = OpLoad %v4int %arg_3
+               OpImageWrite %34 %41 %42
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %40
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_0148bd
+%vertex_main_inner = OpFunction %v4float None %43
+         %45 = OpLabel
+         %46 = OpFunctionCall %void %textureStore_0148bd
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %45 = OpLabel
-         %46 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %46
+         %48 = OpLabel
+         %49 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %49
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %49 = OpLabel
-         %50 = OpFunctionCall %void %textureStore_0148bd
+         %52 = OpLabel
+         %53 = OpFunctionCall %void %textureStore_0148bd
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %52 = OpLabel
-         %53 = OpFunctionCall %void %textureStore_0148bd
+         %55 = OpLabel
+         %56 = OpFunctionCall %void %textureStore_0148bd
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/0148bd.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/0148bd.wgsl.expected.wgsl
index 80f6c27..3da6033 100644
--- a/test/tint/builtins/gen/var/textureStore/0148bd.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/0148bd.wgsl.expected.wgsl
@@ -1,9 +1,9 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba32sint, write>;
 
 fn textureStore_0148bd() {
-  var arg_1 = vec2<u32>();
+  var arg_1 = vec2<u32>(1u);
   var arg_2 = 1i;
-  var arg_3 = vec4<i32>();
+  var arg_3 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/05ce15.wgsl b/test/tint/builtins/gen/var/textureStore/05ce15.wgsl
index 9195e69..ec9d7a9 100644
--- a/test/tint/builtins/gen/var/textureStore/05ce15.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/05ce15.wgsl
@@ -24,8 +24,8 @@
 
 // fn textureStore(texture: texture_storage_2d<rgba32float, write>, coords: vec2<i32>, value: vec4<f32>)
 fn textureStore_05ce15() {
-  var arg_1 = vec2<i32>();
-  var arg_2 = vec4<f32>();
+  var arg_1 = vec2<i32>(1i);
+  var arg_2 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/05ce15.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/05ce15.wgsl.expected.dxc.hlsl
index c83a95c..0c19880 100644
--- a/test/tint/builtins/gen/var/textureStore/05ce15.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/05ce15.wgsl.expected.dxc.hlsl
@@ -1,8 +1,8 @@
 RWTexture2D<float4> arg_0 : register(u0, space1);
 
 void textureStore_05ce15() {
-  int2 arg_1 = (0).xx;
-  float4 arg_2 = (0.0f).xxxx;
+  int2 arg_1 = (1).xx;
+  float4 arg_2 = (1.0f).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/05ce15.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/05ce15.wgsl.expected.fxc.hlsl
index c83a95c..0c19880 100644
--- a/test/tint/builtins/gen/var/textureStore/05ce15.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/05ce15.wgsl.expected.fxc.hlsl
@@ -1,8 +1,8 @@
 RWTexture2D<float4> arg_0 : register(u0, space1);
 
 void textureStore_05ce15() {
-  int2 arg_1 = (0).xx;
-  float4 arg_2 = (0.0f).xxxx;
+  int2 arg_1 = (1).xx;
+  float4 arg_2 = (1.0f).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/05ce15.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/05ce15.wgsl.expected.glsl
index 5437eda..e40a987 100644
--- a/test/tint/builtins/gen/var/textureStore/05ce15.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/05ce15.wgsl.expected.glsl
@@ -2,8 +2,8 @@
 
 layout(rgba32f) uniform highp writeonly image2D arg_0;
 void textureStore_05ce15() {
-  ivec2 arg_1 = ivec2(0);
-  vec4 arg_2 = vec4(0.0f);
+  ivec2 arg_1 = ivec2(1);
+  vec4 arg_2 = vec4(1.0f);
   imageStore(arg_0, arg_1, arg_2);
 }
 
@@ -25,8 +25,8 @@
 
 layout(rgba32f) uniform highp writeonly image2D arg_0;
 void textureStore_05ce15() {
-  ivec2 arg_1 = ivec2(0);
-  vec4 arg_2 = vec4(0.0f);
+  ivec2 arg_1 = ivec2(1);
+  vec4 arg_2 = vec4(1.0f);
   imageStore(arg_0, arg_1, arg_2);
 }
 
@@ -42,8 +42,8 @@
 
 layout(rgba32f) uniform highp writeonly image2D arg_0;
 void textureStore_05ce15() {
-  ivec2 arg_1 = ivec2(0);
-  vec4 arg_2 = vec4(0.0f);
+  ivec2 arg_1 = ivec2(1);
+  vec4 arg_2 = vec4(1.0f);
   imageStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/05ce15.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/05ce15.wgsl.expected.msl
index 9eb8590..10e16a5 100644
--- a/test/tint/builtins/gen/var/textureStore/05ce15.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/05ce15.wgsl.expected.msl
@@ -2,8 +2,8 @@
 
 using namespace metal;
 void textureStore_05ce15(texture2d<float, access::write> tint_symbol_1) {
-  int2 arg_1 = int2(0);
-  float4 arg_2 = float4(0.0f);
+  int2 arg_1 = int2(1);
+  float4 arg_2 = float4(1.0f);
   tint_symbol_1.write(arg_2, uint2(arg_1));
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/05ce15.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/05ce15.wgsl.expected.spvasm
index 8120c43..e5dc004 100644
--- a/test/tint/builtins/gen/var/textureStore/05ce15.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/05ce15.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 41
+; Bound: 44
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -40,42 +40,45 @@
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
-         %18 = OpConstantNull %v2int
+      %int_1 = OpConstant %int 1
+         %19 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v2int = OpTypePointer Function %v2int
-%_ptr_Function_v4float = OpTypePointer Function %v4float
-         %27 = OpTypeFunction %v4float
+         %22 = OpConstantNull %v2int
     %float_1 = OpConstant %float 1
+         %24 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%_ptr_Function_v4float = OpTypePointer Function %v4float
+         %31 = OpTypeFunction %v4float
 %textureStore_05ce15 = OpFunction %void None %12
          %15 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2int Function %18
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %22
       %arg_2 = OpVariable %_ptr_Function_v4float Function %5
-               OpStore %arg_1 %18
-               OpStore %arg_2 %5
-         %24 = OpLoad %11 %arg_0
-         %25 = OpLoad %v2int %arg_1
-         %26 = OpLoad %v4float %arg_2
-               OpImageWrite %24 %25 %26
+               OpStore %arg_1 %19
+               OpStore %arg_2 %24
+         %28 = OpLoad %11 %arg_0
+         %29 = OpLoad %v2int %arg_1
+         %30 = OpLoad %v4float %arg_2
+               OpImageWrite %28 %29 %30
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %27
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %textureStore_05ce15
+%vertex_main_inner = OpFunction %v4float None %31
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureStore_05ce15
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %32 = OpLabel
-         %33 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %33
+         %36 = OpLabel
+         %37 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %37
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_05ce15
+         %39 = OpLabel
+         %40 = OpFunctionCall %void %textureStore_05ce15
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_05ce15
+         %42 = OpLabel
+         %43 = OpFunctionCall %void %textureStore_05ce15
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/05ce15.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/05ce15.wgsl.expected.wgsl
index 85050b5..6110878 100644
--- a/test/tint/builtins/gen/var/textureStore/05ce15.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/05ce15.wgsl.expected.wgsl
@@ -1,8 +1,8 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba32float, write>;
 
 fn textureStore_05ce15() {
-  var arg_1 = vec2<i32>();
-  var arg_2 = vec4<f32>();
+  var arg_1 = vec2<i32>(1i);
+  var arg_2 = vec4<f32>(1.0f);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/064c7f.wgsl b/test/tint/builtins/gen/var/textureStore/064c7f.wgsl
index d1ee996..31d8bf5 100644
--- a/test/tint/builtins/gen/var/textureStore/064c7f.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/064c7f.wgsl
@@ -24,8 +24,8 @@
 
 // fn textureStore(texture: texture_storage_2d<rg32float, write>, coords: vec2<i32>, value: vec4<f32>)
 fn textureStore_064c7f() {
-  var arg_1 = vec2<i32>();
-  var arg_2 = vec4<f32>();
+  var arg_1 = vec2<i32>(1i);
+  var arg_2 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/064c7f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/064c7f.wgsl.expected.dxc.hlsl
index 8adf145..711e1c7 100644
--- a/test/tint/builtins/gen/var/textureStore/064c7f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/064c7f.wgsl.expected.dxc.hlsl
@@ -1,8 +1,8 @@
 RWTexture2D<float4> arg_0 : register(u0, space1);
 
 void textureStore_064c7f() {
-  int2 arg_1 = (0).xx;
-  float4 arg_2 = (0.0f).xxxx;
+  int2 arg_1 = (1).xx;
+  float4 arg_2 = (1.0f).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/064c7f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/064c7f.wgsl.expected.fxc.hlsl
index 8adf145..711e1c7 100644
--- a/test/tint/builtins/gen/var/textureStore/064c7f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/064c7f.wgsl.expected.fxc.hlsl
@@ -1,8 +1,8 @@
 RWTexture2D<float4> arg_0 : register(u0, space1);
 
 void textureStore_064c7f() {
-  int2 arg_1 = (0).xx;
-  float4 arg_2 = (0.0f).xxxx;
+  int2 arg_1 = (1).xx;
+  float4 arg_2 = (1.0f).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/064c7f.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/064c7f.wgsl.expected.msl
index 00a4cf7..2efa3e3 100644
--- a/test/tint/builtins/gen/var/textureStore/064c7f.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/064c7f.wgsl.expected.msl
@@ -2,8 +2,8 @@
 
 using namespace metal;
 void textureStore_064c7f(texture2d<float, access::write> tint_symbol_1) {
-  int2 arg_1 = int2(0);
-  float4 arg_2 = float4(0.0f);
+  int2 arg_1 = int2(1);
+  float4 arg_2 = float4(1.0f);
   tint_symbol_1.write(arg_2, uint2(arg_1));
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/064c7f.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/064c7f.wgsl.expected.spvasm
index d6d60c0..e81ac09 100644
--- a/test/tint/builtins/gen/var/textureStore/064c7f.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/064c7f.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 41
+; Bound: 44
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
@@ -41,42 +41,45 @@
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
-         %18 = OpConstantNull %v2int
+      %int_1 = OpConstant %int 1
+         %19 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v2int = OpTypePointer Function %v2int
-%_ptr_Function_v4float = OpTypePointer Function %v4float
-         %27 = OpTypeFunction %v4float
+         %22 = OpConstantNull %v2int
     %float_1 = OpConstant %float 1
+         %24 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%_ptr_Function_v4float = OpTypePointer Function %v4float
+         %31 = OpTypeFunction %v4float
 %textureStore_064c7f = OpFunction %void None %12
          %15 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2int Function %18
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %22
       %arg_2 = OpVariable %_ptr_Function_v4float Function %5
-               OpStore %arg_1 %18
-               OpStore %arg_2 %5
-         %24 = OpLoad %11 %arg_0
-         %25 = OpLoad %v2int %arg_1
-         %26 = OpLoad %v4float %arg_2
-               OpImageWrite %24 %25 %26
+               OpStore %arg_1 %19
+               OpStore %arg_2 %24
+         %28 = OpLoad %11 %arg_0
+         %29 = OpLoad %v2int %arg_1
+         %30 = OpLoad %v4float %arg_2
+               OpImageWrite %28 %29 %30
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %27
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %textureStore_064c7f
+%vertex_main_inner = OpFunction %v4float None %31
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureStore_064c7f
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %32 = OpLabel
-         %33 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %33
+         %36 = OpLabel
+         %37 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %37
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_064c7f
+         %39 = OpLabel
+         %40 = OpFunctionCall %void %textureStore_064c7f
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_064c7f
+         %42 = OpLabel
+         %43 = OpFunctionCall %void %textureStore_064c7f
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/064c7f.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/064c7f.wgsl.expected.wgsl
index ba056bc..853f005 100644
--- a/test/tint/builtins/gen/var/textureStore/064c7f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/064c7f.wgsl.expected.wgsl
@@ -1,8 +1,8 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rg32float, write>;
 
 fn textureStore_064c7f() {
-  var arg_1 = vec2<i32>();
-  var arg_2 = vec4<f32>();
+  var arg_1 = vec2<i32>(1i);
+  var arg_2 = vec4<f32>(1.0f);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/068641.wgsl b/test/tint/builtins/gen/var/textureStore/068641.wgsl
index 32f39e3..e1e22c9 100644
--- a/test/tint/builtins/gen/var/textureStore/068641.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/068641.wgsl
@@ -24,8 +24,8 @@
 
 // fn textureStore(texture: texture_storage_3d<rgba16uint, write>, coords: vec3<i32>, value: vec4<u32>)
 fn textureStore_068641() {
-  var arg_1 = vec3<i32>();
-  var arg_2 = vec4<u32>();
+  var arg_1 = vec3<i32>(1i);
+  var arg_2 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/068641.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/068641.wgsl.expected.dxc.hlsl
index 092e801..9823316 100644
--- a/test/tint/builtins/gen/var/textureStore/068641.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/068641.wgsl.expected.dxc.hlsl
@@ -1,8 +1,8 @@
 RWTexture3D<uint4> arg_0 : register(u0, space1);
 
 void textureStore_068641() {
-  int3 arg_1 = (0).xxx;
-  uint4 arg_2 = (0u).xxxx;
+  int3 arg_1 = (1).xxx;
+  uint4 arg_2 = (1u).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/068641.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/068641.wgsl.expected.fxc.hlsl
index 092e801..9823316 100644
--- a/test/tint/builtins/gen/var/textureStore/068641.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/068641.wgsl.expected.fxc.hlsl
@@ -1,8 +1,8 @@
 RWTexture3D<uint4> arg_0 : register(u0, space1);
 
 void textureStore_068641() {
-  int3 arg_1 = (0).xxx;
-  uint4 arg_2 = (0u).xxxx;
+  int3 arg_1 = (1).xxx;
+  uint4 arg_2 = (1u).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/068641.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/068641.wgsl.expected.glsl
index f84a5f2..d627f3c 100644
--- a/test/tint/builtins/gen/var/textureStore/068641.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/068641.wgsl.expected.glsl
@@ -2,8 +2,8 @@
 
 layout(rgba16ui) uniform highp writeonly uimage3D arg_0;
 void textureStore_068641() {
-  ivec3 arg_1 = ivec3(0);
-  uvec4 arg_2 = uvec4(0u);
+  ivec3 arg_1 = ivec3(1);
+  uvec4 arg_2 = uvec4(1u);
   imageStore(arg_0, arg_1, arg_2);
 }
 
@@ -25,8 +25,8 @@
 
 layout(rgba16ui) uniform highp writeonly uimage3D arg_0;
 void textureStore_068641() {
-  ivec3 arg_1 = ivec3(0);
-  uvec4 arg_2 = uvec4(0u);
+  ivec3 arg_1 = ivec3(1);
+  uvec4 arg_2 = uvec4(1u);
   imageStore(arg_0, arg_1, arg_2);
 }
 
@@ -42,8 +42,8 @@
 
 layout(rgba16ui) uniform highp writeonly uimage3D arg_0;
 void textureStore_068641() {
-  ivec3 arg_1 = ivec3(0);
-  uvec4 arg_2 = uvec4(0u);
+  ivec3 arg_1 = ivec3(1);
+  uvec4 arg_2 = uvec4(1u);
   imageStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/068641.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/068641.wgsl.expected.msl
index a35ed83..0c0aa54 100644
--- a/test/tint/builtins/gen/var/textureStore/068641.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/068641.wgsl.expected.msl
@@ -2,8 +2,8 @@
 
 using namespace metal;
 void textureStore_068641(texture3d<uint, access::write> tint_symbol_1) {
-  int3 arg_1 = int3(0);
-  uint4 arg_2 = uint4(0u);
+  int3 arg_1 = int3(1);
+  uint4 arg_2 = uint4(1u);
   tint_symbol_1.write(arg_2, uint3(arg_1));
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/068641.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/068641.wgsl.expected.spvasm
index b77d315..5c3f360 100644
--- a/test/tint/builtins/gen/var/textureStore/068641.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/068641.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 48
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -41,44 +41,48 @@
          %13 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
-         %19 = OpConstantNull %v3int
+      %int_1 = OpConstant %int 1
+         %20 = OpConstantComposite %v3int %int_1 %int_1 %int_1
 %_ptr_Function_v3int = OpTypePointer Function %v3int
+         %23 = OpConstantNull %v3int
      %v4uint = OpTypeVector %uint 4
-         %23 = OpConstantNull %v4uint
+     %uint_1 = OpConstant %uint 1
+         %26 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %30 = OpTypeFunction %v4float
+         %29 = OpConstantNull %v4uint
+         %34 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_068641 = OpFunction %void None %13
          %16 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v3int Function %19
-      %arg_2 = OpVariable %_ptr_Function_v4uint Function %23
-               OpStore %arg_1 %19
-               OpStore %arg_2 %23
-         %27 = OpLoad %11 %arg_0
-         %28 = OpLoad %v3int %arg_1
-         %29 = OpLoad %v4uint %arg_2
-               OpImageWrite %27 %28 %29
+      %arg_1 = OpVariable %_ptr_Function_v3int Function %23
+      %arg_2 = OpVariable %_ptr_Function_v4uint Function %29
+               OpStore %arg_1 %20
+               OpStore %arg_2 %26
+         %31 = OpLoad %11 %arg_0
+         %32 = OpLoad %v3int %arg_1
+         %33 = OpLoad %v4uint %arg_2
+               OpImageWrite %31 %32 %33
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %30
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_068641
+%vertex_main_inner = OpFunction %v4float None %34
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureStore_068641
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %36
+         %39 = OpLabel
+         %40 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %40
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_068641
+         %43 = OpLabel
+         %44 = OpFunctionCall %void %textureStore_068641
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_068641
+         %46 = OpLabel
+         %47 = OpFunctionCall %void %textureStore_068641
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/068641.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/068641.wgsl.expected.wgsl
index bad48dd..6e49bfc 100644
--- a/test/tint/builtins/gen/var/textureStore/068641.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/068641.wgsl.expected.wgsl
@@ -1,8 +1,8 @@
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rgba16uint, write>;
 
 fn textureStore_068641() {
-  var arg_1 = vec3<i32>();
-  var arg_2 = vec4<u32>();
+  var arg_1 = vec3<i32>(1i);
+  var arg_2 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/06e49c.wgsl b/test/tint/builtins/gen/var/textureStore/06e49c.wgsl
index dcc3c36..2a75d72 100644
--- a/test/tint/builtins/gen/var/textureStore/06e49c.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/06e49c.wgsl
@@ -24,9 +24,9 @@
 
 // fn textureStore(texture: texture_storage_2d_array<rgba32float, write>, coords: vec2<i32>, array_index: u32, value: vec4<f32>)
 fn textureStore_06e49c() {
-  var arg_1 = vec2<i32>();
+  var arg_1 = vec2<i32>(1i);
   var arg_2 = 1u;
-  var arg_3 = vec4<f32>();
+  var arg_3 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/06e49c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/06e49c.wgsl.expected.dxc.hlsl
index 632d664..120661e 100644
--- a/test/tint/builtins/gen/var/textureStore/06e49c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/06e49c.wgsl.expected.dxc.hlsl
@@ -1,9 +1,9 @@
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 void textureStore_06e49c() {
-  int2 arg_1 = (0).xx;
+  int2 arg_1 = (1).xx;
   uint arg_2 = 1u;
-  float4 arg_3 = (0.0f).xxxx;
+  float4 arg_3 = (1.0f).xxxx;
   arg_0[int3(arg_1, int(arg_2))] = arg_3;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/06e49c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/06e49c.wgsl.expected.fxc.hlsl
index 632d664..120661e 100644
--- a/test/tint/builtins/gen/var/textureStore/06e49c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/06e49c.wgsl.expected.fxc.hlsl
@@ -1,9 +1,9 @@
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 void textureStore_06e49c() {
-  int2 arg_1 = (0).xx;
+  int2 arg_1 = (1).xx;
   uint arg_2 = 1u;
-  float4 arg_3 = (0.0f).xxxx;
+  float4 arg_3 = (1.0f).xxxx;
   arg_0[int3(arg_1, int(arg_2))] = arg_3;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/06e49c.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/06e49c.wgsl.expected.glsl
index 8e3732f..265a868 100644
--- a/test/tint/builtins/gen/var/textureStore/06e49c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/06e49c.wgsl.expected.glsl
@@ -2,9 +2,9 @@
 
 layout(rgba32f) uniform highp writeonly image2DArray arg_0;
 void textureStore_06e49c() {
-  ivec2 arg_1 = ivec2(0);
+  ivec2 arg_1 = ivec2(1);
   uint arg_2 = 1u;
-  vec4 arg_3 = vec4(0.0f);
+  vec4 arg_3 = vec4(1.0f);
   imageStore(arg_0, ivec3(arg_1, int(arg_2)), arg_3);
 }
 
@@ -26,9 +26,9 @@
 
 layout(rgba32f) uniform highp writeonly image2DArray arg_0;
 void textureStore_06e49c() {
-  ivec2 arg_1 = ivec2(0);
+  ivec2 arg_1 = ivec2(1);
   uint arg_2 = 1u;
-  vec4 arg_3 = vec4(0.0f);
+  vec4 arg_3 = vec4(1.0f);
   imageStore(arg_0, ivec3(arg_1, int(arg_2)), arg_3);
 }
 
@@ -44,9 +44,9 @@
 
 layout(rgba32f) uniform highp writeonly image2DArray arg_0;
 void textureStore_06e49c() {
-  ivec2 arg_1 = ivec2(0);
+  ivec2 arg_1 = ivec2(1);
   uint arg_2 = 1u;
-  vec4 arg_3 = vec4(0.0f);
+  vec4 arg_3 = vec4(1.0f);
   imageStore(arg_0, ivec3(arg_1, int(arg_2)), arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/06e49c.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/06e49c.wgsl.expected.msl
index a2beb54..9c379af 100644
--- a/test/tint/builtins/gen/var/textureStore/06e49c.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/06e49c.wgsl.expected.msl
@@ -2,9 +2,9 @@
 
 using namespace metal;
 void textureStore_06e49c(texture2d_array<float, access::write> tint_symbol_1) {
-  int2 arg_1 = int2(0);
+  int2 arg_1 = int2(1);
   uint arg_2 = 1u;
-  float4 arg_3 = float4(0.0f);
+  float4 arg_3 = float4(1.0f);
   tint_symbol_1.write(arg_3, uint2(arg_1), arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/06e49c.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/06e49c.wgsl.expected.spvasm
index 2db7642..2460f5e 100644
--- a/test/tint/builtins/gen/var/textureStore/06e49c.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/06e49c.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 52
+; Bound: 55
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -41,54 +41,57 @@
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
-         %18 = OpConstantNull %v2int
+      %int_1 = OpConstant %int 1
+         %19 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v2int = OpTypePointer Function %v2int
+         %22 = OpConstantNull %v2int
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %25 = OpConstantNull %uint
+         %27 = OpConstantNull %uint
+    %float_1 = OpConstant %float 1
+         %29 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
       %v3int = OpTypeVector %int 3
-         %38 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %42 = OpTypeFunction %v4float
 %textureStore_06e49c = OpFunction %void None %12
          %15 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2int Function %18
-      %arg_2 = OpVariable %_ptr_Function_uint Function %25
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %22
+      %arg_2 = OpVariable %_ptr_Function_uint Function %27
       %arg_3 = OpVariable %_ptr_Function_v4float Function %5
-               OpStore %arg_1 %18
+               OpStore %arg_1 %19
                OpStore %arg_2 %uint_1
-               OpStore %arg_3 %5
-         %29 = OpLoad %11 %arg_0
-         %31 = OpLoad %v2int %arg_1
-         %32 = OpCompositeExtract %int %31 0
-         %33 = OpCompositeExtract %int %31 1
-         %35 = OpLoad %uint %arg_2
-         %34 = OpBitcast %int %35
-         %36 = OpCompositeConstruct %v3int %32 %33 %34
-         %37 = OpLoad %v4float %arg_3
-               OpImageWrite %29 %36 %37
+               OpStore %arg_3 %29
+         %33 = OpLoad %11 %arg_0
+         %35 = OpLoad %v2int %arg_1
+         %36 = OpCompositeExtract %int %35 0
+         %37 = OpCompositeExtract %int %35 1
+         %39 = OpLoad %uint %arg_2
+         %38 = OpBitcast %int %39
+         %40 = OpCompositeConstruct %v3int %36 %37 %38
+         %41 = OpLoad %v4float %arg_3
+               OpImageWrite %33 %40 %41
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %38
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureStore_06e49c
+%vertex_main_inner = OpFunction %v4float None %42
+         %44 = OpLabel
+         %45 = OpFunctionCall %void %textureStore_06e49c
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %43 = OpLabel
-         %44 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %44
+         %47 = OpLabel
+         %48 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %48
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %47 = OpLabel
-         %48 = OpFunctionCall %void %textureStore_06e49c
+         %50 = OpLabel
+         %51 = OpFunctionCall %void %textureStore_06e49c
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %50 = OpLabel
-         %51 = OpFunctionCall %void %textureStore_06e49c
+         %53 = OpLabel
+         %54 = OpFunctionCall %void %textureStore_06e49c
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/06e49c.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/06e49c.wgsl.expected.wgsl
index 0373258..9e0a36f 100644
--- a/test/tint/builtins/gen/var/textureStore/06e49c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/06e49c.wgsl.expected.wgsl
@@ -1,9 +1,9 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba32float, write>;
 
 fn textureStore_06e49c() {
-  var arg_1 = vec2<i32>();
+  var arg_1 = vec2<i32>(1i);
   var arg_2 = 1u;
-  var arg_3 = vec4<f32>();
+  var arg_3 = vec4<f32>(1.0f);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/07548b.wgsl b/test/tint/builtins/gen/var/textureStore/07548b.wgsl
index 2a43425..7ddcb61 100644
--- a/test/tint/builtins/gen/var/textureStore/07548b.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/07548b.wgsl
@@ -24,8 +24,8 @@
 
 // fn textureStore(texture: texture_storage_3d<rgba16sint, write>, coords: vec3<u32>, value: vec4<i32>)
 fn textureStore_07548b() {
-  var arg_1 = vec3<u32>();
-  var arg_2 = vec4<i32>();
+  var arg_1 = vec3<u32>(1u);
+  var arg_2 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/07548b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/07548b.wgsl.expected.dxc.hlsl
index 56dfb6c..f33e906 100644
--- a/test/tint/builtins/gen/var/textureStore/07548b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/07548b.wgsl.expected.dxc.hlsl
@@ -1,8 +1,8 @@
 RWTexture3D<int4> arg_0 : register(u0, space1);
 
 void textureStore_07548b() {
-  uint3 arg_1 = (0u).xxx;
-  int4 arg_2 = (0).xxxx;
+  uint3 arg_1 = (1u).xxx;
+  int4 arg_2 = (1).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/07548b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/07548b.wgsl.expected.fxc.hlsl
index 56dfb6c..f33e906 100644
--- a/test/tint/builtins/gen/var/textureStore/07548b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/07548b.wgsl.expected.fxc.hlsl
@@ -1,8 +1,8 @@
 RWTexture3D<int4> arg_0 : register(u0, space1);
 
 void textureStore_07548b() {
-  uint3 arg_1 = (0u).xxx;
-  int4 arg_2 = (0).xxxx;
+  uint3 arg_1 = (1u).xxx;
+  int4 arg_2 = (1).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/07548b.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/07548b.wgsl.expected.glsl
index 26da7f2..c1b94f0 100644
--- a/test/tint/builtins/gen/var/textureStore/07548b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/07548b.wgsl.expected.glsl
@@ -2,8 +2,8 @@
 
 layout(rgba16i) uniform highp writeonly iimage3D arg_0;
 void textureStore_07548b() {
-  uvec3 arg_1 = uvec3(0u);
-  ivec4 arg_2 = ivec4(0);
+  uvec3 arg_1 = uvec3(1u);
+  ivec4 arg_2 = ivec4(1);
   imageStore(arg_0, ivec3(arg_1), arg_2);
 }
 
@@ -25,8 +25,8 @@
 
 layout(rgba16i) uniform highp writeonly iimage3D arg_0;
 void textureStore_07548b() {
-  uvec3 arg_1 = uvec3(0u);
-  ivec4 arg_2 = ivec4(0);
+  uvec3 arg_1 = uvec3(1u);
+  ivec4 arg_2 = ivec4(1);
   imageStore(arg_0, ivec3(arg_1), arg_2);
 }
 
@@ -42,8 +42,8 @@
 
 layout(rgba16i) uniform highp writeonly iimage3D arg_0;
 void textureStore_07548b() {
-  uvec3 arg_1 = uvec3(0u);
-  ivec4 arg_2 = ivec4(0);
+  uvec3 arg_1 = uvec3(1u);
+  ivec4 arg_2 = ivec4(1);
   imageStore(arg_0, ivec3(arg_1), arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/07548b.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/07548b.wgsl.expected.msl
index 05af3ae..179f986 100644
--- a/test/tint/builtins/gen/var/textureStore/07548b.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/07548b.wgsl.expected.msl
@@ -2,8 +2,8 @@
 
 using namespace metal;
 void textureStore_07548b(texture3d<int, access::write> tint_symbol_1) {
-  uint3 arg_1 = uint3(0u);
-  int4 arg_2 = int4(0);
+  uint3 arg_1 = uint3(1u);
+  int4 arg_2 = int4(1);
   tint_symbol_1.write(arg_2, uint3(arg_1));
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/07548b.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/07548b.wgsl.expected.spvasm
index 02f5ee8..2a78c9c 100644
--- a/test/tint/builtins/gen/var/textureStore/07548b.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/07548b.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 48
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -41,44 +41,48 @@
          %13 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
-         %19 = OpConstantNull %v3uint
+     %uint_1 = OpConstant %uint 1
+         %20 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
 %_ptr_Function_v3uint = OpTypePointer Function %v3uint
+         %23 = OpConstantNull %v3uint
       %v4int = OpTypeVector %int 4
-         %23 = OpConstantNull %v4int
+      %int_1 = OpConstant %int 1
+         %26 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %30 = OpTypeFunction %v4float
+         %29 = OpConstantNull %v4int
+         %34 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_07548b = OpFunction %void None %13
          %16 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v3uint Function %19
-      %arg_2 = OpVariable %_ptr_Function_v4int Function %23
-               OpStore %arg_1 %19
-               OpStore %arg_2 %23
-         %27 = OpLoad %11 %arg_0
-         %28 = OpLoad %v3uint %arg_1
-         %29 = OpLoad %v4int %arg_2
-               OpImageWrite %27 %28 %29
+      %arg_1 = OpVariable %_ptr_Function_v3uint Function %23
+      %arg_2 = OpVariable %_ptr_Function_v4int Function %29
+               OpStore %arg_1 %20
+               OpStore %arg_2 %26
+         %31 = OpLoad %11 %arg_0
+         %32 = OpLoad %v3uint %arg_1
+         %33 = OpLoad %v4int %arg_2
+               OpImageWrite %31 %32 %33
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %30
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_07548b
+%vertex_main_inner = OpFunction %v4float None %34
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureStore_07548b
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %36
+         %39 = OpLabel
+         %40 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %40
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_07548b
+         %43 = OpLabel
+         %44 = OpFunctionCall %void %textureStore_07548b
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_07548b
+         %46 = OpLabel
+         %47 = OpFunctionCall %void %textureStore_07548b
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/07548b.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/07548b.wgsl.expected.wgsl
index c935ddc..1938ab6 100644
--- a/test/tint/builtins/gen/var/textureStore/07548b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/07548b.wgsl.expected.wgsl
@@ -1,8 +1,8 @@
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rgba16sint, write>;
 
 fn textureStore_07548b() {
-  var arg_1 = vec3<u32>();
-  var arg_2 = vec4<i32>();
+  var arg_1 = vec3<u32>(1u);
+  var arg_2 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/0a1a79.wgsl b/test/tint/builtins/gen/var/textureStore/0a1a79.wgsl
index 90e3619..9a69d14 100644
--- a/test/tint/builtins/gen/var/textureStore/0a1a79.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/0a1a79.wgsl
@@ -24,9 +24,9 @@
 
 // fn textureStore(texture: texture_storage_2d_array<rgba8uint, write>, coords: vec2<u32>, array_index: i32, value: vec4<u32>)
 fn textureStore_0a1a79() {
-  var arg_1 = vec2<u32>();
+  var arg_1 = vec2<u32>(1u);
   var arg_2 = 1i;
-  var arg_3 = vec4<u32>();
+  var arg_3 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/0a1a79.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/0a1a79.wgsl.expected.dxc.hlsl
index 62d0c96..d52e0c7 100644
--- a/test/tint/builtins/gen/var/textureStore/0a1a79.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/0a1a79.wgsl.expected.dxc.hlsl
@@ -1,9 +1,9 @@
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 void textureStore_0a1a79() {
-  uint2 arg_1 = (0u).xx;
+  uint2 arg_1 = (1u).xx;
   int arg_2 = 1;
-  uint4 arg_3 = (0u).xxxx;
+  uint4 arg_3 = (1u).xxxx;
   arg_0[uint3(arg_1, uint(arg_2))] = arg_3;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/0a1a79.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/0a1a79.wgsl.expected.fxc.hlsl
index 62d0c96..d52e0c7 100644
--- a/test/tint/builtins/gen/var/textureStore/0a1a79.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/0a1a79.wgsl.expected.fxc.hlsl
@@ -1,9 +1,9 @@
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 void textureStore_0a1a79() {
-  uint2 arg_1 = (0u).xx;
+  uint2 arg_1 = (1u).xx;
   int arg_2 = 1;
-  uint4 arg_3 = (0u).xxxx;
+  uint4 arg_3 = (1u).xxxx;
   arg_0[uint3(arg_1, uint(arg_2))] = arg_3;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/0a1a79.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/0a1a79.wgsl.expected.glsl
index 931033d..b955a02 100644
--- a/test/tint/builtins/gen/var/textureStore/0a1a79.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/0a1a79.wgsl.expected.glsl
@@ -2,9 +2,9 @@
 
 layout(rgba8ui) uniform highp writeonly uimage2DArray arg_0;
 void textureStore_0a1a79() {
-  uvec2 arg_1 = uvec2(0u);
+  uvec2 arg_1 = uvec2(1u);
   int arg_2 = 1;
-  uvec4 arg_3 = uvec4(0u);
+  uvec4 arg_3 = uvec4(1u);
   imageStore(arg_0, ivec3(uvec3(arg_1, uint(arg_2))), arg_3);
 }
 
@@ -26,9 +26,9 @@
 
 layout(rgba8ui) uniform highp writeonly uimage2DArray arg_0;
 void textureStore_0a1a79() {
-  uvec2 arg_1 = uvec2(0u);
+  uvec2 arg_1 = uvec2(1u);
   int arg_2 = 1;
-  uvec4 arg_3 = uvec4(0u);
+  uvec4 arg_3 = uvec4(1u);
   imageStore(arg_0, ivec3(uvec3(arg_1, uint(arg_2))), arg_3);
 }
 
@@ -44,9 +44,9 @@
 
 layout(rgba8ui) uniform highp writeonly uimage2DArray arg_0;
 void textureStore_0a1a79() {
-  uvec2 arg_1 = uvec2(0u);
+  uvec2 arg_1 = uvec2(1u);
   int arg_2 = 1;
-  uvec4 arg_3 = uvec4(0u);
+  uvec4 arg_3 = uvec4(1u);
   imageStore(arg_0, ivec3(uvec3(arg_1, uint(arg_2))), arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/0a1a79.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/0a1a79.wgsl.expected.msl
index 8d201f2..532d8c8 100644
--- a/test/tint/builtins/gen/var/textureStore/0a1a79.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/0a1a79.wgsl.expected.msl
@@ -2,9 +2,9 @@
 
 using namespace metal;
 void textureStore_0a1a79(texture2d_array<uint, access::write> tint_symbol_1) {
-  uint2 arg_1 = uint2(0u);
+  uint2 arg_1 = uint2(1u);
   int arg_2 = 1;
-  uint4 arg_3 = uint4(0u);
+  uint4 arg_3 = uint4(1u);
   tint_symbol_1.write(arg_3, uint2(arg_1), arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/0a1a79.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/0a1a79.wgsl.expected.spvasm
index 417481a..cedd43d 100644
--- a/test/tint/builtins/gen/var/textureStore/0a1a79.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/0a1a79.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 54
+; Bound: 57
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -41,56 +41,59 @@
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
      %v2uint = OpTypeVector %uint 2
-         %18 = OpConstantNull %v2uint
+     %uint_1 = OpConstant %uint 1
+         %19 = OpConstantComposite %v2uint %uint_1 %uint_1
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
+         %22 = OpConstantNull %v2uint
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
-         %25 = OpConstantNull %int
+         %27 = OpConstantNull %int
      %v4uint = OpTypeVector %uint 4
-         %27 = OpConstantNull %v4uint
+         %29 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
+         %32 = OpConstantNull %v4uint
      %v3uint = OpTypeVector %uint 3
-         %40 = OpTypeFunction %v4float
+         %43 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_0a1a79 = OpFunction %void None %13
          %16 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2uint Function %18
-      %arg_2 = OpVariable %_ptr_Function_int Function %25
-      %arg_3 = OpVariable %_ptr_Function_v4uint Function %27
-               OpStore %arg_1 %18
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %22
+      %arg_2 = OpVariable %_ptr_Function_int Function %27
+      %arg_3 = OpVariable %_ptr_Function_v4uint Function %32
+               OpStore %arg_1 %19
                OpStore %arg_2 %int_1
-               OpStore %arg_3 %27
-         %31 = OpLoad %11 %arg_0
-         %33 = OpLoad %v2uint %arg_1
-         %34 = OpCompositeExtract %uint %33 0
-         %35 = OpCompositeExtract %uint %33 1
-         %37 = OpLoad %int %arg_2
-         %36 = OpBitcast %uint %37
-         %38 = OpCompositeConstruct %v3uint %34 %35 %36
-         %39 = OpLoad %v4uint %arg_3
-               OpImageWrite %31 %38 %39
+               OpStore %arg_3 %29
+         %34 = OpLoad %11 %arg_0
+         %36 = OpLoad %v2uint %arg_1
+         %37 = OpCompositeExtract %uint %36 0
+         %38 = OpCompositeExtract %uint %36 1
+         %40 = OpLoad %int %arg_2
+         %39 = OpBitcast %uint %40
+         %41 = OpCompositeConstruct %v3uint %37 %38 %39
+         %42 = OpLoad %v4uint %arg_3
+               OpImageWrite %34 %41 %42
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %40
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_0a1a79
+%vertex_main_inner = OpFunction %v4float None %43
+         %45 = OpLabel
+         %46 = OpFunctionCall %void %textureStore_0a1a79
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %45 = OpLabel
-         %46 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %46
+         %48 = OpLabel
+         %49 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %49
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %49 = OpLabel
-         %50 = OpFunctionCall %void %textureStore_0a1a79
+         %52 = OpLabel
+         %53 = OpFunctionCall %void %textureStore_0a1a79
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %52 = OpLabel
-         %53 = OpFunctionCall %void %textureStore_0a1a79
+         %55 = OpLabel
+         %56 = OpFunctionCall %void %textureStore_0a1a79
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/0a1a79.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/0a1a79.wgsl.expected.wgsl
index 9c8a216..61f1fe9 100644
--- a/test/tint/builtins/gen/var/textureStore/0a1a79.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/0a1a79.wgsl.expected.wgsl
@@ -1,9 +1,9 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba8uint, write>;
 
 fn textureStore_0a1a79() {
-  var arg_1 = vec2<u32>();
+  var arg_1 = vec2<u32>(1u);
   var arg_2 = 1i;
-  var arg_3 = vec4<u32>();
+  var arg_3 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/0af6b5.wgsl b/test/tint/builtins/gen/var/textureStore/0af6b5.wgsl
index 8814567..eb144e5 100644
--- a/test/tint/builtins/gen/var/textureStore/0af6b5.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/0af6b5.wgsl
@@ -24,8 +24,8 @@
 
 // fn textureStore(texture: texture_storage_2d<r32float, write>, coords: vec2<i32>, value: vec4<f32>)
 fn textureStore_0af6b5() {
-  var arg_1 = vec2<i32>();
-  var arg_2 = vec4<f32>();
+  var arg_1 = vec2<i32>(1i);
+  var arg_2 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/0af6b5.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/0af6b5.wgsl.expected.dxc.hlsl
index a0e877b..5484237 100644
--- a/test/tint/builtins/gen/var/textureStore/0af6b5.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/0af6b5.wgsl.expected.dxc.hlsl
@@ -1,8 +1,8 @@
 RWTexture2D<float4> arg_0 : register(u0, space1);
 
 void textureStore_0af6b5() {
-  int2 arg_1 = (0).xx;
-  float4 arg_2 = (0.0f).xxxx;
+  int2 arg_1 = (1).xx;
+  float4 arg_2 = (1.0f).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/0af6b5.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/0af6b5.wgsl.expected.fxc.hlsl
index a0e877b..5484237 100644
--- a/test/tint/builtins/gen/var/textureStore/0af6b5.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/0af6b5.wgsl.expected.fxc.hlsl
@@ -1,8 +1,8 @@
 RWTexture2D<float4> arg_0 : register(u0, space1);
 
 void textureStore_0af6b5() {
-  int2 arg_1 = (0).xx;
-  float4 arg_2 = (0.0f).xxxx;
+  int2 arg_1 = (1).xx;
+  float4 arg_2 = (1.0f).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/0af6b5.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/0af6b5.wgsl.expected.glsl
index 1ae6b6b..7d26a29 100644
--- a/test/tint/builtins/gen/var/textureStore/0af6b5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/0af6b5.wgsl.expected.glsl
@@ -2,8 +2,8 @@
 
 layout(r32f) uniform highp writeonly image2D arg_0;
 void textureStore_0af6b5() {
-  ivec2 arg_1 = ivec2(0);
-  vec4 arg_2 = vec4(0.0f);
+  ivec2 arg_1 = ivec2(1);
+  vec4 arg_2 = vec4(1.0f);
   imageStore(arg_0, arg_1, arg_2);
 }
 
@@ -25,8 +25,8 @@
 
 layout(r32f) uniform highp writeonly image2D arg_0;
 void textureStore_0af6b5() {
-  ivec2 arg_1 = ivec2(0);
-  vec4 arg_2 = vec4(0.0f);
+  ivec2 arg_1 = ivec2(1);
+  vec4 arg_2 = vec4(1.0f);
   imageStore(arg_0, arg_1, arg_2);
 }
 
@@ -42,8 +42,8 @@
 
 layout(r32f) uniform highp writeonly image2D arg_0;
 void textureStore_0af6b5() {
-  ivec2 arg_1 = ivec2(0);
-  vec4 arg_2 = vec4(0.0f);
+  ivec2 arg_1 = ivec2(1);
+  vec4 arg_2 = vec4(1.0f);
   imageStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/0af6b5.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/0af6b5.wgsl.expected.msl
index cbf3101..de6f241 100644
--- a/test/tint/builtins/gen/var/textureStore/0af6b5.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/0af6b5.wgsl.expected.msl
@@ -2,8 +2,8 @@
 
 using namespace metal;
 void textureStore_0af6b5(texture2d<float, access::write> tint_symbol_1) {
-  int2 arg_1 = int2(0);
-  float4 arg_2 = float4(0.0f);
+  int2 arg_1 = int2(1);
+  float4 arg_2 = float4(1.0f);
   tint_symbol_1.write(arg_2, uint2(arg_1));
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/0af6b5.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/0af6b5.wgsl.expected.spvasm
index 2c11b9d..dbf15f2 100644
--- a/test/tint/builtins/gen/var/textureStore/0af6b5.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/0af6b5.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 41
+; Bound: 44
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -40,42 +40,45 @@
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
-         %18 = OpConstantNull %v2int
+      %int_1 = OpConstant %int 1
+         %19 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v2int = OpTypePointer Function %v2int
-%_ptr_Function_v4float = OpTypePointer Function %v4float
-         %27 = OpTypeFunction %v4float
+         %22 = OpConstantNull %v2int
     %float_1 = OpConstant %float 1
+         %24 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%_ptr_Function_v4float = OpTypePointer Function %v4float
+         %31 = OpTypeFunction %v4float
 %textureStore_0af6b5 = OpFunction %void None %12
          %15 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2int Function %18
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %22
       %arg_2 = OpVariable %_ptr_Function_v4float Function %5
-               OpStore %arg_1 %18
-               OpStore %arg_2 %5
-         %24 = OpLoad %11 %arg_0
-         %25 = OpLoad %v2int %arg_1
-         %26 = OpLoad %v4float %arg_2
-               OpImageWrite %24 %25 %26
+               OpStore %arg_1 %19
+               OpStore %arg_2 %24
+         %28 = OpLoad %11 %arg_0
+         %29 = OpLoad %v2int %arg_1
+         %30 = OpLoad %v4float %arg_2
+               OpImageWrite %28 %29 %30
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %27
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %textureStore_0af6b5
+%vertex_main_inner = OpFunction %v4float None %31
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureStore_0af6b5
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %32 = OpLabel
-         %33 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %33
+         %36 = OpLabel
+         %37 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %37
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_0af6b5
+         %39 = OpLabel
+         %40 = OpFunctionCall %void %textureStore_0af6b5
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_0af6b5
+         %42 = OpLabel
+         %43 = OpFunctionCall %void %textureStore_0af6b5
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/0af6b5.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/0af6b5.wgsl.expected.wgsl
index cba9b02..a0000ef 100644
--- a/test/tint/builtins/gen/var/textureStore/0af6b5.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/0af6b5.wgsl.expected.wgsl
@@ -1,8 +1,8 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d<r32float, write>;
 
 fn textureStore_0af6b5() {
-  var arg_1 = vec2<i32>();
-  var arg_2 = vec4<f32>();
+  var arg_1 = vec2<i32>(1i);
+  var arg_2 = vec4<f32>(1.0f);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/0c3dff.wgsl b/test/tint/builtins/gen/var/textureStore/0c3dff.wgsl
index 09d1595..655177a 100644
--- a/test/tint/builtins/gen/var/textureStore/0c3dff.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/0c3dff.wgsl
@@ -24,8 +24,8 @@
 
 // fn textureStore(texture: texture_storage_2d<rgba16uint, write>, coords: vec2<i32>, value: vec4<u32>)
 fn textureStore_0c3dff() {
-  var arg_1 = vec2<i32>();
-  var arg_2 = vec4<u32>();
+  var arg_1 = vec2<i32>(1i);
+  var arg_2 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/0c3dff.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/0c3dff.wgsl.expected.dxc.hlsl
index 2c960ef..5fe4eaf 100644
--- a/test/tint/builtins/gen/var/textureStore/0c3dff.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/0c3dff.wgsl.expected.dxc.hlsl
@@ -1,8 +1,8 @@
 RWTexture2D<uint4> arg_0 : register(u0, space1);
 
 void textureStore_0c3dff() {
-  int2 arg_1 = (0).xx;
-  uint4 arg_2 = (0u).xxxx;
+  int2 arg_1 = (1).xx;
+  uint4 arg_2 = (1u).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/0c3dff.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/0c3dff.wgsl.expected.fxc.hlsl
index 2c960ef..5fe4eaf 100644
--- a/test/tint/builtins/gen/var/textureStore/0c3dff.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/0c3dff.wgsl.expected.fxc.hlsl
@@ -1,8 +1,8 @@
 RWTexture2D<uint4> arg_0 : register(u0, space1);
 
 void textureStore_0c3dff() {
-  int2 arg_1 = (0).xx;
-  uint4 arg_2 = (0u).xxxx;
+  int2 arg_1 = (1).xx;
+  uint4 arg_2 = (1u).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/0c3dff.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/0c3dff.wgsl.expected.glsl
index 216ba1a..f7b6498 100644
--- a/test/tint/builtins/gen/var/textureStore/0c3dff.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/0c3dff.wgsl.expected.glsl
@@ -2,8 +2,8 @@
 
 layout(rgba16ui) uniform highp writeonly uimage2D arg_0;
 void textureStore_0c3dff() {
-  ivec2 arg_1 = ivec2(0);
-  uvec4 arg_2 = uvec4(0u);
+  ivec2 arg_1 = ivec2(1);
+  uvec4 arg_2 = uvec4(1u);
   imageStore(arg_0, arg_1, arg_2);
 }
 
@@ -25,8 +25,8 @@
 
 layout(rgba16ui) uniform highp writeonly uimage2D arg_0;
 void textureStore_0c3dff() {
-  ivec2 arg_1 = ivec2(0);
-  uvec4 arg_2 = uvec4(0u);
+  ivec2 arg_1 = ivec2(1);
+  uvec4 arg_2 = uvec4(1u);
   imageStore(arg_0, arg_1, arg_2);
 }
 
@@ -42,8 +42,8 @@
 
 layout(rgba16ui) uniform highp writeonly uimage2D arg_0;
 void textureStore_0c3dff() {
-  ivec2 arg_1 = ivec2(0);
-  uvec4 arg_2 = uvec4(0u);
+  ivec2 arg_1 = ivec2(1);
+  uvec4 arg_2 = uvec4(1u);
   imageStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/0c3dff.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/0c3dff.wgsl.expected.msl
index 7778f10..d33b405 100644
--- a/test/tint/builtins/gen/var/textureStore/0c3dff.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/0c3dff.wgsl.expected.msl
@@ -2,8 +2,8 @@
 
 using namespace metal;
 void textureStore_0c3dff(texture2d<uint, access::write> tint_symbol_1) {
-  int2 arg_1 = int2(0);
-  uint4 arg_2 = uint4(0u);
+  int2 arg_1 = int2(1);
+  uint4 arg_2 = uint4(1u);
   tint_symbol_1.write(arg_2, uint2(arg_1));
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/0c3dff.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/0c3dff.wgsl.expected.spvasm
index a5e6876..fc42068 100644
--- a/test/tint/builtins/gen/var/textureStore/0c3dff.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/0c3dff.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 48
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -41,44 +41,48 @@
          %13 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
-         %19 = OpConstantNull %v2int
+      %int_1 = OpConstant %int 1
+         %20 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v2int = OpTypePointer Function %v2int
+         %23 = OpConstantNull %v2int
      %v4uint = OpTypeVector %uint 4
-         %23 = OpConstantNull %v4uint
+     %uint_1 = OpConstant %uint 1
+         %26 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %30 = OpTypeFunction %v4float
+         %29 = OpConstantNull %v4uint
+         %34 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_0c3dff = OpFunction %void None %13
          %16 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2int Function %19
-      %arg_2 = OpVariable %_ptr_Function_v4uint Function %23
-               OpStore %arg_1 %19
-               OpStore %arg_2 %23
-         %27 = OpLoad %11 %arg_0
-         %28 = OpLoad %v2int %arg_1
-         %29 = OpLoad %v4uint %arg_2
-               OpImageWrite %27 %28 %29
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %23
+      %arg_2 = OpVariable %_ptr_Function_v4uint Function %29
+               OpStore %arg_1 %20
+               OpStore %arg_2 %26
+         %31 = OpLoad %11 %arg_0
+         %32 = OpLoad %v2int %arg_1
+         %33 = OpLoad %v4uint %arg_2
+               OpImageWrite %31 %32 %33
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %30
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_0c3dff
+%vertex_main_inner = OpFunction %v4float None %34
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureStore_0c3dff
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %36
+         %39 = OpLabel
+         %40 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %40
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_0c3dff
+         %43 = OpLabel
+         %44 = OpFunctionCall %void %textureStore_0c3dff
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_0c3dff
+         %46 = OpLabel
+         %47 = OpFunctionCall %void %textureStore_0c3dff
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/0c3dff.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/0c3dff.wgsl.expected.wgsl
index 3da20f2..4f16e0d 100644
--- a/test/tint/builtins/gen/var/textureStore/0c3dff.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/0c3dff.wgsl.expected.wgsl
@@ -1,8 +1,8 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba16uint, write>;
 
 fn textureStore_0c3dff() {
-  var arg_1 = vec2<i32>();
-  var arg_2 = vec4<u32>();
+  var arg_1 = vec2<i32>(1i);
+  var arg_2 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/0cc825.wgsl b/test/tint/builtins/gen/var/textureStore/0cc825.wgsl
index 1c34d7f..94cff34 100644
--- a/test/tint/builtins/gen/var/textureStore/0cc825.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/0cc825.wgsl
@@ -24,9 +24,9 @@
 
 // fn textureStore(texture: texture_storage_2d_array<rgba16sint, write>, coords: vec2<u32>, array_index: i32, value: vec4<i32>)
 fn textureStore_0cc825() {
-  var arg_1 = vec2<u32>();
+  var arg_1 = vec2<u32>(1u);
   var arg_2 = 1i;
-  var arg_3 = vec4<i32>();
+  var arg_3 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/0cc825.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/0cc825.wgsl.expected.dxc.hlsl
index d0d43f7..9528144 100644
--- a/test/tint/builtins/gen/var/textureStore/0cc825.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/0cc825.wgsl.expected.dxc.hlsl
@@ -1,9 +1,9 @@
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 void textureStore_0cc825() {
-  uint2 arg_1 = (0u).xx;
+  uint2 arg_1 = (1u).xx;
   int arg_2 = 1;
-  int4 arg_3 = (0).xxxx;
+  int4 arg_3 = (1).xxxx;
   arg_0[uint3(arg_1, uint(arg_2))] = arg_3;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/0cc825.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/0cc825.wgsl.expected.fxc.hlsl
index d0d43f7..9528144 100644
--- a/test/tint/builtins/gen/var/textureStore/0cc825.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/0cc825.wgsl.expected.fxc.hlsl
@@ -1,9 +1,9 @@
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 void textureStore_0cc825() {
-  uint2 arg_1 = (0u).xx;
+  uint2 arg_1 = (1u).xx;
   int arg_2 = 1;
-  int4 arg_3 = (0).xxxx;
+  int4 arg_3 = (1).xxxx;
   arg_0[uint3(arg_1, uint(arg_2))] = arg_3;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/0cc825.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/0cc825.wgsl.expected.glsl
index 5b99527..08388eb 100644
--- a/test/tint/builtins/gen/var/textureStore/0cc825.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/0cc825.wgsl.expected.glsl
@@ -2,9 +2,9 @@
 
 layout(rgba16i) uniform highp writeonly iimage2DArray arg_0;
 void textureStore_0cc825() {
-  uvec2 arg_1 = uvec2(0u);
+  uvec2 arg_1 = uvec2(1u);
   int arg_2 = 1;
-  ivec4 arg_3 = ivec4(0);
+  ivec4 arg_3 = ivec4(1);
   imageStore(arg_0, ivec3(uvec3(arg_1, uint(arg_2))), arg_3);
 }
 
@@ -26,9 +26,9 @@
 
 layout(rgba16i) uniform highp writeonly iimage2DArray arg_0;
 void textureStore_0cc825() {
-  uvec2 arg_1 = uvec2(0u);
+  uvec2 arg_1 = uvec2(1u);
   int arg_2 = 1;
-  ivec4 arg_3 = ivec4(0);
+  ivec4 arg_3 = ivec4(1);
   imageStore(arg_0, ivec3(uvec3(arg_1, uint(arg_2))), arg_3);
 }
 
@@ -44,9 +44,9 @@
 
 layout(rgba16i) uniform highp writeonly iimage2DArray arg_0;
 void textureStore_0cc825() {
-  uvec2 arg_1 = uvec2(0u);
+  uvec2 arg_1 = uvec2(1u);
   int arg_2 = 1;
-  ivec4 arg_3 = ivec4(0);
+  ivec4 arg_3 = ivec4(1);
   imageStore(arg_0, ivec3(uvec3(arg_1, uint(arg_2))), arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/0cc825.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/0cc825.wgsl.expected.msl
index 64aa5a9..5ef5511 100644
--- a/test/tint/builtins/gen/var/textureStore/0cc825.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/0cc825.wgsl.expected.msl
@@ -2,9 +2,9 @@
 
 using namespace metal;
 void textureStore_0cc825(texture2d_array<int, access::write> tint_symbol_1) {
-  uint2 arg_1 = uint2(0u);
+  uint2 arg_1 = uint2(1u);
   int arg_2 = 1;
-  int4 arg_3 = int4(0);
+  int4 arg_3 = int4(1);
   tint_symbol_1.write(arg_3, uint2(arg_1), arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/0cc825.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/0cc825.wgsl.expected.spvasm
index 93080b6..e817aeb 100644
--- a/test/tint/builtins/gen/var/textureStore/0cc825.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/0cc825.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 54
+; Bound: 57
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -42,55 +42,58 @@
          %13 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
-         %19 = OpConstantNull %v2uint
+     %uint_1 = OpConstant %uint 1
+         %20 = OpConstantComposite %v2uint %uint_1 %uint_1
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
+         %23 = OpConstantNull %v2uint
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
-         %25 = OpConstantNull %int
+         %27 = OpConstantNull %int
       %v4int = OpTypeVector %int 4
-         %27 = OpConstantNull %v4int
+         %29 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
+         %32 = OpConstantNull %v4int
      %v3uint = OpTypeVector %uint 3
-         %40 = OpTypeFunction %v4float
+         %43 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_0cc825 = OpFunction %void None %13
          %16 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2uint Function %19
-      %arg_2 = OpVariable %_ptr_Function_int Function %25
-      %arg_3 = OpVariable %_ptr_Function_v4int Function %27
-               OpStore %arg_1 %19
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %23
+      %arg_2 = OpVariable %_ptr_Function_int Function %27
+      %arg_3 = OpVariable %_ptr_Function_v4int Function %32
+               OpStore %arg_1 %20
                OpStore %arg_2 %int_1
-               OpStore %arg_3 %27
-         %31 = OpLoad %11 %arg_0
-         %33 = OpLoad %v2uint %arg_1
-         %34 = OpCompositeExtract %uint %33 0
-         %35 = OpCompositeExtract %uint %33 1
-         %37 = OpLoad %int %arg_2
-         %36 = OpBitcast %uint %37
-         %38 = OpCompositeConstruct %v3uint %34 %35 %36
-         %39 = OpLoad %v4int %arg_3
-               OpImageWrite %31 %38 %39
+               OpStore %arg_3 %29
+         %34 = OpLoad %11 %arg_0
+         %36 = OpLoad %v2uint %arg_1
+         %37 = OpCompositeExtract %uint %36 0
+         %38 = OpCompositeExtract %uint %36 1
+         %40 = OpLoad %int %arg_2
+         %39 = OpBitcast %uint %40
+         %41 = OpCompositeConstruct %v3uint %37 %38 %39
+         %42 = OpLoad %v4int %arg_3
+               OpImageWrite %34 %41 %42
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %40
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_0cc825
+%vertex_main_inner = OpFunction %v4float None %43
+         %45 = OpLabel
+         %46 = OpFunctionCall %void %textureStore_0cc825
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %45 = OpLabel
-         %46 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %46
+         %48 = OpLabel
+         %49 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %49
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %49 = OpLabel
-         %50 = OpFunctionCall %void %textureStore_0cc825
+         %52 = OpLabel
+         %53 = OpFunctionCall %void %textureStore_0cc825
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %52 = OpLabel
-         %53 = OpFunctionCall %void %textureStore_0cc825
+         %55 = OpLabel
+         %56 = OpFunctionCall %void %textureStore_0cc825
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/0cc825.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/0cc825.wgsl.expected.wgsl
index b5dce9d..7073dc0 100644
--- a/test/tint/builtins/gen/var/textureStore/0cc825.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/0cc825.wgsl.expected.wgsl
@@ -1,9 +1,9 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba16sint, write>;
 
 fn textureStore_0cc825() {
-  var arg_1 = vec2<u32>();
+  var arg_1 = vec2<u32>(1u);
   var arg_2 = 1i;
-  var arg_3 = vec4<i32>();
+  var arg_3 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/102722.wgsl b/test/tint/builtins/gen/var/textureStore/102722.wgsl
index 953b39a..6a983d5 100644
--- a/test/tint/builtins/gen/var/textureStore/102722.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/102722.wgsl
@@ -25,7 +25,7 @@
 // fn textureStore(texture: texture_storage_1d<r32uint, write>, coords: i32, value: vec4<u32>)
 fn textureStore_102722() {
   var arg_1 = 1i;
-  var arg_2 = vec4<u32>();
+  var arg_2 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/102722.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/102722.wgsl.expected.dxc.hlsl
index e256ac8..4c4b092 100644
--- a/test/tint/builtins/gen/var/textureStore/102722.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/102722.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 
 void textureStore_102722() {
   int arg_1 = 1;
-  uint4 arg_2 = (0u).xxxx;
+  uint4 arg_2 = (1u).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/102722.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/102722.wgsl.expected.fxc.hlsl
index e256ac8..4c4b092 100644
--- a/test/tint/builtins/gen/var/textureStore/102722.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/102722.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 
 void textureStore_102722() {
   int arg_1 = 1;
-  uint4 arg_2 = (0u).xxxx;
+  uint4 arg_2 = (1u).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/102722.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/102722.wgsl.expected.msl
index f197dcc..50ee1c6 100644
--- a/test/tint/builtins/gen/var/textureStore/102722.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/102722.wgsl.expected.msl
@@ -3,7 +3,7 @@
 using namespace metal;
 void textureStore_102722(texture1d<uint, access::write> tint_symbol_1) {
   int arg_1 = 1;
-  uint4 arg_2 = uint4(0u);
+  uint4 arg_2 = uint4(1u);
   tint_symbol_1.write(arg_2, uint(arg_1));
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/102722.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/102722.wgsl.expected.spvasm
index 0311196..243634e 100644
--- a/test/tint/builtins/gen/var/textureStore/102722.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/102722.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 46
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
@@ -45,41 +45,43 @@
 %_ptr_Function_int = OpTypePointer Function %int
          %21 = OpConstantNull %int
      %v4uint = OpTypeVector %uint 4
-         %23 = OpConstantNull %v4uint
+     %uint_1 = OpConstant %uint 1
+         %24 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %30 = OpTypeFunction %v4float
+         %27 = OpConstantNull %v4uint
+         %32 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_102722 = OpFunction %void None %13
          %16 = OpLabel
       %arg_1 = OpVariable %_ptr_Function_int Function %21
-      %arg_2 = OpVariable %_ptr_Function_v4uint Function %23
+      %arg_2 = OpVariable %_ptr_Function_v4uint Function %27
                OpStore %arg_1 %int_1
-               OpStore %arg_2 %23
-         %27 = OpLoad %11 %arg_0
-         %28 = OpLoad %int %arg_1
-         %29 = OpLoad %v4uint %arg_2
-               OpImageWrite %27 %28 %29
+               OpStore %arg_2 %24
+         %29 = OpLoad %11 %arg_0
+         %30 = OpLoad %int %arg_1
+         %31 = OpLoad %v4uint %arg_2
+               OpImageWrite %29 %30 %31
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %30
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_102722
+%vertex_main_inner = OpFunction %v4float None %32
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %textureStore_102722
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %36
+         %37 = OpLabel
+         %38 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %38
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_102722
+         %41 = OpLabel
+         %42 = OpFunctionCall %void %textureStore_102722
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_102722
+         %44 = OpLabel
+         %45 = OpFunctionCall %void %textureStore_102722
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/102722.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/102722.wgsl.expected.wgsl
index ca67293..34b69c3 100644
--- a/test/tint/builtins/gen/var/textureStore/102722.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/102722.wgsl.expected.wgsl
@@ -2,7 +2,7 @@
 
 fn textureStore_102722() {
   var arg_1 = 1i;
-  var arg_2 = vec4<u32>();
+  var arg_2 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/158cf0.wgsl b/test/tint/builtins/gen/var/textureStore/158cf0.wgsl
index 9e357ca..36d1073 100644
--- a/test/tint/builtins/gen/var/textureStore/158cf0.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/158cf0.wgsl
@@ -24,9 +24,9 @@
 
 // fn textureStore(texture: texture_storage_2d_array<r32uint, write>, coords: vec2<u32>, array_index: u32, value: vec4<u32>)
 fn textureStore_158cf0() {
-  var arg_1 = vec2<u32>();
+  var arg_1 = vec2<u32>(1u);
   var arg_2 = 1u;
-  var arg_3 = vec4<u32>();
+  var arg_3 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/158cf0.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/158cf0.wgsl.expected.dxc.hlsl
index c2d4244..dba67c8 100644
--- a/test/tint/builtins/gen/var/textureStore/158cf0.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/158cf0.wgsl.expected.dxc.hlsl
@@ -1,9 +1,9 @@
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 void textureStore_158cf0() {
-  uint2 arg_1 = (0u).xx;
+  uint2 arg_1 = (1u).xx;
   uint arg_2 = 1u;
-  uint4 arg_3 = (0u).xxxx;
+  uint4 arg_3 = (1u).xxxx;
   arg_0[uint3(arg_1, arg_2)] = arg_3;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/158cf0.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/158cf0.wgsl.expected.fxc.hlsl
index c2d4244..dba67c8 100644
--- a/test/tint/builtins/gen/var/textureStore/158cf0.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/158cf0.wgsl.expected.fxc.hlsl
@@ -1,9 +1,9 @@
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 void textureStore_158cf0() {
-  uint2 arg_1 = (0u).xx;
+  uint2 arg_1 = (1u).xx;
   uint arg_2 = 1u;
-  uint4 arg_3 = (0u).xxxx;
+  uint4 arg_3 = (1u).xxxx;
   arg_0[uint3(arg_1, arg_2)] = arg_3;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/158cf0.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/158cf0.wgsl.expected.glsl
index 3fbe7e3..fd42714 100644
--- a/test/tint/builtins/gen/var/textureStore/158cf0.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/158cf0.wgsl.expected.glsl
@@ -2,9 +2,9 @@
 
 layout(r32ui) uniform highp writeonly uimage2DArray arg_0;
 void textureStore_158cf0() {
-  uvec2 arg_1 = uvec2(0u);
+  uvec2 arg_1 = uvec2(1u);
   uint arg_2 = 1u;
-  uvec4 arg_3 = uvec4(0u);
+  uvec4 arg_3 = uvec4(1u);
   imageStore(arg_0, ivec3(uvec3(arg_1, arg_2)), arg_3);
 }
 
@@ -26,9 +26,9 @@
 
 layout(r32ui) uniform highp writeonly uimage2DArray arg_0;
 void textureStore_158cf0() {
-  uvec2 arg_1 = uvec2(0u);
+  uvec2 arg_1 = uvec2(1u);
   uint arg_2 = 1u;
-  uvec4 arg_3 = uvec4(0u);
+  uvec4 arg_3 = uvec4(1u);
   imageStore(arg_0, ivec3(uvec3(arg_1, arg_2)), arg_3);
 }
 
@@ -44,9 +44,9 @@
 
 layout(r32ui) uniform highp writeonly uimage2DArray arg_0;
 void textureStore_158cf0() {
-  uvec2 arg_1 = uvec2(0u);
+  uvec2 arg_1 = uvec2(1u);
   uint arg_2 = 1u;
-  uvec4 arg_3 = uvec4(0u);
+  uvec4 arg_3 = uvec4(1u);
   imageStore(arg_0, ivec3(uvec3(arg_1, arg_2)), arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/158cf0.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/158cf0.wgsl.expected.msl
index b53dec4..e5a7cc7 100644
--- a/test/tint/builtins/gen/var/textureStore/158cf0.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/158cf0.wgsl.expected.msl
@@ -2,9 +2,9 @@
 
 using namespace metal;
 void textureStore_158cf0(texture2d_array<uint, access::write> tint_symbol_1) {
-  uint2 arg_1 = uint2(0u);
+  uint2 arg_1 = uint2(1u);
   uint arg_2 = 1u;
-  uint4 arg_3 = uint4(0u);
+  uint4 arg_3 = uint4(1u);
   tint_symbol_1.write(arg_3, uint2(arg_1), arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/158cf0.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/158cf0.wgsl.expected.spvasm
index 540fcce..2316c2d 100644
--- a/test/tint/builtins/gen/var/textureStore/158cf0.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/158cf0.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 52
+; Bound: 54
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -41,54 +41,56 @@
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
      %v2uint = OpTypeVector %uint 2
-         %18 = OpConstantNull %v2uint
-%_ptr_Function_v2uint = OpTypePointer Function %v2uint
      %uint_1 = OpConstant %uint 1
+         %19 = OpConstantComposite %v2uint %uint_1 %uint_1
+%_ptr_Function_v2uint = OpTypePointer Function %v2uint
+         %22 = OpConstantNull %v2uint
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %24 = OpConstantNull %uint
+         %25 = OpConstantNull %uint
      %v4uint = OpTypeVector %uint 4
-         %26 = OpConstantNull %v4uint
+         %27 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
+         %30 = OpConstantNull %v4uint
      %v3uint = OpTypeVector %uint 3
-         %38 = OpTypeFunction %v4float
+         %40 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_158cf0 = OpFunction %void None %13
          %16 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2uint Function %18
-      %arg_2 = OpVariable %_ptr_Function_uint Function %24
-      %arg_3 = OpVariable %_ptr_Function_v4uint Function %26
-               OpStore %arg_1 %18
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %22
+      %arg_2 = OpVariable %_ptr_Function_uint Function %25
+      %arg_3 = OpVariable %_ptr_Function_v4uint Function %30
+               OpStore %arg_1 %19
                OpStore %arg_2 %uint_1
-               OpStore %arg_3 %26
-         %30 = OpLoad %11 %arg_0
-         %32 = OpLoad %v2uint %arg_1
-         %33 = OpCompositeExtract %uint %32 0
-         %34 = OpCompositeExtract %uint %32 1
-         %35 = OpLoad %uint %arg_2
-         %36 = OpCompositeConstruct %v3uint %33 %34 %35
-         %37 = OpLoad %v4uint %arg_3
-               OpImageWrite %30 %36 %37
+               OpStore %arg_3 %27
+         %32 = OpLoad %11 %arg_0
+         %34 = OpLoad %v2uint %arg_1
+         %35 = OpCompositeExtract %uint %34 0
+         %36 = OpCompositeExtract %uint %34 1
+         %37 = OpLoad %uint %arg_2
+         %38 = OpCompositeConstruct %v3uint %35 %36 %37
+         %39 = OpLoad %v4uint %arg_3
+               OpImageWrite %32 %38 %39
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %38
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureStore_158cf0
+%vertex_main_inner = OpFunction %v4float None %40
+         %42 = OpLabel
+         %43 = OpFunctionCall %void %textureStore_158cf0
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %43 = OpLabel
-         %44 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %44
+         %45 = OpLabel
+         %46 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %46
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %47 = OpLabel
-         %48 = OpFunctionCall %void %textureStore_158cf0
+         %49 = OpLabel
+         %50 = OpFunctionCall %void %textureStore_158cf0
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %50 = OpLabel
-         %51 = OpFunctionCall %void %textureStore_158cf0
+         %52 = OpLabel
+         %53 = OpFunctionCall %void %textureStore_158cf0
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/158cf0.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/158cf0.wgsl.expected.wgsl
index 234e5ce..cf77fa8 100644
--- a/test/tint/builtins/gen/var/textureStore/158cf0.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/158cf0.wgsl.expected.wgsl
@@ -1,9 +1,9 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<r32uint, write>;
 
 fn textureStore_158cf0() {
-  var arg_1 = vec2<u32>();
+  var arg_1 = vec2<u32>(1u);
   var arg_2 = 1u;
-  var arg_3 = vec4<u32>();
+  var arg_3 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/1839f2.wgsl b/test/tint/builtins/gen/var/textureStore/1839f2.wgsl
index 58f1750..d7fda87 100644
--- a/test/tint/builtins/gen/var/textureStore/1839f2.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/1839f2.wgsl
@@ -24,8 +24,8 @@
 
 // fn textureStore(texture: texture_storage_2d<rgba8sint, write>, coords: vec2<u32>, value: vec4<i32>)
 fn textureStore_1839f2() {
-  var arg_1 = vec2<u32>();
-  var arg_2 = vec4<i32>();
+  var arg_1 = vec2<u32>(1u);
+  var arg_2 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/1839f2.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/1839f2.wgsl.expected.dxc.hlsl
index a349cc7..c7d1d01 100644
--- a/test/tint/builtins/gen/var/textureStore/1839f2.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/1839f2.wgsl.expected.dxc.hlsl
@@ -1,8 +1,8 @@
 RWTexture2D<int4> arg_0 : register(u0, space1);
 
 void textureStore_1839f2() {
-  uint2 arg_1 = (0u).xx;
-  int4 arg_2 = (0).xxxx;
+  uint2 arg_1 = (1u).xx;
+  int4 arg_2 = (1).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/1839f2.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/1839f2.wgsl.expected.fxc.hlsl
index a349cc7..c7d1d01 100644
--- a/test/tint/builtins/gen/var/textureStore/1839f2.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/1839f2.wgsl.expected.fxc.hlsl
@@ -1,8 +1,8 @@
 RWTexture2D<int4> arg_0 : register(u0, space1);
 
 void textureStore_1839f2() {
-  uint2 arg_1 = (0u).xx;
-  int4 arg_2 = (0).xxxx;
+  uint2 arg_1 = (1u).xx;
+  int4 arg_2 = (1).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/1839f2.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/1839f2.wgsl.expected.glsl
index 290798d..80d857b 100644
--- a/test/tint/builtins/gen/var/textureStore/1839f2.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/1839f2.wgsl.expected.glsl
@@ -2,8 +2,8 @@
 
 layout(rgba8i) uniform highp writeonly iimage2D arg_0;
 void textureStore_1839f2() {
-  uvec2 arg_1 = uvec2(0u);
-  ivec4 arg_2 = ivec4(0);
+  uvec2 arg_1 = uvec2(1u);
+  ivec4 arg_2 = ivec4(1);
   imageStore(arg_0, ivec2(arg_1), arg_2);
 }
 
@@ -25,8 +25,8 @@
 
 layout(rgba8i) uniform highp writeonly iimage2D arg_0;
 void textureStore_1839f2() {
-  uvec2 arg_1 = uvec2(0u);
-  ivec4 arg_2 = ivec4(0);
+  uvec2 arg_1 = uvec2(1u);
+  ivec4 arg_2 = ivec4(1);
   imageStore(arg_0, ivec2(arg_1), arg_2);
 }
 
@@ -42,8 +42,8 @@
 
 layout(rgba8i) uniform highp writeonly iimage2D arg_0;
 void textureStore_1839f2() {
-  uvec2 arg_1 = uvec2(0u);
-  ivec4 arg_2 = ivec4(0);
+  uvec2 arg_1 = uvec2(1u);
+  ivec4 arg_2 = ivec4(1);
   imageStore(arg_0, ivec2(arg_1), arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/1839f2.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/1839f2.wgsl.expected.msl
index 2ab9268..dfe79c1 100644
--- a/test/tint/builtins/gen/var/textureStore/1839f2.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/1839f2.wgsl.expected.msl
@@ -2,8 +2,8 @@
 
 using namespace metal;
 void textureStore_1839f2(texture2d<int, access::write> tint_symbol_1) {
-  uint2 arg_1 = uint2(0u);
-  int4 arg_2 = int4(0);
+  uint2 arg_1 = uint2(1u);
+  int4 arg_2 = int4(1);
   tint_symbol_1.write(arg_2, uint2(arg_1));
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/1839f2.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/1839f2.wgsl.expected.spvasm
index 9ceec9b..801a5de 100644
--- a/test/tint/builtins/gen/var/textureStore/1839f2.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/1839f2.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 48
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -41,44 +41,48 @@
          %13 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
-         %19 = OpConstantNull %v2uint
+     %uint_1 = OpConstant %uint 1
+         %20 = OpConstantComposite %v2uint %uint_1 %uint_1
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
+         %23 = OpConstantNull %v2uint
       %v4int = OpTypeVector %int 4
-         %23 = OpConstantNull %v4int
+      %int_1 = OpConstant %int 1
+         %26 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %30 = OpTypeFunction %v4float
+         %29 = OpConstantNull %v4int
+         %34 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_1839f2 = OpFunction %void None %13
          %16 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2uint Function %19
-      %arg_2 = OpVariable %_ptr_Function_v4int Function %23
-               OpStore %arg_1 %19
-               OpStore %arg_2 %23
-         %27 = OpLoad %11 %arg_0
-         %28 = OpLoad %v2uint %arg_1
-         %29 = OpLoad %v4int %arg_2
-               OpImageWrite %27 %28 %29
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %23
+      %arg_2 = OpVariable %_ptr_Function_v4int Function %29
+               OpStore %arg_1 %20
+               OpStore %arg_2 %26
+         %31 = OpLoad %11 %arg_0
+         %32 = OpLoad %v2uint %arg_1
+         %33 = OpLoad %v4int %arg_2
+               OpImageWrite %31 %32 %33
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %30
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_1839f2
+%vertex_main_inner = OpFunction %v4float None %34
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureStore_1839f2
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %36
+         %39 = OpLabel
+         %40 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %40
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_1839f2
+         %43 = OpLabel
+         %44 = OpFunctionCall %void %textureStore_1839f2
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_1839f2
+         %46 = OpLabel
+         %47 = OpFunctionCall %void %textureStore_1839f2
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/1839f2.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/1839f2.wgsl.expected.wgsl
index 8dbc1c9..53634ab 100644
--- a/test/tint/builtins/gen/var/textureStore/1839f2.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/1839f2.wgsl.expected.wgsl
@@ -1,8 +1,8 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba8sint, write>;
 
 fn textureStore_1839f2() {
-  var arg_1 = vec2<u32>();
-  var arg_2 = vec4<i32>();
+  var arg_1 = vec2<u32>(1u);
+  var arg_2 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/1a7d35.wgsl b/test/tint/builtins/gen/var/textureStore/1a7d35.wgsl
index 88a097b..544693a 100644
--- a/test/tint/builtins/gen/var/textureStore/1a7d35.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/1a7d35.wgsl
@@ -24,9 +24,9 @@
 
 // fn textureStore(texture: texture_storage_2d_array<r32sint, write>, coords: vec2<u32>, array_index: u32, value: vec4<i32>)
 fn textureStore_1a7d35() {
-  var arg_1 = vec2<u32>();
+  var arg_1 = vec2<u32>(1u);
   var arg_2 = 1u;
-  var arg_3 = vec4<i32>();
+  var arg_3 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/1a7d35.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/1a7d35.wgsl.expected.dxc.hlsl
index 0a928d2..7fc2cd7 100644
--- a/test/tint/builtins/gen/var/textureStore/1a7d35.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/1a7d35.wgsl.expected.dxc.hlsl
@@ -1,9 +1,9 @@
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 void textureStore_1a7d35() {
-  uint2 arg_1 = (0u).xx;
+  uint2 arg_1 = (1u).xx;
   uint arg_2 = 1u;
-  int4 arg_3 = (0).xxxx;
+  int4 arg_3 = (1).xxxx;
   arg_0[uint3(arg_1, arg_2)] = arg_3;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/1a7d35.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/1a7d35.wgsl.expected.fxc.hlsl
index 0a928d2..7fc2cd7 100644
--- a/test/tint/builtins/gen/var/textureStore/1a7d35.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/1a7d35.wgsl.expected.fxc.hlsl
@@ -1,9 +1,9 @@
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 void textureStore_1a7d35() {
-  uint2 arg_1 = (0u).xx;
+  uint2 arg_1 = (1u).xx;
   uint arg_2 = 1u;
-  int4 arg_3 = (0).xxxx;
+  int4 arg_3 = (1).xxxx;
   arg_0[uint3(arg_1, arg_2)] = arg_3;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/1a7d35.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/1a7d35.wgsl.expected.glsl
index 3e00907..bcd8839 100644
--- a/test/tint/builtins/gen/var/textureStore/1a7d35.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/1a7d35.wgsl.expected.glsl
@@ -2,9 +2,9 @@
 
 layout(r32i) uniform highp writeonly iimage2DArray arg_0;
 void textureStore_1a7d35() {
-  uvec2 arg_1 = uvec2(0u);
+  uvec2 arg_1 = uvec2(1u);
   uint arg_2 = 1u;
-  ivec4 arg_3 = ivec4(0);
+  ivec4 arg_3 = ivec4(1);
   imageStore(arg_0, ivec3(uvec3(arg_1, arg_2)), arg_3);
 }
 
@@ -26,9 +26,9 @@
 
 layout(r32i) uniform highp writeonly iimage2DArray arg_0;
 void textureStore_1a7d35() {
-  uvec2 arg_1 = uvec2(0u);
+  uvec2 arg_1 = uvec2(1u);
   uint arg_2 = 1u;
-  ivec4 arg_3 = ivec4(0);
+  ivec4 arg_3 = ivec4(1);
   imageStore(arg_0, ivec3(uvec3(arg_1, arg_2)), arg_3);
 }
 
@@ -44,9 +44,9 @@
 
 layout(r32i) uniform highp writeonly iimage2DArray arg_0;
 void textureStore_1a7d35() {
-  uvec2 arg_1 = uvec2(0u);
+  uvec2 arg_1 = uvec2(1u);
   uint arg_2 = 1u;
-  ivec4 arg_3 = ivec4(0);
+  ivec4 arg_3 = ivec4(1);
   imageStore(arg_0, ivec3(uvec3(arg_1, arg_2)), arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/1a7d35.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/1a7d35.wgsl.expected.msl
index e5c4cd4..edf7dc3 100644
--- a/test/tint/builtins/gen/var/textureStore/1a7d35.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/1a7d35.wgsl.expected.msl
@@ -2,9 +2,9 @@
 
 using namespace metal;
 void textureStore_1a7d35(texture2d_array<int, access::write> tint_symbol_1) {
-  uint2 arg_1 = uint2(0u);
+  uint2 arg_1 = uint2(1u);
   uint arg_2 = 1u;
-  int4 arg_3 = int4(0);
+  int4 arg_3 = int4(1);
   tint_symbol_1.write(arg_3, uint2(arg_1), arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/1a7d35.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/1a7d35.wgsl.expected.spvasm
index 72a691f..c73f137 100644
--- a/test/tint/builtins/gen/var/textureStore/1a7d35.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/1a7d35.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 53
+; Bound: 56
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -42,54 +42,57 @@
          %13 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
-         %19 = OpConstantNull %v2uint
-%_ptr_Function_v2uint = OpTypePointer Function %v2uint
      %uint_1 = OpConstant %uint 1
+         %20 = OpConstantComposite %v2uint %uint_1 %uint_1
+%_ptr_Function_v2uint = OpTypePointer Function %v2uint
+         %23 = OpConstantNull %v2uint
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %25 = OpConstantNull %uint
+         %26 = OpConstantNull %uint
       %v4int = OpTypeVector %int 4
-         %27 = OpConstantNull %v4int
+      %int_1 = OpConstant %int 1
+         %29 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
+         %32 = OpConstantNull %v4int
      %v3uint = OpTypeVector %uint 3
-         %39 = OpTypeFunction %v4float
+         %42 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_1a7d35 = OpFunction %void None %13
          %16 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2uint Function %19
-      %arg_2 = OpVariable %_ptr_Function_uint Function %25
-      %arg_3 = OpVariable %_ptr_Function_v4int Function %27
-               OpStore %arg_1 %19
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %23
+      %arg_2 = OpVariable %_ptr_Function_uint Function %26
+      %arg_3 = OpVariable %_ptr_Function_v4int Function %32
+               OpStore %arg_1 %20
                OpStore %arg_2 %uint_1
-               OpStore %arg_3 %27
-         %31 = OpLoad %11 %arg_0
-         %33 = OpLoad %v2uint %arg_1
-         %34 = OpCompositeExtract %uint %33 0
-         %35 = OpCompositeExtract %uint %33 1
-         %36 = OpLoad %uint %arg_2
-         %37 = OpCompositeConstruct %v3uint %34 %35 %36
-         %38 = OpLoad %v4int %arg_3
-               OpImageWrite %31 %37 %38
+               OpStore %arg_3 %29
+         %34 = OpLoad %11 %arg_0
+         %36 = OpLoad %v2uint %arg_1
+         %37 = OpCompositeExtract %uint %36 0
+         %38 = OpCompositeExtract %uint %36 1
+         %39 = OpLoad %uint %arg_2
+         %40 = OpCompositeConstruct %v3uint %37 %38 %39
+         %41 = OpLoad %v4int %arg_3
+               OpImageWrite %34 %40 %41
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %39
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureStore_1a7d35
+%vertex_main_inner = OpFunction %v4float None %42
+         %44 = OpLabel
+         %45 = OpFunctionCall %void %textureStore_1a7d35
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %44 = OpLabel
-         %45 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %45
+         %47 = OpLabel
+         %48 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %48
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %48 = OpLabel
-         %49 = OpFunctionCall %void %textureStore_1a7d35
+         %51 = OpLabel
+         %52 = OpFunctionCall %void %textureStore_1a7d35
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %51 = OpLabel
-         %52 = OpFunctionCall %void %textureStore_1a7d35
+         %54 = OpLabel
+         %55 = OpFunctionCall %void %textureStore_1a7d35
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/1a7d35.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/1a7d35.wgsl.expected.wgsl
index 81eb9a1..d20a4b0 100644
--- a/test/tint/builtins/gen/var/textureStore/1a7d35.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/1a7d35.wgsl.expected.wgsl
@@ -1,9 +1,9 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<r32sint, write>;
 
 fn textureStore_1a7d35() {
-  var arg_1 = vec2<u32>();
+  var arg_1 = vec2<u32>(1u);
   var arg_2 = 1u;
-  var arg_3 = vec4<i32>();
+  var arg_3 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/1bbd08.wgsl b/test/tint/builtins/gen/var/textureStore/1bbd08.wgsl
index 4445c3d..5fd9db6 100644
--- a/test/tint/builtins/gen/var/textureStore/1bbd08.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/1bbd08.wgsl
@@ -24,8 +24,8 @@
 
 // fn textureStore(texture: texture_storage_3d<rgba8unorm, write>, coords: vec3<i32>, value: vec4<f32>)
 fn textureStore_1bbd08() {
-  var arg_1 = vec3<i32>();
-  var arg_2 = vec4<f32>();
+  var arg_1 = vec3<i32>(1i);
+  var arg_2 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/1bbd08.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/1bbd08.wgsl.expected.dxc.hlsl
index 9bbd9cf..ce81287 100644
--- a/test/tint/builtins/gen/var/textureStore/1bbd08.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/1bbd08.wgsl.expected.dxc.hlsl
@@ -1,8 +1,8 @@
 RWTexture3D<float4> arg_0 : register(u0, space1);
 
 void textureStore_1bbd08() {
-  int3 arg_1 = (0).xxx;
-  float4 arg_2 = (0.0f).xxxx;
+  int3 arg_1 = (1).xxx;
+  float4 arg_2 = (1.0f).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/1bbd08.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/1bbd08.wgsl.expected.fxc.hlsl
index 9bbd9cf..ce81287 100644
--- a/test/tint/builtins/gen/var/textureStore/1bbd08.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/1bbd08.wgsl.expected.fxc.hlsl
@@ -1,8 +1,8 @@
 RWTexture3D<float4> arg_0 : register(u0, space1);
 
 void textureStore_1bbd08() {
-  int3 arg_1 = (0).xxx;
-  float4 arg_2 = (0.0f).xxxx;
+  int3 arg_1 = (1).xxx;
+  float4 arg_2 = (1.0f).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/1bbd08.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/1bbd08.wgsl.expected.glsl
index 8bbedc5..ebbd4b4 100644
--- a/test/tint/builtins/gen/var/textureStore/1bbd08.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/1bbd08.wgsl.expected.glsl
@@ -2,8 +2,8 @@
 
 layout(rgba8) uniform highp writeonly image3D arg_0;
 void textureStore_1bbd08() {
-  ivec3 arg_1 = ivec3(0);
-  vec4 arg_2 = vec4(0.0f);
+  ivec3 arg_1 = ivec3(1);
+  vec4 arg_2 = vec4(1.0f);
   imageStore(arg_0, arg_1, arg_2);
 }
 
@@ -25,8 +25,8 @@
 
 layout(rgba8) uniform highp writeonly image3D arg_0;
 void textureStore_1bbd08() {
-  ivec3 arg_1 = ivec3(0);
-  vec4 arg_2 = vec4(0.0f);
+  ivec3 arg_1 = ivec3(1);
+  vec4 arg_2 = vec4(1.0f);
   imageStore(arg_0, arg_1, arg_2);
 }
 
@@ -42,8 +42,8 @@
 
 layout(rgba8) uniform highp writeonly image3D arg_0;
 void textureStore_1bbd08() {
-  ivec3 arg_1 = ivec3(0);
-  vec4 arg_2 = vec4(0.0f);
+  ivec3 arg_1 = ivec3(1);
+  vec4 arg_2 = vec4(1.0f);
   imageStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/1bbd08.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/1bbd08.wgsl.expected.msl
index a09fc63..25ebb70 100644
--- a/test/tint/builtins/gen/var/textureStore/1bbd08.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/1bbd08.wgsl.expected.msl
@@ -2,8 +2,8 @@
 
 using namespace metal;
 void textureStore_1bbd08(texture3d<float, access::write> tint_symbol_1) {
-  int3 arg_1 = int3(0);
-  float4 arg_2 = float4(0.0f);
+  int3 arg_1 = int3(1);
+  float4 arg_2 = float4(1.0f);
   tint_symbol_1.write(arg_2, uint3(arg_1));
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/1bbd08.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/1bbd08.wgsl.expected.spvasm
index e5356af..c67fbe5 100644
--- a/test/tint/builtins/gen/var/textureStore/1bbd08.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/1bbd08.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 41
+; Bound: 44
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -40,42 +40,45 @@
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
-         %18 = OpConstantNull %v3int
+      %int_1 = OpConstant %int 1
+         %19 = OpConstantComposite %v3int %int_1 %int_1 %int_1
 %_ptr_Function_v3int = OpTypePointer Function %v3int
-%_ptr_Function_v4float = OpTypePointer Function %v4float
-         %27 = OpTypeFunction %v4float
+         %22 = OpConstantNull %v3int
     %float_1 = OpConstant %float 1
+         %24 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%_ptr_Function_v4float = OpTypePointer Function %v4float
+         %31 = OpTypeFunction %v4float
 %textureStore_1bbd08 = OpFunction %void None %12
          %15 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v3int Function %18
+      %arg_1 = OpVariable %_ptr_Function_v3int Function %22
       %arg_2 = OpVariable %_ptr_Function_v4float Function %5
-               OpStore %arg_1 %18
-               OpStore %arg_2 %5
-         %24 = OpLoad %11 %arg_0
-         %25 = OpLoad %v3int %arg_1
-         %26 = OpLoad %v4float %arg_2
-               OpImageWrite %24 %25 %26
+               OpStore %arg_1 %19
+               OpStore %arg_2 %24
+         %28 = OpLoad %11 %arg_0
+         %29 = OpLoad %v3int %arg_1
+         %30 = OpLoad %v4float %arg_2
+               OpImageWrite %28 %29 %30
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %27
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %textureStore_1bbd08
+%vertex_main_inner = OpFunction %v4float None %31
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureStore_1bbd08
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %32 = OpLabel
-         %33 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %33
+         %36 = OpLabel
+         %37 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %37
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_1bbd08
+         %39 = OpLabel
+         %40 = OpFunctionCall %void %textureStore_1bbd08
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_1bbd08
+         %42 = OpLabel
+         %43 = OpFunctionCall %void %textureStore_1bbd08
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/1bbd08.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/1bbd08.wgsl.expected.wgsl
index 7043ee1..0f2939e 100644
--- a/test/tint/builtins/gen/var/textureStore/1bbd08.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/1bbd08.wgsl.expected.wgsl
@@ -1,8 +1,8 @@
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rgba8unorm, write>;
 
 fn textureStore_1bbd08() {
-  var arg_1 = vec3<i32>();
-  var arg_2 = vec4<f32>();
+  var arg_1 = vec3<i32>(1i);
+  var arg_2 = vec4<f32>(1.0f);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/1c02e7.wgsl b/test/tint/builtins/gen/var/textureStore/1c02e7.wgsl
index 383b4f0..b7226e4 100644
--- a/test/tint/builtins/gen/var/textureStore/1c02e7.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/1c02e7.wgsl
@@ -24,9 +24,9 @@
 
 // fn textureStore(texture: texture_storage_2d_array<r32sint, write>, coords: vec2<i32>, array_index: i32, value: vec4<i32>)
 fn textureStore_1c02e7() {
-  var arg_1 = vec2<i32>();
+  var arg_1 = vec2<i32>(1i);
   var arg_2 = 1i;
-  var arg_3 = vec4<i32>();
+  var arg_3 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/1c02e7.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/1c02e7.wgsl.expected.dxc.hlsl
index 4fe7a79..722133e 100644
--- a/test/tint/builtins/gen/var/textureStore/1c02e7.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/1c02e7.wgsl.expected.dxc.hlsl
@@ -1,9 +1,9 @@
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 void textureStore_1c02e7() {
-  int2 arg_1 = (0).xx;
+  int2 arg_1 = (1).xx;
   int arg_2 = 1;
-  int4 arg_3 = (0).xxxx;
+  int4 arg_3 = (1).xxxx;
   arg_0[int3(arg_1, arg_2)] = arg_3;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/1c02e7.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/1c02e7.wgsl.expected.fxc.hlsl
index 4fe7a79..722133e 100644
--- a/test/tint/builtins/gen/var/textureStore/1c02e7.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/1c02e7.wgsl.expected.fxc.hlsl
@@ -1,9 +1,9 @@
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 void textureStore_1c02e7() {
-  int2 arg_1 = (0).xx;
+  int2 arg_1 = (1).xx;
   int arg_2 = 1;
-  int4 arg_3 = (0).xxxx;
+  int4 arg_3 = (1).xxxx;
   arg_0[int3(arg_1, arg_2)] = arg_3;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/1c02e7.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/1c02e7.wgsl.expected.glsl
index 43e87d1..20a007a 100644
--- a/test/tint/builtins/gen/var/textureStore/1c02e7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/1c02e7.wgsl.expected.glsl
@@ -2,9 +2,9 @@
 
 layout(r32i) uniform highp writeonly iimage2DArray arg_0;
 void textureStore_1c02e7() {
-  ivec2 arg_1 = ivec2(0);
+  ivec2 arg_1 = ivec2(1);
   int arg_2 = 1;
-  ivec4 arg_3 = ivec4(0);
+  ivec4 arg_3 = ivec4(1);
   imageStore(arg_0, ivec3(arg_1, arg_2), arg_3);
 }
 
@@ -26,9 +26,9 @@
 
 layout(r32i) uniform highp writeonly iimage2DArray arg_0;
 void textureStore_1c02e7() {
-  ivec2 arg_1 = ivec2(0);
+  ivec2 arg_1 = ivec2(1);
   int arg_2 = 1;
-  ivec4 arg_3 = ivec4(0);
+  ivec4 arg_3 = ivec4(1);
   imageStore(arg_0, ivec3(arg_1, arg_2), arg_3);
 }
 
@@ -44,9 +44,9 @@
 
 layout(r32i) uniform highp writeonly iimage2DArray arg_0;
 void textureStore_1c02e7() {
-  ivec2 arg_1 = ivec2(0);
+  ivec2 arg_1 = ivec2(1);
   int arg_2 = 1;
-  ivec4 arg_3 = ivec4(0);
+  ivec4 arg_3 = ivec4(1);
   imageStore(arg_0, ivec3(arg_1, arg_2), arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/1c02e7.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/1c02e7.wgsl.expected.msl
index a2ef827..2d3b1a9 100644
--- a/test/tint/builtins/gen/var/textureStore/1c02e7.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/1c02e7.wgsl.expected.msl
@@ -2,9 +2,9 @@
 
 using namespace metal;
 void textureStore_1c02e7(texture2d_array<int, access::write> tint_symbol_1) {
-  int2 arg_1 = int2(0);
+  int2 arg_1 = int2(1);
   int arg_2 = 1;
-  int4 arg_3 = int4(0);
+  int4 arg_3 = int4(1);
   tint_symbol_1.write(arg_3, uint2(arg_1), arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/1c02e7.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/1c02e7.wgsl.expected.spvasm
index 8497c20..e73c661 100644
--- a/test/tint/builtins/gen/var/textureStore/1c02e7.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/1c02e7.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 52
+; Bound: 54
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -41,54 +41,56 @@
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
       %v2int = OpTypeVector %int 2
-         %18 = OpConstantNull %v2int
-%_ptr_Function_v2int = OpTypePointer Function %v2int
       %int_1 = OpConstant %int 1
+         %19 = OpConstantComposite %v2int %int_1 %int_1
+%_ptr_Function_v2int = OpTypePointer Function %v2int
+         %22 = OpConstantNull %v2int
 %_ptr_Function_int = OpTypePointer Function %int
-         %24 = OpConstantNull %int
+         %25 = OpConstantNull %int
       %v4int = OpTypeVector %int 4
-         %26 = OpConstantNull %v4int
+         %27 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
+         %30 = OpConstantNull %v4int
       %v3int = OpTypeVector %int 3
-         %38 = OpTypeFunction %v4float
+         %40 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_1c02e7 = OpFunction %void None %13
          %16 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2int Function %18
-      %arg_2 = OpVariable %_ptr_Function_int Function %24
-      %arg_3 = OpVariable %_ptr_Function_v4int Function %26
-               OpStore %arg_1 %18
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %22
+      %arg_2 = OpVariable %_ptr_Function_int Function %25
+      %arg_3 = OpVariable %_ptr_Function_v4int Function %30
+               OpStore %arg_1 %19
                OpStore %arg_2 %int_1
-               OpStore %arg_3 %26
-         %30 = OpLoad %11 %arg_0
-         %32 = OpLoad %v2int %arg_1
-         %33 = OpCompositeExtract %int %32 0
-         %34 = OpCompositeExtract %int %32 1
-         %35 = OpLoad %int %arg_2
-         %36 = OpCompositeConstruct %v3int %33 %34 %35
-         %37 = OpLoad %v4int %arg_3
-               OpImageWrite %30 %36 %37
+               OpStore %arg_3 %27
+         %32 = OpLoad %11 %arg_0
+         %34 = OpLoad %v2int %arg_1
+         %35 = OpCompositeExtract %int %34 0
+         %36 = OpCompositeExtract %int %34 1
+         %37 = OpLoad %int %arg_2
+         %38 = OpCompositeConstruct %v3int %35 %36 %37
+         %39 = OpLoad %v4int %arg_3
+               OpImageWrite %32 %38 %39
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %38
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureStore_1c02e7
+%vertex_main_inner = OpFunction %v4float None %40
+         %42 = OpLabel
+         %43 = OpFunctionCall %void %textureStore_1c02e7
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %43 = OpLabel
-         %44 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %44
+         %45 = OpLabel
+         %46 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %46
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %47 = OpLabel
-         %48 = OpFunctionCall %void %textureStore_1c02e7
+         %49 = OpLabel
+         %50 = OpFunctionCall %void %textureStore_1c02e7
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %50 = OpLabel
-         %51 = OpFunctionCall %void %textureStore_1c02e7
+         %52 = OpLabel
+         %53 = OpFunctionCall %void %textureStore_1c02e7
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/1c02e7.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/1c02e7.wgsl.expected.wgsl
index 1632c65..68cd402 100644
--- a/test/tint/builtins/gen/var/textureStore/1c02e7.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/1c02e7.wgsl.expected.wgsl
@@ -1,9 +1,9 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<r32sint, write>;
 
 fn textureStore_1c02e7() {
-  var arg_1 = vec2<i32>();
+  var arg_1 = vec2<i32>(1i);
   var arg_2 = 1i;
-  var arg_3 = vec4<i32>();
+  var arg_3 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/1dc954.wgsl b/test/tint/builtins/gen/var/textureStore/1dc954.wgsl
index 252b14a..fbfcdb4 100644
--- a/test/tint/builtins/gen/var/textureStore/1dc954.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/1dc954.wgsl
@@ -25,7 +25,7 @@
 // fn textureStore(texture: texture_storage_1d<rgba32sint, write>, coords: u32, value: vec4<i32>)
 fn textureStore_1dc954() {
   var arg_1 = 1u;
-  var arg_2 = vec4<i32>();
+  var arg_2 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/1dc954.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/1dc954.wgsl.expected.dxc.hlsl
index 63191df..5b510fb 100644
--- a/test/tint/builtins/gen/var/textureStore/1dc954.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/1dc954.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 
 void textureStore_1dc954() {
   uint arg_1 = 1u;
-  int4 arg_2 = (0).xxxx;
+  int4 arg_2 = (1).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/1dc954.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/1dc954.wgsl.expected.fxc.hlsl
index 63191df..5b510fb 100644
--- a/test/tint/builtins/gen/var/textureStore/1dc954.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/1dc954.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 
 void textureStore_1dc954() {
   uint arg_1 = 1u;
-  int4 arg_2 = (0).xxxx;
+  int4 arg_2 = (1).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/1dc954.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/1dc954.wgsl.expected.msl
index 78aa861..7263621 100644
--- a/test/tint/builtins/gen/var/textureStore/1dc954.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/1dc954.wgsl.expected.msl
@@ -3,7 +3,7 @@
 using namespace metal;
 void textureStore_1dc954(texture1d<int, access::write> tint_symbol_1) {
   uint arg_1 = 1u;
-  int4 arg_2 = int4(0);
+  int4 arg_2 = int4(1);
   tint_symbol_1.write(arg_2, uint(arg_1));
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/1dc954.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/1dc954.wgsl.expected.spvasm
index 2d08c73..d5eb6a3 100644
--- a/test/tint/builtins/gen/var/textureStore/1dc954.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/1dc954.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 46
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
@@ -45,41 +45,43 @@
 %_ptr_Function_uint = OpTypePointer Function %uint
          %21 = OpConstantNull %uint
       %v4int = OpTypeVector %int 4
-         %23 = OpConstantNull %v4int
+      %int_1 = OpConstant %int 1
+         %24 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %30 = OpTypeFunction %v4float
+         %27 = OpConstantNull %v4int
+         %32 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_1dc954 = OpFunction %void None %13
          %16 = OpLabel
       %arg_1 = OpVariable %_ptr_Function_uint Function %21
-      %arg_2 = OpVariable %_ptr_Function_v4int Function %23
+      %arg_2 = OpVariable %_ptr_Function_v4int Function %27
                OpStore %arg_1 %uint_1
-               OpStore %arg_2 %23
-         %27 = OpLoad %11 %arg_0
-         %28 = OpLoad %uint %arg_1
-         %29 = OpLoad %v4int %arg_2
-               OpImageWrite %27 %28 %29
+               OpStore %arg_2 %24
+         %29 = OpLoad %11 %arg_0
+         %30 = OpLoad %uint %arg_1
+         %31 = OpLoad %v4int %arg_2
+               OpImageWrite %29 %30 %31
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %30
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_1dc954
+%vertex_main_inner = OpFunction %v4float None %32
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %textureStore_1dc954
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %36
+         %37 = OpLabel
+         %38 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %38
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_1dc954
+         %41 = OpLabel
+         %42 = OpFunctionCall %void %textureStore_1dc954
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_1dc954
+         %44 = OpLabel
+         %45 = OpFunctionCall %void %textureStore_1dc954
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/1dc954.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/1dc954.wgsl.expected.wgsl
index 498cfc4..7030e86 100644
--- a/test/tint/builtins/gen/var/textureStore/1dc954.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/1dc954.wgsl.expected.wgsl
@@ -2,7 +2,7 @@
 
 fn textureStore_1dc954() {
   var arg_1 = 1u;
-  var arg_2 = vec4<i32>();
+  var arg_2 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/1e20f2.wgsl b/test/tint/builtins/gen/var/textureStore/1e20f2.wgsl
index cb704a8..16e0779 100644
--- a/test/tint/builtins/gen/var/textureStore/1e20f2.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/1e20f2.wgsl
@@ -24,8 +24,8 @@
 
 // fn textureStore(texture: texture_storage_2d<r32float, write>, coords: vec2<u32>, value: vec4<f32>)
 fn textureStore_1e20f2() {
-  var arg_1 = vec2<u32>();
-  var arg_2 = vec4<f32>();
+  var arg_1 = vec2<u32>(1u);
+  var arg_2 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/1e20f2.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/1e20f2.wgsl.expected.dxc.hlsl
index d7b4a2b..6100385 100644
--- a/test/tint/builtins/gen/var/textureStore/1e20f2.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/1e20f2.wgsl.expected.dxc.hlsl
@@ -1,8 +1,8 @@
 RWTexture2D<float4> arg_0 : register(u0, space1);
 
 void textureStore_1e20f2() {
-  uint2 arg_1 = (0u).xx;
-  float4 arg_2 = (0.0f).xxxx;
+  uint2 arg_1 = (1u).xx;
+  float4 arg_2 = (1.0f).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/1e20f2.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/1e20f2.wgsl.expected.fxc.hlsl
index d7b4a2b..6100385 100644
--- a/test/tint/builtins/gen/var/textureStore/1e20f2.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/1e20f2.wgsl.expected.fxc.hlsl
@@ -1,8 +1,8 @@
 RWTexture2D<float4> arg_0 : register(u0, space1);
 
 void textureStore_1e20f2() {
-  uint2 arg_1 = (0u).xx;
-  float4 arg_2 = (0.0f).xxxx;
+  uint2 arg_1 = (1u).xx;
+  float4 arg_2 = (1.0f).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/1e20f2.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/1e20f2.wgsl.expected.glsl
index 1ea1aaf..2f54945 100644
--- a/test/tint/builtins/gen/var/textureStore/1e20f2.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/1e20f2.wgsl.expected.glsl
@@ -2,8 +2,8 @@
 
 layout(r32f) uniform highp writeonly image2D arg_0;
 void textureStore_1e20f2() {
-  uvec2 arg_1 = uvec2(0u);
-  vec4 arg_2 = vec4(0.0f);
+  uvec2 arg_1 = uvec2(1u);
+  vec4 arg_2 = vec4(1.0f);
   imageStore(arg_0, ivec2(arg_1), arg_2);
 }
 
@@ -25,8 +25,8 @@
 
 layout(r32f) uniform highp writeonly image2D arg_0;
 void textureStore_1e20f2() {
-  uvec2 arg_1 = uvec2(0u);
-  vec4 arg_2 = vec4(0.0f);
+  uvec2 arg_1 = uvec2(1u);
+  vec4 arg_2 = vec4(1.0f);
   imageStore(arg_0, ivec2(arg_1), arg_2);
 }
 
@@ -42,8 +42,8 @@
 
 layout(r32f) uniform highp writeonly image2D arg_0;
 void textureStore_1e20f2() {
-  uvec2 arg_1 = uvec2(0u);
-  vec4 arg_2 = vec4(0.0f);
+  uvec2 arg_1 = uvec2(1u);
+  vec4 arg_2 = vec4(1.0f);
   imageStore(arg_0, ivec2(arg_1), arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/1e20f2.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/1e20f2.wgsl.expected.msl
index 698070e..de3d80e 100644
--- a/test/tint/builtins/gen/var/textureStore/1e20f2.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/1e20f2.wgsl.expected.msl
@@ -2,8 +2,8 @@
 
 using namespace metal;
 void textureStore_1e20f2(texture2d<float, access::write> tint_symbol_1) {
-  uint2 arg_1 = uint2(0u);
-  float4 arg_2 = float4(0.0f);
+  uint2 arg_1 = uint2(1u);
+  float4 arg_2 = float4(1.0f);
   tint_symbol_1.write(arg_2, uint2(arg_1));
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/1e20f2.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/1e20f2.wgsl.expected.spvasm
index db47768..5f435d0 100644
--- a/test/tint/builtins/gen/var/textureStore/1e20f2.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/1e20f2.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 41
+; Bound: 44
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -40,42 +40,45 @@
          %12 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
-         %18 = OpConstantNull %v2uint
+     %uint_1 = OpConstant %uint 1
+         %19 = OpConstantComposite %v2uint %uint_1 %uint_1
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
-%_ptr_Function_v4float = OpTypePointer Function %v4float
-         %27 = OpTypeFunction %v4float
+         %22 = OpConstantNull %v2uint
     %float_1 = OpConstant %float 1
+         %24 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%_ptr_Function_v4float = OpTypePointer Function %v4float
+         %31 = OpTypeFunction %v4float
 %textureStore_1e20f2 = OpFunction %void None %12
          %15 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2uint Function %18
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %22
       %arg_2 = OpVariable %_ptr_Function_v4float Function %5
-               OpStore %arg_1 %18
-               OpStore %arg_2 %5
-         %24 = OpLoad %11 %arg_0
-         %25 = OpLoad %v2uint %arg_1
-         %26 = OpLoad %v4float %arg_2
-               OpImageWrite %24 %25 %26
+               OpStore %arg_1 %19
+               OpStore %arg_2 %24
+         %28 = OpLoad %11 %arg_0
+         %29 = OpLoad %v2uint %arg_1
+         %30 = OpLoad %v4float %arg_2
+               OpImageWrite %28 %29 %30
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %27
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %textureStore_1e20f2
+%vertex_main_inner = OpFunction %v4float None %31
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureStore_1e20f2
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %32 = OpLabel
-         %33 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %33
+         %36 = OpLabel
+         %37 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %37
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_1e20f2
+         %39 = OpLabel
+         %40 = OpFunctionCall %void %textureStore_1e20f2
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_1e20f2
+         %42 = OpLabel
+         %43 = OpFunctionCall %void %textureStore_1e20f2
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/1e20f2.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/1e20f2.wgsl.expected.wgsl
index 1116037..966a957 100644
--- a/test/tint/builtins/gen/var/textureStore/1e20f2.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/1e20f2.wgsl.expected.wgsl
@@ -1,8 +1,8 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d<r32float, write>;
 
 fn textureStore_1e20f2() {
-  var arg_1 = vec2<u32>();
-  var arg_2 = vec4<f32>();
+  var arg_1 = vec2<u32>(1u);
+  var arg_2 = vec4<f32>(1.0f);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/1f1ef8.wgsl b/test/tint/builtins/gen/var/textureStore/1f1ef8.wgsl
index 11f4582..3992003 100644
--- a/test/tint/builtins/gen/var/textureStore/1f1ef8.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/1f1ef8.wgsl
@@ -24,9 +24,9 @@
 
 // fn textureStore(texture: texture_storage_2d_array<rgba16sint, write>, coords: vec2<i32>, array_index: u32, value: vec4<i32>)
 fn textureStore_1f1ef8() {
-  var arg_1 = vec2<i32>();
+  var arg_1 = vec2<i32>(1i);
   var arg_2 = 1u;
-  var arg_3 = vec4<i32>();
+  var arg_3 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/1f1ef8.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/1f1ef8.wgsl.expected.dxc.hlsl
index ffa0ed2..35af475 100644
--- a/test/tint/builtins/gen/var/textureStore/1f1ef8.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/1f1ef8.wgsl.expected.dxc.hlsl
@@ -1,9 +1,9 @@
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 void textureStore_1f1ef8() {
-  int2 arg_1 = (0).xx;
+  int2 arg_1 = (1).xx;
   uint arg_2 = 1u;
-  int4 arg_3 = (0).xxxx;
+  int4 arg_3 = (1).xxxx;
   arg_0[int3(arg_1, int(arg_2))] = arg_3;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/1f1ef8.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/1f1ef8.wgsl.expected.fxc.hlsl
index ffa0ed2..35af475 100644
--- a/test/tint/builtins/gen/var/textureStore/1f1ef8.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/1f1ef8.wgsl.expected.fxc.hlsl
@@ -1,9 +1,9 @@
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 void textureStore_1f1ef8() {
-  int2 arg_1 = (0).xx;
+  int2 arg_1 = (1).xx;
   uint arg_2 = 1u;
-  int4 arg_3 = (0).xxxx;
+  int4 arg_3 = (1).xxxx;
   arg_0[int3(arg_1, int(arg_2))] = arg_3;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/1f1ef8.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/1f1ef8.wgsl.expected.glsl
index 81f7833..e04a7f1 100644
--- a/test/tint/builtins/gen/var/textureStore/1f1ef8.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/1f1ef8.wgsl.expected.glsl
@@ -2,9 +2,9 @@
 
 layout(rgba16i) uniform highp writeonly iimage2DArray arg_0;
 void textureStore_1f1ef8() {
-  ivec2 arg_1 = ivec2(0);
+  ivec2 arg_1 = ivec2(1);
   uint arg_2 = 1u;
-  ivec4 arg_3 = ivec4(0);
+  ivec4 arg_3 = ivec4(1);
   imageStore(arg_0, ivec3(arg_1, int(arg_2)), arg_3);
 }
 
@@ -26,9 +26,9 @@
 
 layout(rgba16i) uniform highp writeonly iimage2DArray arg_0;
 void textureStore_1f1ef8() {
-  ivec2 arg_1 = ivec2(0);
+  ivec2 arg_1 = ivec2(1);
   uint arg_2 = 1u;
-  ivec4 arg_3 = ivec4(0);
+  ivec4 arg_3 = ivec4(1);
   imageStore(arg_0, ivec3(arg_1, int(arg_2)), arg_3);
 }
 
@@ -44,9 +44,9 @@
 
 layout(rgba16i) uniform highp writeonly iimage2DArray arg_0;
 void textureStore_1f1ef8() {
-  ivec2 arg_1 = ivec2(0);
+  ivec2 arg_1 = ivec2(1);
   uint arg_2 = 1u;
-  ivec4 arg_3 = ivec4(0);
+  ivec4 arg_3 = ivec4(1);
   imageStore(arg_0, ivec3(arg_1, int(arg_2)), arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/1f1ef8.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/1f1ef8.wgsl.expected.msl
index d7023a4..1b49bdf 100644
--- a/test/tint/builtins/gen/var/textureStore/1f1ef8.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/1f1ef8.wgsl.expected.msl
@@ -2,9 +2,9 @@
 
 using namespace metal;
 void textureStore_1f1ef8(texture2d_array<int, access::write> tint_symbol_1) {
-  int2 arg_1 = int2(0);
+  int2 arg_1 = int2(1);
   uint arg_2 = 1u;
-  int4 arg_3 = int4(0);
+  int4 arg_3 = int4(1);
   tint_symbol_1.write(arg_3, uint2(arg_1), arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/1f1ef8.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/1f1ef8.wgsl.expected.spvasm
index 2f0bad3..d604a9a 100644
--- a/test/tint/builtins/gen/var/textureStore/1f1ef8.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/1f1ef8.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 54
+; Bound: 57
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -41,56 +41,59 @@
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
       %v2int = OpTypeVector %int 2
-         %18 = OpConstantNull %v2int
+      %int_1 = OpConstant %int 1
+         %19 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v2int = OpTypePointer Function %v2int
+         %22 = OpConstantNull %v2int
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %25 = OpConstantNull %uint
+         %27 = OpConstantNull %uint
       %v4int = OpTypeVector %int 4
-         %27 = OpConstantNull %v4int
+         %29 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
+         %32 = OpConstantNull %v4int
       %v3int = OpTypeVector %int 3
-         %40 = OpTypeFunction %v4float
+         %43 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_1f1ef8 = OpFunction %void None %13
          %16 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2int Function %18
-      %arg_2 = OpVariable %_ptr_Function_uint Function %25
-      %arg_3 = OpVariable %_ptr_Function_v4int Function %27
-               OpStore %arg_1 %18
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %22
+      %arg_2 = OpVariable %_ptr_Function_uint Function %27
+      %arg_3 = OpVariable %_ptr_Function_v4int Function %32
+               OpStore %arg_1 %19
                OpStore %arg_2 %uint_1
-               OpStore %arg_3 %27
-         %31 = OpLoad %11 %arg_0
-         %33 = OpLoad %v2int %arg_1
-         %34 = OpCompositeExtract %int %33 0
-         %35 = OpCompositeExtract %int %33 1
-         %37 = OpLoad %uint %arg_2
-         %36 = OpBitcast %int %37
-         %38 = OpCompositeConstruct %v3int %34 %35 %36
-         %39 = OpLoad %v4int %arg_3
-               OpImageWrite %31 %38 %39
+               OpStore %arg_3 %29
+         %34 = OpLoad %11 %arg_0
+         %36 = OpLoad %v2int %arg_1
+         %37 = OpCompositeExtract %int %36 0
+         %38 = OpCompositeExtract %int %36 1
+         %40 = OpLoad %uint %arg_2
+         %39 = OpBitcast %int %40
+         %41 = OpCompositeConstruct %v3int %37 %38 %39
+         %42 = OpLoad %v4int %arg_3
+               OpImageWrite %34 %41 %42
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %40
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_1f1ef8
+%vertex_main_inner = OpFunction %v4float None %43
+         %45 = OpLabel
+         %46 = OpFunctionCall %void %textureStore_1f1ef8
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %45 = OpLabel
-         %46 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %46
+         %48 = OpLabel
+         %49 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %49
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %49 = OpLabel
-         %50 = OpFunctionCall %void %textureStore_1f1ef8
+         %52 = OpLabel
+         %53 = OpFunctionCall %void %textureStore_1f1ef8
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %52 = OpLabel
-         %53 = OpFunctionCall %void %textureStore_1f1ef8
+         %55 = OpLabel
+         %56 = OpFunctionCall %void %textureStore_1f1ef8
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/1f1ef8.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/1f1ef8.wgsl.expected.wgsl
index 5a4ba99..8c4b8d0 100644
--- a/test/tint/builtins/gen/var/textureStore/1f1ef8.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/1f1ef8.wgsl.expected.wgsl
@@ -1,9 +1,9 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba16sint, write>;
 
 fn textureStore_1f1ef8() {
-  var arg_1 = vec2<i32>();
+  var arg_1 = vec2<i32>(1i);
   var arg_2 = 1u;
-  var arg_3 = vec4<i32>();
+  var arg_3 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/207fdd.wgsl b/test/tint/builtins/gen/var/textureStore/207fdd.wgsl
index c00156f..0c9fc1f 100644
--- a/test/tint/builtins/gen/var/textureStore/207fdd.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/207fdd.wgsl
@@ -24,8 +24,8 @@
 
 // fn textureStore(texture: texture_storage_3d<rgba8snorm, write>, coords: vec3<u32>, value: vec4<f32>)
 fn textureStore_207fdd() {
-  var arg_1 = vec3<u32>();
-  var arg_2 = vec4<f32>();
+  var arg_1 = vec3<u32>(1u);
+  var arg_2 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/207fdd.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/207fdd.wgsl.expected.dxc.hlsl
index 9e5acc4..3756cec 100644
--- a/test/tint/builtins/gen/var/textureStore/207fdd.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/207fdd.wgsl.expected.dxc.hlsl
@@ -1,8 +1,8 @@
 RWTexture3D<float4> arg_0 : register(u0, space1);
 
 void textureStore_207fdd() {
-  uint3 arg_1 = (0u).xxx;
-  float4 arg_2 = (0.0f).xxxx;
+  uint3 arg_1 = (1u).xxx;
+  float4 arg_2 = (1.0f).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/207fdd.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/207fdd.wgsl.expected.fxc.hlsl
index 9e5acc4..3756cec 100644
--- a/test/tint/builtins/gen/var/textureStore/207fdd.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/207fdd.wgsl.expected.fxc.hlsl
@@ -1,8 +1,8 @@
 RWTexture3D<float4> arg_0 : register(u0, space1);
 
 void textureStore_207fdd() {
-  uint3 arg_1 = (0u).xxx;
-  float4 arg_2 = (0.0f).xxxx;
+  uint3 arg_1 = (1u).xxx;
+  float4 arg_2 = (1.0f).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/207fdd.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/207fdd.wgsl.expected.glsl
index be45a70..fd81cb6 100644
--- a/test/tint/builtins/gen/var/textureStore/207fdd.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/207fdd.wgsl.expected.glsl
@@ -2,8 +2,8 @@
 
 layout(rgba8_snorm) uniform highp writeonly image3D arg_0;
 void textureStore_207fdd() {
-  uvec3 arg_1 = uvec3(0u);
-  vec4 arg_2 = vec4(0.0f);
+  uvec3 arg_1 = uvec3(1u);
+  vec4 arg_2 = vec4(1.0f);
   imageStore(arg_0, ivec3(arg_1), arg_2);
 }
 
@@ -25,8 +25,8 @@
 
 layout(rgba8_snorm) uniform highp writeonly image3D arg_0;
 void textureStore_207fdd() {
-  uvec3 arg_1 = uvec3(0u);
-  vec4 arg_2 = vec4(0.0f);
+  uvec3 arg_1 = uvec3(1u);
+  vec4 arg_2 = vec4(1.0f);
   imageStore(arg_0, ivec3(arg_1), arg_2);
 }
 
@@ -42,8 +42,8 @@
 
 layout(rgba8_snorm) uniform highp writeonly image3D arg_0;
 void textureStore_207fdd() {
-  uvec3 arg_1 = uvec3(0u);
-  vec4 arg_2 = vec4(0.0f);
+  uvec3 arg_1 = uvec3(1u);
+  vec4 arg_2 = vec4(1.0f);
   imageStore(arg_0, ivec3(arg_1), arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/207fdd.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/207fdd.wgsl.expected.msl
index 97a7ca9..396bd7c 100644
--- a/test/tint/builtins/gen/var/textureStore/207fdd.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/207fdd.wgsl.expected.msl
@@ -2,8 +2,8 @@
 
 using namespace metal;
 void textureStore_207fdd(texture3d<float, access::write> tint_symbol_1) {
-  uint3 arg_1 = uint3(0u);
-  float4 arg_2 = float4(0.0f);
+  uint3 arg_1 = uint3(1u);
+  float4 arg_2 = float4(1.0f);
   tint_symbol_1.write(arg_2, uint3(arg_1));
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/207fdd.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/207fdd.wgsl.expected.spvasm
index b40adc5..4ac25eb0 100644
--- a/test/tint/builtins/gen/var/textureStore/207fdd.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/207fdd.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 41
+; Bound: 44
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -40,42 +40,45 @@
          %12 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
-         %18 = OpConstantNull %v3uint
+     %uint_1 = OpConstant %uint 1
+         %19 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
 %_ptr_Function_v3uint = OpTypePointer Function %v3uint
-%_ptr_Function_v4float = OpTypePointer Function %v4float
-         %27 = OpTypeFunction %v4float
+         %22 = OpConstantNull %v3uint
     %float_1 = OpConstant %float 1
+         %24 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%_ptr_Function_v4float = OpTypePointer Function %v4float
+         %31 = OpTypeFunction %v4float
 %textureStore_207fdd = OpFunction %void None %12
          %15 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v3uint Function %18
+      %arg_1 = OpVariable %_ptr_Function_v3uint Function %22
       %arg_2 = OpVariable %_ptr_Function_v4float Function %5
-               OpStore %arg_1 %18
-               OpStore %arg_2 %5
-         %24 = OpLoad %11 %arg_0
-         %25 = OpLoad %v3uint %arg_1
-         %26 = OpLoad %v4float %arg_2
-               OpImageWrite %24 %25 %26
+               OpStore %arg_1 %19
+               OpStore %arg_2 %24
+         %28 = OpLoad %11 %arg_0
+         %29 = OpLoad %v3uint %arg_1
+         %30 = OpLoad %v4float %arg_2
+               OpImageWrite %28 %29 %30
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %27
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %textureStore_207fdd
+%vertex_main_inner = OpFunction %v4float None %31
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureStore_207fdd
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %32 = OpLabel
-         %33 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %33
+         %36 = OpLabel
+         %37 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %37
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_207fdd
+         %39 = OpLabel
+         %40 = OpFunctionCall %void %textureStore_207fdd
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_207fdd
+         %42 = OpLabel
+         %43 = OpFunctionCall %void %textureStore_207fdd
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/207fdd.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/207fdd.wgsl.expected.wgsl
index 703e7ce..52d756f 100644
--- a/test/tint/builtins/gen/var/textureStore/207fdd.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/207fdd.wgsl.expected.wgsl
@@ -1,8 +1,8 @@
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rgba8snorm, write>;
 
 fn textureStore_207fdd() {
-  var arg_1 = vec3<u32>();
-  var arg_2 = vec4<f32>();
+  var arg_1 = vec3<u32>(1u);
+  var arg_2 = vec4<f32>(1.0f);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/22d955.wgsl b/test/tint/builtins/gen/var/textureStore/22d955.wgsl
index ab56eff..741a0d9 100644
--- a/test/tint/builtins/gen/var/textureStore/22d955.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/22d955.wgsl
@@ -24,9 +24,9 @@
 
 // fn textureStore(texture: texture_storage_2d_array<rgba8uint, write>, coords: vec2<i32>, array_index: i32, value: vec4<u32>)
 fn textureStore_22d955() {
-  var arg_1 = vec2<i32>();
+  var arg_1 = vec2<i32>(1i);
   var arg_2 = 1i;
-  var arg_3 = vec4<u32>();
+  var arg_3 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/22d955.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/22d955.wgsl.expected.dxc.hlsl
index ac28249..1c5aefe 100644
--- a/test/tint/builtins/gen/var/textureStore/22d955.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/22d955.wgsl.expected.dxc.hlsl
@@ -1,9 +1,9 @@
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 void textureStore_22d955() {
-  int2 arg_1 = (0).xx;
+  int2 arg_1 = (1).xx;
   int arg_2 = 1;
-  uint4 arg_3 = (0u).xxxx;
+  uint4 arg_3 = (1u).xxxx;
   arg_0[int3(arg_1, arg_2)] = arg_3;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/22d955.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/22d955.wgsl.expected.fxc.hlsl
index ac28249..1c5aefe 100644
--- a/test/tint/builtins/gen/var/textureStore/22d955.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/22d955.wgsl.expected.fxc.hlsl
@@ -1,9 +1,9 @@
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 void textureStore_22d955() {
-  int2 arg_1 = (0).xx;
+  int2 arg_1 = (1).xx;
   int arg_2 = 1;
-  uint4 arg_3 = (0u).xxxx;
+  uint4 arg_3 = (1u).xxxx;
   arg_0[int3(arg_1, arg_2)] = arg_3;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/22d955.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/22d955.wgsl.expected.glsl
index d8279c2..2e6e6d4 100644
--- a/test/tint/builtins/gen/var/textureStore/22d955.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/22d955.wgsl.expected.glsl
@@ -2,9 +2,9 @@
 
 layout(rgba8ui) uniform highp writeonly uimage2DArray arg_0;
 void textureStore_22d955() {
-  ivec2 arg_1 = ivec2(0);
+  ivec2 arg_1 = ivec2(1);
   int arg_2 = 1;
-  uvec4 arg_3 = uvec4(0u);
+  uvec4 arg_3 = uvec4(1u);
   imageStore(arg_0, ivec3(arg_1, arg_2), arg_3);
 }
 
@@ -26,9 +26,9 @@
 
 layout(rgba8ui) uniform highp writeonly uimage2DArray arg_0;
 void textureStore_22d955() {
-  ivec2 arg_1 = ivec2(0);
+  ivec2 arg_1 = ivec2(1);
   int arg_2 = 1;
-  uvec4 arg_3 = uvec4(0u);
+  uvec4 arg_3 = uvec4(1u);
   imageStore(arg_0, ivec3(arg_1, arg_2), arg_3);
 }
 
@@ -44,9 +44,9 @@
 
 layout(rgba8ui) uniform highp writeonly uimage2DArray arg_0;
 void textureStore_22d955() {
-  ivec2 arg_1 = ivec2(0);
+  ivec2 arg_1 = ivec2(1);
   int arg_2 = 1;
-  uvec4 arg_3 = uvec4(0u);
+  uvec4 arg_3 = uvec4(1u);
   imageStore(arg_0, ivec3(arg_1, arg_2), arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/22d955.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/22d955.wgsl.expected.msl
index be88306..d83ba28 100644
--- a/test/tint/builtins/gen/var/textureStore/22d955.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/22d955.wgsl.expected.msl
@@ -2,9 +2,9 @@
 
 using namespace metal;
 void textureStore_22d955(texture2d_array<uint, access::write> tint_symbol_1) {
-  int2 arg_1 = int2(0);
+  int2 arg_1 = int2(1);
   int arg_2 = 1;
-  uint4 arg_3 = uint4(0u);
+  uint4 arg_3 = uint4(1u);
   tint_symbol_1.write(arg_3, uint2(arg_1), arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/22d955.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/22d955.wgsl.expected.spvasm
index dff6bf1..80c0363 100644
--- a/test/tint/builtins/gen/var/textureStore/22d955.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/22d955.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 53
+; Bound: 56
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -42,54 +42,57 @@
          %13 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
-         %19 = OpConstantNull %v2int
-%_ptr_Function_v2int = OpTypePointer Function %v2int
       %int_1 = OpConstant %int 1
+         %20 = OpConstantComposite %v2int %int_1 %int_1
+%_ptr_Function_v2int = OpTypePointer Function %v2int
+         %23 = OpConstantNull %v2int
 %_ptr_Function_int = OpTypePointer Function %int
-         %25 = OpConstantNull %int
+         %26 = OpConstantNull %int
      %v4uint = OpTypeVector %uint 4
-         %27 = OpConstantNull %v4uint
+     %uint_1 = OpConstant %uint 1
+         %29 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
+         %32 = OpConstantNull %v4uint
       %v3int = OpTypeVector %int 3
-         %39 = OpTypeFunction %v4float
+         %42 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_22d955 = OpFunction %void None %13
          %16 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2int Function %19
-      %arg_2 = OpVariable %_ptr_Function_int Function %25
-      %arg_3 = OpVariable %_ptr_Function_v4uint Function %27
-               OpStore %arg_1 %19
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %23
+      %arg_2 = OpVariable %_ptr_Function_int Function %26
+      %arg_3 = OpVariable %_ptr_Function_v4uint Function %32
+               OpStore %arg_1 %20
                OpStore %arg_2 %int_1
-               OpStore %arg_3 %27
-         %31 = OpLoad %11 %arg_0
-         %33 = OpLoad %v2int %arg_1
-         %34 = OpCompositeExtract %int %33 0
-         %35 = OpCompositeExtract %int %33 1
-         %36 = OpLoad %int %arg_2
-         %37 = OpCompositeConstruct %v3int %34 %35 %36
-         %38 = OpLoad %v4uint %arg_3
-               OpImageWrite %31 %37 %38
+               OpStore %arg_3 %29
+         %34 = OpLoad %11 %arg_0
+         %36 = OpLoad %v2int %arg_1
+         %37 = OpCompositeExtract %int %36 0
+         %38 = OpCompositeExtract %int %36 1
+         %39 = OpLoad %int %arg_2
+         %40 = OpCompositeConstruct %v3int %37 %38 %39
+         %41 = OpLoad %v4uint %arg_3
+               OpImageWrite %34 %40 %41
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %39
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureStore_22d955
+%vertex_main_inner = OpFunction %v4float None %42
+         %44 = OpLabel
+         %45 = OpFunctionCall %void %textureStore_22d955
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %44 = OpLabel
-         %45 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %45
+         %47 = OpLabel
+         %48 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %48
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %48 = OpLabel
-         %49 = OpFunctionCall %void %textureStore_22d955
+         %51 = OpLabel
+         %52 = OpFunctionCall %void %textureStore_22d955
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %51 = OpLabel
-         %52 = OpFunctionCall %void %textureStore_22d955
+         %54 = OpLabel
+         %55 = OpFunctionCall %void %textureStore_22d955
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/22d955.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/22d955.wgsl.expected.wgsl
index 9ca9d8e..2bdc27e 100644
--- a/test/tint/builtins/gen/var/textureStore/22d955.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/22d955.wgsl.expected.wgsl
@@ -1,9 +1,9 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba8uint, write>;
 
 fn textureStore_22d955() {
-  var arg_1 = vec2<i32>();
+  var arg_1 = vec2<i32>(1i);
   var arg_2 = 1i;
-  var arg_3 = vec4<u32>();
+  var arg_3 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/22f045.wgsl b/test/tint/builtins/gen/var/textureStore/22f045.wgsl
index 6e2e0a5..6ad75f8 100644
--- a/test/tint/builtins/gen/var/textureStore/22f045.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/22f045.wgsl
@@ -24,9 +24,9 @@
 
 // fn textureStore(texture: texture_storage_2d_array<rgba8snorm, write>, coords: vec2<i32>, array_index: u32, value: vec4<f32>)
 fn textureStore_22f045() {
-  var arg_1 = vec2<i32>();
+  var arg_1 = vec2<i32>(1i);
   var arg_2 = 1u;
-  var arg_3 = vec4<f32>();
+  var arg_3 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/22f045.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/22f045.wgsl.expected.dxc.hlsl
index 9f081c3..915ae9e 100644
--- a/test/tint/builtins/gen/var/textureStore/22f045.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/22f045.wgsl.expected.dxc.hlsl
@@ -1,9 +1,9 @@
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 void textureStore_22f045() {
-  int2 arg_1 = (0).xx;
+  int2 arg_1 = (1).xx;
   uint arg_2 = 1u;
-  float4 arg_3 = (0.0f).xxxx;
+  float4 arg_3 = (1.0f).xxxx;
   arg_0[int3(arg_1, int(arg_2))] = arg_3;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/22f045.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/22f045.wgsl.expected.fxc.hlsl
index 9f081c3..915ae9e 100644
--- a/test/tint/builtins/gen/var/textureStore/22f045.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/22f045.wgsl.expected.fxc.hlsl
@@ -1,9 +1,9 @@
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 void textureStore_22f045() {
-  int2 arg_1 = (0).xx;
+  int2 arg_1 = (1).xx;
   uint arg_2 = 1u;
-  float4 arg_3 = (0.0f).xxxx;
+  float4 arg_3 = (1.0f).xxxx;
   arg_0[int3(arg_1, int(arg_2))] = arg_3;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/22f045.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/22f045.wgsl.expected.glsl
index d57b75b..0788b23 100644
--- a/test/tint/builtins/gen/var/textureStore/22f045.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/22f045.wgsl.expected.glsl
@@ -2,9 +2,9 @@
 
 layout(rgba8_snorm) uniform highp writeonly image2DArray arg_0;
 void textureStore_22f045() {
-  ivec2 arg_1 = ivec2(0);
+  ivec2 arg_1 = ivec2(1);
   uint arg_2 = 1u;
-  vec4 arg_3 = vec4(0.0f);
+  vec4 arg_3 = vec4(1.0f);
   imageStore(arg_0, ivec3(arg_1, int(arg_2)), arg_3);
 }
 
@@ -26,9 +26,9 @@
 
 layout(rgba8_snorm) uniform highp writeonly image2DArray arg_0;
 void textureStore_22f045() {
-  ivec2 arg_1 = ivec2(0);
+  ivec2 arg_1 = ivec2(1);
   uint arg_2 = 1u;
-  vec4 arg_3 = vec4(0.0f);
+  vec4 arg_3 = vec4(1.0f);
   imageStore(arg_0, ivec3(arg_1, int(arg_2)), arg_3);
 }
 
@@ -44,9 +44,9 @@
 
 layout(rgba8_snorm) uniform highp writeonly image2DArray arg_0;
 void textureStore_22f045() {
-  ivec2 arg_1 = ivec2(0);
+  ivec2 arg_1 = ivec2(1);
   uint arg_2 = 1u;
-  vec4 arg_3 = vec4(0.0f);
+  vec4 arg_3 = vec4(1.0f);
   imageStore(arg_0, ivec3(arg_1, int(arg_2)), arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/22f045.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/22f045.wgsl.expected.msl
index 0195bd5..8ebc61f 100644
--- a/test/tint/builtins/gen/var/textureStore/22f045.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/22f045.wgsl.expected.msl
@@ -2,9 +2,9 @@
 
 using namespace metal;
 void textureStore_22f045(texture2d_array<float, access::write> tint_symbol_1) {
-  int2 arg_1 = int2(0);
+  int2 arg_1 = int2(1);
   uint arg_2 = 1u;
-  float4 arg_3 = float4(0.0f);
+  float4 arg_3 = float4(1.0f);
   tint_symbol_1.write(arg_3, uint2(arg_1), arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/22f045.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/22f045.wgsl.expected.spvasm
index 164d082..c0333ad 100644
--- a/test/tint/builtins/gen/var/textureStore/22f045.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/22f045.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 52
+; Bound: 55
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -41,54 +41,57 @@
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
-         %18 = OpConstantNull %v2int
+      %int_1 = OpConstant %int 1
+         %19 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v2int = OpTypePointer Function %v2int
+         %22 = OpConstantNull %v2int
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %25 = OpConstantNull %uint
+         %27 = OpConstantNull %uint
+    %float_1 = OpConstant %float 1
+         %29 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
       %v3int = OpTypeVector %int 3
-         %38 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %42 = OpTypeFunction %v4float
 %textureStore_22f045 = OpFunction %void None %12
          %15 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2int Function %18
-      %arg_2 = OpVariable %_ptr_Function_uint Function %25
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %22
+      %arg_2 = OpVariable %_ptr_Function_uint Function %27
       %arg_3 = OpVariable %_ptr_Function_v4float Function %5
-               OpStore %arg_1 %18
+               OpStore %arg_1 %19
                OpStore %arg_2 %uint_1
-               OpStore %arg_3 %5
-         %29 = OpLoad %11 %arg_0
-         %31 = OpLoad %v2int %arg_1
-         %32 = OpCompositeExtract %int %31 0
-         %33 = OpCompositeExtract %int %31 1
-         %35 = OpLoad %uint %arg_2
-         %34 = OpBitcast %int %35
-         %36 = OpCompositeConstruct %v3int %32 %33 %34
-         %37 = OpLoad %v4float %arg_3
-               OpImageWrite %29 %36 %37
+               OpStore %arg_3 %29
+         %33 = OpLoad %11 %arg_0
+         %35 = OpLoad %v2int %arg_1
+         %36 = OpCompositeExtract %int %35 0
+         %37 = OpCompositeExtract %int %35 1
+         %39 = OpLoad %uint %arg_2
+         %38 = OpBitcast %int %39
+         %40 = OpCompositeConstruct %v3int %36 %37 %38
+         %41 = OpLoad %v4float %arg_3
+               OpImageWrite %33 %40 %41
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %38
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureStore_22f045
+%vertex_main_inner = OpFunction %v4float None %42
+         %44 = OpLabel
+         %45 = OpFunctionCall %void %textureStore_22f045
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %43 = OpLabel
-         %44 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %44
+         %47 = OpLabel
+         %48 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %48
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %47 = OpLabel
-         %48 = OpFunctionCall %void %textureStore_22f045
+         %50 = OpLabel
+         %51 = OpFunctionCall %void %textureStore_22f045
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %50 = OpLabel
-         %51 = OpFunctionCall %void %textureStore_22f045
+         %53 = OpLabel
+         %54 = OpFunctionCall %void %textureStore_22f045
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/22f045.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/22f045.wgsl.expected.wgsl
index 28b7b5b..10e82ad 100644
--- a/test/tint/builtins/gen/var/textureStore/22f045.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/22f045.wgsl.expected.wgsl
@@ -1,9 +1,9 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba8snorm, write>;
 
 fn textureStore_22f045() {
-  var arg_1 = vec2<i32>();
+  var arg_1 = vec2<i32>(1i);
   var arg_2 = 1u;
-  var arg_3 = vec4<f32>();
+  var arg_3 = vec4<f32>(1.0f);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/2383fc.wgsl b/test/tint/builtins/gen/var/textureStore/2383fc.wgsl
index a6845ca..7a8c885 100644
--- a/test/tint/builtins/gen/var/textureStore/2383fc.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/2383fc.wgsl
@@ -24,9 +24,9 @@
 
 // fn textureStore(texture: texture_storage_2d_array<r32uint, write>, coords: vec2<u32>, array_index: i32, value: vec4<u32>)
 fn textureStore_2383fc() {
-  var arg_1 = vec2<u32>();
+  var arg_1 = vec2<u32>(1u);
   var arg_2 = 1i;
-  var arg_3 = vec4<u32>();
+  var arg_3 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/2383fc.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/2383fc.wgsl.expected.dxc.hlsl
index ea89155..46d7d3d 100644
--- a/test/tint/builtins/gen/var/textureStore/2383fc.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/2383fc.wgsl.expected.dxc.hlsl
@@ -1,9 +1,9 @@
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 void textureStore_2383fc() {
-  uint2 arg_1 = (0u).xx;
+  uint2 arg_1 = (1u).xx;
   int arg_2 = 1;
-  uint4 arg_3 = (0u).xxxx;
+  uint4 arg_3 = (1u).xxxx;
   arg_0[uint3(arg_1, uint(arg_2))] = arg_3;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/2383fc.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/2383fc.wgsl.expected.fxc.hlsl
index ea89155..46d7d3d 100644
--- a/test/tint/builtins/gen/var/textureStore/2383fc.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/2383fc.wgsl.expected.fxc.hlsl
@@ -1,9 +1,9 @@
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 void textureStore_2383fc() {
-  uint2 arg_1 = (0u).xx;
+  uint2 arg_1 = (1u).xx;
   int arg_2 = 1;
-  uint4 arg_3 = (0u).xxxx;
+  uint4 arg_3 = (1u).xxxx;
   arg_0[uint3(arg_1, uint(arg_2))] = arg_3;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/2383fc.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/2383fc.wgsl.expected.glsl
index 73f19f9..c298527 100644
--- a/test/tint/builtins/gen/var/textureStore/2383fc.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/2383fc.wgsl.expected.glsl
@@ -2,9 +2,9 @@
 
 layout(r32ui) uniform highp writeonly uimage2DArray arg_0;
 void textureStore_2383fc() {
-  uvec2 arg_1 = uvec2(0u);
+  uvec2 arg_1 = uvec2(1u);
   int arg_2 = 1;
-  uvec4 arg_3 = uvec4(0u);
+  uvec4 arg_3 = uvec4(1u);
   imageStore(arg_0, ivec3(uvec3(arg_1, uint(arg_2))), arg_3);
 }
 
@@ -26,9 +26,9 @@
 
 layout(r32ui) uniform highp writeonly uimage2DArray arg_0;
 void textureStore_2383fc() {
-  uvec2 arg_1 = uvec2(0u);
+  uvec2 arg_1 = uvec2(1u);
   int arg_2 = 1;
-  uvec4 arg_3 = uvec4(0u);
+  uvec4 arg_3 = uvec4(1u);
   imageStore(arg_0, ivec3(uvec3(arg_1, uint(arg_2))), arg_3);
 }
 
@@ -44,9 +44,9 @@
 
 layout(r32ui) uniform highp writeonly uimage2DArray arg_0;
 void textureStore_2383fc() {
-  uvec2 arg_1 = uvec2(0u);
+  uvec2 arg_1 = uvec2(1u);
   int arg_2 = 1;
-  uvec4 arg_3 = uvec4(0u);
+  uvec4 arg_3 = uvec4(1u);
   imageStore(arg_0, ivec3(uvec3(arg_1, uint(arg_2))), arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/2383fc.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/2383fc.wgsl.expected.msl
index f343b91..0e54c94 100644
--- a/test/tint/builtins/gen/var/textureStore/2383fc.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/2383fc.wgsl.expected.msl
@@ -2,9 +2,9 @@
 
 using namespace metal;
 void textureStore_2383fc(texture2d_array<uint, access::write> tint_symbol_1) {
-  uint2 arg_1 = uint2(0u);
+  uint2 arg_1 = uint2(1u);
   int arg_2 = 1;
-  uint4 arg_3 = uint4(0u);
+  uint4 arg_3 = uint4(1u);
   tint_symbol_1.write(arg_3, uint2(arg_1), arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/2383fc.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/2383fc.wgsl.expected.spvasm
index b31de19..6d925bf 100644
--- a/test/tint/builtins/gen/var/textureStore/2383fc.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/2383fc.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 54
+; Bound: 57
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -41,56 +41,59 @@
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
      %v2uint = OpTypeVector %uint 2
-         %18 = OpConstantNull %v2uint
+     %uint_1 = OpConstant %uint 1
+         %19 = OpConstantComposite %v2uint %uint_1 %uint_1
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
+         %22 = OpConstantNull %v2uint
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
-         %25 = OpConstantNull %int
+         %27 = OpConstantNull %int
      %v4uint = OpTypeVector %uint 4
-         %27 = OpConstantNull %v4uint
+         %29 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
+         %32 = OpConstantNull %v4uint
      %v3uint = OpTypeVector %uint 3
-         %40 = OpTypeFunction %v4float
+         %43 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_2383fc = OpFunction %void None %13
          %16 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2uint Function %18
-      %arg_2 = OpVariable %_ptr_Function_int Function %25
-      %arg_3 = OpVariable %_ptr_Function_v4uint Function %27
-               OpStore %arg_1 %18
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %22
+      %arg_2 = OpVariable %_ptr_Function_int Function %27
+      %arg_3 = OpVariable %_ptr_Function_v4uint Function %32
+               OpStore %arg_1 %19
                OpStore %arg_2 %int_1
-               OpStore %arg_3 %27
-         %31 = OpLoad %11 %arg_0
-         %33 = OpLoad %v2uint %arg_1
-         %34 = OpCompositeExtract %uint %33 0
-         %35 = OpCompositeExtract %uint %33 1
-         %37 = OpLoad %int %arg_2
-         %36 = OpBitcast %uint %37
-         %38 = OpCompositeConstruct %v3uint %34 %35 %36
-         %39 = OpLoad %v4uint %arg_3
-               OpImageWrite %31 %38 %39
+               OpStore %arg_3 %29
+         %34 = OpLoad %11 %arg_0
+         %36 = OpLoad %v2uint %arg_1
+         %37 = OpCompositeExtract %uint %36 0
+         %38 = OpCompositeExtract %uint %36 1
+         %40 = OpLoad %int %arg_2
+         %39 = OpBitcast %uint %40
+         %41 = OpCompositeConstruct %v3uint %37 %38 %39
+         %42 = OpLoad %v4uint %arg_3
+               OpImageWrite %34 %41 %42
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %40
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_2383fc
+%vertex_main_inner = OpFunction %v4float None %43
+         %45 = OpLabel
+         %46 = OpFunctionCall %void %textureStore_2383fc
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %45 = OpLabel
-         %46 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %46
+         %48 = OpLabel
+         %49 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %49
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %49 = OpLabel
-         %50 = OpFunctionCall %void %textureStore_2383fc
+         %52 = OpLabel
+         %53 = OpFunctionCall %void %textureStore_2383fc
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %52 = OpLabel
-         %53 = OpFunctionCall %void %textureStore_2383fc
+         %55 = OpLabel
+         %56 = OpFunctionCall %void %textureStore_2383fc
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/2383fc.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/2383fc.wgsl.expected.wgsl
index a8fb10c..c9e1dd2 100644
--- a/test/tint/builtins/gen/var/textureStore/2383fc.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/2383fc.wgsl.expected.wgsl
@@ -1,9 +1,9 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<r32uint, write>;
 
 fn textureStore_2383fc() {
-  var arg_1 = vec2<u32>();
+  var arg_1 = vec2<u32>(1u);
   var arg_2 = 1i;
-  var arg_3 = vec4<u32>();
+  var arg_3 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/258ab0.wgsl b/test/tint/builtins/gen/var/textureStore/258ab0.wgsl
index 651efea..008b5c9 100644
--- a/test/tint/builtins/gen/var/textureStore/258ab0.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/258ab0.wgsl
@@ -24,9 +24,9 @@
 
 // fn textureStore(texture: texture_storage_2d_array<rgba8unorm, write>, coords: vec2<u32>, array_index: i32, value: vec4<f32>)
 fn textureStore_258ab0() {
-  var arg_1 = vec2<u32>();
+  var arg_1 = vec2<u32>(1u);
   var arg_2 = 1i;
-  var arg_3 = vec4<f32>();
+  var arg_3 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/258ab0.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/258ab0.wgsl.expected.dxc.hlsl
index 81ca1b1..7047e7c 100644
--- a/test/tint/builtins/gen/var/textureStore/258ab0.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/258ab0.wgsl.expected.dxc.hlsl
@@ -1,9 +1,9 @@
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 void textureStore_258ab0() {
-  uint2 arg_1 = (0u).xx;
+  uint2 arg_1 = (1u).xx;
   int arg_2 = 1;
-  float4 arg_3 = (0.0f).xxxx;
+  float4 arg_3 = (1.0f).xxxx;
   arg_0[uint3(arg_1, uint(arg_2))] = arg_3;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/258ab0.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/258ab0.wgsl.expected.fxc.hlsl
index 81ca1b1..7047e7c 100644
--- a/test/tint/builtins/gen/var/textureStore/258ab0.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/258ab0.wgsl.expected.fxc.hlsl
@@ -1,9 +1,9 @@
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 void textureStore_258ab0() {
-  uint2 arg_1 = (0u).xx;
+  uint2 arg_1 = (1u).xx;
   int arg_2 = 1;
-  float4 arg_3 = (0.0f).xxxx;
+  float4 arg_3 = (1.0f).xxxx;
   arg_0[uint3(arg_1, uint(arg_2))] = arg_3;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/258ab0.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/258ab0.wgsl.expected.glsl
index 63b7d96..d0c070f 100644
--- a/test/tint/builtins/gen/var/textureStore/258ab0.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/258ab0.wgsl.expected.glsl
@@ -2,9 +2,9 @@
 
 layout(rgba8) uniform highp writeonly image2DArray arg_0;
 void textureStore_258ab0() {
-  uvec2 arg_1 = uvec2(0u);
+  uvec2 arg_1 = uvec2(1u);
   int arg_2 = 1;
-  vec4 arg_3 = vec4(0.0f);
+  vec4 arg_3 = vec4(1.0f);
   imageStore(arg_0, ivec3(uvec3(arg_1, uint(arg_2))), arg_3);
 }
 
@@ -26,9 +26,9 @@
 
 layout(rgba8) uniform highp writeonly image2DArray arg_0;
 void textureStore_258ab0() {
-  uvec2 arg_1 = uvec2(0u);
+  uvec2 arg_1 = uvec2(1u);
   int arg_2 = 1;
-  vec4 arg_3 = vec4(0.0f);
+  vec4 arg_3 = vec4(1.0f);
   imageStore(arg_0, ivec3(uvec3(arg_1, uint(arg_2))), arg_3);
 }
 
@@ -44,9 +44,9 @@
 
 layout(rgba8) uniform highp writeonly image2DArray arg_0;
 void textureStore_258ab0() {
-  uvec2 arg_1 = uvec2(0u);
+  uvec2 arg_1 = uvec2(1u);
   int arg_2 = 1;
-  vec4 arg_3 = vec4(0.0f);
+  vec4 arg_3 = vec4(1.0f);
   imageStore(arg_0, ivec3(uvec3(arg_1, uint(arg_2))), arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/258ab0.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/258ab0.wgsl.expected.msl
index e471f48..0c3513a 100644
--- a/test/tint/builtins/gen/var/textureStore/258ab0.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/258ab0.wgsl.expected.msl
@@ -2,9 +2,9 @@
 
 using namespace metal;
 void textureStore_258ab0(texture2d_array<float, access::write> tint_symbol_1) {
-  uint2 arg_1 = uint2(0u);
+  uint2 arg_1 = uint2(1u);
   int arg_2 = 1;
-  float4 arg_3 = float4(0.0f);
+  float4 arg_3 = float4(1.0f);
   tint_symbol_1.write(arg_3, uint2(arg_1), arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/258ab0.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/258ab0.wgsl.expected.spvasm
index 21ec492..bcf4eb5 100644
--- a/test/tint/builtins/gen/var/textureStore/258ab0.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/258ab0.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 52
+; Bound: 55
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -41,54 +41,57 @@
          %12 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
-         %18 = OpConstantNull %v2uint
+     %uint_1 = OpConstant %uint 1
+         %19 = OpConstantComposite %v2uint %uint_1 %uint_1
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
+         %22 = OpConstantNull %v2uint
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
-         %25 = OpConstantNull %int
+         %27 = OpConstantNull %int
+    %float_1 = OpConstant %float 1
+         %29 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
      %v3uint = OpTypeVector %uint 3
-         %38 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %42 = OpTypeFunction %v4float
 %textureStore_258ab0 = OpFunction %void None %12
          %15 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2uint Function %18
-      %arg_2 = OpVariable %_ptr_Function_int Function %25
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %22
+      %arg_2 = OpVariable %_ptr_Function_int Function %27
       %arg_3 = OpVariable %_ptr_Function_v4float Function %5
-               OpStore %arg_1 %18
+               OpStore %arg_1 %19
                OpStore %arg_2 %int_1
-               OpStore %arg_3 %5
-         %29 = OpLoad %11 %arg_0
-         %31 = OpLoad %v2uint %arg_1
-         %32 = OpCompositeExtract %uint %31 0
-         %33 = OpCompositeExtract %uint %31 1
-         %35 = OpLoad %int %arg_2
-         %34 = OpBitcast %uint %35
-         %36 = OpCompositeConstruct %v3uint %32 %33 %34
-         %37 = OpLoad %v4float %arg_3
-               OpImageWrite %29 %36 %37
+               OpStore %arg_3 %29
+         %33 = OpLoad %11 %arg_0
+         %35 = OpLoad %v2uint %arg_1
+         %36 = OpCompositeExtract %uint %35 0
+         %37 = OpCompositeExtract %uint %35 1
+         %39 = OpLoad %int %arg_2
+         %38 = OpBitcast %uint %39
+         %40 = OpCompositeConstruct %v3uint %36 %37 %38
+         %41 = OpLoad %v4float %arg_3
+               OpImageWrite %33 %40 %41
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %38
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureStore_258ab0
+%vertex_main_inner = OpFunction %v4float None %42
+         %44 = OpLabel
+         %45 = OpFunctionCall %void %textureStore_258ab0
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %43 = OpLabel
-         %44 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %44
+         %47 = OpLabel
+         %48 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %48
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %47 = OpLabel
-         %48 = OpFunctionCall %void %textureStore_258ab0
+         %50 = OpLabel
+         %51 = OpFunctionCall %void %textureStore_258ab0
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %50 = OpLabel
-         %51 = OpFunctionCall %void %textureStore_258ab0
+         %53 = OpLabel
+         %54 = OpFunctionCall %void %textureStore_258ab0
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/258ab0.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/258ab0.wgsl.expected.wgsl
index 17cc765..caf28b2 100644
--- a/test/tint/builtins/gen/var/textureStore/258ab0.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/258ab0.wgsl.expected.wgsl
@@ -1,9 +1,9 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba8unorm, write>;
 
 fn textureStore_258ab0() {
-  var arg_1 = vec2<u32>();
+  var arg_1 = vec2<u32>(1u);
   var arg_2 = 1i;
-  var arg_3 = vec4<f32>();
+  var arg_3 = vec4<f32>(1.0f);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/26bf70.wgsl b/test/tint/builtins/gen/var/textureStore/26bf70.wgsl
index 137e2cd..224f16a 100644
--- a/test/tint/builtins/gen/var/textureStore/26bf70.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/26bf70.wgsl
@@ -24,8 +24,8 @@
 
 // fn textureStore(texture: texture_storage_2d<rgba32uint, write>, coords: vec2<i32>, value: vec4<u32>)
 fn textureStore_26bf70() {
-  var arg_1 = vec2<i32>();
-  var arg_2 = vec4<u32>();
+  var arg_1 = vec2<i32>(1i);
+  var arg_2 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/26bf70.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/26bf70.wgsl.expected.dxc.hlsl
index 57341d9..c7747ff 100644
--- a/test/tint/builtins/gen/var/textureStore/26bf70.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/26bf70.wgsl.expected.dxc.hlsl
@@ -1,8 +1,8 @@
 RWTexture2D<uint4> arg_0 : register(u0, space1);
 
 void textureStore_26bf70() {
-  int2 arg_1 = (0).xx;
-  uint4 arg_2 = (0u).xxxx;
+  int2 arg_1 = (1).xx;
+  uint4 arg_2 = (1u).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/26bf70.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/26bf70.wgsl.expected.fxc.hlsl
index 57341d9..c7747ff 100644
--- a/test/tint/builtins/gen/var/textureStore/26bf70.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/26bf70.wgsl.expected.fxc.hlsl
@@ -1,8 +1,8 @@
 RWTexture2D<uint4> arg_0 : register(u0, space1);
 
 void textureStore_26bf70() {
-  int2 arg_1 = (0).xx;
-  uint4 arg_2 = (0u).xxxx;
+  int2 arg_1 = (1).xx;
+  uint4 arg_2 = (1u).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/26bf70.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/26bf70.wgsl.expected.glsl
index 048b5b4..e4bbc30 100644
--- a/test/tint/builtins/gen/var/textureStore/26bf70.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/26bf70.wgsl.expected.glsl
@@ -2,8 +2,8 @@
 
 layout(rgba32ui) uniform highp writeonly uimage2D arg_0;
 void textureStore_26bf70() {
-  ivec2 arg_1 = ivec2(0);
-  uvec4 arg_2 = uvec4(0u);
+  ivec2 arg_1 = ivec2(1);
+  uvec4 arg_2 = uvec4(1u);
   imageStore(arg_0, arg_1, arg_2);
 }
 
@@ -25,8 +25,8 @@
 
 layout(rgba32ui) uniform highp writeonly uimage2D arg_0;
 void textureStore_26bf70() {
-  ivec2 arg_1 = ivec2(0);
-  uvec4 arg_2 = uvec4(0u);
+  ivec2 arg_1 = ivec2(1);
+  uvec4 arg_2 = uvec4(1u);
   imageStore(arg_0, arg_1, arg_2);
 }
 
@@ -42,8 +42,8 @@
 
 layout(rgba32ui) uniform highp writeonly uimage2D arg_0;
 void textureStore_26bf70() {
-  ivec2 arg_1 = ivec2(0);
-  uvec4 arg_2 = uvec4(0u);
+  ivec2 arg_1 = ivec2(1);
+  uvec4 arg_2 = uvec4(1u);
   imageStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/26bf70.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/26bf70.wgsl.expected.msl
index 73242ad..c86dfd5 100644
--- a/test/tint/builtins/gen/var/textureStore/26bf70.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/26bf70.wgsl.expected.msl
@@ -2,8 +2,8 @@
 
 using namespace metal;
 void textureStore_26bf70(texture2d<uint, access::write> tint_symbol_1) {
-  int2 arg_1 = int2(0);
-  uint4 arg_2 = uint4(0u);
+  int2 arg_1 = int2(1);
+  uint4 arg_2 = uint4(1u);
   tint_symbol_1.write(arg_2, uint2(arg_1));
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/26bf70.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/26bf70.wgsl.expected.spvasm
index 188aded..94290df 100644
--- a/test/tint/builtins/gen/var/textureStore/26bf70.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/26bf70.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 48
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -41,44 +41,48 @@
          %13 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
-         %19 = OpConstantNull %v2int
+      %int_1 = OpConstant %int 1
+         %20 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v2int = OpTypePointer Function %v2int
+         %23 = OpConstantNull %v2int
      %v4uint = OpTypeVector %uint 4
-         %23 = OpConstantNull %v4uint
+     %uint_1 = OpConstant %uint 1
+         %26 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %30 = OpTypeFunction %v4float
+         %29 = OpConstantNull %v4uint
+         %34 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_26bf70 = OpFunction %void None %13
          %16 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2int Function %19
-      %arg_2 = OpVariable %_ptr_Function_v4uint Function %23
-               OpStore %arg_1 %19
-               OpStore %arg_2 %23
-         %27 = OpLoad %11 %arg_0
-         %28 = OpLoad %v2int %arg_1
-         %29 = OpLoad %v4uint %arg_2
-               OpImageWrite %27 %28 %29
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %23
+      %arg_2 = OpVariable %_ptr_Function_v4uint Function %29
+               OpStore %arg_1 %20
+               OpStore %arg_2 %26
+         %31 = OpLoad %11 %arg_0
+         %32 = OpLoad %v2int %arg_1
+         %33 = OpLoad %v4uint %arg_2
+               OpImageWrite %31 %32 %33
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %30
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_26bf70
+%vertex_main_inner = OpFunction %v4float None %34
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureStore_26bf70
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %36
+         %39 = OpLabel
+         %40 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %40
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_26bf70
+         %43 = OpLabel
+         %44 = OpFunctionCall %void %textureStore_26bf70
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_26bf70
+         %46 = OpLabel
+         %47 = OpFunctionCall %void %textureStore_26bf70
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/26bf70.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/26bf70.wgsl.expected.wgsl
index 9585caf..d83fa4d 100644
--- a/test/tint/builtins/gen/var/textureStore/26bf70.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/26bf70.wgsl.expected.wgsl
@@ -1,8 +1,8 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba32uint, write>;
 
 fn textureStore_26bf70() {
-  var arg_1 = vec2<i32>();
-  var arg_2 = vec4<u32>();
+  var arg_1 = vec2<i32>(1i);
+  var arg_2 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/2796b4.wgsl b/test/tint/builtins/gen/var/textureStore/2796b4.wgsl
index 39d8497..074f8c3 100644
--- a/test/tint/builtins/gen/var/textureStore/2796b4.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/2796b4.wgsl
@@ -24,8 +24,8 @@
 
 // fn textureStore(texture: texture_storage_3d<rg32sint, write>, coords: vec3<i32>, value: vec4<i32>)
 fn textureStore_2796b4() {
-  var arg_1 = vec3<i32>();
-  var arg_2 = vec4<i32>();
+  var arg_1 = vec3<i32>(1i);
+  var arg_2 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/2796b4.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/2796b4.wgsl.expected.dxc.hlsl
index 63eefce..757e349 100644
--- a/test/tint/builtins/gen/var/textureStore/2796b4.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/2796b4.wgsl.expected.dxc.hlsl
@@ -1,8 +1,8 @@
 RWTexture3D<int4> arg_0 : register(u0, space1);
 
 void textureStore_2796b4() {
-  int3 arg_1 = (0).xxx;
-  int4 arg_2 = (0).xxxx;
+  int3 arg_1 = (1).xxx;
+  int4 arg_2 = (1).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/2796b4.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/2796b4.wgsl.expected.fxc.hlsl
index 63eefce..757e349 100644
--- a/test/tint/builtins/gen/var/textureStore/2796b4.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/2796b4.wgsl.expected.fxc.hlsl
@@ -1,8 +1,8 @@
 RWTexture3D<int4> arg_0 : register(u0, space1);
 
 void textureStore_2796b4() {
-  int3 arg_1 = (0).xxx;
-  int4 arg_2 = (0).xxxx;
+  int3 arg_1 = (1).xxx;
+  int4 arg_2 = (1).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/2796b4.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/2796b4.wgsl.expected.msl
index c2ebcd9..cb47485 100644
--- a/test/tint/builtins/gen/var/textureStore/2796b4.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/2796b4.wgsl.expected.msl
@@ -2,8 +2,8 @@
 
 using namespace metal;
 void textureStore_2796b4(texture3d<int, access::write> tint_symbol_1) {
-  int3 arg_1 = int3(0);
-  int4 arg_2 = int4(0);
+  int3 arg_1 = int3(1);
+  int4 arg_2 = int4(1);
   tint_symbol_1.write(arg_2, uint3(arg_1));
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/2796b4.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/2796b4.wgsl.expected.spvasm
index d79adda..e2080b0 100644
--- a/test/tint/builtins/gen/var/textureStore/2796b4.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/2796b4.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 43
+; Bound: 46
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
@@ -41,44 +41,47 @@
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
       %v3int = OpTypeVector %int 3
-         %18 = OpConstantNull %v3int
+      %int_1 = OpConstant %int 1
+         %19 = OpConstantComposite %v3int %int_1 %int_1 %int_1
 %_ptr_Function_v3int = OpTypePointer Function %v3int
+         %22 = OpConstantNull %v3int
       %v4int = OpTypeVector %int 4
-         %22 = OpConstantNull %v4int
+         %24 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %29 = OpTypeFunction %v4float
+         %27 = OpConstantNull %v4int
+         %32 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_2796b4 = OpFunction %void None %13
          %16 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v3int Function %18
-      %arg_2 = OpVariable %_ptr_Function_v4int Function %22
-               OpStore %arg_1 %18
-               OpStore %arg_2 %22
-         %26 = OpLoad %11 %arg_0
-         %27 = OpLoad %v3int %arg_1
-         %28 = OpLoad %v4int %arg_2
-               OpImageWrite %26 %27 %28
+      %arg_1 = OpVariable %_ptr_Function_v3int Function %22
+      %arg_2 = OpVariable %_ptr_Function_v4int Function %27
+               OpStore %arg_1 %19
+               OpStore %arg_2 %24
+         %29 = OpLoad %11 %arg_0
+         %30 = OpLoad %v3int %arg_1
+         %31 = OpLoad %v4int %arg_2
+               OpImageWrite %29 %30 %31
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %29
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %textureStore_2796b4
+%vertex_main_inner = OpFunction %v4float None %32
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %textureStore_2796b4
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %34 = OpLabel
-         %35 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %35
+         %37 = OpLabel
+         %38 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %38
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureStore_2796b4
+         %41 = OpLabel
+         %42 = OpFunctionCall %void %textureStore_2796b4
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureStore_2796b4
+         %44 = OpLabel
+         %45 = OpFunctionCall %void %textureStore_2796b4
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/2796b4.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/2796b4.wgsl.expected.wgsl
index 00dfc5d..cceb513 100644
--- a/test/tint/builtins/gen/var/textureStore/2796b4.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/2796b4.wgsl.expected.wgsl
@@ -1,8 +1,8 @@
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rg32sint, write>;
 
 fn textureStore_2796b4() {
-  var arg_1 = vec3<i32>();
-  var arg_2 = vec4<i32>();
+  var arg_1 = vec3<i32>(1i);
+  var arg_2 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/285218.wgsl b/test/tint/builtins/gen/var/textureStore/285218.wgsl
index 98f2ada..2e7da69 100644
--- a/test/tint/builtins/gen/var/textureStore/285218.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/285218.wgsl
@@ -25,7 +25,7 @@
 // fn textureStore(texture: texture_storage_1d<rgba32float, write>, coords: u32, value: vec4<f32>)
 fn textureStore_285218() {
   var arg_1 = 1u;
-  var arg_2 = vec4<f32>();
+  var arg_2 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/285218.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/285218.wgsl.expected.dxc.hlsl
index e6d6c39..fc40d74 100644
--- a/test/tint/builtins/gen/var/textureStore/285218.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/285218.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 
 void textureStore_285218() {
   uint arg_1 = 1u;
-  float4 arg_2 = (0.0f).xxxx;
+  float4 arg_2 = (1.0f).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/285218.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/285218.wgsl.expected.fxc.hlsl
index e6d6c39..fc40d74 100644
--- a/test/tint/builtins/gen/var/textureStore/285218.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/285218.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 
 void textureStore_285218() {
   uint arg_1 = 1u;
-  float4 arg_2 = (0.0f).xxxx;
+  float4 arg_2 = (1.0f).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/285218.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/285218.wgsl.expected.msl
index c0e94ba..f6bf32a 100644
--- a/test/tint/builtins/gen/var/textureStore/285218.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/285218.wgsl.expected.msl
@@ -3,7 +3,7 @@
 using namespace metal;
 void textureStore_285218(texture1d<float, access::write> tint_symbol_1) {
   uint arg_1 = 1u;
-  float4 arg_2 = float4(0.0f);
+  float4 arg_2 = float4(1.0f);
   tint_symbol_1.write(arg_2, uint(arg_1));
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/285218.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/285218.wgsl.expected.spvasm
index 6603867..b36c2a1 100644
--- a/test/tint/builtins/gen/var/textureStore/285218.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/285218.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 41
+; Bound: 42
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
@@ -43,40 +43,41 @@
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
          %20 = OpConstantNull %uint
-%_ptr_Function_v4float = OpTypePointer Function %v4float
-         %27 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
+         %22 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%_ptr_Function_v4float = OpTypePointer Function %v4float
+         %29 = OpTypeFunction %v4float
 %textureStore_285218 = OpFunction %void None %12
          %15 = OpLabel
       %arg_1 = OpVariable %_ptr_Function_uint Function %20
       %arg_2 = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %uint_1
-               OpStore %arg_2 %5
-         %24 = OpLoad %11 %arg_0
-         %25 = OpLoad %uint %arg_1
-         %26 = OpLoad %v4float %arg_2
-               OpImageWrite %24 %25 %26
+               OpStore %arg_2 %22
+         %26 = OpLoad %11 %arg_0
+         %27 = OpLoad %uint %arg_1
+         %28 = OpLoad %v4float %arg_2
+               OpImageWrite %26 %27 %28
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %27
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %textureStore_285218
+%vertex_main_inner = OpFunction %v4float None %29
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %textureStore_285218
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %32 = OpLabel
-         %33 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %33
+         %34 = OpLabel
+         %35 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %35
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_285218
+         %37 = OpLabel
+         %38 = OpFunctionCall %void %textureStore_285218
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_285218
+         %40 = OpLabel
+         %41 = OpFunctionCall %void %textureStore_285218
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/285218.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/285218.wgsl.expected.wgsl
index a2e8b60..1685bc2 100644
--- a/test/tint/builtins/gen/var/textureStore/285218.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/285218.wgsl.expected.wgsl
@@ -2,7 +2,7 @@
 
 fn textureStore_285218() {
   var arg_1 = 1u;
-  var arg_2 = vec4<f32>();
+  var arg_2 = vec4<f32>(1.0f);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/28a7ec.wgsl b/test/tint/builtins/gen/var/textureStore/28a7ec.wgsl
index 644c834..889a179 100644
--- a/test/tint/builtins/gen/var/textureStore/28a7ec.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/28a7ec.wgsl
@@ -24,9 +24,9 @@
 
 // fn textureStore(texture: texture_storage_2d_array<r32sint, write>, coords: vec2<u32>, array_index: i32, value: vec4<i32>)
 fn textureStore_28a7ec() {
-  var arg_1 = vec2<u32>();
+  var arg_1 = vec2<u32>(1u);
   var arg_2 = 1i;
-  var arg_3 = vec4<i32>();
+  var arg_3 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/28a7ec.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/28a7ec.wgsl.expected.dxc.hlsl
index adc7c02..f46800b 100644
--- a/test/tint/builtins/gen/var/textureStore/28a7ec.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/28a7ec.wgsl.expected.dxc.hlsl
@@ -1,9 +1,9 @@
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 void textureStore_28a7ec() {
-  uint2 arg_1 = (0u).xx;
+  uint2 arg_1 = (1u).xx;
   int arg_2 = 1;
-  int4 arg_3 = (0).xxxx;
+  int4 arg_3 = (1).xxxx;
   arg_0[uint3(arg_1, uint(arg_2))] = arg_3;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/28a7ec.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/28a7ec.wgsl.expected.fxc.hlsl
index adc7c02..f46800b 100644
--- a/test/tint/builtins/gen/var/textureStore/28a7ec.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/28a7ec.wgsl.expected.fxc.hlsl
@@ -1,9 +1,9 @@
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 void textureStore_28a7ec() {
-  uint2 arg_1 = (0u).xx;
+  uint2 arg_1 = (1u).xx;
   int arg_2 = 1;
-  int4 arg_3 = (0).xxxx;
+  int4 arg_3 = (1).xxxx;
   arg_0[uint3(arg_1, uint(arg_2))] = arg_3;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/28a7ec.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/28a7ec.wgsl.expected.glsl
index f477fb3..9361577 100644
--- a/test/tint/builtins/gen/var/textureStore/28a7ec.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/28a7ec.wgsl.expected.glsl
@@ -2,9 +2,9 @@
 
 layout(r32i) uniform highp writeonly iimage2DArray arg_0;
 void textureStore_28a7ec() {
-  uvec2 arg_1 = uvec2(0u);
+  uvec2 arg_1 = uvec2(1u);
   int arg_2 = 1;
-  ivec4 arg_3 = ivec4(0);
+  ivec4 arg_3 = ivec4(1);
   imageStore(arg_0, ivec3(uvec3(arg_1, uint(arg_2))), arg_3);
 }
 
@@ -26,9 +26,9 @@
 
 layout(r32i) uniform highp writeonly iimage2DArray arg_0;
 void textureStore_28a7ec() {
-  uvec2 arg_1 = uvec2(0u);
+  uvec2 arg_1 = uvec2(1u);
   int arg_2 = 1;
-  ivec4 arg_3 = ivec4(0);
+  ivec4 arg_3 = ivec4(1);
   imageStore(arg_0, ivec3(uvec3(arg_1, uint(arg_2))), arg_3);
 }
 
@@ -44,9 +44,9 @@
 
 layout(r32i) uniform highp writeonly iimage2DArray arg_0;
 void textureStore_28a7ec() {
-  uvec2 arg_1 = uvec2(0u);
+  uvec2 arg_1 = uvec2(1u);
   int arg_2 = 1;
-  ivec4 arg_3 = ivec4(0);
+  ivec4 arg_3 = ivec4(1);
   imageStore(arg_0, ivec3(uvec3(arg_1, uint(arg_2))), arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/28a7ec.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/28a7ec.wgsl.expected.msl
index 55511c1..92ed017 100644
--- a/test/tint/builtins/gen/var/textureStore/28a7ec.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/28a7ec.wgsl.expected.msl
@@ -2,9 +2,9 @@
 
 using namespace metal;
 void textureStore_28a7ec(texture2d_array<int, access::write> tint_symbol_1) {
-  uint2 arg_1 = uint2(0u);
+  uint2 arg_1 = uint2(1u);
   int arg_2 = 1;
-  int4 arg_3 = int4(0);
+  int4 arg_3 = int4(1);
   tint_symbol_1.write(arg_3, uint2(arg_1), arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/28a7ec.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/28a7ec.wgsl.expected.spvasm
index 1ce8ddf..be90010 100644
--- a/test/tint/builtins/gen/var/textureStore/28a7ec.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/28a7ec.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 54
+; Bound: 57
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -42,55 +42,58 @@
          %13 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
-         %19 = OpConstantNull %v2uint
+     %uint_1 = OpConstant %uint 1
+         %20 = OpConstantComposite %v2uint %uint_1 %uint_1
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
+         %23 = OpConstantNull %v2uint
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
-         %25 = OpConstantNull %int
+         %27 = OpConstantNull %int
       %v4int = OpTypeVector %int 4
-         %27 = OpConstantNull %v4int
+         %29 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
+         %32 = OpConstantNull %v4int
      %v3uint = OpTypeVector %uint 3
-         %40 = OpTypeFunction %v4float
+         %43 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_28a7ec = OpFunction %void None %13
          %16 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2uint Function %19
-      %arg_2 = OpVariable %_ptr_Function_int Function %25
-      %arg_3 = OpVariable %_ptr_Function_v4int Function %27
-               OpStore %arg_1 %19
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %23
+      %arg_2 = OpVariable %_ptr_Function_int Function %27
+      %arg_3 = OpVariable %_ptr_Function_v4int Function %32
+               OpStore %arg_1 %20
                OpStore %arg_2 %int_1
-               OpStore %arg_3 %27
-         %31 = OpLoad %11 %arg_0
-         %33 = OpLoad %v2uint %arg_1
-         %34 = OpCompositeExtract %uint %33 0
-         %35 = OpCompositeExtract %uint %33 1
-         %37 = OpLoad %int %arg_2
-         %36 = OpBitcast %uint %37
-         %38 = OpCompositeConstruct %v3uint %34 %35 %36
-         %39 = OpLoad %v4int %arg_3
-               OpImageWrite %31 %38 %39
+               OpStore %arg_3 %29
+         %34 = OpLoad %11 %arg_0
+         %36 = OpLoad %v2uint %arg_1
+         %37 = OpCompositeExtract %uint %36 0
+         %38 = OpCompositeExtract %uint %36 1
+         %40 = OpLoad %int %arg_2
+         %39 = OpBitcast %uint %40
+         %41 = OpCompositeConstruct %v3uint %37 %38 %39
+         %42 = OpLoad %v4int %arg_3
+               OpImageWrite %34 %41 %42
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %40
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_28a7ec
+%vertex_main_inner = OpFunction %v4float None %43
+         %45 = OpLabel
+         %46 = OpFunctionCall %void %textureStore_28a7ec
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %45 = OpLabel
-         %46 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %46
+         %48 = OpLabel
+         %49 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %49
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %49 = OpLabel
-         %50 = OpFunctionCall %void %textureStore_28a7ec
+         %52 = OpLabel
+         %53 = OpFunctionCall %void %textureStore_28a7ec
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %52 = OpLabel
-         %53 = OpFunctionCall %void %textureStore_28a7ec
+         %55 = OpLabel
+         %56 = OpFunctionCall %void %textureStore_28a7ec
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/28a7ec.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/28a7ec.wgsl.expected.wgsl
index ab8d410..bb74805 100644
--- a/test/tint/builtins/gen/var/textureStore/28a7ec.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/28a7ec.wgsl.expected.wgsl
@@ -1,9 +1,9 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<r32sint, write>;
 
 fn textureStore_28a7ec() {
-  var arg_1 = vec2<u32>();
+  var arg_1 = vec2<u32>(1u);
   var arg_2 = 1i;
-  var arg_3 = vec4<i32>();
+  var arg_3 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/2ac6c7.wgsl b/test/tint/builtins/gen/var/textureStore/2ac6c7.wgsl
index 1e0f482..1333e72 100644
--- a/test/tint/builtins/gen/var/textureStore/2ac6c7.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/2ac6c7.wgsl
@@ -25,7 +25,7 @@
 // fn textureStore(texture: texture_storage_1d<r32float, write>, coords: i32, value: vec4<f32>)
 fn textureStore_2ac6c7() {
   var arg_1 = 1i;
-  var arg_2 = vec4<f32>();
+  var arg_2 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/2ac6c7.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/2ac6c7.wgsl.expected.dxc.hlsl
index 299e980..15517db 100644
--- a/test/tint/builtins/gen/var/textureStore/2ac6c7.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/2ac6c7.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 
 void textureStore_2ac6c7() {
   int arg_1 = 1;
-  float4 arg_2 = (0.0f).xxxx;
+  float4 arg_2 = (1.0f).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/2ac6c7.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/2ac6c7.wgsl.expected.fxc.hlsl
index 299e980..15517db 100644
--- a/test/tint/builtins/gen/var/textureStore/2ac6c7.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/2ac6c7.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 
 void textureStore_2ac6c7() {
   int arg_1 = 1;
-  float4 arg_2 = (0.0f).xxxx;
+  float4 arg_2 = (1.0f).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/2ac6c7.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/2ac6c7.wgsl.expected.msl
index da12ebc..37ba8ed 100644
--- a/test/tint/builtins/gen/var/textureStore/2ac6c7.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/2ac6c7.wgsl.expected.msl
@@ -3,7 +3,7 @@
 using namespace metal;
 void textureStore_2ac6c7(texture1d<float, access::write> tint_symbol_1) {
   int arg_1 = 1;
-  float4 arg_2 = float4(0.0f);
+  float4 arg_2 = float4(1.0f);
   tint_symbol_1.write(arg_2, uint(arg_1));
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/2ac6c7.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/2ac6c7.wgsl.expected.spvasm
index f15467a..cd316b5 100644
--- a/test/tint/builtins/gen/var/textureStore/2ac6c7.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/2ac6c7.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 41
+; Bound: 42
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
@@ -43,40 +43,41 @@
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
          %20 = OpConstantNull %int
-%_ptr_Function_v4float = OpTypePointer Function %v4float
-         %27 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
+         %22 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%_ptr_Function_v4float = OpTypePointer Function %v4float
+         %29 = OpTypeFunction %v4float
 %textureStore_2ac6c7 = OpFunction %void None %12
          %15 = OpLabel
       %arg_1 = OpVariable %_ptr_Function_int Function %20
       %arg_2 = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %int_1
-               OpStore %arg_2 %5
-         %24 = OpLoad %11 %arg_0
-         %25 = OpLoad %int %arg_1
-         %26 = OpLoad %v4float %arg_2
-               OpImageWrite %24 %25 %26
+               OpStore %arg_2 %22
+         %26 = OpLoad %11 %arg_0
+         %27 = OpLoad %int %arg_1
+         %28 = OpLoad %v4float %arg_2
+               OpImageWrite %26 %27 %28
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %27
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %textureStore_2ac6c7
+%vertex_main_inner = OpFunction %v4float None %29
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %textureStore_2ac6c7
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %32 = OpLabel
-         %33 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %33
+         %34 = OpLabel
+         %35 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %35
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_2ac6c7
+         %37 = OpLabel
+         %38 = OpFunctionCall %void %textureStore_2ac6c7
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_2ac6c7
+         %40 = OpLabel
+         %41 = OpFunctionCall %void %textureStore_2ac6c7
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/2ac6c7.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/2ac6c7.wgsl.expected.wgsl
index 7cb7cde..3a9faa7 100644
--- a/test/tint/builtins/gen/var/textureStore/2ac6c7.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/2ac6c7.wgsl.expected.wgsl
@@ -2,7 +2,7 @@
 
 fn textureStore_2ac6c7() {
   var arg_1 = 1i;
-  var arg_2 = vec4<f32>();
+  var arg_2 = vec4<f32>(1.0f);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/2d2835.wgsl b/test/tint/builtins/gen/var/textureStore/2d2835.wgsl
index 588630b..08d4370 100644
--- a/test/tint/builtins/gen/var/textureStore/2d2835.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/2d2835.wgsl
@@ -24,9 +24,9 @@
 
 // fn textureStore(texture: texture_storage_2d_array<rg32float, write>, coords: vec2<u32>, array_index: u32, value: vec4<f32>)
 fn textureStore_2d2835() {
-  var arg_1 = vec2<u32>();
+  var arg_1 = vec2<u32>(1u);
   var arg_2 = 1u;
-  var arg_3 = vec4<f32>();
+  var arg_3 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/2d2835.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/2d2835.wgsl.expected.dxc.hlsl
index b0cc940..5feb22c 100644
--- a/test/tint/builtins/gen/var/textureStore/2d2835.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/2d2835.wgsl.expected.dxc.hlsl
@@ -1,9 +1,9 @@
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 void textureStore_2d2835() {
-  uint2 arg_1 = (0u).xx;
+  uint2 arg_1 = (1u).xx;
   uint arg_2 = 1u;
-  float4 arg_3 = (0.0f).xxxx;
+  float4 arg_3 = (1.0f).xxxx;
   arg_0[uint3(arg_1, arg_2)] = arg_3;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/2d2835.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/2d2835.wgsl.expected.fxc.hlsl
index b0cc940..5feb22c 100644
--- a/test/tint/builtins/gen/var/textureStore/2d2835.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/2d2835.wgsl.expected.fxc.hlsl
@@ -1,9 +1,9 @@
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 void textureStore_2d2835() {
-  uint2 arg_1 = (0u).xx;
+  uint2 arg_1 = (1u).xx;
   uint arg_2 = 1u;
-  float4 arg_3 = (0.0f).xxxx;
+  float4 arg_3 = (1.0f).xxxx;
   arg_0[uint3(arg_1, arg_2)] = arg_3;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/2d2835.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/2d2835.wgsl.expected.msl
index 30f7ba5..2fe97bd 100644
--- a/test/tint/builtins/gen/var/textureStore/2d2835.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/2d2835.wgsl.expected.msl
@@ -2,9 +2,9 @@
 
 using namespace metal;
 void textureStore_2d2835(texture2d_array<float, access::write> tint_symbol_1) {
-  uint2 arg_1 = uint2(0u);
+  uint2 arg_1 = uint2(1u);
   uint arg_2 = 1u;
-  float4 arg_3 = float4(0.0f);
+  float4 arg_3 = float4(1.0f);
   tint_symbol_1.write(arg_3, uint2(arg_1), arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/2d2835.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/2d2835.wgsl.expected.spvasm
index ef33f05..f699efe 100644
--- a/test/tint/builtins/gen/var/textureStore/2d2835.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/2d2835.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 50
+; Bound: 52
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
@@ -42,52 +42,54 @@
          %12 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
-         %18 = OpConstantNull %v2uint
-%_ptr_Function_v2uint = OpTypePointer Function %v2uint
      %uint_1 = OpConstant %uint 1
+         %19 = OpConstantComposite %v2uint %uint_1 %uint_1
+%_ptr_Function_v2uint = OpTypePointer Function %v2uint
+         %22 = OpConstantNull %v2uint
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %24 = OpConstantNull %uint
+         %25 = OpConstantNull %uint
+    %float_1 = OpConstant %float 1
+         %27 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
      %v3uint = OpTypeVector %uint 3
-         %36 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %39 = OpTypeFunction %v4float
 %textureStore_2d2835 = OpFunction %void None %12
          %15 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2uint Function %18
-      %arg_2 = OpVariable %_ptr_Function_uint Function %24
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %22
+      %arg_2 = OpVariable %_ptr_Function_uint Function %25
       %arg_3 = OpVariable %_ptr_Function_v4float Function %5
-               OpStore %arg_1 %18
+               OpStore %arg_1 %19
                OpStore %arg_2 %uint_1
-               OpStore %arg_3 %5
-         %28 = OpLoad %11 %arg_0
-         %30 = OpLoad %v2uint %arg_1
-         %31 = OpCompositeExtract %uint %30 0
-         %32 = OpCompositeExtract %uint %30 1
-         %33 = OpLoad %uint %arg_2
-         %34 = OpCompositeConstruct %v3uint %31 %32 %33
-         %35 = OpLoad %v4float %arg_3
-               OpImageWrite %28 %34 %35
+               OpStore %arg_3 %27
+         %31 = OpLoad %11 %arg_0
+         %33 = OpLoad %v2uint %arg_1
+         %34 = OpCompositeExtract %uint %33 0
+         %35 = OpCompositeExtract %uint %33 1
+         %36 = OpLoad %uint %arg_2
+         %37 = OpCompositeConstruct %v3uint %34 %35 %36
+         %38 = OpLoad %v4float %arg_3
+               OpImageWrite %31 %37 %38
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %36
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureStore_2d2835
+%vertex_main_inner = OpFunction %v4float None %39
+         %41 = OpLabel
+         %42 = OpFunctionCall %void %textureStore_2d2835
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %41 = OpLabel
-         %42 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %42
+         %44 = OpLabel
+         %45 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %45
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %45 = OpLabel
-         %46 = OpFunctionCall %void %textureStore_2d2835
+         %47 = OpLabel
+         %48 = OpFunctionCall %void %textureStore_2d2835
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %48 = OpLabel
-         %49 = OpFunctionCall %void %textureStore_2d2835
+         %50 = OpLabel
+         %51 = OpFunctionCall %void %textureStore_2d2835
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/2d2835.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/2d2835.wgsl.expected.wgsl
index 76e91c0..2e503b1 100644
--- a/test/tint/builtins/gen/var/textureStore/2d2835.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/2d2835.wgsl.expected.wgsl
@@ -1,9 +1,9 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rg32float, write>;
 
 fn textureStore_2d2835() {
-  var arg_1 = vec2<u32>();
+  var arg_1 = vec2<u32>(1u);
   var arg_2 = 1u;
-  var arg_3 = vec4<f32>();
+  var arg_3 = vec4<f32>(1.0f);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/2e6102.wgsl b/test/tint/builtins/gen/var/textureStore/2e6102.wgsl
index 2512a83..ffe422a 100644
--- a/test/tint/builtins/gen/var/textureStore/2e6102.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/2e6102.wgsl
@@ -24,8 +24,8 @@
 
 // fn textureStore(texture: texture_storage_2d<rgba32float, write>, coords: vec2<u32>, value: vec4<f32>)
 fn textureStore_2e6102() {
-  var arg_1 = vec2<u32>();
-  var arg_2 = vec4<f32>();
+  var arg_1 = vec2<u32>(1u);
+  var arg_2 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/2e6102.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/2e6102.wgsl.expected.dxc.hlsl
index ae9f5dd..f1a37fb 100644
--- a/test/tint/builtins/gen/var/textureStore/2e6102.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/2e6102.wgsl.expected.dxc.hlsl
@@ -1,8 +1,8 @@
 RWTexture2D<float4> arg_0 : register(u0, space1);
 
 void textureStore_2e6102() {
-  uint2 arg_1 = (0u).xx;
-  float4 arg_2 = (0.0f).xxxx;
+  uint2 arg_1 = (1u).xx;
+  float4 arg_2 = (1.0f).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/2e6102.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/2e6102.wgsl.expected.fxc.hlsl
index ae9f5dd..f1a37fb 100644
--- a/test/tint/builtins/gen/var/textureStore/2e6102.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/2e6102.wgsl.expected.fxc.hlsl
@@ -1,8 +1,8 @@
 RWTexture2D<float4> arg_0 : register(u0, space1);
 
 void textureStore_2e6102() {
-  uint2 arg_1 = (0u).xx;
-  float4 arg_2 = (0.0f).xxxx;
+  uint2 arg_1 = (1u).xx;
+  float4 arg_2 = (1.0f).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/2e6102.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/2e6102.wgsl.expected.glsl
index e3185e6..a2efe7d 100644
--- a/test/tint/builtins/gen/var/textureStore/2e6102.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/2e6102.wgsl.expected.glsl
@@ -2,8 +2,8 @@
 
 layout(rgba32f) uniform highp writeonly image2D arg_0;
 void textureStore_2e6102() {
-  uvec2 arg_1 = uvec2(0u);
-  vec4 arg_2 = vec4(0.0f);
+  uvec2 arg_1 = uvec2(1u);
+  vec4 arg_2 = vec4(1.0f);
   imageStore(arg_0, ivec2(arg_1), arg_2);
 }
 
@@ -25,8 +25,8 @@
 
 layout(rgba32f) uniform highp writeonly image2D arg_0;
 void textureStore_2e6102() {
-  uvec2 arg_1 = uvec2(0u);
-  vec4 arg_2 = vec4(0.0f);
+  uvec2 arg_1 = uvec2(1u);
+  vec4 arg_2 = vec4(1.0f);
   imageStore(arg_0, ivec2(arg_1), arg_2);
 }
 
@@ -42,8 +42,8 @@
 
 layout(rgba32f) uniform highp writeonly image2D arg_0;
 void textureStore_2e6102() {
-  uvec2 arg_1 = uvec2(0u);
-  vec4 arg_2 = vec4(0.0f);
+  uvec2 arg_1 = uvec2(1u);
+  vec4 arg_2 = vec4(1.0f);
   imageStore(arg_0, ivec2(arg_1), arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/2e6102.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/2e6102.wgsl.expected.msl
index 76221f2..b12fdb9 100644
--- a/test/tint/builtins/gen/var/textureStore/2e6102.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/2e6102.wgsl.expected.msl
@@ -2,8 +2,8 @@
 
 using namespace metal;
 void textureStore_2e6102(texture2d<float, access::write> tint_symbol_1) {
-  uint2 arg_1 = uint2(0u);
-  float4 arg_2 = float4(0.0f);
+  uint2 arg_1 = uint2(1u);
+  float4 arg_2 = float4(1.0f);
   tint_symbol_1.write(arg_2, uint2(arg_1));
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/2e6102.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/2e6102.wgsl.expected.spvasm
index e9c074c..d17728d 100644
--- a/test/tint/builtins/gen/var/textureStore/2e6102.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/2e6102.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 41
+; Bound: 44
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -40,42 +40,45 @@
          %12 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
-         %18 = OpConstantNull %v2uint
+     %uint_1 = OpConstant %uint 1
+         %19 = OpConstantComposite %v2uint %uint_1 %uint_1
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
-%_ptr_Function_v4float = OpTypePointer Function %v4float
-         %27 = OpTypeFunction %v4float
+         %22 = OpConstantNull %v2uint
     %float_1 = OpConstant %float 1
+         %24 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%_ptr_Function_v4float = OpTypePointer Function %v4float
+         %31 = OpTypeFunction %v4float
 %textureStore_2e6102 = OpFunction %void None %12
          %15 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2uint Function %18
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %22
       %arg_2 = OpVariable %_ptr_Function_v4float Function %5
-               OpStore %arg_1 %18
-               OpStore %arg_2 %5
-         %24 = OpLoad %11 %arg_0
-         %25 = OpLoad %v2uint %arg_1
-         %26 = OpLoad %v4float %arg_2
-               OpImageWrite %24 %25 %26
+               OpStore %arg_1 %19
+               OpStore %arg_2 %24
+         %28 = OpLoad %11 %arg_0
+         %29 = OpLoad %v2uint %arg_1
+         %30 = OpLoad %v4float %arg_2
+               OpImageWrite %28 %29 %30
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %27
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %textureStore_2e6102
+%vertex_main_inner = OpFunction %v4float None %31
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureStore_2e6102
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %32 = OpLabel
-         %33 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %33
+         %36 = OpLabel
+         %37 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %37
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_2e6102
+         %39 = OpLabel
+         %40 = OpFunctionCall %void %textureStore_2e6102
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_2e6102
+         %42 = OpLabel
+         %43 = OpFunctionCall %void %textureStore_2e6102
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/2e6102.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/2e6102.wgsl.expected.wgsl
index 212a545..8b5556a 100644
--- a/test/tint/builtins/gen/var/textureStore/2e6102.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/2e6102.wgsl.expected.wgsl
@@ -1,8 +1,8 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba32float, write>;
 
 fn textureStore_2e6102() {
-  var arg_1 = vec2<u32>();
-  var arg_2 = vec4<f32>();
+  var arg_1 = vec2<u32>(1u);
+  var arg_2 = vec4<f32>(1.0f);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/2eb2a4.wgsl b/test/tint/builtins/gen/var/textureStore/2eb2a4.wgsl
index 1501b10..d293c97 100644
--- a/test/tint/builtins/gen/var/textureStore/2eb2a4.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/2eb2a4.wgsl
@@ -25,7 +25,7 @@
 // fn textureStore(texture: texture_storage_1d<rgba16uint, write>, coords: i32, value: vec4<u32>)
 fn textureStore_2eb2a4() {
   var arg_1 = 1i;
-  var arg_2 = vec4<u32>();
+  var arg_2 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/2eb2a4.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/2eb2a4.wgsl.expected.dxc.hlsl
index 36b1326..b0c2cc0 100644
--- a/test/tint/builtins/gen/var/textureStore/2eb2a4.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/2eb2a4.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 
 void textureStore_2eb2a4() {
   int arg_1 = 1;
-  uint4 arg_2 = (0u).xxxx;
+  uint4 arg_2 = (1u).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/2eb2a4.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/2eb2a4.wgsl.expected.fxc.hlsl
index 36b1326..b0c2cc0 100644
--- a/test/tint/builtins/gen/var/textureStore/2eb2a4.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/2eb2a4.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 
 void textureStore_2eb2a4() {
   int arg_1 = 1;
-  uint4 arg_2 = (0u).xxxx;
+  uint4 arg_2 = (1u).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/2eb2a4.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/2eb2a4.wgsl.expected.msl
index 07e1c2a..d3bd936 100644
--- a/test/tint/builtins/gen/var/textureStore/2eb2a4.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/2eb2a4.wgsl.expected.msl
@@ -3,7 +3,7 @@
 using namespace metal;
 void textureStore_2eb2a4(texture1d<uint, access::write> tint_symbol_1) {
   int arg_1 = 1;
-  uint4 arg_2 = uint4(0u);
+  uint4 arg_2 = uint4(1u);
   tint_symbol_1.write(arg_2, uint(arg_1));
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/2eb2a4.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/2eb2a4.wgsl.expected.spvasm
index c00ec81..19d931f 100644
--- a/test/tint/builtins/gen/var/textureStore/2eb2a4.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/2eb2a4.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 46
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
@@ -45,41 +45,43 @@
 %_ptr_Function_int = OpTypePointer Function %int
          %21 = OpConstantNull %int
      %v4uint = OpTypeVector %uint 4
-         %23 = OpConstantNull %v4uint
+     %uint_1 = OpConstant %uint 1
+         %24 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %30 = OpTypeFunction %v4float
+         %27 = OpConstantNull %v4uint
+         %32 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_2eb2a4 = OpFunction %void None %13
          %16 = OpLabel
       %arg_1 = OpVariable %_ptr_Function_int Function %21
-      %arg_2 = OpVariable %_ptr_Function_v4uint Function %23
+      %arg_2 = OpVariable %_ptr_Function_v4uint Function %27
                OpStore %arg_1 %int_1
-               OpStore %arg_2 %23
-         %27 = OpLoad %11 %arg_0
-         %28 = OpLoad %int %arg_1
-         %29 = OpLoad %v4uint %arg_2
-               OpImageWrite %27 %28 %29
+               OpStore %arg_2 %24
+         %29 = OpLoad %11 %arg_0
+         %30 = OpLoad %int %arg_1
+         %31 = OpLoad %v4uint %arg_2
+               OpImageWrite %29 %30 %31
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %30
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_2eb2a4
+%vertex_main_inner = OpFunction %v4float None %32
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %textureStore_2eb2a4
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %36
+         %37 = OpLabel
+         %38 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %38
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_2eb2a4
+         %41 = OpLabel
+         %42 = OpFunctionCall %void %textureStore_2eb2a4
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_2eb2a4
+         %44 = OpLabel
+         %45 = OpFunctionCall %void %textureStore_2eb2a4
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/2eb2a4.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/2eb2a4.wgsl.expected.wgsl
index 38b1ccb..7323e1d 100644
--- a/test/tint/builtins/gen/var/textureStore/2eb2a4.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/2eb2a4.wgsl.expected.wgsl
@@ -2,7 +2,7 @@
 
 fn textureStore_2eb2a4() {
   var arg_1 = 1i;
-  var arg_2 = vec4<u32>();
+  var arg_2 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/2ed2a3.wgsl b/test/tint/builtins/gen/var/textureStore/2ed2a3.wgsl
index fb7b871..f2d8621 100644
--- a/test/tint/builtins/gen/var/textureStore/2ed2a3.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/2ed2a3.wgsl
@@ -25,7 +25,7 @@
 // fn textureStore(texture: texture_storage_1d<rgba8snorm, write>, coords: i32, value: vec4<f32>)
 fn textureStore_2ed2a3() {
   var arg_1 = 1i;
-  var arg_2 = vec4<f32>();
+  var arg_2 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/2ed2a3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/2ed2a3.wgsl.expected.dxc.hlsl
index 5d63a7b..c347426 100644
--- a/test/tint/builtins/gen/var/textureStore/2ed2a3.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/2ed2a3.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 
 void textureStore_2ed2a3() {
   int arg_1 = 1;
-  float4 arg_2 = (0.0f).xxxx;
+  float4 arg_2 = (1.0f).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/2ed2a3.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/2ed2a3.wgsl.expected.fxc.hlsl
index 5d63a7b..c347426 100644
--- a/test/tint/builtins/gen/var/textureStore/2ed2a3.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/2ed2a3.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 
 void textureStore_2ed2a3() {
   int arg_1 = 1;
-  float4 arg_2 = (0.0f).xxxx;
+  float4 arg_2 = (1.0f).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/2ed2a3.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/2ed2a3.wgsl.expected.msl
index e3b850b..e4a9643 100644
--- a/test/tint/builtins/gen/var/textureStore/2ed2a3.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/2ed2a3.wgsl.expected.msl
@@ -3,7 +3,7 @@
 using namespace metal;
 void textureStore_2ed2a3(texture1d<float, access::write> tint_symbol_1) {
   int arg_1 = 1;
-  float4 arg_2 = float4(0.0f);
+  float4 arg_2 = float4(1.0f);
   tint_symbol_1.write(arg_2, uint(arg_1));
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/2ed2a3.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/2ed2a3.wgsl.expected.spvasm
index c692c2f..e07c68c 100644
--- a/test/tint/builtins/gen/var/textureStore/2ed2a3.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/2ed2a3.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 41
+; Bound: 42
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
@@ -43,40 +43,41 @@
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
          %20 = OpConstantNull %int
-%_ptr_Function_v4float = OpTypePointer Function %v4float
-         %27 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
+         %22 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%_ptr_Function_v4float = OpTypePointer Function %v4float
+         %29 = OpTypeFunction %v4float
 %textureStore_2ed2a3 = OpFunction %void None %12
          %15 = OpLabel
       %arg_1 = OpVariable %_ptr_Function_int Function %20
       %arg_2 = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %int_1
-               OpStore %arg_2 %5
-         %24 = OpLoad %11 %arg_0
-         %25 = OpLoad %int %arg_1
-         %26 = OpLoad %v4float %arg_2
-               OpImageWrite %24 %25 %26
+               OpStore %arg_2 %22
+         %26 = OpLoad %11 %arg_0
+         %27 = OpLoad %int %arg_1
+         %28 = OpLoad %v4float %arg_2
+               OpImageWrite %26 %27 %28
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %27
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %textureStore_2ed2a3
+%vertex_main_inner = OpFunction %v4float None %29
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %textureStore_2ed2a3
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %32 = OpLabel
-         %33 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %33
+         %34 = OpLabel
+         %35 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %35
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_2ed2a3
+         %37 = OpLabel
+         %38 = OpFunctionCall %void %textureStore_2ed2a3
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_2ed2a3
+         %40 = OpLabel
+         %41 = OpFunctionCall %void %textureStore_2ed2a3
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/2ed2a3.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/2ed2a3.wgsl.expected.wgsl
index 54b46ea..39e5cc1 100644
--- a/test/tint/builtins/gen/var/textureStore/2ed2a3.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/2ed2a3.wgsl.expected.wgsl
@@ -2,7 +2,7 @@
 
 fn textureStore_2ed2a3() {
   var arg_1 = 1i;
-  var arg_2 = vec4<f32>();
+  var arg_2 = vec4<f32>(1.0f);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/30b0b0.wgsl b/test/tint/builtins/gen/var/textureStore/30b0b0.wgsl
index 392288f..16db314 100644
--- a/test/tint/builtins/gen/var/textureStore/30b0b0.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/30b0b0.wgsl
@@ -24,9 +24,9 @@
 
 // fn textureStore(texture: texture_storage_2d_array<rgba32sint, write>, coords: vec2<i32>, array_index: u32, value: vec4<i32>)
 fn textureStore_30b0b0() {
-  var arg_1 = vec2<i32>();
+  var arg_1 = vec2<i32>(1i);
   var arg_2 = 1u;
-  var arg_3 = vec4<i32>();
+  var arg_3 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/30b0b0.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/30b0b0.wgsl.expected.dxc.hlsl
index 79d2f71..2440a69 100644
--- a/test/tint/builtins/gen/var/textureStore/30b0b0.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/30b0b0.wgsl.expected.dxc.hlsl
@@ -1,9 +1,9 @@
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 void textureStore_30b0b0() {
-  int2 arg_1 = (0).xx;
+  int2 arg_1 = (1).xx;
   uint arg_2 = 1u;
-  int4 arg_3 = (0).xxxx;
+  int4 arg_3 = (1).xxxx;
   arg_0[int3(arg_1, int(arg_2))] = arg_3;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/30b0b0.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/30b0b0.wgsl.expected.fxc.hlsl
index 79d2f71..2440a69 100644
--- a/test/tint/builtins/gen/var/textureStore/30b0b0.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/30b0b0.wgsl.expected.fxc.hlsl
@@ -1,9 +1,9 @@
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 void textureStore_30b0b0() {
-  int2 arg_1 = (0).xx;
+  int2 arg_1 = (1).xx;
   uint arg_2 = 1u;
-  int4 arg_3 = (0).xxxx;
+  int4 arg_3 = (1).xxxx;
   arg_0[int3(arg_1, int(arg_2))] = arg_3;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/30b0b0.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/30b0b0.wgsl.expected.glsl
index 9fd35ef..87d1edb 100644
--- a/test/tint/builtins/gen/var/textureStore/30b0b0.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/30b0b0.wgsl.expected.glsl
@@ -2,9 +2,9 @@
 
 layout(rgba32i) uniform highp writeonly iimage2DArray arg_0;
 void textureStore_30b0b0() {
-  ivec2 arg_1 = ivec2(0);
+  ivec2 arg_1 = ivec2(1);
   uint arg_2 = 1u;
-  ivec4 arg_3 = ivec4(0);
+  ivec4 arg_3 = ivec4(1);
   imageStore(arg_0, ivec3(arg_1, int(arg_2)), arg_3);
 }
 
@@ -26,9 +26,9 @@
 
 layout(rgba32i) uniform highp writeonly iimage2DArray arg_0;
 void textureStore_30b0b0() {
-  ivec2 arg_1 = ivec2(0);
+  ivec2 arg_1 = ivec2(1);
   uint arg_2 = 1u;
-  ivec4 arg_3 = ivec4(0);
+  ivec4 arg_3 = ivec4(1);
   imageStore(arg_0, ivec3(arg_1, int(arg_2)), arg_3);
 }
 
@@ -44,9 +44,9 @@
 
 layout(rgba32i) uniform highp writeonly iimage2DArray arg_0;
 void textureStore_30b0b0() {
-  ivec2 arg_1 = ivec2(0);
+  ivec2 arg_1 = ivec2(1);
   uint arg_2 = 1u;
-  ivec4 arg_3 = ivec4(0);
+  ivec4 arg_3 = ivec4(1);
   imageStore(arg_0, ivec3(arg_1, int(arg_2)), arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/30b0b0.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/30b0b0.wgsl.expected.msl
index 4b580cd..e2d8c74 100644
--- a/test/tint/builtins/gen/var/textureStore/30b0b0.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/30b0b0.wgsl.expected.msl
@@ -2,9 +2,9 @@
 
 using namespace metal;
 void textureStore_30b0b0(texture2d_array<int, access::write> tint_symbol_1) {
-  int2 arg_1 = int2(0);
+  int2 arg_1 = int2(1);
   uint arg_2 = 1u;
-  int4 arg_3 = int4(0);
+  int4 arg_3 = int4(1);
   tint_symbol_1.write(arg_3, uint2(arg_1), arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/30b0b0.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/30b0b0.wgsl.expected.spvasm
index 15a126f..e8ee410 100644
--- a/test/tint/builtins/gen/var/textureStore/30b0b0.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/30b0b0.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 54
+; Bound: 57
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -41,56 +41,59 @@
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
       %v2int = OpTypeVector %int 2
-         %18 = OpConstantNull %v2int
+      %int_1 = OpConstant %int 1
+         %19 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v2int = OpTypePointer Function %v2int
+         %22 = OpConstantNull %v2int
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %25 = OpConstantNull %uint
+         %27 = OpConstantNull %uint
       %v4int = OpTypeVector %int 4
-         %27 = OpConstantNull %v4int
+         %29 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
+         %32 = OpConstantNull %v4int
       %v3int = OpTypeVector %int 3
-         %40 = OpTypeFunction %v4float
+         %43 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_30b0b0 = OpFunction %void None %13
          %16 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2int Function %18
-      %arg_2 = OpVariable %_ptr_Function_uint Function %25
-      %arg_3 = OpVariable %_ptr_Function_v4int Function %27
-               OpStore %arg_1 %18
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %22
+      %arg_2 = OpVariable %_ptr_Function_uint Function %27
+      %arg_3 = OpVariable %_ptr_Function_v4int Function %32
+               OpStore %arg_1 %19
                OpStore %arg_2 %uint_1
-               OpStore %arg_3 %27
-         %31 = OpLoad %11 %arg_0
-         %33 = OpLoad %v2int %arg_1
-         %34 = OpCompositeExtract %int %33 0
-         %35 = OpCompositeExtract %int %33 1
-         %37 = OpLoad %uint %arg_2
-         %36 = OpBitcast %int %37
-         %38 = OpCompositeConstruct %v3int %34 %35 %36
-         %39 = OpLoad %v4int %arg_3
-               OpImageWrite %31 %38 %39
+               OpStore %arg_3 %29
+         %34 = OpLoad %11 %arg_0
+         %36 = OpLoad %v2int %arg_1
+         %37 = OpCompositeExtract %int %36 0
+         %38 = OpCompositeExtract %int %36 1
+         %40 = OpLoad %uint %arg_2
+         %39 = OpBitcast %int %40
+         %41 = OpCompositeConstruct %v3int %37 %38 %39
+         %42 = OpLoad %v4int %arg_3
+               OpImageWrite %34 %41 %42
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %40
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_30b0b0
+%vertex_main_inner = OpFunction %v4float None %43
+         %45 = OpLabel
+         %46 = OpFunctionCall %void %textureStore_30b0b0
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %45 = OpLabel
-         %46 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %46
+         %48 = OpLabel
+         %49 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %49
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %49 = OpLabel
-         %50 = OpFunctionCall %void %textureStore_30b0b0
+         %52 = OpLabel
+         %53 = OpFunctionCall %void %textureStore_30b0b0
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %52 = OpLabel
-         %53 = OpFunctionCall %void %textureStore_30b0b0
+         %55 = OpLabel
+         %56 = OpFunctionCall %void %textureStore_30b0b0
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/30b0b0.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/30b0b0.wgsl.expected.wgsl
index 9ee34ee..cc9fc8a 100644
--- a/test/tint/builtins/gen/var/textureStore/30b0b0.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/30b0b0.wgsl.expected.wgsl
@@ -1,9 +1,9 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba32sint, write>;
 
 fn textureStore_30b0b0() {
-  var arg_1 = vec2<i32>();
+  var arg_1 = vec2<i32>(1i);
   var arg_2 = 1u;
-  var arg_3 = vec4<i32>();
+  var arg_3 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/31745b.wgsl b/test/tint/builtins/gen/var/textureStore/31745b.wgsl
index 05bde5f..27b9e30 100644
--- a/test/tint/builtins/gen/var/textureStore/31745b.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/31745b.wgsl
@@ -24,8 +24,8 @@
 
 // fn textureStore(texture: texture_storage_2d<rg32sint, write>, coords: vec2<i32>, value: vec4<i32>)
 fn textureStore_31745b() {
-  var arg_1 = vec2<i32>();
-  var arg_2 = vec4<i32>();
+  var arg_1 = vec2<i32>(1i);
+  var arg_2 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/31745b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/31745b.wgsl.expected.dxc.hlsl
index 3386530..4e8b4bb 100644
--- a/test/tint/builtins/gen/var/textureStore/31745b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/31745b.wgsl.expected.dxc.hlsl
@@ -1,8 +1,8 @@
 RWTexture2D<int4> arg_0 : register(u0, space1);
 
 void textureStore_31745b() {
-  int2 arg_1 = (0).xx;
-  int4 arg_2 = (0).xxxx;
+  int2 arg_1 = (1).xx;
+  int4 arg_2 = (1).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/31745b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/31745b.wgsl.expected.fxc.hlsl
index 3386530..4e8b4bb 100644
--- a/test/tint/builtins/gen/var/textureStore/31745b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/31745b.wgsl.expected.fxc.hlsl
@@ -1,8 +1,8 @@
 RWTexture2D<int4> arg_0 : register(u0, space1);
 
 void textureStore_31745b() {
-  int2 arg_1 = (0).xx;
-  int4 arg_2 = (0).xxxx;
+  int2 arg_1 = (1).xx;
+  int4 arg_2 = (1).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/31745b.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/31745b.wgsl.expected.msl
index bde273a..9a436dc 100644
--- a/test/tint/builtins/gen/var/textureStore/31745b.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/31745b.wgsl.expected.msl
@@ -2,8 +2,8 @@
 
 using namespace metal;
 void textureStore_31745b(texture2d<int, access::write> tint_symbol_1) {
-  int2 arg_1 = int2(0);
-  int4 arg_2 = int4(0);
+  int2 arg_1 = int2(1);
+  int4 arg_2 = int4(1);
   tint_symbol_1.write(arg_2, uint2(arg_1));
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/31745b.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/31745b.wgsl.expected.spvasm
index 016eb27..683bc16 100644
--- a/test/tint/builtins/gen/var/textureStore/31745b.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/31745b.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 43
+; Bound: 46
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
@@ -41,44 +41,47 @@
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
       %v2int = OpTypeVector %int 2
-         %18 = OpConstantNull %v2int
+      %int_1 = OpConstant %int 1
+         %19 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v2int = OpTypePointer Function %v2int
+         %22 = OpConstantNull %v2int
       %v4int = OpTypeVector %int 4
-         %22 = OpConstantNull %v4int
+         %24 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %29 = OpTypeFunction %v4float
+         %27 = OpConstantNull %v4int
+         %32 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_31745b = OpFunction %void None %13
          %16 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2int Function %18
-      %arg_2 = OpVariable %_ptr_Function_v4int Function %22
-               OpStore %arg_1 %18
-               OpStore %arg_2 %22
-         %26 = OpLoad %11 %arg_0
-         %27 = OpLoad %v2int %arg_1
-         %28 = OpLoad %v4int %arg_2
-               OpImageWrite %26 %27 %28
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %22
+      %arg_2 = OpVariable %_ptr_Function_v4int Function %27
+               OpStore %arg_1 %19
+               OpStore %arg_2 %24
+         %29 = OpLoad %11 %arg_0
+         %30 = OpLoad %v2int %arg_1
+         %31 = OpLoad %v4int %arg_2
+               OpImageWrite %29 %30 %31
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %29
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %textureStore_31745b
+%vertex_main_inner = OpFunction %v4float None %32
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %textureStore_31745b
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %34 = OpLabel
-         %35 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %35
+         %37 = OpLabel
+         %38 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %38
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureStore_31745b
+         %41 = OpLabel
+         %42 = OpFunctionCall %void %textureStore_31745b
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureStore_31745b
+         %44 = OpLabel
+         %45 = OpFunctionCall %void %textureStore_31745b
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/31745b.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/31745b.wgsl.expected.wgsl
index 03ffd0b..edacd7b 100644
--- a/test/tint/builtins/gen/var/textureStore/31745b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/31745b.wgsl.expected.wgsl
@@ -1,8 +1,8 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rg32sint, write>;
 
 fn textureStore_31745b() {
-  var arg_1 = vec2<i32>();
-  var arg_2 = vec4<i32>();
+  var arg_1 = vec2<i32>(1i);
+  var arg_2 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/32f368.wgsl b/test/tint/builtins/gen/var/textureStore/32f368.wgsl
index d7354e6..e31b404 100644
--- a/test/tint/builtins/gen/var/textureStore/32f368.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/32f368.wgsl
@@ -24,9 +24,9 @@
 
 // fn textureStore(texture: texture_storage_2d_array<rgba16float, write>, coords: vec2<i32>, array_index: i32, value: vec4<f32>)
 fn textureStore_32f368() {
-  var arg_1 = vec2<i32>();
+  var arg_1 = vec2<i32>(1i);
   var arg_2 = 1i;
-  var arg_3 = vec4<f32>();
+  var arg_3 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/32f368.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/32f368.wgsl.expected.dxc.hlsl
index 1c217b2..2562e61 100644
--- a/test/tint/builtins/gen/var/textureStore/32f368.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/32f368.wgsl.expected.dxc.hlsl
@@ -1,9 +1,9 @@
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 void textureStore_32f368() {
-  int2 arg_1 = (0).xx;
+  int2 arg_1 = (1).xx;
   int arg_2 = 1;
-  float4 arg_3 = (0.0f).xxxx;
+  float4 arg_3 = (1.0f).xxxx;
   arg_0[int3(arg_1, arg_2)] = arg_3;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/32f368.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/32f368.wgsl.expected.fxc.hlsl
index 1c217b2..2562e61 100644
--- a/test/tint/builtins/gen/var/textureStore/32f368.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/32f368.wgsl.expected.fxc.hlsl
@@ -1,9 +1,9 @@
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 void textureStore_32f368() {
-  int2 arg_1 = (0).xx;
+  int2 arg_1 = (1).xx;
   int arg_2 = 1;
-  float4 arg_3 = (0.0f).xxxx;
+  float4 arg_3 = (1.0f).xxxx;
   arg_0[int3(arg_1, arg_2)] = arg_3;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/32f368.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/32f368.wgsl.expected.glsl
index b86d5eb..77d4a8b 100644
--- a/test/tint/builtins/gen/var/textureStore/32f368.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/32f368.wgsl.expected.glsl
@@ -2,9 +2,9 @@
 
 layout(rgba16f) uniform highp writeonly image2DArray arg_0;
 void textureStore_32f368() {
-  ivec2 arg_1 = ivec2(0);
+  ivec2 arg_1 = ivec2(1);
   int arg_2 = 1;
-  vec4 arg_3 = vec4(0.0f);
+  vec4 arg_3 = vec4(1.0f);
   imageStore(arg_0, ivec3(arg_1, arg_2), arg_3);
 }
 
@@ -26,9 +26,9 @@
 
 layout(rgba16f) uniform highp writeonly image2DArray arg_0;
 void textureStore_32f368() {
-  ivec2 arg_1 = ivec2(0);
+  ivec2 arg_1 = ivec2(1);
   int arg_2 = 1;
-  vec4 arg_3 = vec4(0.0f);
+  vec4 arg_3 = vec4(1.0f);
   imageStore(arg_0, ivec3(arg_1, arg_2), arg_3);
 }
 
@@ -44,9 +44,9 @@
 
 layout(rgba16f) uniform highp writeonly image2DArray arg_0;
 void textureStore_32f368() {
-  ivec2 arg_1 = ivec2(0);
+  ivec2 arg_1 = ivec2(1);
   int arg_2 = 1;
-  vec4 arg_3 = vec4(0.0f);
+  vec4 arg_3 = vec4(1.0f);
   imageStore(arg_0, ivec3(arg_1, arg_2), arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/32f368.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/32f368.wgsl.expected.msl
index 3daf6cb..6f84388 100644
--- a/test/tint/builtins/gen/var/textureStore/32f368.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/32f368.wgsl.expected.msl
@@ -2,9 +2,9 @@
 
 using namespace metal;
 void textureStore_32f368(texture2d_array<float, access::write> tint_symbol_1) {
-  int2 arg_1 = int2(0);
+  int2 arg_1 = int2(1);
   int arg_2 = 1;
-  float4 arg_3 = float4(0.0f);
+  float4 arg_3 = float4(1.0f);
   tint_symbol_1.write(arg_3, uint2(arg_1), arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/32f368.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/32f368.wgsl.expected.spvasm
index a154105..2bed16d 100644
--- a/test/tint/builtins/gen/var/textureStore/32f368.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/32f368.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 50
+; Bound: 52
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -41,52 +41,54 @@
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
-         %18 = OpConstantNull %v2int
-%_ptr_Function_v2int = OpTypePointer Function %v2int
       %int_1 = OpConstant %int 1
+         %19 = OpConstantComposite %v2int %int_1 %int_1
+%_ptr_Function_v2int = OpTypePointer Function %v2int
+         %22 = OpConstantNull %v2int
 %_ptr_Function_int = OpTypePointer Function %int
-         %24 = OpConstantNull %int
+         %25 = OpConstantNull %int
+    %float_1 = OpConstant %float 1
+         %27 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
       %v3int = OpTypeVector %int 3
-         %36 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %39 = OpTypeFunction %v4float
 %textureStore_32f368 = OpFunction %void None %12
          %15 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2int Function %18
-      %arg_2 = OpVariable %_ptr_Function_int Function %24
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %22
+      %arg_2 = OpVariable %_ptr_Function_int Function %25
       %arg_3 = OpVariable %_ptr_Function_v4float Function %5
-               OpStore %arg_1 %18
+               OpStore %arg_1 %19
                OpStore %arg_2 %int_1
-               OpStore %arg_3 %5
-         %28 = OpLoad %11 %arg_0
-         %30 = OpLoad %v2int %arg_1
-         %31 = OpCompositeExtract %int %30 0
-         %32 = OpCompositeExtract %int %30 1
-         %33 = OpLoad %int %arg_2
-         %34 = OpCompositeConstruct %v3int %31 %32 %33
-         %35 = OpLoad %v4float %arg_3
-               OpImageWrite %28 %34 %35
+               OpStore %arg_3 %27
+         %31 = OpLoad %11 %arg_0
+         %33 = OpLoad %v2int %arg_1
+         %34 = OpCompositeExtract %int %33 0
+         %35 = OpCompositeExtract %int %33 1
+         %36 = OpLoad %int %arg_2
+         %37 = OpCompositeConstruct %v3int %34 %35 %36
+         %38 = OpLoad %v4float %arg_3
+               OpImageWrite %31 %37 %38
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %36
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureStore_32f368
+%vertex_main_inner = OpFunction %v4float None %39
+         %41 = OpLabel
+         %42 = OpFunctionCall %void %textureStore_32f368
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %41 = OpLabel
-         %42 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %42
+         %44 = OpLabel
+         %45 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %45
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %45 = OpLabel
-         %46 = OpFunctionCall %void %textureStore_32f368
+         %47 = OpLabel
+         %48 = OpFunctionCall %void %textureStore_32f368
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %48 = OpLabel
-         %49 = OpFunctionCall %void %textureStore_32f368
+         %50 = OpLabel
+         %51 = OpFunctionCall %void %textureStore_32f368
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/32f368.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/32f368.wgsl.expected.wgsl
index 06eceed..d36096e 100644
--- a/test/tint/builtins/gen/var/textureStore/32f368.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/32f368.wgsl.expected.wgsl
@@ -1,9 +1,9 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba16float, write>;
 
 fn textureStore_32f368() {
-  var arg_1 = vec2<i32>();
+  var arg_1 = vec2<i32>(1i);
   var arg_2 = 1i;
-  var arg_3 = vec4<f32>();
+  var arg_3 = vec4<f32>(1.0f);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/330b7c.wgsl b/test/tint/builtins/gen/var/textureStore/330b7c.wgsl
index b5d2431..f8c0832 100644
--- a/test/tint/builtins/gen/var/textureStore/330b7c.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/330b7c.wgsl
@@ -24,9 +24,9 @@
 
 // fn textureStore(texture: texture_storage_2d_array<rgba8unorm, write>, coords: vec2<u32>, array_index: u32, value: vec4<f32>)
 fn textureStore_330b7c() {
-  var arg_1 = vec2<u32>();
+  var arg_1 = vec2<u32>(1u);
   var arg_2 = 1u;
-  var arg_3 = vec4<f32>();
+  var arg_3 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/330b7c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/330b7c.wgsl.expected.dxc.hlsl
index a92e0d0..1338528 100644
--- a/test/tint/builtins/gen/var/textureStore/330b7c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/330b7c.wgsl.expected.dxc.hlsl
@@ -1,9 +1,9 @@
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 void textureStore_330b7c() {
-  uint2 arg_1 = (0u).xx;
+  uint2 arg_1 = (1u).xx;
   uint arg_2 = 1u;
-  float4 arg_3 = (0.0f).xxxx;
+  float4 arg_3 = (1.0f).xxxx;
   arg_0[uint3(arg_1, arg_2)] = arg_3;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/330b7c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/330b7c.wgsl.expected.fxc.hlsl
index a92e0d0..1338528 100644
--- a/test/tint/builtins/gen/var/textureStore/330b7c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/330b7c.wgsl.expected.fxc.hlsl
@@ -1,9 +1,9 @@
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 void textureStore_330b7c() {
-  uint2 arg_1 = (0u).xx;
+  uint2 arg_1 = (1u).xx;
   uint arg_2 = 1u;
-  float4 arg_3 = (0.0f).xxxx;
+  float4 arg_3 = (1.0f).xxxx;
   arg_0[uint3(arg_1, arg_2)] = arg_3;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/330b7c.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/330b7c.wgsl.expected.glsl
index e6ed5cb..d18eddd 100644
--- a/test/tint/builtins/gen/var/textureStore/330b7c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/330b7c.wgsl.expected.glsl
@@ -2,9 +2,9 @@
 
 layout(rgba8) uniform highp writeonly image2DArray arg_0;
 void textureStore_330b7c() {
-  uvec2 arg_1 = uvec2(0u);
+  uvec2 arg_1 = uvec2(1u);
   uint arg_2 = 1u;
-  vec4 arg_3 = vec4(0.0f);
+  vec4 arg_3 = vec4(1.0f);
   imageStore(arg_0, ivec3(uvec3(arg_1, arg_2)), arg_3);
 }
 
@@ -26,9 +26,9 @@
 
 layout(rgba8) uniform highp writeonly image2DArray arg_0;
 void textureStore_330b7c() {
-  uvec2 arg_1 = uvec2(0u);
+  uvec2 arg_1 = uvec2(1u);
   uint arg_2 = 1u;
-  vec4 arg_3 = vec4(0.0f);
+  vec4 arg_3 = vec4(1.0f);
   imageStore(arg_0, ivec3(uvec3(arg_1, arg_2)), arg_3);
 }
 
@@ -44,9 +44,9 @@
 
 layout(rgba8) uniform highp writeonly image2DArray arg_0;
 void textureStore_330b7c() {
-  uvec2 arg_1 = uvec2(0u);
+  uvec2 arg_1 = uvec2(1u);
   uint arg_2 = 1u;
-  vec4 arg_3 = vec4(0.0f);
+  vec4 arg_3 = vec4(1.0f);
   imageStore(arg_0, ivec3(uvec3(arg_1, arg_2)), arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/330b7c.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/330b7c.wgsl.expected.msl
index eca28c9..fd47878 100644
--- a/test/tint/builtins/gen/var/textureStore/330b7c.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/330b7c.wgsl.expected.msl
@@ -2,9 +2,9 @@
 
 using namespace metal;
 void textureStore_330b7c(texture2d_array<float, access::write> tint_symbol_1) {
-  uint2 arg_1 = uint2(0u);
+  uint2 arg_1 = uint2(1u);
   uint arg_2 = 1u;
-  float4 arg_3 = float4(0.0f);
+  float4 arg_3 = float4(1.0f);
   tint_symbol_1.write(arg_3, uint2(arg_1), arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/330b7c.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/330b7c.wgsl.expected.spvasm
index fcaad14..ee90256 100644
--- a/test/tint/builtins/gen/var/textureStore/330b7c.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/330b7c.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 50
+; Bound: 52
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -41,52 +41,54 @@
          %12 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
-         %18 = OpConstantNull %v2uint
-%_ptr_Function_v2uint = OpTypePointer Function %v2uint
      %uint_1 = OpConstant %uint 1
+         %19 = OpConstantComposite %v2uint %uint_1 %uint_1
+%_ptr_Function_v2uint = OpTypePointer Function %v2uint
+         %22 = OpConstantNull %v2uint
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %24 = OpConstantNull %uint
+         %25 = OpConstantNull %uint
+    %float_1 = OpConstant %float 1
+         %27 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
      %v3uint = OpTypeVector %uint 3
-         %36 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %39 = OpTypeFunction %v4float
 %textureStore_330b7c = OpFunction %void None %12
          %15 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2uint Function %18
-      %arg_2 = OpVariable %_ptr_Function_uint Function %24
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %22
+      %arg_2 = OpVariable %_ptr_Function_uint Function %25
       %arg_3 = OpVariable %_ptr_Function_v4float Function %5
-               OpStore %arg_1 %18
+               OpStore %arg_1 %19
                OpStore %arg_2 %uint_1
-               OpStore %arg_3 %5
-         %28 = OpLoad %11 %arg_0
-         %30 = OpLoad %v2uint %arg_1
-         %31 = OpCompositeExtract %uint %30 0
-         %32 = OpCompositeExtract %uint %30 1
-         %33 = OpLoad %uint %arg_2
-         %34 = OpCompositeConstruct %v3uint %31 %32 %33
-         %35 = OpLoad %v4float %arg_3
-               OpImageWrite %28 %34 %35
+               OpStore %arg_3 %27
+         %31 = OpLoad %11 %arg_0
+         %33 = OpLoad %v2uint %arg_1
+         %34 = OpCompositeExtract %uint %33 0
+         %35 = OpCompositeExtract %uint %33 1
+         %36 = OpLoad %uint %arg_2
+         %37 = OpCompositeConstruct %v3uint %34 %35 %36
+         %38 = OpLoad %v4float %arg_3
+               OpImageWrite %31 %37 %38
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %36
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureStore_330b7c
+%vertex_main_inner = OpFunction %v4float None %39
+         %41 = OpLabel
+         %42 = OpFunctionCall %void %textureStore_330b7c
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %41 = OpLabel
-         %42 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %42
+         %44 = OpLabel
+         %45 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %45
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %45 = OpLabel
-         %46 = OpFunctionCall %void %textureStore_330b7c
+         %47 = OpLabel
+         %48 = OpFunctionCall %void %textureStore_330b7c
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %48 = OpLabel
-         %49 = OpFunctionCall %void %textureStore_330b7c
+         %50 = OpLabel
+         %51 = OpFunctionCall %void %textureStore_330b7c
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/330b7c.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/330b7c.wgsl.expected.wgsl
index 9770e41..dabad78 100644
--- a/test/tint/builtins/gen/var/textureStore/330b7c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/330b7c.wgsl.expected.wgsl
@@ -1,9 +1,9 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba8unorm, write>;
 
 fn textureStore_330b7c() {
-  var arg_1 = vec2<u32>();
+  var arg_1 = vec2<u32>(1u);
   var arg_2 = 1u;
-  var arg_3 = vec4<f32>();
+  var arg_3 = vec4<f32>(1.0f);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/331aee.wgsl b/test/tint/builtins/gen/var/textureStore/331aee.wgsl
index 55d78a0..4dfd7ec 100644
--- a/test/tint/builtins/gen/var/textureStore/331aee.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/331aee.wgsl
@@ -24,8 +24,8 @@
 
 // fn textureStore(texture: texture_storage_3d<rgba32float, write>, coords: vec3<i32>, value: vec4<f32>)
 fn textureStore_331aee() {
-  var arg_1 = vec3<i32>();
-  var arg_2 = vec4<f32>();
+  var arg_1 = vec3<i32>(1i);
+  var arg_2 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/331aee.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/331aee.wgsl.expected.dxc.hlsl
index 1070c26..8e1189f 100644
--- a/test/tint/builtins/gen/var/textureStore/331aee.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/331aee.wgsl.expected.dxc.hlsl
@@ -1,8 +1,8 @@
 RWTexture3D<float4> arg_0 : register(u0, space1);
 
 void textureStore_331aee() {
-  int3 arg_1 = (0).xxx;
-  float4 arg_2 = (0.0f).xxxx;
+  int3 arg_1 = (1).xxx;
+  float4 arg_2 = (1.0f).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/331aee.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/331aee.wgsl.expected.fxc.hlsl
index 1070c26..8e1189f 100644
--- a/test/tint/builtins/gen/var/textureStore/331aee.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/331aee.wgsl.expected.fxc.hlsl
@@ -1,8 +1,8 @@
 RWTexture3D<float4> arg_0 : register(u0, space1);
 
 void textureStore_331aee() {
-  int3 arg_1 = (0).xxx;
-  float4 arg_2 = (0.0f).xxxx;
+  int3 arg_1 = (1).xxx;
+  float4 arg_2 = (1.0f).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/331aee.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/331aee.wgsl.expected.glsl
index 6d0ade0..e2737d6 100644
--- a/test/tint/builtins/gen/var/textureStore/331aee.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/331aee.wgsl.expected.glsl
@@ -2,8 +2,8 @@
 
 layout(rgba32f) uniform highp writeonly image3D arg_0;
 void textureStore_331aee() {
-  ivec3 arg_1 = ivec3(0);
-  vec4 arg_2 = vec4(0.0f);
+  ivec3 arg_1 = ivec3(1);
+  vec4 arg_2 = vec4(1.0f);
   imageStore(arg_0, arg_1, arg_2);
 }
 
@@ -25,8 +25,8 @@
 
 layout(rgba32f) uniform highp writeonly image3D arg_0;
 void textureStore_331aee() {
-  ivec3 arg_1 = ivec3(0);
-  vec4 arg_2 = vec4(0.0f);
+  ivec3 arg_1 = ivec3(1);
+  vec4 arg_2 = vec4(1.0f);
   imageStore(arg_0, arg_1, arg_2);
 }
 
@@ -42,8 +42,8 @@
 
 layout(rgba32f) uniform highp writeonly image3D arg_0;
 void textureStore_331aee() {
-  ivec3 arg_1 = ivec3(0);
-  vec4 arg_2 = vec4(0.0f);
+  ivec3 arg_1 = ivec3(1);
+  vec4 arg_2 = vec4(1.0f);
   imageStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/331aee.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/331aee.wgsl.expected.msl
index 94c0dee..0b7bcaa 100644
--- a/test/tint/builtins/gen/var/textureStore/331aee.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/331aee.wgsl.expected.msl
@@ -2,8 +2,8 @@
 
 using namespace metal;
 void textureStore_331aee(texture3d<float, access::write> tint_symbol_1) {
-  int3 arg_1 = int3(0);
-  float4 arg_2 = float4(0.0f);
+  int3 arg_1 = int3(1);
+  float4 arg_2 = float4(1.0f);
   tint_symbol_1.write(arg_2, uint3(arg_1));
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/331aee.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/331aee.wgsl.expected.spvasm
index df8cccf..a06250e 100644
--- a/test/tint/builtins/gen/var/textureStore/331aee.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/331aee.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 41
+; Bound: 44
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -40,42 +40,45 @@
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
-         %18 = OpConstantNull %v3int
+      %int_1 = OpConstant %int 1
+         %19 = OpConstantComposite %v3int %int_1 %int_1 %int_1
 %_ptr_Function_v3int = OpTypePointer Function %v3int
-%_ptr_Function_v4float = OpTypePointer Function %v4float
-         %27 = OpTypeFunction %v4float
+         %22 = OpConstantNull %v3int
     %float_1 = OpConstant %float 1
+         %24 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%_ptr_Function_v4float = OpTypePointer Function %v4float
+         %31 = OpTypeFunction %v4float
 %textureStore_331aee = OpFunction %void None %12
          %15 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v3int Function %18
+      %arg_1 = OpVariable %_ptr_Function_v3int Function %22
       %arg_2 = OpVariable %_ptr_Function_v4float Function %5
-               OpStore %arg_1 %18
-               OpStore %arg_2 %5
-         %24 = OpLoad %11 %arg_0
-         %25 = OpLoad %v3int %arg_1
-         %26 = OpLoad %v4float %arg_2
-               OpImageWrite %24 %25 %26
+               OpStore %arg_1 %19
+               OpStore %arg_2 %24
+         %28 = OpLoad %11 %arg_0
+         %29 = OpLoad %v3int %arg_1
+         %30 = OpLoad %v4float %arg_2
+               OpImageWrite %28 %29 %30
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %27
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %textureStore_331aee
+%vertex_main_inner = OpFunction %v4float None %31
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureStore_331aee
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %32 = OpLabel
-         %33 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %33
+         %36 = OpLabel
+         %37 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %37
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_331aee
+         %39 = OpLabel
+         %40 = OpFunctionCall %void %textureStore_331aee
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_331aee
+         %42 = OpLabel
+         %43 = OpFunctionCall %void %textureStore_331aee
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/331aee.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/331aee.wgsl.expected.wgsl
index 97cea3b..115bdee 100644
--- a/test/tint/builtins/gen/var/textureStore/331aee.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/331aee.wgsl.expected.wgsl
@@ -1,8 +1,8 @@
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rgba32float, write>;
 
 fn textureStore_331aee() {
-  var arg_1 = vec3<i32>();
-  var arg_2 = vec4<f32>();
+  var arg_1 = vec3<i32>(1i);
+  var arg_2 = vec4<f32>(1.0f);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/33cec0.wgsl b/test/tint/builtins/gen/var/textureStore/33cec0.wgsl
index b713ef0..f075034 100644
--- a/test/tint/builtins/gen/var/textureStore/33cec0.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/33cec0.wgsl
@@ -24,9 +24,9 @@
 
 // fn textureStore(texture: texture_storage_2d_array<rgba16uint, write>, coords: vec2<u32>, array_index: i32, value: vec4<u32>)
 fn textureStore_33cec0() {
-  var arg_1 = vec2<u32>();
+  var arg_1 = vec2<u32>(1u);
   var arg_2 = 1i;
-  var arg_3 = vec4<u32>();
+  var arg_3 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/33cec0.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/33cec0.wgsl.expected.dxc.hlsl
index df6a6f3..ee79489 100644
--- a/test/tint/builtins/gen/var/textureStore/33cec0.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/33cec0.wgsl.expected.dxc.hlsl
@@ -1,9 +1,9 @@
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 void textureStore_33cec0() {
-  uint2 arg_1 = (0u).xx;
+  uint2 arg_1 = (1u).xx;
   int arg_2 = 1;
-  uint4 arg_3 = (0u).xxxx;
+  uint4 arg_3 = (1u).xxxx;
   arg_0[uint3(arg_1, uint(arg_2))] = arg_3;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/33cec0.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/33cec0.wgsl.expected.fxc.hlsl
index df6a6f3..ee79489 100644
--- a/test/tint/builtins/gen/var/textureStore/33cec0.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/33cec0.wgsl.expected.fxc.hlsl
@@ -1,9 +1,9 @@
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 void textureStore_33cec0() {
-  uint2 arg_1 = (0u).xx;
+  uint2 arg_1 = (1u).xx;
   int arg_2 = 1;
-  uint4 arg_3 = (0u).xxxx;
+  uint4 arg_3 = (1u).xxxx;
   arg_0[uint3(arg_1, uint(arg_2))] = arg_3;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/33cec0.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/33cec0.wgsl.expected.glsl
index 63ee534..0e7b456 100644
--- a/test/tint/builtins/gen/var/textureStore/33cec0.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/33cec0.wgsl.expected.glsl
@@ -2,9 +2,9 @@
 
 layout(rgba16ui) uniform highp writeonly uimage2DArray arg_0;
 void textureStore_33cec0() {
-  uvec2 arg_1 = uvec2(0u);
+  uvec2 arg_1 = uvec2(1u);
   int arg_2 = 1;
-  uvec4 arg_3 = uvec4(0u);
+  uvec4 arg_3 = uvec4(1u);
   imageStore(arg_0, ivec3(uvec3(arg_1, uint(arg_2))), arg_3);
 }
 
@@ -26,9 +26,9 @@
 
 layout(rgba16ui) uniform highp writeonly uimage2DArray arg_0;
 void textureStore_33cec0() {
-  uvec2 arg_1 = uvec2(0u);
+  uvec2 arg_1 = uvec2(1u);
   int arg_2 = 1;
-  uvec4 arg_3 = uvec4(0u);
+  uvec4 arg_3 = uvec4(1u);
   imageStore(arg_0, ivec3(uvec3(arg_1, uint(arg_2))), arg_3);
 }
 
@@ -44,9 +44,9 @@
 
 layout(rgba16ui) uniform highp writeonly uimage2DArray arg_0;
 void textureStore_33cec0() {
-  uvec2 arg_1 = uvec2(0u);
+  uvec2 arg_1 = uvec2(1u);
   int arg_2 = 1;
-  uvec4 arg_3 = uvec4(0u);
+  uvec4 arg_3 = uvec4(1u);
   imageStore(arg_0, ivec3(uvec3(arg_1, uint(arg_2))), arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/33cec0.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/33cec0.wgsl.expected.msl
index 34013f8..94eda71 100644
--- a/test/tint/builtins/gen/var/textureStore/33cec0.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/33cec0.wgsl.expected.msl
@@ -2,9 +2,9 @@
 
 using namespace metal;
 void textureStore_33cec0(texture2d_array<uint, access::write> tint_symbol_1) {
-  uint2 arg_1 = uint2(0u);
+  uint2 arg_1 = uint2(1u);
   int arg_2 = 1;
-  uint4 arg_3 = uint4(0u);
+  uint4 arg_3 = uint4(1u);
   tint_symbol_1.write(arg_3, uint2(arg_1), arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/33cec0.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/33cec0.wgsl.expected.spvasm
index 9419b08..2fe8ee7 100644
--- a/test/tint/builtins/gen/var/textureStore/33cec0.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/33cec0.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 54
+; Bound: 57
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -41,56 +41,59 @@
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
      %v2uint = OpTypeVector %uint 2
-         %18 = OpConstantNull %v2uint
+     %uint_1 = OpConstant %uint 1
+         %19 = OpConstantComposite %v2uint %uint_1 %uint_1
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
+         %22 = OpConstantNull %v2uint
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
-         %25 = OpConstantNull %int
+         %27 = OpConstantNull %int
      %v4uint = OpTypeVector %uint 4
-         %27 = OpConstantNull %v4uint
+         %29 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
+         %32 = OpConstantNull %v4uint
      %v3uint = OpTypeVector %uint 3
-         %40 = OpTypeFunction %v4float
+         %43 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_33cec0 = OpFunction %void None %13
          %16 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2uint Function %18
-      %arg_2 = OpVariable %_ptr_Function_int Function %25
-      %arg_3 = OpVariable %_ptr_Function_v4uint Function %27
-               OpStore %arg_1 %18
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %22
+      %arg_2 = OpVariable %_ptr_Function_int Function %27
+      %arg_3 = OpVariable %_ptr_Function_v4uint Function %32
+               OpStore %arg_1 %19
                OpStore %arg_2 %int_1
-               OpStore %arg_3 %27
-         %31 = OpLoad %11 %arg_0
-         %33 = OpLoad %v2uint %arg_1
-         %34 = OpCompositeExtract %uint %33 0
-         %35 = OpCompositeExtract %uint %33 1
-         %37 = OpLoad %int %arg_2
-         %36 = OpBitcast %uint %37
-         %38 = OpCompositeConstruct %v3uint %34 %35 %36
-         %39 = OpLoad %v4uint %arg_3
-               OpImageWrite %31 %38 %39
+               OpStore %arg_3 %29
+         %34 = OpLoad %11 %arg_0
+         %36 = OpLoad %v2uint %arg_1
+         %37 = OpCompositeExtract %uint %36 0
+         %38 = OpCompositeExtract %uint %36 1
+         %40 = OpLoad %int %arg_2
+         %39 = OpBitcast %uint %40
+         %41 = OpCompositeConstruct %v3uint %37 %38 %39
+         %42 = OpLoad %v4uint %arg_3
+               OpImageWrite %34 %41 %42
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %40
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_33cec0
+%vertex_main_inner = OpFunction %v4float None %43
+         %45 = OpLabel
+         %46 = OpFunctionCall %void %textureStore_33cec0
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %45 = OpLabel
-         %46 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %46
+         %48 = OpLabel
+         %49 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %49
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %49 = OpLabel
-         %50 = OpFunctionCall %void %textureStore_33cec0
+         %52 = OpLabel
+         %53 = OpFunctionCall %void %textureStore_33cec0
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %52 = OpLabel
-         %53 = OpFunctionCall %void %textureStore_33cec0
+         %55 = OpLabel
+         %56 = OpFunctionCall %void %textureStore_33cec0
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/33cec0.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/33cec0.wgsl.expected.wgsl
index 69b0ffd..e1f07b1 100644
--- a/test/tint/builtins/gen/var/textureStore/33cec0.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/33cec0.wgsl.expected.wgsl
@@ -1,9 +1,9 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba16uint, write>;
 
 fn textureStore_33cec0() {
-  var arg_1 = vec2<u32>();
+  var arg_1 = vec2<u32>(1u);
   var arg_2 = 1i;
-  var arg_3 = vec4<u32>();
+  var arg_3 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/37ffd4.wgsl b/test/tint/builtins/gen/var/textureStore/37ffd4.wgsl
index 4c3130b..b8a7ce1 100644
--- a/test/tint/builtins/gen/var/textureStore/37ffd4.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/37ffd4.wgsl
@@ -24,9 +24,9 @@
 
 // fn textureStore(texture: texture_storage_2d_array<rgba32float, write>, coords: vec2<u32>, array_index: i32, value: vec4<f32>)
 fn textureStore_37ffd4() {
-  var arg_1 = vec2<u32>();
+  var arg_1 = vec2<u32>(1u);
   var arg_2 = 1i;
-  var arg_3 = vec4<f32>();
+  var arg_3 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/37ffd4.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/37ffd4.wgsl.expected.dxc.hlsl
index 96673e8..f5ad13e 100644
--- a/test/tint/builtins/gen/var/textureStore/37ffd4.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/37ffd4.wgsl.expected.dxc.hlsl
@@ -1,9 +1,9 @@
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 void textureStore_37ffd4() {
-  uint2 arg_1 = (0u).xx;
+  uint2 arg_1 = (1u).xx;
   int arg_2 = 1;
-  float4 arg_3 = (0.0f).xxxx;
+  float4 arg_3 = (1.0f).xxxx;
   arg_0[uint3(arg_1, uint(arg_2))] = arg_3;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/37ffd4.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/37ffd4.wgsl.expected.fxc.hlsl
index 96673e8..f5ad13e 100644
--- a/test/tint/builtins/gen/var/textureStore/37ffd4.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/37ffd4.wgsl.expected.fxc.hlsl
@@ -1,9 +1,9 @@
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 void textureStore_37ffd4() {
-  uint2 arg_1 = (0u).xx;
+  uint2 arg_1 = (1u).xx;
   int arg_2 = 1;
-  float4 arg_3 = (0.0f).xxxx;
+  float4 arg_3 = (1.0f).xxxx;
   arg_0[uint3(arg_1, uint(arg_2))] = arg_3;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/37ffd4.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/37ffd4.wgsl.expected.glsl
index e8eb1a4..66ed916 100644
--- a/test/tint/builtins/gen/var/textureStore/37ffd4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/37ffd4.wgsl.expected.glsl
@@ -2,9 +2,9 @@
 
 layout(rgba32f) uniform highp writeonly image2DArray arg_0;
 void textureStore_37ffd4() {
-  uvec2 arg_1 = uvec2(0u);
+  uvec2 arg_1 = uvec2(1u);
   int arg_2 = 1;
-  vec4 arg_3 = vec4(0.0f);
+  vec4 arg_3 = vec4(1.0f);
   imageStore(arg_0, ivec3(uvec3(arg_1, uint(arg_2))), arg_3);
 }
 
@@ -26,9 +26,9 @@
 
 layout(rgba32f) uniform highp writeonly image2DArray arg_0;
 void textureStore_37ffd4() {
-  uvec2 arg_1 = uvec2(0u);
+  uvec2 arg_1 = uvec2(1u);
   int arg_2 = 1;
-  vec4 arg_3 = vec4(0.0f);
+  vec4 arg_3 = vec4(1.0f);
   imageStore(arg_0, ivec3(uvec3(arg_1, uint(arg_2))), arg_3);
 }
 
@@ -44,9 +44,9 @@
 
 layout(rgba32f) uniform highp writeonly image2DArray arg_0;
 void textureStore_37ffd4() {
-  uvec2 arg_1 = uvec2(0u);
+  uvec2 arg_1 = uvec2(1u);
   int arg_2 = 1;
-  vec4 arg_3 = vec4(0.0f);
+  vec4 arg_3 = vec4(1.0f);
   imageStore(arg_0, ivec3(uvec3(arg_1, uint(arg_2))), arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/37ffd4.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/37ffd4.wgsl.expected.msl
index 7e89ceb..36e93dc 100644
--- a/test/tint/builtins/gen/var/textureStore/37ffd4.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/37ffd4.wgsl.expected.msl
@@ -2,9 +2,9 @@
 
 using namespace metal;
 void textureStore_37ffd4(texture2d_array<float, access::write> tint_symbol_1) {
-  uint2 arg_1 = uint2(0u);
+  uint2 arg_1 = uint2(1u);
   int arg_2 = 1;
-  float4 arg_3 = float4(0.0f);
+  float4 arg_3 = float4(1.0f);
   tint_symbol_1.write(arg_3, uint2(arg_1), arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/37ffd4.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/37ffd4.wgsl.expected.spvasm
index 8c2ae06..6c02239 100644
--- a/test/tint/builtins/gen/var/textureStore/37ffd4.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/37ffd4.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 52
+; Bound: 55
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -41,54 +41,57 @@
          %12 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
-         %18 = OpConstantNull %v2uint
+     %uint_1 = OpConstant %uint 1
+         %19 = OpConstantComposite %v2uint %uint_1 %uint_1
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
+         %22 = OpConstantNull %v2uint
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
-         %25 = OpConstantNull %int
+         %27 = OpConstantNull %int
+    %float_1 = OpConstant %float 1
+         %29 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
      %v3uint = OpTypeVector %uint 3
-         %38 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %42 = OpTypeFunction %v4float
 %textureStore_37ffd4 = OpFunction %void None %12
          %15 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2uint Function %18
-      %arg_2 = OpVariable %_ptr_Function_int Function %25
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %22
+      %arg_2 = OpVariable %_ptr_Function_int Function %27
       %arg_3 = OpVariable %_ptr_Function_v4float Function %5
-               OpStore %arg_1 %18
+               OpStore %arg_1 %19
                OpStore %arg_2 %int_1
-               OpStore %arg_3 %5
-         %29 = OpLoad %11 %arg_0
-         %31 = OpLoad %v2uint %arg_1
-         %32 = OpCompositeExtract %uint %31 0
-         %33 = OpCompositeExtract %uint %31 1
-         %35 = OpLoad %int %arg_2
-         %34 = OpBitcast %uint %35
-         %36 = OpCompositeConstruct %v3uint %32 %33 %34
-         %37 = OpLoad %v4float %arg_3
-               OpImageWrite %29 %36 %37
+               OpStore %arg_3 %29
+         %33 = OpLoad %11 %arg_0
+         %35 = OpLoad %v2uint %arg_1
+         %36 = OpCompositeExtract %uint %35 0
+         %37 = OpCompositeExtract %uint %35 1
+         %39 = OpLoad %int %arg_2
+         %38 = OpBitcast %uint %39
+         %40 = OpCompositeConstruct %v3uint %36 %37 %38
+         %41 = OpLoad %v4float %arg_3
+               OpImageWrite %33 %40 %41
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %38
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureStore_37ffd4
+%vertex_main_inner = OpFunction %v4float None %42
+         %44 = OpLabel
+         %45 = OpFunctionCall %void %textureStore_37ffd4
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %43 = OpLabel
-         %44 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %44
+         %47 = OpLabel
+         %48 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %48
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %47 = OpLabel
-         %48 = OpFunctionCall %void %textureStore_37ffd4
+         %50 = OpLabel
+         %51 = OpFunctionCall %void %textureStore_37ffd4
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %50 = OpLabel
-         %51 = OpFunctionCall %void %textureStore_37ffd4
+         %53 = OpLabel
+         %54 = OpFunctionCall %void %textureStore_37ffd4
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/37ffd4.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/37ffd4.wgsl.expected.wgsl
index a26203a..317fe2c 100644
--- a/test/tint/builtins/gen/var/textureStore/37ffd4.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/37ffd4.wgsl.expected.wgsl
@@ -1,9 +1,9 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba32float, write>;
 
 fn textureStore_37ffd4() {
-  var arg_1 = vec2<u32>();
+  var arg_1 = vec2<u32>(1u);
   var arg_2 = 1i;
-  var arg_3 = vec4<f32>();
+  var arg_3 = vec4<f32>(1.0f);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/38e8d7.wgsl b/test/tint/builtins/gen/var/textureStore/38e8d7.wgsl
index 37b7f42..97302a4 100644
--- a/test/tint/builtins/gen/var/textureStore/38e8d7.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/38e8d7.wgsl
@@ -24,9 +24,9 @@
 
 // fn textureStore(texture: texture_storage_2d_array<r32uint, write>, coords: vec2<i32>, array_index: i32, value: vec4<u32>)
 fn textureStore_38e8d7() {
-  var arg_1 = vec2<i32>();
+  var arg_1 = vec2<i32>(1i);
   var arg_2 = 1i;
-  var arg_3 = vec4<u32>();
+  var arg_3 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/38e8d7.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/38e8d7.wgsl.expected.dxc.hlsl
index 6e867ec..317005d 100644
--- a/test/tint/builtins/gen/var/textureStore/38e8d7.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/38e8d7.wgsl.expected.dxc.hlsl
@@ -1,9 +1,9 @@
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 void textureStore_38e8d7() {
-  int2 arg_1 = (0).xx;
+  int2 arg_1 = (1).xx;
   int arg_2 = 1;
-  uint4 arg_3 = (0u).xxxx;
+  uint4 arg_3 = (1u).xxxx;
   arg_0[int3(arg_1, arg_2)] = arg_3;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/38e8d7.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/38e8d7.wgsl.expected.fxc.hlsl
index 6e867ec..317005d 100644
--- a/test/tint/builtins/gen/var/textureStore/38e8d7.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/38e8d7.wgsl.expected.fxc.hlsl
@@ -1,9 +1,9 @@
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 void textureStore_38e8d7() {
-  int2 arg_1 = (0).xx;
+  int2 arg_1 = (1).xx;
   int arg_2 = 1;
-  uint4 arg_3 = (0u).xxxx;
+  uint4 arg_3 = (1u).xxxx;
   arg_0[int3(arg_1, arg_2)] = arg_3;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/38e8d7.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/38e8d7.wgsl.expected.glsl
index 7a6850e..a2fdcf8 100644
--- a/test/tint/builtins/gen/var/textureStore/38e8d7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/38e8d7.wgsl.expected.glsl
@@ -2,9 +2,9 @@
 
 layout(r32ui) uniform highp writeonly uimage2DArray arg_0;
 void textureStore_38e8d7() {
-  ivec2 arg_1 = ivec2(0);
+  ivec2 arg_1 = ivec2(1);
   int arg_2 = 1;
-  uvec4 arg_3 = uvec4(0u);
+  uvec4 arg_3 = uvec4(1u);
   imageStore(arg_0, ivec3(arg_1, arg_2), arg_3);
 }
 
@@ -26,9 +26,9 @@
 
 layout(r32ui) uniform highp writeonly uimage2DArray arg_0;
 void textureStore_38e8d7() {
-  ivec2 arg_1 = ivec2(0);
+  ivec2 arg_1 = ivec2(1);
   int arg_2 = 1;
-  uvec4 arg_3 = uvec4(0u);
+  uvec4 arg_3 = uvec4(1u);
   imageStore(arg_0, ivec3(arg_1, arg_2), arg_3);
 }
 
@@ -44,9 +44,9 @@
 
 layout(r32ui) uniform highp writeonly uimage2DArray arg_0;
 void textureStore_38e8d7() {
-  ivec2 arg_1 = ivec2(0);
+  ivec2 arg_1 = ivec2(1);
   int arg_2 = 1;
-  uvec4 arg_3 = uvec4(0u);
+  uvec4 arg_3 = uvec4(1u);
   imageStore(arg_0, ivec3(arg_1, arg_2), arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/38e8d7.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/38e8d7.wgsl.expected.msl
index c22bedb..98b3084 100644
--- a/test/tint/builtins/gen/var/textureStore/38e8d7.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/38e8d7.wgsl.expected.msl
@@ -2,9 +2,9 @@
 
 using namespace metal;
 void textureStore_38e8d7(texture2d_array<uint, access::write> tint_symbol_1) {
-  int2 arg_1 = int2(0);
+  int2 arg_1 = int2(1);
   int arg_2 = 1;
-  uint4 arg_3 = uint4(0u);
+  uint4 arg_3 = uint4(1u);
   tint_symbol_1.write(arg_3, uint2(arg_1), arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/38e8d7.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/38e8d7.wgsl.expected.spvasm
index 623d520..0125a43 100644
--- a/test/tint/builtins/gen/var/textureStore/38e8d7.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/38e8d7.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 53
+; Bound: 56
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -42,54 +42,57 @@
          %13 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
-         %19 = OpConstantNull %v2int
-%_ptr_Function_v2int = OpTypePointer Function %v2int
       %int_1 = OpConstant %int 1
+         %20 = OpConstantComposite %v2int %int_1 %int_1
+%_ptr_Function_v2int = OpTypePointer Function %v2int
+         %23 = OpConstantNull %v2int
 %_ptr_Function_int = OpTypePointer Function %int
-         %25 = OpConstantNull %int
+         %26 = OpConstantNull %int
      %v4uint = OpTypeVector %uint 4
-         %27 = OpConstantNull %v4uint
+     %uint_1 = OpConstant %uint 1
+         %29 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
+         %32 = OpConstantNull %v4uint
       %v3int = OpTypeVector %int 3
-         %39 = OpTypeFunction %v4float
+         %42 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_38e8d7 = OpFunction %void None %13
          %16 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2int Function %19
-      %arg_2 = OpVariable %_ptr_Function_int Function %25
-      %arg_3 = OpVariable %_ptr_Function_v4uint Function %27
-               OpStore %arg_1 %19
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %23
+      %arg_2 = OpVariable %_ptr_Function_int Function %26
+      %arg_3 = OpVariable %_ptr_Function_v4uint Function %32
+               OpStore %arg_1 %20
                OpStore %arg_2 %int_1
-               OpStore %arg_3 %27
-         %31 = OpLoad %11 %arg_0
-         %33 = OpLoad %v2int %arg_1
-         %34 = OpCompositeExtract %int %33 0
-         %35 = OpCompositeExtract %int %33 1
-         %36 = OpLoad %int %arg_2
-         %37 = OpCompositeConstruct %v3int %34 %35 %36
-         %38 = OpLoad %v4uint %arg_3
-               OpImageWrite %31 %37 %38
+               OpStore %arg_3 %29
+         %34 = OpLoad %11 %arg_0
+         %36 = OpLoad %v2int %arg_1
+         %37 = OpCompositeExtract %int %36 0
+         %38 = OpCompositeExtract %int %36 1
+         %39 = OpLoad %int %arg_2
+         %40 = OpCompositeConstruct %v3int %37 %38 %39
+         %41 = OpLoad %v4uint %arg_3
+               OpImageWrite %34 %40 %41
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %39
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureStore_38e8d7
+%vertex_main_inner = OpFunction %v4float None %42
+         %44 = OpLabel
+         %45 = OpFunctionCall %void %textureStore_38e8d7
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %44 = OpLabel
-         %45 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %45
+         %47 = OpLabel
+         %48 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %48
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %48 = OpLabel
-         %49 = OpFunctionCall %void %textureStore_38e8d7
+         %51 = OpLabel
+         %52 = OpFunctionCall %void %textureStore_38e8d7
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %51 = OpLabel
-         %52 = OpFunctionCall %void %textureStore_38e8d7
+         %54 = OpLabel
+         %55 = OpFunctionCall %void %textureStore_38e8d7
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/38e8d7.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/38e8d7.wgsl.expected.wgsl
index 37b07ea..48f79ff 100644
--- a/test/tint/builtins/gen/var/textureStore/38e8d7.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/38e8d7.wgsl.expected.wgsl
@@ -1,9 +1,9 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<r32uint, write>;
 
 fn textureStore_38e8d7() {
-  var arg_1 = vec2<i32>();
+  var arg_1 = vec2<i32>(1i);
   var arg_2 = 1i;
-  var arg_3 = vec4<u32>();
+  var arg_3 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/3a52ac.wgsl b/test/tint/builtins/gen/var/textureStore/3a52ac.wgsl
index 504713e..b492c44 100644
--- a/test/tint/builtins/gen/var/textureStore/3a52ac.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/3a52ac.wgsl
@@ -24,9 +24,9 @@
 
 // fn textureStore(texture: texture_storage_2d_array<rgba16sint, write>, coords: vec2<i32>, array_index: i32, value: vec4<i32>)
 fn textureStore_3a52ac() {
-  var arg_1 = vec2<i32>();
+  var arg_1 = vec2<i32>(1i);
   var arg_2 = 1i;
-  var arg_3 = vec4<i32>();
+  var arg_3 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/3a52ac.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/3a52ac.wgsl.expected.dxc.hlsl
index f682606..a32e018 100644
--- a/test/tint/builtins/gen/var/textureStore/3a52ac.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/3a52ac.wgsl.expected.dxc.hlsl
@@ -1,9 +1,9 @@
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 void textureStore_3a52ac() {
-  int2 arg_1 = (0).xx;
+  int2 arg_1 = (1).xx;
   int arg_2 = 1;
-  int4 arg_3 = (0).xxxx;
+  int4 arg_3 = (1).xxxx;
   arg_0[int3(arg_1, arg_2)] = arg_3;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/3a52ac.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/3a52ac.wgsl.expected.fxc.hlsl
index f682606..a32e018 100644
--- a/test/tint/builtins/gen/var/textureStore/3a52ac.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/3a52ac.wgsl.expected.fxc.hlsl
@@ -1,9 +1,9 @@
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 void textureStore_3a52ac() {
-  int2 arg_1 = (0).xx;
+  int2 arg_1 = (1).xx;
   int arg_2 = 1;
-  int4 arg_3 = (0).xxxx;
+  int4 arg_3 = (1).xxxx;
   arg_0[int3(arg_1, arg_2)] = arg_3;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/3a52ac.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/3a52ac.wgsl.expected.glsl
index 4ae9505..d862022 100644
--- a/test/tint/builtins/gen/var/textureStore/3a52ac.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/3a52ac.wgsl.expected.glsl
@@ -2,9 +2,9 @@
 
 layout(rgba16i) uniform highp writeonly iimage2DArray arg_0;
 void textureStore_3a52ac() {
-  ivec2 arg_1 = ivec2(0);
+  ivec2 arg_1 = ivec2(1);
   int arg_2 = 1;
-  ivec4 arg_3 = ivec4(0);
+  ivec4 arg_3 = ivec4(1);
   imageStore(arg_0, ivec3(arg_1, arg_2), arg_3);
 }
 
@@ -26,9 +26,9 @@
 
 layout(rgba16i) uniform highp writeonly iimage2DArray arg_0;
 void textureStore_3a52ac() {
-  ivec2 arg_1 = ivec2(0);
+  ivec2 arg_1 = ivec2(1);
   int arg_2 = 1;
-  ivec4 arg_3 = ivec4(0);
+  ivec4 arg_3 = ivec4(1);
   imageStore(arg_0, ivec3(arg_1, arg_2), arg_3);
 }
 
@@ -44,9 +44,9 @@
 
 layout(rgba16i) uniform highp writeonly iimage2DArray arg_0;
 void textureStore_3a52ac() {
-  ivec2 arg_1 = ivec2(0);
+  ivec2 arg_1 = ivec2(1);
   int arg_2 = 1;
-  ivec4 arg_3 = ivec4(0);
+  ivec4 arg_3 = ivec4(1);
   imageStore(arg_0, ivec3(arg_1, arg_2), arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/3a52ac.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/3a52ac.wgsl.expected.msl
index e243637..65f36a5 100644
--- a/test/tint/builtins/gen/var/textureStore/3a52ac.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/3a52ac.wgsl.expected.msl
@@ -2,9 +2,9 @@
 
 using namespace metal;
 void textureStore_3a52ac(texture2d_array<int, access::write> tint_symbol_1) {
-  int2 arg_1 = int2(0);
+  int2 arg_1 = int2(1);
   int arg_2 = 1;
-  int4 arg_3 = int4(0);
+  int4 arg_3 = int4(1);
   tint_symbol_1.write(arg_3, uint2(arg_1), arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/3a52ac.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/3a52ac.wgsl.expected.spvasm
index ef89e77..1496de0 100644
--- a/test/tint/builtins/gen/var/textureStore/3a52ac.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/3a52ac.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 52
+; Bound: 54
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -41,54 +41,56 @@
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
       %v2int = OpTypeVector %int 2
-         %18 = OpConstantNull %v2int
-%_ptr_Function_v2int = OpTypePointer Function %v2int
       %int_1 = OpConstant %int 1
+         %19 = OpConstantComposite %v2int %int_1 %int_1
+%_ptr_Function_v2int = OpTypePointer Function %v2int
+         %22 = OpConstantNull %v2int
 %_ptr_Function_int = OpTypePointer Function %int
-         %24 = OpConstantNull %int
+         %25 = OpConstantNull %int
       %v4int = OpTypeVector %int 4
-         %26 = OpConstantNull %v4int
+         %27 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
+         %30 = OpConstantNull %v4int
       %v3int = OpTypeVector %int 3
-         %38 = OpTypeFunction %v4float
+         %40 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_3a52ac = OpFunction %void None %13
          %16 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2int Function %18
-      %arg_2 = OpVariable %_ptr_Function_int Function %24
-      %arg_3 = OpVariable %_ptr_Function_v4int Function %26
-               OpStore %arg_1 %18
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %22
+      %arg_2 = OpVariable %_ptr_Function_int Function %25
+      %arg_3 = OpVariable %_ptr_Function_v4int Function %30
+               OpStore %arg_1 %19
                OpStore %arg_2 %int_1
-               OpStore %arg_3 %26
-         %30 = OpLoad %11 %arg_0
-         %32 = OpLoad %v2int %arg_1
-         %33 = OpCompositeExtract %int %32 0
-         %34 = OpCompositeExtract %int %32 1
-         %35 = OpLoad %int %arg_2
-         %36 = OpCompositeConstruct %v3int %33 %34 %35
-         %37 = OpLoad %v4int %arg_3
-               OpImageWrite %30 %36 %37
+               OpStore %arg_3 %27
+         %32 = OpLoad %11 %arg_0
+         %34 = OpLoad %v2int %arg_1
+         %35 = OpCompositeExtract %int %34 0
+         %36 = OpCompositeExtract %int %34 1
+         %37 = OpLoad %int %arg_2
+         %38 = OpCompositeConstruct %v3int %35 %36 %37
+         %39 = OpLoad %v4int %arg_3
+               OpImageWrite %32 %38 %39
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %38
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureStore_3a52ac
+%vertex_main_inner = OpFunction %v4float None %40
+         %42 = OpLabel
+         %43 = OpFunctionCall %void %textureStore_3a52ac
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %43 = OpLabel
-         %44 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %44
+         %45 = OpLabel
+         %46 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %46
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %47 = OpLabel
-         %48 = OpFunctionCall %void %textureStore_3a52ac
+         %49 = OpLabel
+         %50 = OpFunctionCall %void %textureStore_3a52ac
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %50 = OpLabel
-         %51 = OpFunctionCall %void %textureStore_3a52ac
+         %52 = OpLabel
+         %53 = OpFunctionCall %void %textureStore_3a52ac
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/3a52ac.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/3a52ac.wgsl.expected.wgsl
index 8306554..7b6336a 100644
--- a/test/tint/builtins/gen/var/textureStore/3a52ac.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/3a52ac.wgsl.expected.wgsl
@@ -1,9 +1,9 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba16sint, write>;
 
 fn textureStore_3a52ac() {
-  var arg_1 = vec2<i32>();
+  var arg_1 = vec2<i32>(1i);
   var arg_2 = 1i;
-  var arg_3 = vec4<i32>();
+  var arg_3 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/3bb7a1.wgsl b/test/tint/builtins/gen/var/textureStore/3bb7a1.wgsl
index 6301506..906047c 100644
--- a/test/tint/builtins/gen/var/textureStore/3bb7a1.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/3bb7a1.wgsl
@@ -24,9 +24,9 @@
 
 // fn textureStore(texture: texture_storage_2d_array<r32float, write>, coords: vec2<i32>, array_index: i32, value: vec4<f32>)
 fn textureStore_3bb7a1() {
-  var arg_1 = vec2<i32>();
+  var arg_1 = vec2<i32>(1i);
   var arg_2 = 1i;
-  var arg_3 = vec4<f32>();
+  var arg_3 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/3bb7a1.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/3bb7a1.wgsl.expected.dxc.hlsl
index e18ed4d..46a260c 100644
--- a/test/tint/builtins/gen/var/textureStore/3bb7a1.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/3bb7a1.wgsl.expected.dxc.hlsl
@@ -1,9 +1,9 @@
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 void textureStore_3bb7a1() {
-  int2 arg_1 = (0).xx;
+  int2 arg_1 = (1).xx;
   int arg_2 = 1;
-  float4 arg_3 = (0.0f).xxxx;
+  float4 arg_3 = (1.0f).xxxx;
   arg_0[int3(arg_1, arg_2)] = arg_3;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/3bb7a1.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/3bb7a1.wgsl.expected.fxc.hlsl
index e18ed4d..46a260c 100644
--- a/test/tint/builtins/gen/var/textureStore/3bb7a1.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/3bb7a1.wgsl.expected.fxc.hlsl
@@ -1,9 +1,9 @@
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 void textureStore_3bb7a1() {
-  int2 arg_1 = (0).xx;
+  int2 arg_1 = (1).xx;
   int arg_2 = 1;
-  float4 arg_3 = (0.0f).xxxx;
+  float4 arg_3 = (1.0f).xxxx;
   arg_0[int3(arg_1, arg_2)] = arg_3;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/3bb7a1.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/3bb7a1.wgsl.expected.glsl
index a46b20b..ac01732 100644
--- a/test/tint/builtins/gen/var/textureStore/3bb7a1.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/3bb7a1.wgsl.expected.glsl
@@ -2,9 +2,9 @@
 
 layout(r32f) uniform highp writeonly image2DArray arg_0;
 void textureStore_3bb7a1() {
-  ivec2 arg_1 = ivec2(0);
+  ivec2 arg_1 = ivec2(1);
   int arg_2 = 1;
-  vec4 arg_3 = vec4(0.0f);
+  vec4 arg_3 = vec4(1.0f);
   imageStore(arg_0, ivec3(arg_1, arg_2), arg_3);
 }
 
@@ -26,9 +26,9 @@
 
 layout(r32f) uniform highp writeonly image2DArray arg_0;
 void textureStore_3bb7a1() {
-  ivec2 arg_1 = ivec2(0);
+  ivec2 arg_1 = ivec2(1);
   int arg_2 = 1;
-  vec4 arg_3 = vec4(0.0f);
+  vec4 arg_3 = vec4(1.0f);
   imageStore(arg_0, ivec3(arg_1, arg_2), arg_3);
 }
 
@@ -44,9 +44,9 @@
 
 layout(r32f) uniform highp writeonly image2DArray arg_0;
 void textureStore_3bb7a1() {
-  ivec2 arg_1 = ivec2(0);
+  ivec2 arg_1 = ivec2(1);
   int arg_2 = 1;
-  vec4 arg_3 = vec4(0.0f);
+  vec4 arg_3 = vec4(1.0f);
   imageStore(arg_0, ivec3(arg_1, arg_2), arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/3bb7a1.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/3bb7a1.wgsl.expected.msl
index 70c180e..57831d8 100644
--- a/test/tint/builtins/gen/var/textureStore/3bb7a1.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/3bb7a1.wgsl.expected.msl
@@ -2,9 +2,9 @@
 
 using namespace metal;
 void textureStore_3bb7a1(texture2d_array<float, access::write> tint_symbol_1) {
-  int2 arg_1 = int2(0);
+  int2 arg_1 = int2(1);
   int arg_2 = 1;
-  float4 arg_3 = float4(0.0f);
+  float4 arg_3 = float4(1.0f);
   tint_symbol_1.write(arg_3, uint2(arg_1), arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/3bb7a1.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/3bb7a1.wgsl.expected.spvasm
index f7e7b38..da8e7d9 100644
--- a/test/tint/builtins/gen/var/textureStore/3bb7a1.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/3bb7a1.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 50
+; Bound: 52
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -41,52 +41,54 @@
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
-         %18 = OpConstantNull %v2int
-%_ptr_Function_v2int = OpTypePointer Function %v2int
       %int_1 = OpConstant %int 1
+         %19 = OpConstantComposite %v2int %int_1 %int_1
+%_ptr_Function_v2int = OpTypePointer Function %v2int
+         %22 = OpConstantNull %v2int
 %_ptr_Function_int = OpTypePointer Function %int
-         %24 = OpConstantNull %int
+         %25 = OpConstantNull %int
+    %float_1 = OpConstant %float 1
+         %27 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
       %v3int = OpTypeVector %int 3
-         %36 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %39 = OpTypeFunction %v4float
 %textureStore_3bb7a1 = OpFunction %void None %12
          %15 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2int Function %18
-      %arg_2 = OpVariable %_ptr_Function_int Function %24
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %22
+      %arg_2 = OpVariable %_ptr_Function_int Function %25
       %arg_3 = OpVariable %_ptr_Function_v4float Function %5
-               OpStore %arg_1 %18
+               OpStore %arg_1 %19
                OpStore %arg_2 %int_1
-               OpStore %arg_3 %5
-         %28 = OpLoad %11 %arg_0
-         %30 = OpLoad %v2int %arg_1
-         %31 = OpCompositeExtract %int %30 0
-         %32 = OpCompositeExtract %int %30 1
-         %33 = OpLoad %int %arg_2
-         %34 = OpCompositeConstruct %v3int %31 %32 %33
-         %35 = OpLoad %v4float %arg_3
-               OpImageWrite %28 %34 %35
+               OpStore %arg_3 %27
+         %31 = OpLoad %11 %arg_0
+         %33 = OpLoad %v2int %arg_1
+         %34 = OpCompositeExtract %int %33 0
+         %35 = OpCompositeExtract %int %33 1
+         %36 = OpLoad %int %arg_2
+         %37 = OpCompositeConstruct %v3int %34 %35 %36
+         %38 = OpLoad %v4float %arg_3
+               OpImageWrite %31 %37 %38
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %36
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureStore_3bb7a1
+%vertex_main_inner = OpFunction %v4float None %39
+         %41 = OpLabel
+         %42 = OpFunctionCall %void %textureStore_3bb7a1
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %41 = OpLabel
-         %42 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %42
+         %44 = OpLabel
+         %45 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %45
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %45 = OpLabel
-         %46 = OpFunctionCall %void %textureStore_3bb7a1
+         %47 = OpLabel
+         %48 = OpFunctionCall %void %textureStore_3bb7a1
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %48 = OpLabel
-         %49 = OpFunctionCall %void %textureStore_3bb7a1
+         %50 = OpLabel
+         %51 = OpFunctionCall %void %textureStore_3bb7a1
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/3bb7a1.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/3bb7a1.wgsl.expected.wgsl
index 145dc9a..75a3552 100644
--- a/test/tint/builtins/gen/var/textureStore/3bb7a1.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/3bb7a1.wgsl.expected.wgsl
@@ -1,9 +1,9 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<r32float, write>;
 
 fn textureStore_3bb7a1() {
-  var arg_1 = vec2<i32>();
+  var arg_1 = vec2<i32>(1i);
   var arg_2 = 1i;
-  var arg_3 = vec4<f32>();
+  var arg_3 = vec4<f32>(1.0f);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/3bec15.wgsl b/test/tint/builtins/gen/var/textureStore/3bec15.wgsl
index dd01b7f..47169e7 100644
--- a/test/tint/builtins/gen/var/textureStore/3bec15.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/3bec15.wgsl
@@ -25,7 +25,7 @@
 // fn textureStore(texture: texture_storage_1d<rgba8uint, write>, coords: i32, value: vec4<u32>)
 fn textureStore_3bec15() {
   var arg_1 = 1i;
-  var arg_2 = vec4<u32>();
+  var arg_2 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/3bec15.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/3bec15.wgsl.expected.dxc.hlsl
index 7092f58..07f9859 100644
--- a/test/tint/builtins/gen/var/textureStore/3bec15.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/3bec15.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 
 void textureStore_3bec15() {
   int arg_1 = 1;
-  uint4 arg_2 = (0u).xxxx;
+  uint4 arg_2 = (1u).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/3bec15.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/3bec15.wgsl.expected.fxc.hlsl
index 7092f58..07f9859 100644
--- a/test/tint/builtins/gen/var/textureStore/3bec15.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/3bec15.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 
 void textureStore_3bec15() {
   int arg_1 = 1;
-  uint4 arg_2 = (0u).xxxx;
+  uint4 arg_2 = (1u).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/3bec15.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/3bec15.wgsl.expected.msl
index 75e47f1..ae5ae1c 100644
--- a/test/tint/builtins/gen/var/textureStore/3bec15.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/3bec15.wgsl.expected.msl
@@ -3,7 +3,7 @@
 using namespace metal;
 void textureStore_3bec15(texture1d<uint, access::write> tint_symbol_1) {
   int arg_1 = 1;
-  uint4 arg_2 = uint4(0u);
+  uint4 arg_2 = uint4(1u);
   tint_symbol_1.write(arg_2, uint(arg_1));
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/3bec15.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/3bec15.wgsl.expected.spvasm
index 4688a0f..65e8ffe 100644
--- a/test/tint/builtins/gen/var/textureStore/3bec15.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/3bec15.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 46
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
@@ -45,41 +45,43 @@
 %_ptr_Function_int = OpTypePointer Function %int
          %21 = OpConstantNull %int
      %v4uint = OpTypeVector %uint 4
-         %23 = OpConstantNull %v4uint
+     %uint_1 = OpConstant %uint 1
+         %24 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %30 = OpTypeFunction %v4float
+         %27 = OpConstantNull %v4uint
+         %32 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_3bec15 = OpFunction %void None %13
          %16 = OpLabel
       %arg_1 = OpVariable %_ptr_Function_int Function %21
-      %arg_2 = OpVariable %_ptr_Function_v4uint Function %23
+      %arg_2 = OpVariable %_ptr_Function_v4uint Function %27
                OpStore %arg_1 %int_1
-               OpStore %arg_2 %23
-         %27 = OpLoad %11 %arg_0
-         %28 = OpLoad %int %arg_1
-         %29 = OpLoad %v4uint %arg_2
-               OpImageWrite %27 %28 %29
+               OpStore %arg_2 %24
+         %29 = OpLoad %11 %arg_0
+         %30 = OpLoad %int %arg_1
+         %31 = OpLoad %v4uint %arg_2
+               OpImageWrite %29 %30 %31
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %30
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_3bec15
+%vertex_main_inner = OpFunction %v4float None %32
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %textureStore_3bec15
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %36
+         %37 = OpLabel
+         %38 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %38
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_3bec15
+         %41 = OpLabel
+         %42 = OpFunctionCall %void %textureStore_3bec15
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_3bec15
+         %44 = OpLabel
+         %45 = OpFunctionCall %void %textureStore_3bec15
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/3bec15.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/3bec15.wgsl.expected.wgsl
index af39c20..02803e9 100644
--- a/test/tint/builtins/gen/var/textureStore/3bec15.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/3bec15.wgsl.expected.wgsl
@@ -2,7 +2,7 @@
 
 fn textureStore_3bec15() {
   var arg_1 = 1i;
-  var arg_2 = vec4<u32>();
+  var arg_2 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/3c1937.wgsl b/test/tint/builtins/gen/var/textureStore/3c1937.wgsl
index bffb6e2..2d5497a 100644
--- a/test/tint/builtins/gen/var/textureStore/3c1937.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/3c1937.wgsl
@@ -25,7 +25,7 @@
 // fn textureStore(texture: texture_storage_1d<rgba8uint, write>, coords: u32, value: vec4<u32>)
 fn textureStore_3c1937() {
   var arg_1 = 1u;
-  var arg_2 = vec4<u32>();
+  var arg_2 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/3c1937.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/3c1937.wgsl.expected.dxc.hlsl
index 19a9b7b..b1f91c3 100644
--- a/test/tint/builtins/gen/var/textureStore/3c1937.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/3c1937.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 
 void textureStore_3c1937() {
   uint arg_1 = 1u;
-  uint4 arg_2 = (0u).xxxx;
+  uint4 arg_2 = (1u).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/3c1937.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/3c1937.wgsl.expected.fxc.hlsl
index 19a9b7b..b1f91c3 100644
--- a/test/tint/builtins/gen/var/textureStore/3c1937.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/3c1937.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 
 void textureStore_3c1937() {
   uint arg_1 = 1u;
-  uint4 arg_2 = (0u).xxxx;
+  uint4 arg_2 = (1u).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/3c1937.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/3c1937.wgsl.expected.msl
index 678f483..87b1a47 100644
--- a/test/tint/builtins/gen/var/textureStore/3c1937.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/3c1937.wgsl.expected.msl
@@ -3,7 +3,7 @@
 using namespace metal;
 void textureStore_3c1937(texture1d<uint, access::write> tint_symbol_1) {
   uint arg_1 = 1u;
-  uint4 arg_2 = uint4(0u);
+  uint4 arg_2 = uint4(1u);
   tint_symbol_1.write(arg_2, uint(arg_1));
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/3c1937.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/3c1937.wgsl.expected.spvasm
index 421d42f..1633d5f 100644
--- a/test/tint/builtins/gen/var/textureStore/3c1937.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/3c1937.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 43
+; Bound: 44
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
@@ -44,41 +44,42 @@
 %_ptr_Function_uint = OpTypePointer Function %uint
          %20 = OpConstantNull %uint
      %v4uint = OpTypeVector %uint 4
-         %22 = OpConstantNull %v4uint
+         %22 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %29 = OpTypeFunction %v4float
+         %25 = OpConstantNull %v4uint
+         %30 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_3c1937 = OpFunction %void None %13
          %16 = OpLabel
       %arg_1 = OpVariable %_ptr_Function_uint Function %20
-      %arg_2 = OpVariable %_ptr_Function_v4uint Function %22
+      %arg_2 = OpVariable %_ptr_Function_v4uint Function %25
                OpStore %arg_1 %uint_1
                OpStore %arg_2 %22
-         %26 = OpLoad %11 %arg_0
-         %27 = OpLoad %uint %arg_1
-         %28 = OpLoad %v4uint %arg_2
-               OpImageWrite %26 %27 %28
+         %27 = OpLoad %11 %arg_0
+         %28 = OpLoad %uint %arg_1
+         %29 = OpLoad %v4uint %arg_2
+               OpImageWrite %27 %28 %29
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %29
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %textureStore_3c1937
+%vertex_main_inner = OpFunction %v4float None %30
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %textureStore_3c1937
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %34 = OpLabel
-         %35 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %35
+         %35 = OpLabel
+         %36 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %36
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureStore_3c1937
+         %39 = OpLabel
+         %40 = OpFunctionCall %void %textureStore_3c1937
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureStore_3c1937
+         %42 = OpLabel
+         %43 = OpFunctionCall %void %textureStore_3c1937
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/3c1937.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/3c1937.wgsl.expected.wgsl
index 568e12c..1bb71e7 100644
--- a/test/tint/builtins/gen/var/textureStore/3c1937.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/3c1937.wgsl.expected.wgsl
@@ -2,7 +2,7 @@
 
 fn textureStore_3c1937() {
   var arg_1 = 1u;
-  var arg_2 = vec4<u32>();
+  var arg_2 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/3d6f01.wgsl b/test/tint/builtins/gen/var/textureStore/3d6f01.wgsl
index dedb10e..edc8ab5 100644
--- a/test/tint/builtins/gen/var/textureStore/3d6f01.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/3d6f01.wgsl
@@ -25,7 +25,7 @@
 // fn textureStore(texture: texture_storage_1d<rg32sint, write>, coords: u32, value: vec4<i32>)
 fn textureStore_3d6f01() {
   var arg_1 = 1u;
-  var arg_2 = vec4<i32>();
+  var arg_2 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/3d6f01.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/3d6f01.wgsl.expected.dxc.hlsl
index 6e3241b..21d5a66 100644
--- a/test/tint/builtins/gen/var/textureStore/3d6f01.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/3d6f01.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 
 void textureStore_3d6f01() {
   uint arg_1 = 1u;
-  int4 arg_2 = (0).xxxx;
+  int4 arg_2 = (1).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/3d6f01.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/3d6f01.wgsl.expected.fxc.hlsl
index 6e3241b..21d5a66 100644
--- a/test/tint/builtins/gen/var/textureStore/3d6f01.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/3d6f01.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 
 void textureStore_3d6f01() {
   uint arg_1 = 1u;
-  int4 arg_2 = (0).xxxx;
+  int4 arg_2 = (1).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/3d6f01.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/3d6f01.wgsl.expected.msl
index 1e29e6b..10a8e5d 100644
--- a/test/tint/builtins/gen/var/textureStore/3d6f01.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/3d6f01.wgsl.expected.msl
@@ -3,7 +3,7 @@
 using namespace metal;
 void textureStore_3d6f01(texture1d<int, access::write> tint_symbol_1) {
   uint arg_1 = 1u;
-  int4 arg_2 = int4(0);
+  int4 arg_2 = int4(1);
   tint_symbol_1.write(arg_2, uint(arg_1));
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/3d6f01.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/3d6f01.wgsl.expected.spvasm
index ea91368..a16a364 100644
--- a/test/tint/builtins/gen/var/textureStore/3d6f01.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/3d6f01.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 46
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
@@ -46,41 +46,43 @@
 %_ptr_Function_uint = OpTypePointer Function %uint
          %21 = OpConstantNull %uint
       %v4int = OpTypeVector %int 4
-         %23 = OpConstantNull %v4int
+      %int_1 = OpConstant %int 1
+         %24 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %30 = OpTypeFunction %v4float
+         %27 = OpConstantNull %v4int
+         %32 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_3d6f01 = OpFunction %void None %13
          %16 = OpLabel
       %arg_1 = OpVariable %_ptr_Function_uint Function %21
-      %arg_2 = OpVariable %_ptr_Function_v4int Function %23
+      %arg_2 = OpVariable %_ptr_Function_v4int Function %27
                OpStore %arg_1 %uint_1
-               OpStore %arg_2 %23
-         %27 = OpLoad %11 %arg_0
-         %28 = OpLoad %uint %arg_1
-         %29 = OpLoad %v4int %arg_2
-               OpImageWrite %27 %28 %29
+               OpStore %arg_2 %24
+         %29 = OpLoad %11 %arg_0
+         %30 = OpLoad %uint %arg_1
+         %31 = OpLoad %v4int %arg_2
+               OpImageWrite %29 %30 %31
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %30
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_3d6f01
+%vertex_main_inner = OpFunction %v4float None %32
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %textureStore_3d6f01
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %36
+         %37 = OpLabel
+         %38 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %38
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_3d6f01
+         %41 = OpLabel
+         %42 = OpFunctionCall %void %textureStore_3d6f01
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_3d6f01
+         %44 = OpLabel
+         %45 = OpFunctionCall %void %textureStore_3d6f01
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/3d6f01.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/3d6f01.wgsl.expected.wgsl
index 693801c..a59f7a1 100644
--- a/test/tint/builtins/gen/var/textureStore/3d6f01.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/3d6f01.wgsl.expected.wgsl
@@ -2,7 +2,7 @@
 
 fn textureStore_3d6f01() {
   var arg_1 = 1u;
-  var arg_2 = vec4<i32>();
+  var arg_2 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/40c455.wgsl b/test/tint/builtins/gen/var/textureStore/40c455.wgsl
index 29f4059..dab5410 100644
--- a/test/tint/builtins/gen/var/textureStore/40c455.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/40c455.wgsl
@@ -24,8 +24,8 @@
 
 // fn textureStore(texture: texture_storage_2d<rgba8snorm, write>, coords: vec2<u32>, value: vec4<f32>)
 fn textureStore_40c455() {
-  var arg_1 = vec2<u32>();
-  var arg_2 = vec4<f32>();
+  var arg_1 = vec2<u32>(1u);
+  var arg_2 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/40c455.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/40c455.wgsl.expected.dxc.hlsl
index 5d607d2..e0c5f5c1 100644
--- a/test/tint/builtins/gen/var/textureStore/40c455.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/40c455.wgsl.expected.dxc.hlsl
@@ -1,8 +1,8 @@
 RWTexture2D<float4> arg_0 : register(u0, space1);
 
 void textureStore_40c455() {
-  uint2 arg_1 = (0u).xx;
-  float4 arg_2 = (0.0f).xxxx;
+  uint2 arg_1 = (1u).xx;
+  float4 arg_2 = (1.0f).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/40c455.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/40c455.wgsl.expected.fxc.hlsl
index 5d607d2..e0c5f5c1 100644
--- a/test/tint/builtins/gen/var/textureStore/40c455.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/40c455.wgsl.expected.fxc.hlsl
@@ -1,8 +1,8 @@
 RWTexture2D<float4> arg_0 : register(u0, space1);
 
 void textureStore_40c455() {
-  uint2 arg_1 = (0u).xx;
-  float4 arg_2 = (0.0f).xxxx;
+  uint2 arg_1 = (1u).xx;
+  float4 arg_2 = (1.0f).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/40c455.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/40c455.wgsl.expected.glsl
index 4ae299e..0b15e40 100644
--- a/test/tint/builtins/gen/var/textureStore/40c455.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/40c455.wgsl.expected.glsl
@@ -2,8 +2,8 @@
 
 layout(rgba8_snorm) uniform highp writeonly image2D arg_0;
 void textureStore_40c455() {
-  uvec2 arg_1 = uvec2(0u);
-  vec4 arg_2 = vec4(0.0f);
+  uvec2 arg_1 = uvec2(1u);
+  vec4 arg_2 = vec4(1.0f);
   imageStore(arg_0, ivec2(arg_1), arg_2);
 }
 
@@ -25,8 +25,8 @@
 
 layout(rgba8_snorm) uniform highp writeonly image2D arg_0;
 void textureStore_40c455() {
-  uvec2 arg_1 = uvec2(0u);
-  vec4 arg_2 = vec4(0.0f);
+  uvec2 arg_1 = uvec2(1u);
+  vec4 arg_2 = vec4(1.0f);
   imageStore(arg_0, ivec2(arg_1), arg_2);
 }
 
@@ -42,8 +42,8 @@
 
 layout(rgba8_snorm) uniform highp writeonly image2D arg_0;
 void textureStore_40c455() {
-  uvec2 arg_1 = uvec2(0u);
-  vec4 arg_2 = vec4(0.0f);
+  uvec2 arg_1 = uvec2(1u);
+  vec4 arg_2 = vec4(1.0f);
   imageStore(arg_0, ivec2(arg_1), arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/40c455.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/40c455.wgsl.expected.msl
index 477b39a..e724e08 100644
--- a/test/tint/builtins/gen/var/textureStore/40c455.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/40c455.wgsl.expected.msl
@@ -2,8 +2,8 @@
 
 using namespace metal;
 void textureStore_40c455(texture2d<float, access::write> tint_symbol_1) {
-  uint2 arg_1 = uint2(0u);
-  float4 arg_2 = float4(0.0f);
+  uint2 arg_1 = uint2(1u);
+  float4 arg_2 = float4(1.0f);
   tint_symbol_1.write(arg_2, uint2(arg_1));
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/40c455.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/40c455.wgsl.expected.spvasm
index 91daa0a..0ddfe09 100644
--- a/test/tint/builtins/gen/var/textureStore/40c455.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/40c455.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 41
+; Bound: 44
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -40,42 +40,45 @@
          %12 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
-         %18 = OpConstantNull %v2uint
+     %uint_1 = OpConstant %uint 1
+         %19 = OpConstantComposite %v2uint %uint_1 %uint_1
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
-%_ptr_Function_v4float = OpTypePointer Function %v4float
-         %27 = OpTypeFunction %v4float
+         %22 = OpConstantNull %v2uint
     %float_1 = OpConstant %float 1
+         %24 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%_ptr_Function_v4float = OpTypePointer Function %v4float
+         %31 = OpTypeFunction %v4float
 %textureStore_40c455 = OpFunction %void None %12
          %15 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2uint Function %18
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %22
       %arg_2 = OpVariable %_ptr_Function_v4float Function %5
-               OpStore %arg_1 %18
-               OpStore %arg_2 %5
-         %24 = OpLoad %11 %arg_0
-         %25 = OpLoad %v2uint %arg_1
-         %26 = OpLoad %v4float %arg_2
-               OpImageWrite %24 %25 %26
+               OpStore %arg_1 %19
+               OpStore %arg_2 %24
+         %28 = OpLoad %11 %arg_0
+         %29 = OpLoad %v2uint %arg_1
+         %30 = OpLoad %v4float %arg_2
+               OpImageWrite %28 %29 %30
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %27
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %textureStore_40c455
+%vertex_main_inner = OpFunction %v4float None %31
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureStore_40c455
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %32 = OpLabel
-         %33 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %33
+         %36 = OpLabel
+         %37 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %37
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_40c455
+         %39 = OpLabel
+         %40 = OpFunctionCall %void %textureStore_40c455
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_40c455
+         %42 = OpLabel
+         %43 = OpFunctionCall %void %textureStore_40c455
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/40c455.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/40c455.wgsl.expected.wgsl
index 6a50679..0865958 100644
--- a/test/tint/builtins/gen/var/textureStore/40c455.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/40c455.wgsl.expected.wgsl
@@ -1,8 +1,8 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba8snorm, write>;
 
 fn textureStore_40c455() {
-  var arg_1 = vec2<u32>();
-  var arg_2 = vec4<f32>();
+  var arg_1 = vec2<u32>(1u);
+  var arg_2 = vec4<f32>(1.0f);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/4288fc.wgsl b/test/tint/builtins/gen/var/textureStore/4288fc.wgsl
index b62f964..9365274 100644
--- a/test/tint/builtins/gen/var/textureStore/4288fc.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/4288fc.wgsl
@@ -24,8 +24,8 @@
 
 // fn textureStore(texture: texture_storage_3d<r32float, write>, coords: vec3<u32>, value: vec4<f32>)
 fn textureStore_4288fc() {
-  var arg_1 = vec3<u32>();
-  var arg_2 = vec4<f32>();
+  var arg_1 = vec3<u32>(1u);
+  var arg_2 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/4288fc.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/4288fc.wgsl.expected.dxc.hlsl
index bb76511..8009fe8 100644
--- a/test/tint/builtins/gen/var/textureStore/4288fc.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/4288fc.wgsl.expected.dxc.hlsl
@@ -1,8 +1,8 @@
 RWTexture3D<float4> arg_0 : register(u0, space1);
 
 void textureStore_4288fc() {
-  uint3 arg_1 = (0u).xxx;
-  float4 arg_2 = (0.0f).xxxx;
+  uint3 arg_1 = (1u).xxx;
+  float4 arg_2 = (1.0f).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/4288fc.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/4288fc.wgsl.expected.fxc.hlsl
index bb76511..8009fe8 100644
--- a/test/tint/builtins/gen/var/textureStore/4288fc.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/4288fc.wgsl.expected.fxc.hlsl
@@ -1,8 +1,8 @@
 RWTexture3D<float4> arg_0 : register(u0, space1);
 
 void textureStore_4288fc() {
-  uint3 arg_1 = (0u).xxx;
-  float4 arg_2 = (0.0f).xxxx;
+  uint3 arg_1 = (1u).xxx;
+  float4 arg_2 = (1.0f).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/4288fc.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/4288fc.wgsl.expected.glsl
index 0b46698..8b37e2b 100644
--- a/test/tint/builtins/gen/var/textureStore/4288fc.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/4288fc.wgsl.expected.glsl
@@ -2,8 +2,8 @@
 
 layout(r32f) uniform highp writeonly image3D arg_0;
 void textureStore_4288fc() {
-  uvec3 arg_1 = uvec3(0u);
-  vec4 arg_2 = vec4(0.0f);
+  uvec3 arg_1 = uvec3(1u);
+  vec4 arg_2 = vec4(1.0f);
   imageStore(arg_0, ivec3(arg_1), arg_2);
 }
 
@@ -25,8 +25,8 @@
 
 layout(r32f) uniform highp writeonly image3D arg_0;
 void textureStore_4288fc() {
-  uvec3 arg_1 = uvec3(0u);
-  vec4 arg_2 = vec4(0.0f);
+  uvec3 arg_1 = uvec3(1u);
+  vec4 arg_2 = vec4(1.0f);
   imageStore(arg_0, ivec3(arg_1), arg_2);
 }
 
@@ -42,8 +42,8 @@
 
 layout(r32f) uniform highp writeonly image3D arg_0;
 void textureStore_4288fc() {
-  uvec3 arg_1 = uvec3(0u);
-  vec4 arg_2 = vec4(0.0f);
+  uvec3 arg_1 = uvec3(1u);
+  vec4 arg_2 = vec4(1.0f);
   imageStore(arg_0, ivec3(arg_1), arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/4288fc.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/4288fc.wgsl.expected.msl
index 578e1f8..cb21571 100644
--- a/test/tint/builtins/gen/var/textureStore/4288fc.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/4288fc.wgsl.expected.msl
@@ -2,8 +2,8 @@
 
 using namespace metal;
 void textureStore_4288fc(texture3d<float, access::write> tint_symbol_1) {
-  uint3 arg_1 = uint3(0u);
-  float4 arg_2 = float4(0.0f);
+  uint3 arg_1 = uint3(1u);
+  float4 arg_2 = float4(1.0f);
   tint_symbol_1.write(arg_2, uint3(arg_1));
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/4288fc.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/4288fc.wgsl.expected.spvasm
index 78e13c6..0bde16b 100644
--- a/test/tint/builtins/gen/var/textureStore/4288fc.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/4288fc.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 41
+; Bound: 44
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -40,42 +40,45 @@
          %12 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
-         %18 = OpConstantNull %v3uint
+     %uint_1 = OpConstant %uint 1
+         %19 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
 %_ptr_Function_v3uint = OpTypePointer Function %v3uint
-%_ptr_Function_v4float = OpTypePointer Function %v4float
-         %27 = OpTypeFunction %v4float
+         %22 = OpConstantNull %v3uint
     %float_1 = OpConstant %float 1
+         %24 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%_ptr_Function_v4float = OpTypePointer Function %v4float
+         %31 = OpTypeFunction %v4float
 %textureStore_4288fc = OpFunction %void None %12
          %15 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v3uint Function %18
+      %arg_1 = OpVariable %_ptr_Function_v3uint Function %22
       %arg_2 = OpVariable %_ptr_Function_v4float Function %5
-               OpStore %arg_1 %18
-               OpStore %arg_2 %5
-         %24 = OpLoad %11 %arg_0
-         %25 = OpLoad %v3uint %arg_1
-         %26 = OpLoad %v4float %arg_2
-               OpImageWrite %24 %25 %26
+               OpStore %arg_1 %19
+               OpStore %arg_2 %24
+         %28 = OpLoad %11 %arg_0
+         %29 = OpLoad %v3uint %arg_1
+         %30 = OpLoad %v4float %arg_2
+               OpImageWrite %28 %29 %30
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %27
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %textureStore_4288fc
+%vertex_main_inner = OpFunction %v4float None %31
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureStore_4288fc
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %32 = OpLabel
-         %33 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %33
+         %36 = OpLabel
+         %37 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %37
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_4288fc
+         %39 = OpLabel
+         %40 = OpFunctionCall %void %textureStore_4288fc
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_4288fc
+         %42 = OpLabel
+         %43 = OpFunctionCall %void %textureStore_4288fc
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/4288fc.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/4288fc.wgsl.expected.wgsl
index 15e7b21..52e3aeb 100644
--- a/test/tint/builtins/gen/var/textureStore/4288fc.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/4288fc.wgsl.expected.wgsl
@@ -1,8 +1,8 @@
 @group(1) @binding(0) var arg_0 : texture_storage_3d<r32float, write>;
 
 fn textureStore_4288fc() {
-  var arg_1 = vec3<u32>();
-  var arg_2 = vec4<f32>();
+  var arg_1 = vec3<u32>(1u);
+  var arg_2 = vec4<f32>(1.0f);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/441ba8.wgsl b/test/tint/builtins/gen/var/textureStore/441ba8.wgsl
index 5fe3eb2..8b1099f 100644
--- a/test/tint/builtins/gen/var/textureStore/441ba8.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/441ba8.wgsl
@@ -24,8 +24,8 @@
 
 // fn textureStore(texture: texture_storage_3d<rgba32uint, write>, coords: vec3<i32>, value: vec4<u32>)
 fn textureStore_441ba8() {
-  var arg_1 = vec3<i32>();
-  var arg_2 = vec4<u32>();
+  var arg_1 = vec3<i32>(1i);
+  var arg_2 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/441ba8.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/441ba8.wgsl.expected.dxc.hlsl
index 3af481a..17eb40c 100644
--- a/test/tint/builtins/gen/var/textureStore/441ba8.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/441ba8.wgsl.expected.dxc.hlsl
@@ -1,8 +1,8 @@
 RWTexture3D<uint4> arg_0 : register(u0, space1);
 
 void textureStore_441ba8() {
-  int3 arg_1 = (0).xxx;
-  uint4 arg_2 = (0u).xxxx;
+  int3 arg_1 = (1).xxx;
+  uint4 arg_2 = (1u).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/441ba8.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/441ba8.wgsl.expected.fxc.hlsl
index 3af481a..17eb40c 100644
--- a/test/tint/builtins/gen/var/textureStore/441ba8.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/441ba8.wgsl.expected.fxc.hlsl
@@ -1,8 +1,8 @@
 RWTexture3D<uint4> arg_0 : register(u0, space1);
 
 void textureStore_441ba8() {
-  int3 arg_1 = (0).xxx;
-  uint4 arg_2 = (0u).xxxx;
+  int3 arg_1 = (1).xxx;
+  uint4 arg_2 = (1u).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/441ba8.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/441ba8.wgsl.expected.glsl
index ef4af51..1350e88 100644
--- a/test/tint/builtins/gen/var/textureStore/441ba8.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/441ba8.wgsl.expected.glsl
@@ -2,8 +2,8 @@
 
 layout(rgba32ui) uniform highp writeonly uimage3D arg_0;
 void textureStore_441ba8() {
-  ivec3 arg_1 = ivec3(0);
-  uvec4 arg_2 = uvec4(0u);
+  ivec3 arg_1 = ivec3(1);
+  uvec4 arg_2 = uvec4(1u);
   imageStore(arg_0, arg_1, arg_2);
 }
 
@@ -25,8 +25,8 @@
 
 layout(rgba32ui) uniform highp writeonly uimage3D arg_0;
 void textureStore_441ba8() {
-  ivec3 arg_1 = ivec3(0);
-  uvec4 arg_2 = uvec4(0u);
+  ivec3 arg_1 = ivec3(1);
+  uvec4 arg_2 = uvec4(1u);
   imageStore(arg_0, arg_1, arg_2);
 }
 
@@ -42,8 +42,8 @@
 
 layout(rgba32ui) uniform highp writeonly uimage3D arg_0;
 void textureStore_441ba8() {
-  ivec3 arg_1 = ivec3(0);
-  uvec4 arg_2 = uvec4(0u);
+  ivec3 arg_1 = ivec3(1);
+  uvec4 arg_2 = uvec4(1u);
   imageStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/441ba8.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/441ba8.wgsl.expected.msl
index 1464ab7..2315354 100644
--- a/test/tint/builtins/gen/var/textureStore/441ba8.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/441ba8.wgsl.expected.msl
@@ -2,8 +2,8 @@
 
 using namespace metal;
 void textureStore_441ba8(texture3d<uint, access::write> tint_symbol_1) {
-  int3 arg_1 = int3(0);
-  uint4 arg_2 = uint4(0u);
+  int3 arg_1 = int3(1);
+  uint4 arg_2 = uint4(1u);
   tint_symbol_1.write(arg_2, uint3(arg_1));
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/441ba8.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/441ba8.wgsl.expected.spvasm
index b674880..5757914 100644
--- a/test/tint/builtins/gen/var/textureStore/441ba8.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/441ba8.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 48
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -41,44 +41,48 @@
          %13 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
-         %19 = OpConstantNull %v3int
+      %int_1 = OpConstant %int 1
+         %20 = OpConstantComposite %v3int %int_1 %int_1 %int_1
 %_ptr_Function_v3int = OpTypePointer Function %v3int
+         %23 = OpConstantNull %v3int
      %v4uint = OpTypeVector %uint 4
-         %23 = OpConstantNull %v4uint
+     %uint_1 = OpConstant %uint 1
+         %26 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %30 = OpTypeFunction %v4float
+         %29 = OpConstantNull %v4uint
+         %34 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_441ba8 = OpFunction %void None %13
          %16 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v3int Function %19
-      %arg_2 = OpVariable %_ptr_Function_v4uint Function %23
-               OpStore %arg_1 %19
-               OpStore %arg_2 %23
-         %27 = OpLoad %11 %arg_0
-         %28 = OpLoad %v3int %arg_1
-         %29 = OpLoad %v4uint %arg_2
-               OpImageWrite %27 %28 %29
+      %arg_1 = OpVariable %_ptr_Function_v3int Function %23
+      %arg_2 = OpVariable %_ptr_Function_v4uint Function %29
+               OpStore %arg_1 %20
+               OpStore %arg_2 %26
+         %31 = OpLoad %11 %arg_0
+         %32 = OpLoad %v3int %arg_1
+         %33 = OpLoad %v4uint %arg_2
+               OpImageWrite %31 %32 %33
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %30
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_441ba8
+%vertex_main_inner = OpFunction %v4float None %34
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureStore_441ba8
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %36
+         %39 = OpLabel
+         %40 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %40
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_441ba8
+         %43 = OpLabel
+         %44 = OpFunctionCall %void %textureStore_441ba8
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_441ba8
+         %46 = OpLabel
+         %47 = OpFunctionCall %void %textureStore_441ba8
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/441ba8.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/441ba8.wgsl.expected.wgsl
index 773999a..319ac4a 100644
--- a/test/tint/builtins/gen/var/textureStore/441ba8.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/441ba8.wgsl.expected.wgsl
@@ -1,8 +1,8 @@
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rgba32uint, write>;
 
 fn textureStore_441ba8() {
-  var arg_1 = vec3<i32>();
-  var arg_2 = vec4<u32>();
+  var arg_1 = vec3<i32>(1i);
+  var arg_2 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/44daa7.wgsl b/test/tint/builtins/gen/var/textureStore/44daa7.wgsl
index c5299a4..23b0f00 100644
--- a/test/tint/builtins/gen/var/textureStore/44daa7.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/44daa7.wgsl
@@ -24,9 +24,9 @@
 
 // fn textureStore(texture: texture_storage_2d_array<rgba16float, write>, coords: vec2<i32>, array_index: u32, value: vec4<f32>)
 fn textureStore_44daa7() {
-  var arg_1 = vec2<i32>();
+  var arg_1 = vec2<i32>(1i);
   var arg_2 = 1u;
-  var arg_3 = vec4<f32>();
+  var arg_3 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/44daa7.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/44daa7.wgsl.expected.dxc.hlsl
index c2793de..fae9131 100644
--- a/test/tint/builtins/gen/var/textureStore/44daa7.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/44daa7.wgsl.expected.dxc.hlsl
@@ -1,9 +1,9 @@
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 void textureStore_44daa7() {
-  int2 arg_1 = (0).xx;
+  int2 arg_1 = (1).xx;
   uint arg_2 = 1u;
-  float4 arg_3 = (0.0f).xxxx;
+  float4 arg_3 = (1.0f).xxxx;
   arg_0[int3(arg_1, int(arg_2))] = arg_3;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/44daa7.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/44daa7.wgsl.expected.fxc.hlsl
index c2793de..fae9131 100644
--- a/test/tint/builtins/gen/var/textureStore/44daa7.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/44daa7.wgsl.expected.fxc.hlsl
@@ -1,9 +1,9 @@
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 void textureStore_44daa7() {
-  int2 arg_1 = (0).xx;
+  int2 arg_1 = (1).xx;
   uint arg_2 = 1u;
-  float4 arg_3 = (0.0f).xxxx;
+  float4 arg_3 = (1.0f).xxxx;
   arg_0[int3(arg_1, int(arg_2))] = arg_3;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/44daa7.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/44daa7.wgsl.expected.glsl
index ea56040..590dc7c 100644
--- a/test/tint/builtins/gen/var/textureStore/44daa7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/44daa7.wgsl.expected.glsl
@@ -2,9 +2,9 @@
 
 layout(rgba16f) uniform highp writeonly image2DArray arg_0;
 void textureStore_44daa7() {
-  ivec2 arg_1 = ivec2(0);
+  ivec2 arg_1 = ivec2(1);
   uint arg_2 = 1u;
-  vec4 arg_3 = vec4(0.0f);
+  vec4 arg_3 = vec4(1.0f);
   imageStore(arg_0, ivec3(arg_1, int(arg_2)), arg_3);
 }
 
@@ -26,9 +26,9 @@
 
 layout(rgba16f) uniform highp writeonly image2DArray arg_0;
 void textureStore_44daa7() {
-  ivec2 arg_1 = ivec2(0);
+  ivec2 arg_1 = ivec2(1);
   uint arg_2 = 1u;
-  vec4 arg_3 = vec4(0.0f);
+  vec4 arg_3 = vec4(1.0f);
   imageStore(arg_0, ivec3(arg_1, int(arg_2)), arg_3);
 }
 
@@ -44,9 +44,9 @@
 
 layout(rgba16f) uniform highp writeonly image2DArray arg_0;
 void textureStore_44daa7() {
-  ivec2 arg_1 = ivec2(0);
+  ivec2 arg_1 = ivec2(1);
   uint arg_2 = 1u;
-  vec4 arg_3 = vec4(0.0f);
+  vec4 arg_3 = vec4(1.0f);
   imageStore(arg_0, ivec3(arg_1, int(arg_2)), arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/44daa7.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/44daa7.wgsl.expected.msl
index 3175b4a..b366375 100644
--- a/test/tint/builtins/gen/var/textureStore/44daa7.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/44daa7.wgsl.expected.msl
@@ -2,9 +2,9 @@
 
 using namespace metal;
 void textureStore_44daa7(texture2d_array<float, access::write> tint_symbol_1) {
-  int2 arg_1 = int2(0);
+  int2 arg_1 = int2(1);
   uint arg_2 = 1u;
-  float4 arg_3 = float4(0.0f);
+  float4 arg_3 = float4(1.0f);
   tint_symbol_1.write(arg_3, uint2(arg_1), arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/44daa7.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/44daa7.wgsl.expected.spvasm
index 88c6042..7bc33b4 100644
--- a/test/tint/builtins/gen/var/textureStore/44daa7.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/44daa7.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 52
+; Bound: 55
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -41,54 +41,57 @@
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
-         %18 = OpConstantNull %v2int
+      %int_1 = OpConstant %int 1
+         %19 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v2int = OpTypePointer Function %v2int
+         %22 = OpConstantNull %v2int
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %25 = OpConstantNull %uint
+         %27 = OpConstantNull %uint
+    %float_1 = OpConstant %float 1
+         %29 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
       %v3int = OpTypeVector %int 3
-         %38 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %42 = OpTypeFunction %v4float
 %textureStore_44daa7 = OpFunction %void None %12
          %15 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2int Function %18
-      %arg_2 = OpVariable %_ptr_Function_uint Function %25
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %22
+      %arg_2 = OpVariable %_ptr_Function_uint Function %27
       %arg_3 = OpVariable %_ptr_Function_v4float Function %5
-               OpStore %arg_1 %18
+               OpStore %arg_1 %19
                OpStore %arg_2 %uint_1
-               OpStore %arg_3 %5
-         %29 = OpLoad %11 %arg_0
-         %31 = OpLoad %v2int %arg_1
-         %32 = OpCompositeExtract %int %31 0
-         %33 = OpCompositeExtract %int %31 1
-         %35 = OpLoad %uint %arg_2
-         %34 = OpBitcast %int %35
-         %36 = OpCompositeConstruct %v3int %32 %33 %34
-         %37 = OpLoad %v4float %arg_3
-               OpImageWrite %29 %36 %37
+               OpStore %arg_3 %29
+         %33 = OpLoad %11 %arg_0
+         %35 = OpLoad %v2int %arg_1
+         %36 = OpCompositeExtract %int %35 0
+         %37 = OpCompositeExtract %int %35 1
+         %39 = OpLoad %uint %arg_2
+         %38 = OpBitcast %int %39
+         %40 = OpCompositeConstruct %v3int %36 %37 %38
+         %41 = OpLoad %v4float %arg_3
+               OpImageWrite %33 %40 %41
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %38
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureStore_44daa7
+%vertex_main_inner = OpFunction %v4float None %42
+         %44 = OpLabel
+         %45 = OpFunctionCall %void %textureStore_44daa7
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %43 = OpLabel
-         %44 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %44
+         %47 = OpLabel
+         %48 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %48
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %47 = OpLabel
-         %48 = OpFunctionCall %void %textureStore_44daa7
+         %50 = OpLabel
+         %51 = OpFunctionCall %void %textureStore_44daa7
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %50 = OpLabel
-         %51 = OpFunctionCall %void %textureStore_44daa7
+         %53 = OpLabel
+         %54 = OpFunctionCall %void %textureStore_44daa7
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/44daa7.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/44daa7.wgsl.expected.wgsl
index 73656cb..c76b503 100644
--- a/test/tint/builtins/gen/var/textureStore/44daa7.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/44daa7.wgsl.expected.wgsl
@@ -1,9 +1,9 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba16float, write>;
 
 fn textureStore_44daa7() {
-  var arg_1 = vec2<i32>();
+  var arg_1 = vec2<i32>(1i);
   var arg_2 = 1u;
-  var arg_3 = vec4<f32>();
+  var arg_3 = vec4<f32>(1.0f);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/486500.wgsl b/test/tint/builtins/gen/var/textureStore/486500.wgsl
index c0353f2..34f0cd4 100644
--- a/test/tint/builtins/gen/var/textureStore/486500.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/486500.wgsl
@@ -24,8 +24,8 @@
 
 // fn textureStore(texture: texture_storage_3d<rgba32sint, write>, coords: vec3<u32>, value: vec4<i32>)
 fn textureStore_486500() {
-  var arg_1 = vec3<u32>();
-  var arg_2 = vec4<i32>();
+  var arg_1 = vec3<u32>(1u);
+  var arg_2 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/486500.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/486500.wgsl.expected.dxc.hlsl
index 021c55c..d1703f0 100644
--- a/test/tint/builtins/gen/var/textureStore/486500.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/486500.wgsl.expected.dxc.hlsl
@@ -1,8 +1,8 @@
 RWTexture3D<int4> arg_0 : register(u0, space1);
 
 void textureStore_486500() {
-  uint3 arg_1 = (0u).xxx;
-  int4 arg_2 = (0).xxxx;
+  uint3 arg_1 = (1u).xxx;
+  int4 arg_2 = (1).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/486500.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/486500.wgsl.expected.fxc.hlsl
index 021c55c..d1703f0 100644
--- a/test/tint/builtins/gen/var/textureStore/486500.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/486500.wgsl.expected.fxc.hlsl
@@ -1,8 +1,8 @@
 RWTexture3D<int4> arg_0 : register(u0, space1);
 
 void textureStore_486500() {
-  uint3 arg_1 = (0u).xxx;
-  int4 arg_2 = (0).xxxx;
+  uint3 arg_1 = (1u).xxx;
+  int4 arg_2 = (1).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/486500.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/486500.wgsl.expected.glsl
index 5dd0af7..fefc5a5 100644
--- a/test/tint/builtins/gen/var/textureStore/486500.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/486500.wgsl.expected.glsl
@@ -2,8 +2,8 @@
 
 layout(rgba32i) uniform highp writeonly iimage3D arg_0;
 void textureStore_486500() {
-  uvec3 arg_1 = uvec3(0u);
-  ivec4 arg_2 = ivec4(0);
+  uvec3 arg_1 = uvec3(1u);
+  ivec4 arg_2 = ivec4(1);
   imageStore(arg_0, ivec3(arg_1), arg_2);
 }
 
@@ -25,8 +25,8 @@
 
 layout(rgba32i) uniform highp writeonly iimage3D arg_0;
 void textureStore_486500() {
-  uvec3 arg_1 = uvec3(0u);
-  ivec4 arg_2 = ivec4(0);
+  uvec3 arg_1 = uvec3(1u);
+  ivec4 arg_2 = ivec4(1);
   imageStore(arg_0, ivec3(arg_1), arg_2);
 }
 
@@ -42,8 +42,8 @@
 
 layout(rgba32i) uniform highp writeonly iimage3D arg_0;
 void textureStore_486500() {
-  uvec3 arg_1 = uvec3(0u);
-  ivec4 arg_2 = ivec4(0);
+  uvec3 arg_1 = uvec3(1u);
+  ivec4 arg_2 = ivec4(1);
   imageStore(arg_0, ivec3(arg_1), arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/486500.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/486500.wgsl.expected.msl
index 0a5e6da..c0a151f 100644
--- a/test/tint/builtins/gen/var/textureStore/486500.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/486500.wgsl.expected.msl
@@ -2,8 +2,8 @@
 
 using namespace metal;
 void textureStore_486500(texture3d<int, access::write> tint_symbol_1) {
-  uint3 arg_1 = uint3(0u);
-  int4 arg_2 = int4(0);
+  uint3 arg_1 = uint3(1u);
+  int4 arg_2 = int4(1);
   tint_symbol_1.write(arg_2, uint3(arg_1));
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/486500.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/486500.wgsl.expected.spvasm
index 7b219df..cdc1231 100644
--- a/test/tint/builtins/gen/var/textureStore/486500.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/486500.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 48
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -41,44 +41,48 @@
          %13 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
-         %19 = OpConstantNull %v3uint
+     %uint_1 = OpConstant %uint 1
+         %20 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
 %_ptr_Function_v3uint = OpTypePointer Function %v3uint
+         %23 = OpConstantNull %v3uint
       %v4int = OpTypeVector %int 4
-         %23 = OpConstantNull %v4int
+      %int_1 = OpConstant %int 1
+         %26 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %30 = OpTypeFunction %v4float
+         %29 = OpConstantNull %v4int
+         %34 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_486500 = OpFunction %void None %13
          %16 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v3uint Function %19
-      %arg_2 = OpVariable %_ptr_Function_v4int Function %23
-               OpStore %arg_1 %19
-               OpStore %arg_2 %23
-         %27 = OpLoad %11 %arg_0
-         %28 = OpLoad %v3uint %arg_1
-         %29 = OpLoad %v4int %arg_2
-               OpImageWrite %27 %28 %29
+      %arg_1 = OpVariable %_ptr_Function_v3uint Function %23
+      %arg_2 = OpVariable %_ptr_Function_v4int Function %29
+               OpStore %arg_1 %20
+               OpStore %arg_2 %26
+         %31 = OpLoad %11 %arg_0
+         %32 = OpLoad %v3uint %arg_1
+         %33 = OpLoad %v4int %arg_2
+               OpImageWrite %31 %32 %33
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %30
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_486500
+%vertex_main_inner = OpFunction %v4float None %34
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureStore_486500
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %36
+         %39 = OpLabel
+         %40 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %40
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_486500
+         %43 = OpLabel
+         %44 = OpFunctionCall %void %textureStore_486500
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_486500
+         %46 = OpLabel
+         %47 = OpFunctionCall %void %textureStore_486500
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/486500.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/486500.wgsl.expected.wgsl
index 8a03a81..bea8b44 100644
--- a/test/tint/builtins/gen/var/textureStore/486500.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/486500.wgsl.expected.wgsl
@@ -1,8 +1,8 @@
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rgba32sint, write>;
 
 fn textureStore_486500() {
-  var arg_1 = vec3<u32>();
-  var arg_2 = vec4<i32>();
+  var arg_1 = vec3<u32>(1u);
+  var arg_2 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/4c454f.wgsl b/test/tint/builtins/gen/var/textureStore/4c454f.wgsl
index 940719b..accfa13 100644
--- a/test/tint/builtins/gen/var/textureStore/4c454f.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/4c454f.wgsl
@@ -24,9 +24,9 @@
 
 // fn textureStore(texture: texture_storage_2d_array<rg32sint, write>, coords: vec2<u32>, array_index: u32, value: vec4<i32>)
 fn textureStore_4c454f() {
-  var arg_1 = vec2<u32>();
+  var arg_1 = vec2<u32>(1u);
   var arg_2 = 1u;
-  var arg_3 = vec4<i32>();
+  var arg_3 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/4c454f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/4c454f.wgsl.expected.dxc.hlsl
index 0fcd9a8..113213f 100644
--- a/test/tint/builtins/gen/var/textureStore/4c454f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/4c454f.wgsl.expected.dxc.hlsl
@@ -1,9 +1,9 @@
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 void textureStore_4c454f() {
-  uint2 arg_1 = (0u).xx;
+  uint2 arg_1 = (1u).xx;
   uint arg_2 = 1u;
-  int4 arg_3 = (0).xxxx;
+  int4 arg_3 = (1).xxxx;
   arg_0[uint3(arg_1, arg_2)] = arg_3;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/4c454f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/4c454f.wgsl.expected.fxc.hlsl
index 0fcd9a8..113213f 100644
--- a/test/tint/builtins/gen/var/textureStore/4c454f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/4c454f.wgsl.expected.fxc.hlsl
@@ -1,9 +1,9 @@
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 void textureStore_4c454f() {
-  uint2 arg_1 = (0u).xx;
+  uint2 arg_1 = (1u).xx;
   uint arg_2 = 1u;
-  int4 arg_3 = (0).xxxx;
+  int4 arg_3 = (1).xxxx;
   arg_0[uint3(arg_1, arg_2)] = arg_3;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/4c454f.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/4c454f.wgsl.expected.msl
index 03846dc..6cff1e9 100644
--- a/test/tint/builtins/gen/var/textureStore/4c454f.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/4c454f.wgsl.expected.msl
@@ -2,9 +2,9 @@
 
 using namespace metal;
 void textureStore_4c454f(texture2d_array<int, access::write> tint_symbol_1) {
-  uint2 arg_1 = uint2(0u);
+  uint2 arg_1 = uint2(1u);
   uint arg_2 = 1u;
-  int4 arg_3 = int4(0);
+  int4 arg_3 = int4(1);
   tint_symbol_1.write(arg_3, uint2(arg_1), arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/4c454f.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/4c454f.wgsl.expected.spvasm
index 39e9b43..593df6e 100644
--- a/test/tint/builtins/gen/var/textureStore/4c454f.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/4c454f.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 53
+; Bound: 56
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
@@ -43,54 +43,57 @@
          %13 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
-         %19 = OpConstantNull %v2uint
-%_ptr_Function_v2uint = OpTypePointer Function %v2uint
      %uint_1 = OpConstant %uint 1
+         %20 = OpConstantComposite %v2uint %uint_1 %uint_1
+%_ptr_Function_v2uint = OpTypePointer Function %v2uint
+         %23 = OpConstantNull %v2uint
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %25 = OpConstantNull %uint
+         %26 = OpConstantNull %uint
       %v4int = OpTypeVector %int 4
-         %27 = OpConstantNull %v4int
+      %int_1 = OpConstant %int 1
+         %29 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
+         %32 = OpConstantNull %v4int
      %v3uint = OpTypeVector %uint 3
-         %39 = OpTypeFunction %v4float
+         %42 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_4c454f = OpFunction %void None %13
          %16 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2uint Function %19
-      %arg_2 = OpVariable %_ptr_Function_uint Function %25
-      %arg_3 = OpVariable %_ptr_Function_v4int Function %27
-               OpStore %arg_1 %19
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %23
+      %arg_2 = OpVariable %_ptr_Function_uint Function %26
+      %arg_3 = OpVariable %_ptr_Function_v4int Function %32
+               OpStore %arg_1 %20
                OpStore %arg_2 %uint_1
-               OpStore %arg_3 %27
-         %31 = OpLoad %11 %arg_0
-         %33 = OpLoad %v2uint %arg_1
-         %34 = OpCompositeExtract %uint %33 0
-         %35 = OpCompositeExtract %uint %33 1
-         %36 = OpLoad %uint %arg_2
-         %37 = OpCompositeConstruct %v3uint %34 %35 %36
-         %38 = OpLoad %v4int %arg_3
-               OpImageWrite %31 %37 %38
+               OpStore %arg_3 %29
+         %34 = OpLoad %11 %arg_0
+         %36 = OpLoad %v2uint %arg_1
+         %37 = OpCompositeExtract %uint %36 0
+         %38 = OpCompositeExtract %uint %36 1
+         %39 = OpLoad %uint %arg_2
+         %40 = OpCompositeConstruct %v3uint %37 %38 %39
+         %41 = OpLoad %v4int %arg_3
+               OpImageWrite %34 %40 %41
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %39
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureStore_4c454f
+%vertex_main_inner = OpFunction %v4float None %42
+         %44 = OpLabel
+         %45 = OpFunctionCall %void %textureStore_4c454f
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %44 = OpLabel
-         %45 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %45
+         %47 = OpLabel
+         %48 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %48
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %48 = OpLabel
-         %49 = OpFunctionCall %void %textureStore_4c454f
+         %51 = OpLabel
+         %52 = OpFunctionCall %void %textureStore_4c454f
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %51 = OpLabel
-         %52 = OpFunctionCall %void %textureStore_4c454f
+         %54 = OpLabel
+         %55 = OpFunctionCall %void %textureStore_4c454f
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/4c454f.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/4c454f.wgsl.expected.wgsl
index 59de4ec..29e2d28 100644
--- a/test/tint/builtins/gen/var/textureStore/4c454f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/4c454f.wgsl.expected.wgsl
@@ -1,9 +1,9 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rg32sint, write>;
 
 fn textureStore_4c454f() {
-  var arg_1 = vec2<u32>();
+  var arg_1 = vec2<u32>(1u);
   var arg_2 = 1u;
-  var arg_3 = vec4<i32>();
+  var arg_3 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/4d359d.wgsl b/test/tint/builtins/gen/var/textureStore/4d359d.wgsl
index e17d98f..65547f4 100644
--- a/test/tint/builtins/gen/var/textureStore/4d359d.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/4d359d.wgsl
@@ -24,9 +24,9 @@
 
 // fn textureStore(texture: texture_storage_2d_array<rg32uint, write>, coords: vec2<u32>, array_index: i32, value: vec4<u32>)
 fn textureStore_4d359d() {
-  var arg_1 = vec2<u32>();
+  var arg_1 = vec2<u32>(1u);
   var arg_2 = 1i;
-  var arg_3 = vec4<u32>();
+  var arg_3 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/4d359d.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/4d359d.wgsl.expected.dxc.hlsl
index e10746c..82e2e58 100644
--- a/test/tint/builtins/gen/var/textureStore/4d359d.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/4d359d.wgsl.expected.dxc.hlsl
@@ -1,9 +1,9 @@
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 void textureStore_4d359d() {
-  uint2 arg_1 = (0u).xx;
+  uint2 arg_1 = (1u).xx;
   int arg_2 = 1;
-  uint4 arg_3 = (0u).xxxx;
+  uint4 arg_3 = (1u).xxxx;
   arg_0[uint3(arg_1, uint(arg_2))] = arg_3;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/4d359d.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/4d359d.wgsl.expected.fxc.hlsl
index e10746c..82e2e58 100644
--- a/test/tint/builtins/gen/var/textureStore/4d359d.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/4d359d.wgsl.expected.fxc.hlsl
@@ -1,9 +1,9 @@
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 void textureStore_4d359d() {
-  uint2 arg_1 = (0u).xx;
+  uint2 arg_1 = (1u).xx;
   int arg_2 = 1;
-  uint4 arg_3 = (0u).xxxx;
+  uint4 arg_3 = (1u).xxxx;
   arg_0[uint3(arg_1, uint(arg_2))] = arg_3;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/4d359d.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/4d359d.wgsl.expected.msl
index 4ac18bc..7f3c1b3 100644
--- a/test/tint/builtins/gen/var/textureStore/4d359d.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/4d359d.wgsl.expected.msl
@@ -2,9 +2,9 @@
 
 using namespace metal;
 void textureStore_4d359d(texture2d_array<uint, access::write> tint_symbol_1) {
-  uint2 arg_1 = uint2(0u);
+  uint2 arg_1 = uint2(1u);
   int arg_2 = 1;
-  uint4 arg_3 = uint4(0u);
+  uint4 arg_3 = uint4(1u);
   tint_symbol_1.write(arg_3, uint2(arg_1), arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/4d359d.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/4d359d.wgsl.expected.spvasm
index 76be202..9db4aeb 100644
--- a/test/tint/builtins/gen/var/textureStore/4d359d.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/4d359d.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 54
+; Bound: 57
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
@@ -42,56 +42,59 @@
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
      %v2uint = OpTypeVector %uint 2
-         %18 = OpConstantNull %v2uint
+     %uint_1 = OpConstant %uint 1
+         %19 = OpConstantComposite %v2uint %uint_1 %uint_1
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
+         %22 = OpConstantNull %v2uint
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
-         %25 = OpConstantNull %int
+         %27 = OpConstantNull %int
      %v4uint = OpTypeVector %uint 4
-         %27 = OpConstantNull %v4uint
+         %29 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
+         %32 = OpConstantNull %v4uint
      %v3uint = OpTypeVector %uint 3
-         %40 = OpTypeFunction %v4float
+         %43 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_4d359d = OpFunction %void None %13
          %16 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2uint Function %18
-      %arg_2 = OpVariable %_ptr_Function_int Function %25
-      %arg_3 = OpVariable %_ptr_Function_v4uint Function %27
-               OpStore %arg_1 %18
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %22
+      %arg_2 = OpVariable %_ptr_Function_int Function %27
+      %arg_3 = OpVariable %_ptr_Function_v4uint Function %32
+               OpStore %arg_1 %19
                OpStore %arg_2 %int_1
-               OpStore %arg_3 %27
-         %31 = OpLoad %11 %arg_0
-         %33 = OpLoad %v2uint %arg_1
-         %34 = OpCompositeExtract %uint %33 0
-         %35 = OpCompositeExtract %uint %33 1
-         %37 = OpLoad %int %arg_2
-         %36 = OpBitcast %uint %37
-         %38 = OpCompositeConstruct %v3uint %34 %35 %36
-         %39 = OpLoad %v4uint %arg_3
-               OpImageWrite %31 %38 %39
+               OpStore %arg_3 %29
+         %34 = OpLoad %11 %arg_0
+         %36 = OpLoad %v2uint %arg_1
+         %37 = OpCompositeExtract %uint %36 0
+         %38 = OpCompositeExtract %uint %36 1
+         %40 = OpLoad %int %arg_2
+         %39 = OpBitcast %uint %40
+         %41 = OpCompositeConstruct %v3uint %37 %38 %39
+         %42 = OpLoad %v4uint %arg_3
+               OpImageWrite %34 %41 %42
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %40
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_4d359d
+%vertex_main_inner = OpFunction %v4float None %43
+         %45 = OpLabel
+         %46 = OpFunctionCall %void %textureStore_4d359d
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %45 = OpLabel
-         %46 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %46
+         %48 = OpLabel
+         %49 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %49
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %49 = OpLabel
-         %50 = OpFunctionCall %void %textureStore_4d359d
+         %52 = OpLabel
+         %53 = OpFunctionCall %void %textureStore_4d359d
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %52 = OpLabel
-         %53 = OpFunctionCall %void %textureStore_4d359d
+         %55 = OpLabel
+         %56 = OpFunctionCall %void %textureStore_4d359d
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/4d359d.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/4d359d.wgsl.expected.wgsl
index 19c62dd..ae6aa59 100644
--- a/test/tint/builtins/gen/var/textureStore/4d359d.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/4d359d.wgsl.expected.wgsl
@@ -1,9 +1,9 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rg32uint, write>;
 
 fn textureStore_4d359d() {
-  var arg_1 = vec2<u32>();
+  var arg_1 = vec2<u32>(1u);
   var arg_2 = 1i;
-  var arg_3 = vec4<u32>();
+  var arg_3 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/4fc057.wgsl b/test/tint/builtins/gen/var/textureStore/4fc057.wgsl
index fbe26ee..8a4c152 100644
--- a/test/tint/builtins/gen/var/textureStore/4fc057.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/4fc057.wgsl
@@ -24,9 +24,9 @@
 
 // fn textureStore(texture: texture_storage_2d_array<rgba8snorm, write>, coords: vec2<i32>, array_index: i32, value: vec4<f32>)
 fn textureStore_4fc057() {
-  var arg_1 = vec2<i32>();
+  var arg_1 = vec2<i32>(1i);
   var arg_2 = 1i;
-  var arg_3 = vec4<f32>();
+  var arg_3 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/4fc057.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/4fc057.wgsl.expected.dxc.hlsl
index ee4b614..3ad78a4 100644
--- a/test/tint/builtins/gen/var/textureStore/4fc057.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/4fc057.wgsl.expected.dxc.hlsl
@@ -1,9 +1,9 @@
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 void textureStore_4fc057() {
-  int2 arg_1 = (0).xx;
+  int2 arg_1 = (1).xx;
   int arg_2 = 1;
-  float4 arg_3 = (0.0f).xxxx;
+  float4 arg_3 = (1.0f).xxxx;
   arg_0[int3(arg_1, arg_2)] = arg_3;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/4fc057.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/4fc057.wgsl.expected.fxc.hlsl
index ee4b614..3ad78a4 100644
--- a/test/tint/builtins/gen/var/textureStore/4fc057.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/4fc057.wgsl.expected.fxc.hlsl
@@ -1,9 +1,9 @@
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 void textureStore_4fc057() {
-  int2 arg_1 = (0).xx;
+  int2 arg_1 = (1).xx;
   int arg_2 = 1;
-  float4 arg_3 = (0.0f).xxxx;
+  float4 arg_3 = (1.0f).xxxx;
   arg_0[int3(arg_1, arg_2)] = arg_3;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/4fc057.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/4fc057.wgsl.expected.glsl
index 039e0bb..a61ea79 100644
--- a/test/tint/builtins/gen/var/textureStore/4fc057.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/4fc057.wgsl.expected.glsl
@@ -2,9 +2,9 @@
 
 layout(rgba8_snorm) uniform highp writeonly image2DArray arg_0;
 void textureStore_4fc057() {
-  ivec2 arg_1 = ivec2(0);
+  ivec2 arg_1 = ivec2(1);
   int arg_2 = 1;
-  vec4 arg_3 = vec4(0.0f);
+  vec4 arg_3 = vec4(1.0f);
   imageStore(arg_0, ivec3(arg_1, arg_2), arg_3);
 }
 
@@ -26,9 +26,9 @@
 
 layout(rgba8_snorm) uniform highp writeonly image2DArray arg_0;
 void textureStore_4fc057() {
-  ivec2 arg_1 = ivec2(0);
+  ivec2 arg_1 = ivec2(1);
   int arg_2 = 1;
-  vec4 arg_3 = vec4(0.0f);
+  vec4 arg_3 = vec4(1.0f);
   imageStore(arg_0, ivec3(arg_1, arg_2), arg_3);
 }
 
@@ -44,9 +44,9 @@
 
 layout(rgba8_snorm) uniform highp writeonly image2DArray arg_0;
 void textureStore_4fc057() {
-  ivec2 arg_1 = ivec2(0);
+  ivec2 arg_1 = ivec2(1);
   int arg_2 = 1;
-  vec4 arg_3 = vec4(0.0f);
+  vec4 arg_3 = vec4(1.0f);
   imageStore(arg_0, ivec3(arg_1, arg_2), arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/4fc057.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/4fc057.wgsl.expected.msl
index c7d5dbb..d3ed57b 100644
--- a/test/tint/builtins/gen/var/textureStore/4fc057.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/4fc057.wgsl.expected.msl
@@ -2,9 +2,9 @@
 
 using namespace metal;
 void textureStore_4fc057(texture2d_array<float, access::write> tint_symbol_1) {
-  int2 arg_1 = int2(0);
+  int2 arg_1 = int2(1);
   int arg_2 = 1;
-  float4 arg_3 = float4(0.0f);
+  float4 arg_3 = float4(1.0f);
   tint_symbol_1.write(arg_3, uint2(arg_1), arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/4fc057.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/4fc057.wgsl.expected.spvasm
index 710a585..f3cfd34 100644
--- a/test/tint/builtins/gen/var/textureStore/4fc057.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/4fc057.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 50
+; Bound: 52
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -41,52 +41,54 @@
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
-         %18 = OpConstantNull %v2int
-%_ptr_Function_v2int = OpTypePointer Function %v2int
       %int_1 = OpConstant %int 1
+         %19 = OpConstantComposite %v2int %int_1 %int_1
+%_ptr_Function_v2int = OpTypePointer Function %v2int
+         %22 = OpConstantNull %v2int
 %_ptr_Function_int = OpTypePointer Function %int
-         %24 = OpConstantNull %int
+         %25 = OpConstantNull %int
+    %float_1 = OpConstant %float 1
+         %27 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
       %v3int = OpTypeVector %int 3
-         %36 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %39 = OpTypeFunction %v4float
 %textureStore_4fc057 = OpFunction %void None %12
          %15 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2int Function %18
-      %arg_2 = OpVariable %_ptr_Function_int Function %24
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %22
+      %arg_2 = OpVariable %_ptr_Function_int Function %25
       %arg_3 = OpVariable %_ptr_Function_v4float Function %5
-               OpStore %arg_1 %18
+               OpStore %arg_1 %19
                OpStore %arg_2 %int_1
-               OpStore %arg_3 %5
-         %28 = OpLoad %11 %arg_0
-         %30 = OpLoad %v2int %arg_1
-         %31 = OpCompositeExtract %int %30 0
-         %32 = OpCompositeExtract %int %30 1
-         %33 = OpLoad %int %arg_2
-         %34 = OpCompositeConstruct %v3int %31 %32 %33
-         %35 = OpLoad %v4float %arg_3
-               OpImageWrite %28 %34 %35
+               OpStore %arg_3 %27
+         %31 = OpLoad %11 %arg_0
+         %33 = OpLoad %v2int %arg_1
+         %34 = OpCompositeExtract %int %33 0
+         %35 = OpCompositeExtract %int %33 1
+         %36 = OpLoad %int %arg_2
+         %37 = OpCompositeConstruct %v3int %34 %35 %36
+         %38 = OpLoad %v4float %arg_3
+               OpImageWrite %31 %37 %38
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %36
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureStore_4fc057
+%vertex_main_inner = OpFunction %v4float None %39
+         %41 = OpLabel
+         %42 = OpFunctionCall %void %textureStore_4fc057
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %41 = OpLabel
-         %42 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %42
+         %44 = OpLabel
+         %45 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %45
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %45 = OpLabel
-         %46 = OpFunctionCall %void %textureStore_4fc057
+         %47 = OpLabel
+         %48 = OpFunctionCall %void %textureStore_4fc057
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %48 = OpLabel
-         %49 = OpFunctionCall %void %textureStore_4fc057
+         %50 = OpLabel
+         %51 = OpFunctionCall %void %textureStore_4fc057
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/4fc057.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/4fc057.wgsl.expected.wgsl
index 6cf8c4d..caa193c 100644
--- a/test/tint/builtins/gen/var/textureStore/4fc057.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/4fc057.wgsl.expected.wgsl
@@ -1,9 +1,9 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba8snorm, write>;
 
 fn textureStore_4fc057() {
-  var arg_1 = vec2<i32>();
+  var arg_1 = vec2<i32>(1i);
   var arg_2 = 1i;
-  var arg_3 = vec4<f32>();
+  var arg_3 = vec4<f32>(1.0f);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/506a71.wgsl b/test/tint/builtins/gen/var/textureStore/506a71.wgsl
index bea26ba..623255e 100644
--- a/test/tint/builtins/gen/var/textureStore/506a71.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/506a71.wgsl
@@ -24,8 +24,8 @@
 
 // fn textureStore(texture: texture_storage_2d<rg32uint, write>, coords: vec2<u32>, value: vec4<u32>)
 fn textureStore_506a71() {
-  var arg_1 = vec2<u32>();
-  var arg_2 = vec4<u32>();
+  var arg_1 = vec2<u32>(1u);
+  var arg_2 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/506a71.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/506a71.wgsl.expected.dxc.hlsl
index f75271e..8f0257d 100644
--- a/test/tint/builtins/gen/var/textureStore/506a71.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/506a71.wgsl.expected.dxc.hlsl
@@ -1,8 +1,8 @@
 RWTexture2D<uint4> arg_0 : register(u0, space1);
 
 void textureStore_506a71() {
-  uint2 arg_1 = (0u).xx;
-  uint4 arg_2 = (0u).xxxx;
+  uint2 arg_1 = (1u).xx;
+  uint4 arg_2 = (1u).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/506a71.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/506a71.wgsl.expected.fxc.hlsl
index f75271e..8f0257d 100644
--- a/test/tint/builtins/gen/var/textureStore/506a71.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/506a71.wgsl.expected.fxc.hlsl
@@ -1,8 +1,8 @@
 RWTexture2D<uint4> arg_0 : register(u0, space1);
 
 void textureStore_506a71() {
-  uint2 arg_1 = (0u).xx;
-  uint4 arg_2 = (0u).xxxx;
+  uint2 arg_1 = (1u).xx;
+  uint4 arg_2 = (1u).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/506a71.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/506a71.wgsl.expected.msl
index 1e20709..d55f5d8 100644
--- a/test/tint/builtins/gen/var/textureStore/506a71.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/506a71.wgsl.expected.msl
@@ -2,8 +2,8 @@
 
 using namespace metal;
 void textureStore_506a71(texture2d<uint, access::write> tint_symbol_1) {
-  uint2 arg_1 = uint2(0u);
-  uint4 arg_2 = uint4(0u);
+  uint2 arg_1 = uint2(1u);
+  uint4 arg_2 = uint4(1u);
   tint_symbol_1.write(arg_2, uint2(arg_1));
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/506a71.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/506a71.wgsl.expected.spvasm
index 1f5a9ed..ec7574f 100644
--- a/test/tint/builtins/gen/var/textureStore/506a71.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/506a71.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 43
+; Bound: 46
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
@@ -41,44 +41,47 @@
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
      %v2uint = OpTypeVector %uint 2
-         %18 = OpConstantNull %v2uint
+     %uint_1 = OpConstant %uint 1
+         %19 = OpConstantComposite %v2uint %uint_1 %uint_1
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
+         %22 = OpConstantNull %v2uint
      %v4uint = OpTypeVector %uint 4
-         %22 = OpConstantNull %v4uint
+         %24 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %29 = OpTypeFunction %v4float
+         %27 = OpConstantNull %v4uint
+         %32 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_506a71 = OpFunction %void None %13
          %16 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2uint Function %18
-      %arg_2 = OpVariable %_ptr_Function_v4uint Function %22
-               OpStore %arg_1 %18
-               OpStore %arg_2 %22
-         %26 = OpLoad %11 %arg_0
-         %27 = OpLoad %v2uint %arg_1
-         %28 = OpLoad %v4uint %arg_2
-               OpImageWrite %26 %27 %28
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %22
+      %arg_2 = OpVariable %_ptr_Function_v4uint Function %27
+               OpStore %arg_1 %19
+               OpStore %arg_2 %24
+         %29 = OpLoad %11 %arg_0
+         %30 = OpLoad %v2uint %arg_1
+         %31 = OpLoad %v4uint %arg_2
+               OpImageWrite %29 %30 %31
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %29
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %textureStore_506a71
+%vertex_main_inner = OpFunction %v4float None %32
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %textureStore_506a71
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %34 = OpLabel
-         %35 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %35
+         %37 = OpLabel
+         %38 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %38
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureStore_506a71
+         %41 = OpLabel
+         %42 = OpFunctionCall %void %textureStore_506a71
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureStore_506a71
+         %44 = OpLabel
+         %45 = OpFunctionCall %void %textureStore_506a71
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/506a71.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/506a71.wgsl.expected.wgsl
index 476f5e7..a8dea61 100644
--- a/test/tint/builtins/gen/var/textureStore/506a71.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/506a71.wgsl.expected.wgsl
@@ -1,8 +1,8 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rg32uint, write>;
 
 fn textureStore_506a71() {
-  var arg_1 = vec2<u32>();
-  var arg_2 = vec4<u32>();
+  var arg_1 = vec2<u32>(1u);
+  var arg_2 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/52f503.wgsl b/test/tint/builtins/gen/var/textureStore/52f503.wgsl
index d2c793f..c9fefce 100644
--- a/test/tint/builtins/gen/var/textureStore/52f503.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/52f503.wgsl
@@ -24,8 +24,8 @@
 
 // fn textureStore(texture: texture_storage_2d<rgba32sint, write>, coords: vec2<u32>, value: vec4<i32>)
 fn textureStore_52f503() {
-  var arg_1 = vec2<u32>();
-  var arg_2 = vec4<i32>();
+  var arg_1 = vec2<u32>(1u);
+  var arg_2 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/52f503.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/52f503.wgsl.expected.dxc.hlsl
index 04d3b35..7093326 100644
--- a/test/tint/builtins/gen/var/textureStore/52f503.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/52f503.wgsl.expected.dxc.hlsl
@@ -1,8 +1,8 @@
 RWTexture2D<int4> arg_0 : register(u0, space1);
 
 void textureStore_52f503() {
-  uint2 arg_1 = (0u).xx;
-  int4 arg_2 = (0).xxxx;
+  uint2 arg_1 = (1u).xx;
+  int4 arg_2 = (1).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/52f503.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/52f503.wgsl.expected.fxc.hlsl
index 04d3b35..7093326 100644
--- a/test/tint/builtins/gen/var/textureStore/52f503.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/52f503.wgsl.expected.fxc.hlsl
@@ -1,8 +1,8 @@
 RWTexture2D<int4> arg_0 : register(u0, space1);
 
 void textureStore_52f503() {
-  uint2 arg_1 = (0u).xx;
-  int4 arg_2 = (0).xxxx;
+  uint2 arg_1 = (1u).xx;
+  int4 arg_2 = (1).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/52f503.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/52f503.wgsl.expected.glsl
index c606352..d548df8 100644
--- a/test/tint/builtins/gen/var/textureStore/52f503.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/52f503.wgsl.expected.glsl
@@ -2,8 +2,8 @@
 
 layout(rgba32i) uniform highp writeonly iimage2D arg_0;
 void textureStore_52f503() {
-  uvec2 arg_1 = uvec2(0u);
-  ivec4 arg_2 = ivec4(0);
+  uvec2 arg_1 = uvec2(1u);
+  ivec4 arg_2 = ivec4(1);
   imageStore(arg_0, ivec2(arg_1), arg_2);
 }
 
@@ -25,8 +25,8 @@
 
 layout(rgba32i) uniform highp writeonly iimage2D arg_0;
 void textureStore_52f503() {
-  uvec2 arg_1 = uvec2(0u);
-  ivec4 arg_2 = ivec4(0);
+  uvec2 arg_1 = uvec2(1u);
+  ivec4 arg_2 = ivec4(1);
   imageStore(arg_0, ivec2(arg_1), arg_2);
 }
 
@@ -42,8 +42,8 @@
 
 layout(rgba32i) uniform highp writeonly iimage2D arg_0;
 void textureStore_52f503() {
-  uvec2 arg_1 = uvec2(0u);
-  ivec4 arg_2 = ivec4(0);
+  uvec2 arg_1 = uvec2(1u);
+  ivec4 arg_2 = ivec4(1);
   imageStore(arg_0, ivec2(arg_1), arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/52f503.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/52f503.wgsl.expected.msl
index 7bdcade..210163c 100644
--- a/test/tint/builtins/gen/var/textureStore/52f503.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/52f503.wgsl.expected.msl
@@ -2,8 +2,8 @@
 
 using namespace metal;
 void textureStore_52f503(texture2d<int, access::write> tint_symbol_1) {
-  uint2 arg_1 = uint2(0u);
-  int4 arg_2 = int4(0);
+  uint2 arg_1 = uint2(1u);
+  int4 arg_2 = int4(1);
   tint_symbol_1.write(arg_2, uint2(arg_1));
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/52f503.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/52f503.wgsl.expected.spvasm
index 73053df..b5967d5 100644
--- a/test/tint/builtins/gen/var/textureStore/52f503.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/52f503.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 48
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -41,44 +41,48 @@
          %13 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
-         %19 = OpConstantNull %v2uint
+     %uint_1 = OpConstant %uint 1
+         %20 = OpConstantComposite %v2uint %uint_1 %uint_1
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
+         %23 = OpConstantNull %v2uint
       %v4int = OpTypeVector %int 4
-         %23 = OpConstantNull %v4int
+      %int_1 = OpConstant %int 1
+         %26 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %30 = OpTypeFunction %v4float
+         %29 = OpConstantNull %v4int
+         %34 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_52f503 = OpFunction %void None %13
          %16 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2uint Function %19
-      %arg_2 = OpVariable %_ptr_Function_v4int Function %23
-               OpStore %arg_1 %19
-               OpStore %arg_2 %23
-         %27 = OpLoad %11 %arg_0
-         %28 = OpLoad %v2uint %arg_1
-         %29 = OpLoad %v4int %arg_2
-               OpImageWrite %27 %28 %29
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %23
+      %arg_2 = OpVariable %_ptr_Function_v4int Function %29
+               OpStore %arg_1 %20
+               OpStore %arg_2 %26
+         %31 = OpLoad %11 %arg_0
+         %32 = OpLoad %v2uint %arg_1
+         %33 = OpLoad %v4int %arg_2
+               OpImageWrite %31 %32 %33
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %30
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_52f503
+%vertex_main_inner = OpFunction %v4float None %34
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureStore_52f503
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %36
+         %39 = OpLabel
+         %40 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %40
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_52f503
+         %43 = OpLabel
+         %44 = OpFunctionCall %void %textureStore_52f503
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_52f503
+         %46 = OpLabel
+         %47 = OpFunctionCall %void %textureStore_52f503
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/52f503.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/52f503.wgsl.expected.wgsl
index e313fcc..5fafa0d 100644
--- a/test/tint/builtins/gen/var/textureStore/52f503.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/52f503.wgsl.expected.wgsl
@@ -1,8 +1,8 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba32sint, write>;
 
 fn textureStore_52f503() {
-  var arg_1 = vec2<u32>();
-  var arg_2 = vec4<i32>();
+  var arg_1 = vec2<u32>(1u);
+  var arg_2 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/5841f8.wgsl b/test/tint/builtins/gen/var/textureStore/5841f8.wgsl
index 3aaeaa0..eaab31e 100644
--- a/test/tint/builtins/gen/var/textureStore/5841f8.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/5841f8.wgsl
@@ -24,9 +24,9 @@
 
 // fn textureStore(texture: texture_storage_2d_array<rgba32float, write>, coords: vec2<u32>, array_index: u32, value: vec4<f32>)
 fn textureStore_5841f8() {
-  var arg_1 = vec2<u32>();
+  var arg_1 = vec2<u32>(1u);
   var arg_2 = 1u;
-  var arg_3 = vec4<f32>();
+  var arg_3 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/5841f8.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/5841f8.wgsl.expected.dxc.hlsl
index a823f25..eadabe6 100644
--- a/test/tint/builtins/gen/var/textureStore/5841f8.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/5841f8.wgsl.expected.dxc.hlsl
@@ -1,9 +1,9 @@
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 void textureStore_5841f8() {
-  uint2 arg_1 = (0u).xx;
+  uint2 arg_1 = (1u).xx;
   uint arg_2 = 1u;
-  float4 arg_3 = (0.0f).xxxx;
+  float4 arg_3 = (1.0f).xxxx;
   arg_0[uint3(arg_1, arg_2)] = arg_3;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/5841f8.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/5841f8.wgsl.expected.fxc.hlsl
index a823f25..eadabe6 100644
--- a/test/tint/builtins/gen/var/textureStore/5841f8.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/5841f8.wgsl.expected.fxc.hlsl
@@ -1,9 +1,9 @@
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 void textureStore_5841f8() {
-  uint2 arg_1 = (0u).xx;
+  uint2 arg_1 = (1u).xx;
   uint arg_2 = 1u;
-  float4 arg_3 = (0.0f).xxxx;
+  float4 arg_3 = (1.0f).xxxx;
   arg_0[uint3(arg_1, arg_2)] = arg_3;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/5841f8.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/5841f8.wgsl.expected.glsl
index ae1b777..fc888dd 100644
--- a/test/tint/builtins/gen/var/textureStore/5841f8.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/5841f8.wgsl.expected.glsl
@@ -2,9 +2,9 @@
 
 layout(rgba32f) uniform highp writeonly image2DArray arg_0;
 void textureStore_5841f8() {
-  uvec2 arg_1 = uvec2(0u);
+  uvec2 arg_1 = uvec2(1u);
   uint arg_2 = 1u;
-  vec4 arg_3 = vec4(0.0f);
+  vec4 arg_3 = vec4(1.0f);
   imageStore(arg_0, ivec3(uvec3(arg_1, arg_2)), arg_3);
 }
 
@@ -26,9 +26,9 @@
 
 layout(rgba32f) uniform highp writeonly image2DArray arg_0;
 void textureStore_5841f8() {
-  uvec2 arg_1 = uvec2(0u);
+  uvec2 arg_1 = uvec2(1u);
   uint arg_2 = 1u;
-  vec4 arg_3 = vec4(0.0f);
+  vec4 arg_3 = vec4(1.0f);
   imageStore(arg_0, ivec3(uvec3(arg_1, arg_2)), arg_3);
 }
 
@@ -44,9 +44,9 @@
 
 layout(rgba32f) uniform highp writeonly image2DArray arg_0;
 void textureStore_5841f8() {
-  uvec2 arg_1 = uvec2(0u);
+  uvec2 arg_1 = uvec2(1u);
   uint arg_2 = 1u;
-  vec4 arg_3 = vec4(0.0f);
+  vec4 arg_3 = vec4(1.0f);
   imageStore(arg_0, ivec3(uvec3(arg_1, arg_2)), arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/5841f8.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/5841f8.wgsl.expected.msl
index 7f3b6ae..598bc90 100644
--- a/test/tint/builtins/gen/var/textureStore/5841f8.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/5841f8.wgsl.expected.msl
@@ -2,9 +2,9 @@
 
 using namespace metal;
 void textureStore_5841f8(texture2d_array<float, access::write> tint_symbol_1) {
-  uint2 arg_1 = uint2(0u);
+  uint2 arg_1 = uint2(1u);
   uint arg_2 = 1u;
-  float4 arg_3 = float4(0.0f);
+  float4 arg_3 = float4(1.0f);
   tint_symbol_1.write(arg_3, uint2(arg_1), arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/5841f8.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/5841f8.wgsl.expected.spvasm
index ad31cfd..c12f982 100644
--- a/test/tint/builtins/gen/var/textureStore/5841f8.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/5841f8.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 50
+; Bound: 52
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -41,52 +41,54 @@
          %12 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
-         %18 = OpConstantNull %v2uint
-%_ptr_Function_v2uint = OpTypePointer Function %v2uint
      %uint_1 = OpConstant %uint 1
+         %19 = OpConstantComposite %v2uint %uint_1 %uint_1
+%_ptr_Function_v2uint = OpTypePointer Function %v2uint
+         %22 = OpConstantNull %v2uint
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %24 = OpConstantNull %uint
+         %25 = OpConstantNull %uint
+    %float_1 = OpConstant %float 1
+         %27 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
      %v3uint = OpTypeVector %uint 3
-         %36 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %39 = OpTypeFunction %v4float
 %textureStore_5841f8 = OpFunction %void None %12
          %15 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2uint Function %18
-      %arg_2 = OpVariable %_ptr_Function_uint Function %24
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %22
+      %arg_2 = OpVariable %_ptr_Function_uint Function %25
       %arg_3 = OpVariable %_ptr_Function_v4float Function %5
-               OpStore %arg_1 %18
+               OpStore %arg_1 %19
                OpStore %arg_2 %uint_1
-               OpStore %arg_3 %5
-         %28 = OpLoad %11 %arg_0
-         %30 = OpLoad %v2uint %arg_1
-         %31 = OpCompositeExtract %uint %30 0
-         %32 = OpCompositeExtract %uint %30 1
-         %33 = OpLoad %uint %arg_2
-         %34 = OpCompositeConstruct %v3uint %31 %32 %33
-         %35 = OpLoad %v4float %arg_3
-               OpImageWrite %28 %34 %35
+               OpStore %arg_3 %27
+         %31 = OpLoad %11 %arg_0
+         %33 = OpLoad %v2uint %arg_1
+         %34 = OpCompositeExtract %uint %33 0
+         %35 = OpCompositeExtract %uint %33 1
+         %36 = OpLoad %uint %arg_2
+         %37 = OpCompositeConstruct %v3uint %34 %35 %36
+         %38 = OpLoad %v4float %arg_3
+               OpImageWrite %31 %37 %38
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %36
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureStore_5841f8
+%vertex_main_inner = OpFunction %v4float None %39
+         %41 = OpLabel
+         %42 = OpFunctionCall %void %textureStore_5841f8
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %41 = OpLabel
-         %42 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %42
+         %44 = OpLabel
+         %45 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %45
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %45 = OpLabel
-         %46 = OpFunctionCall %void %textureStore_5841f8
+         %47 = OpLabel
+         %48 = OpFunctionCall %void %textureStore_5841f8
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %48 = OpLabel
-         %49 = OpFunctionCall %void %textureStore_5841f8
+         %50 = OpLabel
+         %51 = OpFunctionCall %void %textureStore_5841f8
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/5841f8.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/5841f8.wgsl.expected.wgsl
index 6e57d8d..bd76946 100644
--- a/test/tint/builtins/gen/var/textureStore/5841f8.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/5841f8.wgsl.expected.wgsl
@@ -1,9 +1,9 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba32float, write>;
 
 fn textureStore_5841f8() {
-  var arg_1 = vec2<u32>();
+  var arg_1 = vec2<u32>(1u);
   var arg_2 = 1u;
-  var arg_3 = vec4<f32>();
+  var arg_3 = vec4<f32>(1.0f);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/59a0ab.wgsl b/test/tint/builtins/gen/var/textureStore/59a0ab.wgsl
index bd75214..affb43a 100644
--- a/test/tint/builtins/gen/var/textureStore/59a0ab.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/59a0ab.wgsl
@@ -24,9 +24,9 @@
 
 // fn textureStore(texture: texture_storage_2d_array<rgba8snorm, write>, coords: vec2<u32>, array_index: i32, value: vec4<f32>)
 fn textureStore_59a0ab() {
-  var arg_1 = vec2<u32>();
+  var arg_1 = vec2<u32>(1u);
   var arg_2 = 1i;
-  var arg_3 = vec4<f32>();
+  var arg_3 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/59a0ab.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/59a0ab.wgsl.expected.dxc.hlsl
index 717254e..88f5a2d 100644
--- a/test/tint/builtins/gen/var/textureStore/59a0ab.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/59a0ab.wgsl.expected.dxc.hlsl
@@ -1,9 +1,9 @@
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 void textureStore_59a0ab() {
-  uint2 arg_1 = (0u).xx;
+  uint2 arg_1 = (1u).xx;
   int arg_2 = 1;
-  float4 arg_3 = (0.0f).xxxx;
+  float4 arg_3 = (1.0f).xxxx;
   arg_0[uint3(arg_1, uint(arg_2))] = arg_3;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/59a0ab.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/59a0ab.wgsl.expected.fxc.hlsl
index 717254e..88f5a2d 100644
--- a/test/tint/builtins/gen/var/textureStore/59a0ab.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/59a0ab.wgsl.expected.fxc.hlsl
@@ -1,9 +1,9 @@
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 void textureStore_59a0ab() {
-  uint2 arg_1 = (0u).xx;
+  uint2 arg_1 = (1u).xx;
   int arg_2 = 1;
-  float4 arg_3 = (0.0f).xxxx;
+  float4 arg_3 = (1.0f).xxxx;
   arg_0[uint3(arg_1, uint(arg_2))] = arg_3;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/59a0ab.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/59a0ab.wgsl.expected.glsl
index 3cdcbf3..442c0c8 100644
--- a/test/tint/builtins/gen/var/textureStore/59a0ab.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/59a0ab.wgsl.expected.glsl
@@ -2,9 +2,9 @@
 
 layout(rgba8_snorm) uniform highp writeonly image2DArray arg_0;
 void textureStore_59a0ab() {
-  uvec2 arg_1 = uvec2(0u);
+  uvec2 arg_1 = uvec2(1u);
   int arg_2 = 1;
-  vec4 arg_3 = vec4(0.0f);
+  vec4 arg_3 = vec4(1.0f);
   imageStore(arg_0, ivec3(uvec3(arg_1, uint(arg_2))), arg_3);
 }
 
@@ -26,9 +26,9 @@
 
 layout(rgba8_snorm) uniform highp writeonly image2DArray arg_0;
 void textureStore_59a0ab() {
-  uvec2 arg_1 = uvec2(0u);
+  uvec2 arg_1 = uvec2(1u);
   int arg_2 = 1;
-  vec4 arg_3 = vec4(0.0f);
+  vec4 arg_3 = vec4(1.0f);
   imageStore(arg_0, ivec3(uvec3(arg_1, uint(arg_2))), arg_3);
 }
 
@@ -44,9 +44,9 @@
 
 layout(rgba8_snorm) uniform highp writeonly image2DArray arg_0;
 void textureStore_59a0ab() {
-  uvec2 arg_1 = uvec2(0u);
+  uvec2 arg_1 = uvec2(1u);
   int arg_2 = 1;
-  vec4 arg_3 = vec4(0.0f);
+  vec4 arg_3 = vec4(1.0f);
   imageStore(arg_0, ivec3(uvec3(arg_1, uint(arg_2))), arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/59a0ab.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/59a0ab.wgsl.expected.msl
index a22db66..15898bf 100644
--- a/test/tint/builtins/gen/var/textureStore/59a0ab.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/59a0ab.wgsl.expected.msl
@@ -2,9 +2,9 @@
 
 using namespace metal;
 void textureStore_59a0ab(texture2d_array<float, access::write> tint_symbol_1) {
-  uint2 arg_1 = uint2(0u);
+  uint2 arg_1 = uint2(1u);
   int arg_2 = 1;
-  float4 arg_3 = float4(0.0f);
+  float4 arg_3 = float4(1.0f);
   tint_symbol_1.write(arg_3, uint2(arg_1), arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/59a0ab.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/59a0ab.wgsl.expected.spvasm
index 3427873..4e2f6e7 100644
--- a/test/tint/builtins/gen/var/textureStore/59a0ab.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/59a0ab.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 52
+; Bound: 55
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -41,54 +41,57 @@
          %12 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
-         %18 = OpConstantNull %v2uint
+     %uint_1 = OpConstant %uint 1
+         %19 = OpConstantComposite %v2uint %uint_1 %uint_1
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
+         %22 = OpConstantNull %v2uint
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
-         %25 = OpConstantNull %int
+         %27 = OpConstantNull %int
+    %float_1 = OpConstant %float 1
+         %29 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
      %v3uint = OpTypeVector %uint 3
-         %38 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %42 = OpTypeFunction %v4float
 %textureStore_59a0ab = OpFunction %void None %12
          %15 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2uint Function %18
-      %arg_2 = OpVariable %_ptr_Function_int Function %25
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %22
+      %arg_2 = OpVariable %_ptr_Function_int Function %27
       %arg_3 = OpVariable %_ptr_Function_v4float Function %5
-               OpStore %arg_1 %18
+               OpStore %arg_1 %19
                OpStore %arg_2 %int_1
-               OpStore %arg_3 %5
-         %29 = OpLoad %11 %arg_0
-         %31 = OpLoad %v2uint %arg_1
-         %32 = OpCompositeExtract %uint %31 0
-         %33 = OpCompositeExtract %uint %31 1
-         %35 = OpLoad %int %arg_2
-         %34 = OpBitcast %uint %35
-         %36 = OpCompositeConstruct %v3uint %32 %33 %34
-         %37 = OpLoad %v4float %arg_3
-               OpImageWrite %29 %36 %37
+               OpStore %arg_3 %29
+         %33 = OpLoad %11 %arg_0
+         %35 = OpLoad %v2uint %arg_1
+         %36 = OpCompositeExtract %uint %35 0
+         %37 = OpCompositeExtract %uint %35 1
+         %39 = OpLoad %int %arg_2
+         %38 = OpBitcast %uint %39
+         %40 = OpCompositeConstruct %v3uint %36 %37 %38
+         %41 = OpLoad %v4float %arg_3
+               OpImageWrite %33 %40 %41
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %38
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureStore_59a0ab
+%vertex_main_inner = OpFunction %v4float None %42
+         %44 = OpLabel
+         %45 = OpFunctionCall %void %textureStore_59a0ab
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %43 = OpLabel
-         %44 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %44
+         %47 = OpLabel
+         %48 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %48
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %47 = OpLabel
-         %48 = OpFunctionCall %void %textureStore_59a0ab
+         %50 = OpLabel
+         %51 = OpFunctionCall %void %textureStore_59a0ab
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %50 = OpLabel
-         %51 = OpFunctionCall %void %textureStore_59a0ab
+         %53 = OpLabel
+         %54 = OpFunctionCall %void %textureStore_59a0ab
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/59a0ab.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/59a0ab.wgsl.expected.wgsl
index a481390..90e9ec8 100644
--- a/test/tint/builtins/gen/var/textureStore/59a0ab.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/59a0ab.wgsl.expected.wgsl
@@ -1,9 +1,9 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba8snorm, write>;
 
 fn textureStore_59a0ab() {
-  var arg_1 = vec2<u32>();
+  var arg_1 = vec2<u32>(1u);
   var arg_2 = 1i;
-  var arg_3 = vec4<f32>();
+  var arg_3 = vec4<f32>(1.0f);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/5a2f8f.wgsl b/test/tint/builtins/gen/var/textureStore/5a2f8f.wgsl
index 8eba27a..7c83c5a 100644
--- a/test/tint/builtins/gen/var/textureStore/5a2f8f.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/5a2f8f.wgsl
@@ -25,7 +25,7 @@
 // fn textureStore(texture: texture_storage_1d<rgba16sint, write>, coords: i32, value: vec4<i32>)
 fn textureStore_5a2f8f() {
   var arg_1 = 1i;
-  var arg_2 = vec4<i32>();
+  var arg_2 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/5a2f8f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/5a2f8f.wgsl.expected.dxc.hlsl
index f600277..bbcf0cf 100644
--- a/test/tint/builtins/gen/var/textureStore/5a2f8f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/5a2f8f.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 
 void textureStore_5a2f8f() {
   int arg_1 = 1;
-  int4 arg_2 = (0).xxxx;
+  int4 arg_2 = (1).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/5a2f8f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/5a2f8f.wgsl.expected.fxc.hlsl
index f600277..bbcf0cf 100644
--- a/test/tint/builtins/gen/var/textureStore/5a2f8f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/5a2f8f.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 
 void textureStore_5a2f8f() {
   int arg_1 = 1;
-  int4 arg_2 = (0).xxxx;
+  int4 arg_2 = (1).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/5a2f8f.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/5a2f8f.wgsl.expected.msl
index 7ffe1a4..3368907 100644
--- a/test/tint/builtins/gen/var/textureStore/5a2f8f.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/5a2f8f.wgsl.expected.msl
@@ -3,7 +3,7 @@
 using namespace metal;
 void textureStore_5a2f8f(texture1d<int, access::write> tint_symbol_1) {
   int arg_1 = 1;
-  int4 arg_2 = int4(0);
+  int4 arg_2 = int4(1);
   tint_symbol_1.write(arg_2, uint(arg_1));
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/5a2f8f.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/5a2f8f.wgsl.expected.spvasm
index 8fd6437..d9aa5fa 100644
--- a/test/tint/builtins/gen/var/textureStore/5a2f8f.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/5a2f8f.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 43
+; Bound: 44
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
@@ -44,41 +44,42 @@
 %_ptr_Function_int = OpTypePointer Function %int
          %20 = OpConstantNull %int
       %v4int = OpTypeVector %int 4
-         %22 = OpConstantNull %v4int
+         %22 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %29 = OpTypeFunction %v4float
+         %25 = OpConstantNull %v4int
+         %30 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_5a2f8f = OpFunction %void None %13
          %16 = OpLabel
       %arg_1 = OpVariable %_ptr_Function_int Function %20
-      %arg_2 = OpVariable %_ptr_Function_v4int Function %22
+      %arg_2 = OpVariable %_ptr_Function_v4int Function %25
                OpStore %arg_1 %int_1
                OpStore %arg_2 %22
-         %26 = OpLoad %11 %arg_0
-         %27 = OpLoad %int %arg_1
-         %28 = OpLoad %v4int %arg_2
-               OpImageWrite %26 %27 %28
+         %27 = OpLoad %11 %arg_0
+         %28 = OpLoad %int %arg_1
+         %29 = OpLoad %v4int %arg_2
+               OpImageWrite %27 %28 %29
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %29
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %textureStore_5a2f8f
+%vertex_main_inner = OpFunction %v4float None %30
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %textureStore_5a2f8f
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %34 = OpLabel
-         %35 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %35
+         %35 = OpLabel
+         %36 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %36
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureStore_5a2f8f
+         %39 = OpLabel
+         %40 = OpFunctionCall %void %textureStore_5a2f8f
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureStore_5a2f8f
+         %42 = OpLabel
+         %43 = OpFunctionCall %void %textureStore_5a2f8f
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/5a2f8f.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/5a2f8f.wgsl.expected.wgsl
index 444c40b..99ec886 100644
--- a/test/tint/builtins/gen/var/textureStore/5a2f8f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/5a2f8f.wgsl.expected.wgsl
@@ -2,7 +2,7 @@
 
 fn textureStore_5a2f8f() {
   var arg_1 = 1i;
-  var arg_2 = vec4<i32>();
+  var arg_2 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/5bc4f3.wgsl b/test/tint/builtins/gen/var/textureStore/5bc4f3.wgsl
index 12d19f5..241e4cc 100644
--- a/test/tint/builtins/gen/var/textureStore/5bc4f3.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/5bc4f3.wgsl
@@ -24,9 +24,9 @@
 
 // fn textureStore(texture: texture_storage_2d_array<rg32uint, write>, coords: vec2<u32>, array_index: u32, value: vec4<u32>)
 fn textureStore_5bc4f3() {
-  var arg_1 = vec2<u32>();
+  var arg_1 = vec2<u32>(1u);
   var arg_2 = 1u;
-  var arg_3 = vec4<u32>();
+  var arg_3 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/5bc4f3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/5bc4f3.wgsl.expected.dxc.hlsl
index fb3394f..d5e0bc4 100644
--- a/test/tint/builtins/gen/var/textureStore/5bc4f3.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/5bc4f3.wgsl.expected.dxc.hlsl
@@ -1,9 +1,9 @@
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 void textureStore_5bc4f3() {
-  uint2 arg_1 = (0u).xx;
+  uint2 arg_1 = (1u).xx;
   uint arg_2 = 1u;
-  uint4 arg_3 = (0u).xxxx;
+  uint4 arg_3 = (1u).xxxx;
   arg_0[uint3(arg_1, arg_2)] = arg_3;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/5bc4f3.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/5bc4f3.wgsl.expected.fxc.hlsl
index fb3394f..d5e0bc4 100644
--- a/test/tint/builtins/gen/var/textureStore/5bc4f3.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/5bc4f3.wgsl.expected.fxc.hlsl
@@ -1,9 +1,9 @@
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 void textureStore_5bc4f3() {
-  uint2 arg_1 = (0u).xx;
+  uint2 arg_1 = (1u).xx;
   uint arg_2 = 1u;
-  uint4 arg_3 = (0u).xxxx;
+  uint4 arg_3 = (1u).xxxx;
   arg_0[uint3(arg_1, arg_2)] = arg_3;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/5bc4f3.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/5bc4f3.wgsl.expected.msl
index 7983b81..f210ad5 100644
--- a/test/tint/builtins/gen/var/textureStore/5bc4f3.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/5bc4f3.wgsl.expected.msl
@@ -2,9 +2,9 @@
 
 using namespace metal;
 void textureStore_5bc4f3(texture2d_array<uint, access::write> tint_symbol_1) {
-  uint2 arg_1 = uint2(0u);
+  uint2 arg_1 = uint2(1u);
   uint arg_2 = 1u;
-  uint4 arg_3 = uint4(0u);
+  uint4 arg_3 = uint4(1u);
   tint_symbol_1.write(arg_3, uint2(arg_1), arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/5bc4f3.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/5bc4f3.wgsl.expected.spvasm
index 6603a0f..ee825f4 100644
--- a/test/tint/builtins/gen/var/textureStore/5bc4f3.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/5bc4f3.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 52
+; Bound: 54
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
@@ -42,54 +42,56 @@
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
      %v2uint = OpTypeVector %uint 2
-         %18 = OpConstantNull %v2uint
-%_ptr_Function_v2uint = OpTypePointer Function %v2uint
      %uint_1 = OpConstant %uint 1
+         %19 = OpConstantComposite %v2uint %uint_1 %uint_1
+%_ptr_Function_v2uint = OpTypePointer Function %v2uint
+         %22 = OpConstantNull %v2uint
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %24 = OpConstantNull %uint
+         %25 = OpConstantNull %uint
      %v4uint = OpTypeVector %uint 4
-         %26 = OpConstantNull %v4uint
+         %27 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
+         %30 = OpConstantNull %v4uint
      %v3uint = OpTypeVector %uint 3
-         %38 = OpTypeFunction %v4float
+         %40 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_5bc4f3 = OpFunction %void None %13
          %16 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2uint Function %18
-      %arg_2 = OpVariable %_ptr_Function_uint Function %24
-      %arg_3 = OpVariable %_ptr_Function_v4uint Function %26
-               OpStore %arg_1 %18
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %22
+      %arg_2 = OpVariable %_ptr_Function_uint Function %25
+      %arg_3 = OpVariable %_ptr_Function_v4uint Function %30
+               OpStore %arg_1 %19
                OpStore %arg_2 %uint_1
-               OpStore %arg_3 %26
-         %30 = OpLoad %11 %arg_0
-         %32 = OpLoad %v2uint %arg_1
-         %33 = OpCompositeExtract %uint %32 0
-         %34 = OpCompositeExtract %uint %32 1
-         %35 = OpLoad %uint %arg_2
-         %36 = OpCompositeConstruct %v3uint %33 %34 %35
-         %37 = OpLoad %v4uint %arg_3
-               OpImageWrite %30 %36 %37
+               OpStore %arg_3 %27
+         %32 = OpLoad %11 %arg_0
+         %34 = OpLoad %v2uint %arg_1
+         %35 = OpCompositeExtract %uint %34 0
+         %36 = OpCompositeExtract %uint %34 1
+         %37 = OpLoad %uint %arg_2
+         %38 = OpCompositeConstruct %v3uint %35 %36 %37
+         %39 = OpLoad %v4uint %arg_3
+               OpImageWrite %32 %38 %39
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %38
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureStore_5bc4f3
+%vertex_main_inner = OpFunction %v4float None %40
+         %42 = OpLabel
+         %43 = OpFunctionCall %void %textureStore_5bc4f3
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %43 = OpLabel
-         %44 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %44
+         %45 = OpLabel
+         %46 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %46
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %47 = OpLabel
-         %48 = OpFunctionCall %void %textureStore_5bc4f3
+         %49 = OpLabel
+         %50 = OpFunctionCall %void %textureStore_5bc4f3
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %50 = OpLabel
-         %51 = OpFunctionCall %void %textureStore_5bc4f3
+         %52 = OpLabel
+         %53 = OpFunctionCall %void %textureStore_5bc4f3
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/5bc4f3.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/5bc4f3.wgsl.expected.wgsl
index 1c223d6..e1578ba 100644
--- a/test/tint/builtins/gen/var/textureStore/5bc4f3.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/5bc4f3.wgsl.expected.wgsl
@@ -1,9 +1,9 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rg32uint, write>;
 
 fn textureStore_5bc4f3() {
-  var arg_1 = vec2<u32>();
+  var arg_1 = vec2<u32>(1u);
   var arg_2 = 1u;
-  var arg_3 = vec4<u32>();
+  var arg_3 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/5ddc61.wgsl b/test/tint/builtins/gen/var/textureStore/5ddc61.wgsl
index 6638789..93a6d15 100644
--- a/test/tint/builtins/gen/var/textureStore/5ddc61.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/5ddc61.wgsl
@@ -24,9 +24,9 @@
 
 // fn textureStore(texture: texture_storage_2d_array<rgba8sint, write>, coords: vec2<i32>, array_index: u32, value: vec4<i32>)
 fn textureStore_5ddc61() {
-  var arg_1 = vec2<i32>();
+  var arg_1 = vec2<i32>(1i);
   var arg_2 = 1u;
-  var arg_3 = vec4<i32>();
+  var arg_3 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/5ddc61.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/5ddc61.wgsl.expected.dxc.hlsl
index 6126253..cac835d 100644
--- a/test/tint/builtins/gen/var/textureStore/5ddc61.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/5ddc61.wgsl.expected.dxc.hlsl
@@ -1,9 +1,9 @@
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 void textureStore_5ddc61() {
-  int2 arg_1 = (0).xx;
+  int2 arg_1 = (1).xx;
   uint arg_2 = 1u;
-  int4 arg_3 = (0).xxxx;
+  int4 arg_3 = (1).xxxx;
   arg_0[int3(arg_1, int(arg_2))] = arg_3;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/5ddc61.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/5ddc61.wgsl.expected.fxc.hlsl
index 6126253..cac835d 100644
--- a/test/tint/builtins/gen/var/textureStore/5ddc61.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/5ddc61.wgsl.expected.fxc.hlsl
@@ -1,9 +1,9 @@
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 void textureStore_5ddc61() {
-  int2 arg_1 = (0).xx;
+  int2 arg_1 = (1).xx;
   uint arg_2 = 1u;
-  int4 arg_3 = (0).xxxx;
+  int4 arg_3 = (1).xxxx;
   arg_0[int3(arg_1, int(arg_2))] = arg_3;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/5ddc61.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/5ddc61.wgsl.expected.glsl
index 49630cf..df933c9 100644
--- a/test/tint/builtins/gen/var/textureStore/5ddc61.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/5ddc61.wgsl.expected.glsl
@@ -2,9 +2,9 @@
 
 layout(rgba8i) uniform highp writeonly iimage2DArray arg_0;
 void textureStore_5ddc61() {
-  ivec2 arg_1 = ivec2(0);
+  ivec2 arg_1 = ivec2(1);
   uint arg_2 = 1u;
-  ivec4 arg_3 = ivec4(0);
+  ivec4 arg_3 = ivec4(1);
   imageStore(arg_0, ivec3(arg_1, int(arg_2)), arg_3);
 }
 
@@ -26,9 +26,9 @@
 
 layout(rgba8i) uniform highp writeonly iimage2DArray arg_0;
 void textureStore_5ddc61() {
-  ivec2 arg_1 = ivec2(0);
+  ivec2 arg_1 = ivec2(1);
   uint arg_2 = 1u;
-  ivec4 arg_3 = ivec4(0);
+  ivec4 arg_3 = ivec4(1);
   imageStore(arg_0, ivec3(arg_1, int(arg_2)), arg_3);
 }
 
@@ -44,9 +44,9 @@
 
 layout(rgba8i) uniform highp writeonly iimage2DArray arg_0;
 void textureStore_5ddc61() {
-  ivec2 arg_1 = ivec2(0);
+  ivec2 arg_1 = ivec2(1);
   uint arg_2 = 1u;
-  ivec4 arg_3 = ivec4(0);
+  ivec4 arg_3 = ivec4(1);
   imageStore(arg_0, ivec3(arg_1, int(arg_2)), arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/5ddc61.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/5ddc61.wgsl.expected.msl
index d02d76e..da2667b 100644
--- a/test/tint/builtins/gen/var/textureStore/5ddc61.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/5ddc61.wgsl.expected.msl
@@ -2,9 +2,9 @@
 
 using namespace metal;
 void textureStore_5ddc61(texture2d_array<int, access::write> tint_symbol_1) {
-  int2 arg_1 = int2(0);
+  int2 arg_1 = int2(1);
   uint arg_2 = 1u;
-  int4 arg_3 = int4(0);
+  int4 arg_3 = int4(1);
   tint_symbol_1.write(arg_3, uint2(arg_1), arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/5ddc61.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/5ddc61.wgsl.expected.spvasm
index 962f216..e0e9b55 100644
--- a/test/tint/builtins/gen/var/textureStore/5ddc61.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/5ddc61.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 54
+; Bound: 57
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -41,56 +41,59 @@
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
       %v2int = OpTypeVector %int 2
-         %18 = OpConstantNull %v2int
+      %int_1 = OpConstant %int 1
+         %19 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v2int = OpTypePointer Function %v2int
+         %22 = OpConstantNull %v2int
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %25 = OpConstantNull %uint
+         %27 = OpConstantNull %uint
       %v4int = OpTypeVector %int 4
-         %27 = OpConstantNull %v4int
+         %29 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
+         %32 = OpConstantNull %v4int
       %v3int = OpTypeVector %int 3
-         %40 = OpTypeFunction %v4float
+         %43 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_5ddc61 = OpFunction %void None %13
          %16 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2int Function %18
-      %arg_2 = OpVariable %_ptr_Function_uint Function %25
-      %arg_3 = OpVariable %_ptr_Function_v4int Function %27
-               OpStore %arg_1 %18
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %22
+      %arg_2 = OpVariable %_ptr_Function_uint Function %27
+      %arg_3 = OpVariable %_ptr_Function_v4int Function %32
+               OpStore %arg_1 %19
                OpStore %arg_2 %uint_1
-               OpStore %arg_3 %27
-         %31 = OpLoad %11 %arg_0
-         %33 = OpLoad %v2int %arg_1
-         %34 = OpCompositeExtract %int %33 0
-         %35 = OpCompositeExtract %int %33 1
-         %37 = OpLoad %uint %arg_2
-         %36 = OpBitcast %int %37
-         %38 = OpCompositeConstruct %v3int %34 %35 %36
-         %39 = OpLoad %v4int %arg_3
-               OpImageWrite %31 %38 %39
+               OpStore %arg_3 %29
+         %34 = OpLoad %11 %arg_0
+         %36 = OpLoad %v2int %arg_1
+         %37 = OpCompositeExtract %int %36 0
+         %38 = OpCompositeExtract %int %36 1
+         %40 = OpLoad %uint %arg_2
+         %39 = OpBitcast %int %40
+         %41 = OpCompositeConstruct %v3int %37 %38 %39
+         %42 = OpLoad %v4int %arg_3
+               OpImageWrite %34 %41 %42
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %40
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_5ddc61
+%vertex_main_inner = OpFunction %v4float None %43
+         %45 = OpLabel
+         %46 = OpFunctionCall %void %textureStore_5ddc61
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %45 = OpLabel
-         %46 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %46
+         %48 = OpLabel
+         %49 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %49
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %49 = OpLabel
-         %50 = OpFunctionCall %void %textureStore_5ddc61
+         %52 = OpLabel
+         %53 = OpFunctionCall %void %textureStore_5ddc61
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %52 = OpLabel
-         %53 = OpFunctionCall %void %textureStore_5ddc61
+         %55 = OpLabel
+         %56 = OpFunctionCall %void %textureStore_5ddc61
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/5ddc61.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/5ddc61.wgsl.expected.wgsl
index dc049db..cd6c1f4 100644
--- a/test/tint/builtins/gen/var/textureStore/5ddc61.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/5ddc61.wgsl.expected.wgsl
@@ -1,9 +1,9 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba8sint, write>;
 
 fn textureStore_5ddc61() {
-  var arg_1 = vec2<i32>();
+  var arg_1 = vec2<i32>(1i);
   var arg_2 = 1u;
-  var arg_3 = vec4<i32>();
+  var arg_3 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/5f9a49.wgsl b/test/tint/builtins/gen/var/textureStore/5f9a49.wgsl
index 3cb1f9e..bcc40ed 100644
--- a/test/tint/builtins/gen/var/textureStore/5f9a49.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/5f9a49.wgsl
@@ -24,9 +24,9 @@
 
 // fn textureStore(texture: texture_storage_2d_array<rgba8snorm, write>, coords: vec2<u32>, array_index: u32, value: vec4<f32>)
 fn textureStore_5f9a49() {
-  var arg_1 = vec2<u32>();
+  var arg_1 = vec2<u32>(1u);
   var arg_2 = 1u;
-  var arg_3 = vec4<f32>();
+  var arg_3 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/5f9a49.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/5f9a49.wgsl.expected.dxc.hlsl
index 37a52f0..9f0aa65 100644
--- a/test/tint/builtins/gen/var/textureStore/5f9a49.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/5f9a49.wgsl.expected.dxc.hlsl
@@ -1,9 +1,9 @@
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 void textureStore_5f9a49() {
-  uint2 arg_1 = (0u).xx;
+  uint2 arg_1 = (1u).xx;
   uint arg_2 = 1u;
-  float4 arg_3 = (0.0f).xxxx;
+  float4 arg_3 = (1.0f).xxxx;
   arg_0[uint3(arg_1, arg_2)] = arg_3;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/5f9a49.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/5f9a49.wgsl.expected.fxc.hlsl
index 37a52f0..9f0aa65 100644
--- a/test/tint/builtins/gen/var/textureStore/5f9a49.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/5f9a49.wgsl.expected.fxc.hlsl
@@ -1,9 +1,9 @@
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 void textureStore_5f9a49() {
-  uint2 arg_1 = (0u).xx;
+  uint2 arg_1 = (1u).xx;
   uint arg_2 = 1u;
-  float4 arg_3 = (0.0f).xxxx;
+  float4 arg_3 = (1.0f).xxxx;
   arg_0[uint3(arg_1, arg_2)] = arg_3;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/5f9a49.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/5f9a49.wgsl.expected.glsl
index 648faf6..be9a922 100644
--- a/test/tint/builtins/gen/var/textureStore/5f9a49.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/5f9a49.wgsl.expected.glsl
@@ -2,9 +2,9 @@
 
 layout(rgba8_snorm) uniform highp writeonly image2DArray arg_0;
 void textureStore_5f9a49() {
-  uvec2 arg_1 = uvec2(0u);
+  uvec2 arg_1 = uvec2(1u);
   uint arg_2 = 1u;
-  vec4 arg_3 = vec4(0.0f);
+  vec4 arg_3 = vec4(1.0f);
   imageStore(arg_0, ivec3(uvec3(arg_1, arg_2)), arg_3);
 }
 
@@ -26,9 +26,9 @@
 
 layout(rgba8_snorm) uniform highp writeonly image2DArray arg_0;
 void textureStore_5f9a49() {
-  uvec2 arg_1 = uvec2(0u);
+  uvec2 arg_1 = uvec2(1u);
   uint arg_2 = 1u;
-  vec4 arg_3 = vec4(0.0f);
+  vec4 arg_3 = vec4(1.0f);
   imageStore(arg_0, ivec3(uvec3(arg_1, arg_2)), arg_3);
 }
 
@@ -44,9 +44,9 @@
 
 layout(rgba8_snorm) uniform highp writeonly image2DArray arg_0;
 void textureStore_5f9a49() {
-  uvec2 arg_1 = uvec2(0u);
+  uvec2 arg_1 = uvec2(1u);
   uint arg_2 = 1u;
-  vec4 arg_3 = vec4(0.0f);
+  vec4 arg_3 = vec4(1.0f);
   imageStore(arg_0, ivec3(uvec3(arg_1, arg_2)), arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/5f9a49.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/5f9a49.wgsl.expected.msl
index add811e..22d41be 100644
--- a/test/tint/builtins/gen/var/textureStore/5f9a49.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/5f9a49.wgsl.expected.msl
@@ -2,9 +2,9 @@
 
 using namespace metal;
 void textureStore_5f9a49(texture2d_array<float, access::write> tint_symbol_1) {
-  uint2 arg_1 = uint2(0u);
+  uint2 arg_1 = uint2(1u);
   uint arg_2 = 1u;
-  float4 arg_3 = float4(0.0f);
+  float4 arg_3 = float4(1.0f);
   tint_symbol_1.write(arg_3, uint2(arg_1), arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/5f9a49.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/5f9a49.wgsl.expected.spvasm
index 435a41b..7a17377 100644
--- a/test/tint/builtins/gen/var/textureStore/5f9a49.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/5f9a49.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 50
+; Bound: 52
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -41,52 +41,54 @@
          %12 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
-         %18 = OpConstantNull %v2uint
-%_ptr_Function_v2uint = OpTypePointer Function %v2uint
      %uint_1 = OpConstant %uint 1
+         %19 = OpConstantComposite %v2uint %uint_1 %uint_1
+%_ptr_Function_v2uint = OpTypePointer Function %v2uint
+         %22 = OpConstantNull %v2uint
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %24 = OpConstantNull %uint
+         %25 = OpConstantNull %uint
+    %float_1 = OpConstant %float 1
+         %27 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
      %v3uint = OpTypeVector %uint 3
-         %36 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %39 = OpTypeFunction %v4float
 %textureStore_5f9a49 = OpFunction %void None %12
          %15 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2uint Function %18
-      %arg_2 = OpVariable %_ptr_Function_uint Function %24
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %22
+      %arg_2 = OpVariable %_ptr_Function_uint Function %25
       %arg_3 = OpVariable %_ptr_Function_v4float Function %5
-               OpStore %arg_1 %18
+               OpStore %arg_1 %19
                OpStore %arg_2 %uint_1
-               OpStore %arg_3 %5
-         %28 = OpLoad %11 %arg_0
-         %30 = OpLoad %v2uint %arg_1
-         %31 = OpCompositeExtract %uint %30 0
-         %32 = OpCompositeExtract %uint %30 1
-         %33 = OpLoad %uint %arg_2
-         %34 = OpCompositeConstruct %v3uint %31 %32 %33
-         %35 = OpLoad %v4float %arg_3
-               OpImageWrite %28 %34 %35
+               OpStore %arg_3 %27
+         %31 = OpLoad %11 %arg_0
+         %33 = OpLoad %v2uint %arg_1
+         %34 = OpCompositeExtract %uint %33 0
+         %35 = OpCompositeExtract %uint %33 1
+         %36 = OpLoad %uint %arg_2
+         %37 = OpCompositeConstruct %v3uint %34 %35 %36
+         %38 = OpLoad %v4float %arg_3
+               OpImageWrite %31 %37 %38
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %36
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureStore_5f9a49
+%vertex_main_inner = OpFunction %v4float None %39
+         %41 = OpLabel
+         %42 = OpFunctionCall %void %textureStore_5f9a49
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %41 = OpLabel
-         %42 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %42
+         %44 = OpLabel
+         %45 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %45
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %45 = OpLabel
-         %46 = OpFunctionCall %void %textureStore_5f9a49
+         %47 = OpLabel
+         %48 = OpFunctionCall %void %textureStore_5f9a49
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %48 = OpLabel
-         %49 = OpFunctionCall %void %textureStore_5f9a49
+         %50 = OpLabel
+         %51 = OpFunctionCall %void %textureStore_5f9a49
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/5f9a49.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/5f9a49.wgsl.expected.wgsl
index 951d70c..8bcf205 100644
--- a/test/tint/builtins/gen/var/textureStore/5f9a49.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/5f9a49.wgsl.expected.wgsl
@@ -1,9 +1,9 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba8snorm, write>;
 
 fn textureStore_5f9a49() {
-  var arg_1 = vec2<u32>();
+  var arg_1 = vec2<u32>(1u);
   var arg_2 = 1u;
-  var arg_3 = vec4<f32>();
+  var arg_3 = vec4<f32>(1.0f);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/602b5a.wgsl b/test/tint/builtins/gen/var/textureStore/602b5a.wgsl
index 94aaf8b..ee3842c 100644
--- a/test/tint/builtins/gen/var/textureStore/602b5a.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/602b5a.wgsl
@@ -25,7 +25,7 @@
 // fn textureStore(texture: texture_storage_1d<rg32float, write>, coords: u32, value: vec4<f32>)
 fn textureStore_602b5a() {
   var arg_1 = 1u;
-  var arg_2 = vec4<f32>();
+  var arg_2 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/602b5a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/602b5a.wgsl.expected.dxc.hlsl
index d65e673..11d300d 100644
--- a/test/tint/builtins/gen/var/textureStore/602b5a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/602b5a.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 
 void textureStore_602b5a() {
   uint arg_1 = 1u;
-  float4 arg_2 = (0.0f).xxxx;
+  float4 arg_2 = (1.0f).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/602b5a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/602b5a.wgsl.expected.fxc.hlsl
index d65e673..11d300d 100644
--- a/test/tint/builtins/gen/var/textureStore/602b5a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/602b5a.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 
 void textureStore_602b5a() {
   uint arg_1 = 1u;
-  float4 arg_2 = (0.0f).xxxx;
+  float4 arg_2 = (1.0f).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/602b5a.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/602b5a.wgsl.expected.msl
index f5d1847..ffc25e3 100644
--- a/test/tint/builtins/gen/var/textureStore/602b5a.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/602b5a.wgsl.expected.msl
@@ -3,7 +3,7 @@
 using namespace metal;
 void textureStore_602b5a(texture1d<float, access::write> tint_symbol_1) {
   uint arg_1 = 1u;
-  float4 arg_2 = float4(0.0f);
+  float4 arg_2 = float4(1.0f);
   tint_symbol_1.write(arg_2, uint(arg_1));
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/602b5a.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/602b5a.wgsl.expected.spvasm
index 534c8e1..46c41f9 100644
--- a/test/tint/builtins/gen/var/textureStore/602b5a.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/602b5a.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 41
+; Bound: 42
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
@@ -44,40 +44,41 @@
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
          %20 = OpConstantNull %uint
-%_ptr_Function_v4float = OpTypePointer Function %v4float
-         %27 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
+         %22 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%_ptr_Function_v4float = OpTypePointer Function %v4float
+         %29 = OpTypeFunction %v4float
 %textureStore_602b5a = OpFunction %void None %12
          %15 = OpLabel
       %arg_1 = OpVariable %_ptr_Function_uint Function %20
       %arg_2 = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %uint_1
-               OpStore %arg_2 %5
-         %24 = OpLoad %11 %arg_0
-         %25 = OpLoad %uint %arg_1
-         %26 = OpLoad %v4float %arg_2
-               OpImageWrite %24 %25 %26
+               OpStore %arg_2 %22
+         %26 = OpLoad %11 %arg_0
+         %27 = OpLoad %uint %arg_1
+         %28 = OpLoad %v4float %arg_2
+               OpImageWrite %26 %27 %28
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %27
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %textureStore_602b5a
+%vertex_main_inner = OpFunction %v4float None %29
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %textureStore_602b5a
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %32 = OpLabel
-         %33 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %33
+         %34 = OpLabel
+         %35 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %35
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_602b5a
+         %37 = OpLabel
+         %38 = OpFunctionCall %void %textureStore_602b5a
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_602b5a
+         %40 = OpLabel
+         %41 = OpFunctionCall %void %textureStore_602b5a
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/602b5a.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/602b5a.wgsl.expected.wgsl
index ca22b44..2bd7ed1 100644
--- a/test/tint/builtins/gen/var/textureStore/602b5a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/602b5a.wgsl.expected.wgsl
@@ -2,7 +2,7 @@
 
 fn textureStore_602b5a() {
   var arg_1 = 1u;
-  var arg_2 = vec4<f32>();
+  var arg_2 = vec4<f32>(1.0f);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/60975f.wgsl b/test/tint/builtins/gen/var/textureStore/60975f.wgsl
index e48ef90..68a1d18 100644
--- a/test/tint/builtins/gen/var/textureStore/60975f.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/60975f.wgsl
@@ -24,9 +24,9 @@
 
 // fn textureStore(texture: texture_storage_2d_array<rgba8unorm, write>, coords: vec2<i32>, array_index: i32, value: vec4<f32>)
 fn textureStore_60975f() {
-  var arg_1 = vec2<i32>();
+  var arg_1 = vec2<i32>(1i);
   var arg_2 = 1i;
-  var arg_3 = vec4<f32>();
+  var arg_3 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/60975f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/60975f.wgsl.expected.dxc.hlsl
index 15c91c6..5f9b1c9 100644
--- a/test/tint/builtins/gen/var/textureStore/60975f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/60975f.wgsl.expected.dxc.hlsl
@@ -1,9 +1,9 @@
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 void textureStore_60975f() {
-  int2 arg_1 = (0).xx;
+  int2 arg_1 = (1).xx;
   int arg_2 = 1;
-  float4 arg_3 = (0.0f).xxxx;
+  float4 arg_3 = (1.0f).xxxx;
   arg_0[int3(arg_1, arg_2)] = arg_3;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/60975f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/60975f.wgsl.expected.fxc.hlsl
index 15c91c6..5f9b1c9 100644
--- a/test/tint/builtins/gen/var/textureStore/60975f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/60975f.wgsl.expected.fxc.hlsl
@@ -1,9 +1,9 @@
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 void textureStore_60975f() {
-  int2 arg_1 = (0).xx;
+  int2 arg_1 = (1).xx;
   int arg_2 = 1;
-  float4 arg_3 = (0.0f).xxxx;
+  float4 arg_3 = (1.0f).xxxx;
   arg_0[int3(arg_1, arg_2)] = arg_3;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/60975f.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/60975f.wgsl.expected.glsl
index 0a167a8..9f73ce3 100644
--- a/test/tint/builtins/gen/var/textureStore/60975f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/60975f.wgsl.expected.glsl
@@ -2,9 +2,9 @@
 
 layout(rgba8) uniform highp writeonly image2DArray arg_0;
 void textureStore_60975f() {
-  ivec2 arg_1 = ivec2(0);
+  ivec2 arg_1 = ivec2(1);
   int arg_2 = 1;
-  vec4 arg_3 = vec4(0.0f);
+  vec4 arg_3 = vec4(1.0f);
   imageStore(arg_0, ivec3(arg_1, arg_2), arg_3);
 }
 
@@ -26,9 +26,9 @@
 
 layout(rgba8) uniform highp writeonly image2DArray arg_0;
 void textureStore_60975f() {
-  ivec2 arg_1 = ivec2(0);
+  ivec2 arg_1 = ivec2(1);
   int arg_2 = 1;
-  vec4 arg_3 = vec4(0.0f);
+  vec4 arg_3 = vec4(1.0f);
   imageStore(arg_0, ivec3(arg_1, arg_2), arg_3);
 }
 
@@ -44,9 +44,9 @@
 
 layout(rgba8) uniform highp writeonly image2DArray arg_0;
 void textureStore_60975f() {
-  ivec2 arg_1 = ivec2(0);
+  ivec2 arg_1 = ivec2(1);
   int arg_2 = 1;
-  vec4 arg_3 = vec4(0.0f);
+  vec4 arg_3 = vec4(1.0f);
   imageStore(arg_0, ivec3(arg_1, arg_2), arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/60975f.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/60975f.wgsl.expected.msl
index e70fe51..3882459 100644
--- a/test/tint/builtins/gen/var/textureStore/60975f.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/60975f.wgsl.expected.msl
@@ -2,9 +2,9 @@
 
 using namespace metal;
 void textureStore_60975f(texture2d_array<float, access::write> tint_symbol_1) {
-  int2 arg_1 = int2(0);
+  int2 arg_1 = int2(1);
   int arg_2 = 1;
-  float4 arg_3 = float4(0.0f);
+  float4 arg_3 = float4(1.0f);
   tint_symbol_1.write(arg_3, uint2(arg_1), arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/60975f.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/60975f.wgsl.expected.spvasm
index 7807d15..35a3e0d 100644
--- a/test/tint/builtins/gen/var/textureStore/60975f.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/60975f.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 50
+; Bound: 52
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -41,52 +41,54 @@
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
-         %18 = OpConstantNull %v2int
-%_ptr_Function_v2int = OpTypePointer Function %v2int
       %int_1 = OpConstant %int 1
+         %19 = OpConstantComposite %v2int %int_1 %int_1
+%_ptr_Function_v2int = OpTypePointer Function %v2int
+         %22 = OpConstantNull %v2int
 %_ptr_Function_int = OpTypePointer Function %int
-         %24 = OpConstantNull %int
+         %25 = OpConstantNull %int
+    %float_1 = OpConstant %float 1
+         %27 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
       %v3int = OpTypeVector %int 3
-         %36 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %39 = OpTypeFunction %v4float
 %textureStore_60975f = OpFunction %void None %12
          %15 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2int Function %18
-      %arg_2 = OpVariable %_ptr_Function_int Function %24
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %22
+      %arg_2 = OpVariable %_ptr_Function_int Function %25
       %arg_3 = OpVariable %_ptr_Function_v4float Function %5
-               OpStore %arg_1 %18
+               OpStore %arg_1 %19
                OpStore %arg_2 %int_1
-               OpStore %arg_3 %5
-         %28 = OpLoad %11 %arg_0
-         %30 = OpLoad %v2int %arg_1
-         %31 = OpCompositeExtract %int %30 0
-         %32 = OpCompositeExtract %int %30 1
-         %33 = OpLoad %int %arg_2
-         %34 = OpCompositeConstruct %v3int %31 %32 %33
-         %35 = OpLoad %v4float %arg_3
-               OpImageWrite %28 %34 %35
+               OpStore %arg_3 %27
+         %31 = OpLoad %11 %arg_0
+         %33 = OpLoad %v2int %arg_1
+         %34 = OpCompositeExtract %int %33 0
+         %35 = OpCompositeExtract %int %33 1
+         %36 = OpLoad %int %arg_2
+         %37 = OpCompositeConstruct %v3int %34 %35 %36
+         %38 = OpLoad %v4float %arg_3
+               OpImageWrite %31 %37 %38
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %36
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureStore_60975f
+%vertex_main_inner = OpFunction %v4float None %39
+         %41 = OpLabel
+         %42 = OpFunctionCall %void %textureStore_60975f
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %41 = OpLabel
-         %42 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %42
+         %44 = OpLabel
+         %45 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %45
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %45 = OpLabel
-         %46 = OpFunctionCall %void %textureStore_60975f
+         %47 = OpLabel
+         %48 = OpFunctionCall %void %textureStore_60975f
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %48 = OpLabel
-         %49 = OpFunctionCall %void %textureStore_60975f
+         %50 = OpLabel
+         %51 = OpFunctionCall %void %textureStore_60975f
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/60975f.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/60975f.wgsl.expected.wgsl
index bdd52cc..319364f 100644
--- a/test/tint/builtins/gen/var/textureStore/60975f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/60975f.wgsl.expected.wgsl
@@ -1,9 +1,9 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba8unorm, write>;
 
 fn textureStore_60975f() {
-  var arg_1 = vec2<i32>();
+  var arg_1 = vec2<i32>(1i);
   var arg_2 = 1i;
-  var arg_3 = vec4<f32>();
+  var arg_3 = vec4<f32>(1.0f);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/658a74.wgsl b/test/tint/builtins/gen/var/textureStore/658a74.wgsl
index eb287ee..88879be 100644
--- a/test/tint/builtins/gen/var/textureStore/658a74.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/658a74.wgsl
@@ -24,9 +24,9 @@
 
 // fn textureStore(texture: texture_storage_2d_array<rg32float, write>, coords: vec2<i32>, array_index: u32, value: vec4<f32>)
 fn textureStore_658a74() {
-  var arg_1 = vec2<i32>();
+  var arg_1 = vec2<i32>(1i);
   var arg_2 = 1u;
-  var arg_3 = vec4<f32>();
+  var arg_3 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/658a74.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/658a74.wgsl.expected.dxc.hlsl
index e611206..dc2f280 100644
--- a/test/tint/builtins/gen/var/textureStore/658a74.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/658a74.wgsl.expected.dxc.hlsl
@@ -1,9 +1,9 @@
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 void textureStore_658a74() {
-  int2 arg_1 = (0).xx;
+  int2 arg_1 = (1).xx;
   uint arg_2 = 1u;
-  float4 arg_3 = (0.0f).xxxx;
+  float4 arg_3 = (1.0f).xxxx;
   arg_0[int3(arg_1, int(arg_2))] = arg_3;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/658a74.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/658a74.wgsl.expected.fxc.hlsl
index e611206..dc2f280 100644
--- a/test/tint/builtins/gen/var/textureStore/658a74.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/658a74.wgsl.expected.fxc.hlsl
@@ -1,9 +1,9 @@
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 void textureStore_658a74() {
-  int2 arg_1 = (0).xx;
+  int2 arg_1 = (1).xx;
   uint arg_2 = 1u;
-  float4 arg_3 = (0.0f).xxxx;
+  float4 arg_3 = (1.0f).xxxx;
   arg_0[int3(arg_1, int(arg_2))] = arg_3;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/658a74.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/658a74.wgsl.expected.msl
index d121d3c..a310879 100644
--- a/test/tint/builtins/gen/var/textureStore/658a74.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/658a74.wgsl.expected.msl
@@ -2,9 +2,9 @@
 
 using namespace metal;
 void textureStore_658a74(texture2d_array<float, access::write> tint_symbol_1) {
-  int2 arg_1 = int2(0);
+  int2 arg_1 = int2(1);
   uint arg_2 = 1u;
-  float4 arg_3 = float4(0.0f);
+  float4 arg_3 = float4(1.0f);
   tint_symbol_1.write(arg_3, uint2(arg_1), arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/658a74.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/658a74.wgsl.expected.spvasm
index 52fc52c..ab14481 100644
--- a/test/tint/builtins/gen/var/textureStore/658a74.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/658a74.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 52
+; Bound: 55
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
@@ -42,54 +42,57 @@
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
-         %18 = OpConstantNull %v2int
+      %int_1 = OpConstant %int 1
+         %19 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v2int = OpTypePointer Function %v2int
+         %22 = OpConstantNull %v2int
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %25 = OpConstantNull %uint
+         %27 = OpConstantNull %uint
+    %float_1 = OpConstant %float 1
+         %29 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
       %v3int = OpTypeVector %int 3
-         %38 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %42 = OpTypeFunction %v4float
 %textureStore_658a74 = OpFunction %void None %12
          %15 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2int Function %18
-      %arg_2 = OpVariable %_ptr_Function_uint Function %25
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %22
+      %arg_2 = OpVariable %_ptr_Function_uint Function %27
       %arg_3 = OpVariable %_ptr_Function_v4float Function %5
-               OpStore %arg_1 %18
+               OpStore %arg_1 %19
                OpStore %arg_2 %uint_1
-               OpStore %arg_3 %5
-         %29 = OpLoad %11 %arg_0
-         %31 = OpLoad %v2int %arg_1
-         %32 = OpCompositeExtract %int %31 0
-         %33 = OpCompositeExtract %int %31 1
-         %35 = OpLoad %uint %arg_2
-         %34 = OpBitcast %int %35
-         %36 = OpCompositeConstruct %v3int %32 %33 %34
-         %37 = OpLoad %v4float %arg_3
-               OpImageWrite %29 %36 %37
+               OpStore %arg_3 %29
+         %33 = OpLoad %11 %arg_0
+         %35 = OpLoad %v2int %arg_1
+         %36 = OpCompositeExtract %int %35 0
+         %37 = OpCompositeExtract %int %35 1
+         %39 = OpLoad %uint %arg_2
+         %38 = OpBitcast %int %39
+         %40 = OpCompositeConstruct %v3int %36 %37 %38
+         %41 = OpLoad %v4float %arg_3
+               OpImageWrite %33 %40 %41
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %38
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureStore_658a74
+%vertex_main_inner = OpFunction %v4float None %42
+         %44 = OpLabel
+         %45 = OpFunctionCall %void %textureStore_658a74
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %43 = OpLabel
-         %44 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %44
+         %47 = OpLabel
+         %48 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %48
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %47 = OpLabel
-         %48 = OpFunctionCall %void %textureStore_658a74
+         %50 = OpLabel
+         %51 = OpFunctionCall %void %textureStore_658a74
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %50 = OpLabel
-         %51 = OpFunctionCall %void %textureStore_658a74
+         %53 = OpLabel
+         %54 = OpFunctionCall %void %textureStore_658a74
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/658a74.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/658a74.wgsl.expected.wgsl
index c29799b..d635e16 100644
--- a/test/tint/builtins/gen/var/textureStore/658a74.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/658a74.wgsl.expected.wgsl
@@ -1,9 +1,9 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rg32float, write>;
 
 fn textureStore_658a74() {
-  var arg_1 = vec2<i32>();
+  var arg_1 = vec2<i32>(1i);
   var arg_2 = 1u;
-  var arg_3 = vec4<f32>();
+  var arg_3 = vec4<f32>(1.0f);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/682fd6.wgsl b/test/tint/builtins/gen/var/textureStore/682fd6.wgsl
index 4f6e6df..12fea92 100644
--- a/test/tint/builtins/gen/var/textureStore/682fd6.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/682fd6.wgsl
@@ -24,8 +24,8 @@
 
 // fn textureStore(texture: texture_storage_2d<rg32uint, write>, coords: vec2<i32>, value: vec4<u32>)
 fn textureStore_682fd6() {
-  var arg_1 = vec2<i32>();
-  var arg_2 = vec4<u32>();
+  var arg_1 = vec2<i32>(1i);
+  var arg_2 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/682fd6.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/682fd6.wgsl.expected.dxc.hlsl
index 613ddb2..972a97e 100644
--- a/test/tint/builtins/gen/var/textureStore/682fd6.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/682fd6.wgsl.expected.dxc.hlsl
@@ -1,8 +1,8 @@
 RWTexture2D<uint4> arg_0 : register(u0, space1);
 
 void textureStore_682fd6() {
-  int2 arg_1 = (0).xx;
-  uint4 arg_2 = (0u).xxxx;
+  int2 arg_1 = (1).xx;
+  uint4 arg_2 = (1u).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/682fd6.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/682fd6.wgsl.expected.fxc.hlsl
index 613ddb2..972a97e 100644
--- a/test/tint/builtins/gen/var/textureStore/682fd6.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/682fd6.wgsl.expected.fxc.hlsl
@@ -1,8 +1,8 @@
 RWTexture2D<uint4> arg_0 : register(u0, space1);
 
 void textureStore_682fd6() {
-  int2 arg_1 = (0).xx;
-  uint4 arg_2 = (0u).xxxx;
+  int2 arg_1 = (1).xx;
+  uint4 arg_2 = (1u).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/682fd6.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/682fd6.wgsl.expected.msl
index 8ef52b0..0d2c30e 100644
--- a/test/tint/builtins/gen/var/textureStore/682fd6.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/682fd6.wgsl.expected.msl
@@ -2,8 +2,8 @@
 
 using namespace metal;
 void textureStore_682fd6(texture2d<uint, access::write> tint_symbol_1) {
-  int2 arg_1 = int2(0);
-  uint4 arg_2 = uint4(0u);
+  int2 arg_1 = int2(1);
+  uint4 arg_2 = uint4(1u);
   tint_symbol_1.write(arg_2, uint2(arg_1));
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/682fd6.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/682fd6.wgsl.expected.spvasm
index e7ffff9..d69210f 100644
--- a/test/tint/builtins/gen/var/textureStore/682fd6.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/682fd6.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 48
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
@@ -42,44 +42,48 @@
          %13 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
-         %19 = OpConstantNull %v2int
+      %int_1 = OpConstant %int 1
+         %20 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v2int = OpTypePointer Function %v2int
+         %23 = OpConstantNull %v2int
      %v4uint = OpTypeVector %uint 4
-         %23 = OpConstantNull %v4uint
+     %uint_1 = OpConstant %uint 1
+         %26 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %30 = OpTypeFunction %v4float
+         %29 = OpConstantNull %v4uint
+         %34 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_682fd6 = OpFunction %void None %13
          %16 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2int Function %19
-      %arg_2 = OpVariable %_ptr_Function_v4uint Function %23
-               OpStore %arg_1 %19
-               OpStore %arg_2 %23
-         %27 = OpLoad %11 %arg_0
-         %28 = OpLoad %v2int %arg_1
-         %29 = OpLoad %v4uint %arg_2
-               OpImageWrite %27 %28 %29
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %23
+      %arg_2 = OpVariable %_ptr_Function_v4uint Function %29
+               OpStore %arg_1 %20
+               OpStore %arg_2 %26
+         %31 = OpLoad %11 %arg_0
+         %32 = OpLoad %v2int %arg_1
+         %33 = OpLoad %v4uint %arg_2
+               OpImageWrite %31 %32 %33
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %30
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_682fd6
+%vertex_main_inner = OpFunction %v4float None %34
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureStore_682fd6
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %36
+         %39 = OpLabel
+         %40 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %40
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_682fd6
+         %43 = OpLabel
+         %44 = OpFunctionCall %void %textureStore_682fd6
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_682fd6
+         %46 = OpLabel
+         %47 = OpFunctionCall %void %textureStore_682fd6
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/682fd6.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/682fd6.wgsl.expected.wgsl
index a7d1e07..b887646 100644
--- a/test/tint/builtins/gen/var/textureStore/682fd6.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/682fd6.wgsl.expected.wgsl
@@ -1,8 +1,8 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rg32uint, write>;
 
 fn textureStore_682fd6() {
-  var arg_1 = vec2<i32>();
-  var arg_2 = vec4<u32>();
+  var arg_1 = vec2<i32>(1i);
+  var arg_2 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/699a1b.wgsl b/test/tint/builtins/gen/var/textureStore/699a1b.wgsl
index 5548e40..89f19ea 100644
--- a/test/tint/builtins/gen/var/textureStore/699a1b.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/699a1b.wgsl
@@ -24,9 +24,9 @@
 
 // fn textureStore(texture: texture_storage_2d_array<r32float, write>, coords: vec2<u32>, array_index: u32, value: vec4<f32>)
 fn textureStore_699a1b() {
-  var arg_1 = vec2<u32>();
+  var arg_1 = vec2<u32>(1u);
   var arg_2 = 1u;
-  var arg_3 = vec4<f32>();
+  var arg_3 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/699a1b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/699a1b.wgsl.expected.dxc.hlsl
index 68a4450..cc8bc8b 100644
--- a/test/tint/builtins/gen/var/textureStore/699a1b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/699a1b.wgsl.expected.dxc.hlsl
@@ -1,9 +1,9 @@
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 void textureStore_699a1b() {
-  uint2 arg_1 = (0u).xx;
+  uint2 arg_1 = (1u).xx;
   uint arg_2 = 1u;
-  float4 arg_3 = (0.0f).xxxx;
+  float4 arg_3 = (1.0f).xxxx;
   arg_0[uint3(arg_1, arg_2)] = arg_3;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/699a1b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/699a1b.wgsl.expected.fxc.hlsl
index 68a4450..cc8bc8b 100644
--- a/test/tint/builtins/gen/var/textureStore/699a1b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/699a1b.wgsl.expected.fxc.hlsl
@@ -1,9 +1,9 @@
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 void textureStore_699a1b() {
-  uint2 arg_1 = (0u).xx;
+  uint2 arg_1 = (1u).xx;
   uint arg_2 = 1u;
-  float4 arg_3 = (0.0f).xxxx;
+  float4 arg_3 = (1.0f).xxxx;
   arg_0[uint3(arg_1, arg_2)] = arg_3;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/699a1b.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/699a1b.wgsl.expected.glsl
index b342728..c418a4c 100644
--- a/test/tint/builtins/gen/var/textureStore/699a1b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/699a1b.wgsl.expected.glsl
@@ -2,9 +2,9 @@
 
 layout(r32f) uniform highp writeonly image2DArray arg_0;
 void textureStore_699a1b() {
-  uvec2 arg_1 = uvec2(0u);
+  uvec2 arg_1 = uvec2(1u);
   uint arg_2 = 1u;
-  vec4 arg_3 = vec4(0.0f);
+  vec4 arg_3 = vec4(1.0f);
   imageStore(arg_0, ivec3(uvec3(arg_1, arg_2)), arg_3);
 }
 
@@ -26,9 +26,9 @@
 
 layout(r32f) uniform highp writeonly image2DArray arg_0;
 void textureStore_699a1b() {
-  uvec2 arg_1 = uvec2(0u);
+  uvec2 arg_1 = uvec2(1u);
   uint arg_2 = 1u;
-  vec4 arg_3 = vec4(0.0f);
+  vec4 arg_3 = vec4(1.0f);
   imageStore(arg_0, ivec3(uvec3(arg_1, arg_2)), arg_3);
 }
 
@@ -44,9 +44,9 @@
 
 layout(r32f) uniform highp writeonly image2DArray arg_0;
 void textureStore_699a1b() {
-  uvec2 arg_1 = uvec2(0u);
+  uvec2 arg_1 = uvec2(1u);
   uint arg_2 = 1u;
-  vec4 arg_3 = vec4(0.0f);
+  vec4 arg_3 = vec4(1.0f);
   imageStore(arg_0, ivec3(uvec3(arg_1, arg_2)), arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/699a1b.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/699a1b.wgsl.expected.msl
index 57da1da..635d014 100644
--- a/test/tint/builtins/gen/var/textureStore/699a1b.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/699a1b.wgsl.expected.msl
@@ -2,9 +2,9 @@
 
 using namespace metal;
 void textureStore_699a1b(texture2d_array<float, access::write> tint_symbol_1) {
-  uint2 arg_1 = uint2(0u);
+  uint2 arg_1 = uint2(1u);
   uint arg_2 = 1u;
-  float4 arg_3 = float4(0.0f);
+  float4 arg_3 = float4(1.0f);
   tint_symbol_1.write(arg_3, uint2(arg_1), arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/699a1b.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/699a1b.wgsl.expected.spvasm
index 2c1021a..1b2bab9 100644
--- a/test/tint/builtins/gen/var/textureStore/699a1b.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/699a1b.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 50
+; Bound: 52
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -41,52 +41,54 @@
          %12 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
-         %18 = OpConstantNull %v2uint
-%_ptr_Function_v2uint = OpTypePointer Function %v2uint
      %uint_1 = OpConstant %uint 1
+         %19 = OpConstantComposite %v2uint %uint_1 %uint_1
+%_ptr_Function_v2uint = OpTypePointer Function %v2uint
+         %22 = OpConstantNull %v2uint
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %24 = OpConstantNull %uint
+         %25 = OpConstantNull %uint
+    %float_1 = OpConstant %float 1
+         %27 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
      %v3uint = OpTypeVector %uint 3
-         %36 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %39 = OpTypeFunction %v4float
 %textureStore_699a1b = OpFunction %void None %12
          %15 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2uint Function %18
-      %arg_2 = OpVariable %_ptr_Function_uint Function %24
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %22
+      %arg_2 = OpVariable %_ptr_Function_uint Function %25
       %arg_3 = OpVariable %_ptr_Function_v4float Function %5
-               OpStore %arg_1 %18
+               OpStore %arg_1 %19
                OpStore %arg_2 %uint_1
-               OpStore %arg_3 %5
-         %28 = OpLoad %11 %arg_0
-         %30 = OpLoad %v2uint %arg_1
-         %31 = OpCompositeExtract %uint %30 0
-         %32 = OpCompositeExtract %uint %30 1
-         %33 = OpLoad %uint %arg_2
-         %34 = OpCompositeConstruct %v3uint %31 %32 %33
-         %35 = OpLoad %v4float %arg_3
-               OpImageWrite %28 %34 %35
+               OpStore %arg_3 %27
+         %31 = OpLoad %11 %arg_0
+         %33 = OpLoad %v2uint %arg_1
+         %34 = OpCompositeExtract %uint %33 0
+         %35 = OpCompositeExtract %uint %33 1
+         %36 = OpLoad %uint %arg_2
+         %37 = OpCompositeConstruct %v3uint %34 %35 %36
+         %38 = OpLoad %v4float %arg_3
+               OpImageWrite %31 %37 %38
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %36
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureStore_699a1b
+%vertex_main_inner = OpFunction %v4float None %39
+         %41 = OpLabel
+         %42 = OpFunctionCall %void %textureStore_699a1b
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %41 = OpLabel
-         %42 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %42
+         %44 = OpLabel
+         %45 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %45
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %45 = OpLabel
-         %46 = OpFunctionCall %void %textureStore_699a1b
+         %47 = OpLabel
+         %48 = OpFunctionCall %void %textureStore_699a1b
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %48 = OpLabel
-         %49 = OpFunctionCall %void %textureStore_699a1b
+         %50 = OpLabel
+         %51 = OpFunctionCall %void %textureStore_699a1b
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/699a1b.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/699a1b.wgsl.expected.wgsl
index f40f039..e15ec37 100644
--- a/test/tint/builtins/gen/var/textureStore/699a1b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/699a1b.wgsl.expected.wgsl
@@ -1,9 +1,9 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<r32float, write>;
 
 fn textureStore_699a1b() {
-  var arg_1 = vec2<u32>();
+  var arg_1 = vec2<u32>(1u);
   var arg_2 = 1u;
-  var arg_3 = vec4<f32>();
+  var arg_3 = vec4<f32>(1.0f);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/6b75c3.wgsl b/test/tint/builtins/gen/var/textureStore/6b75c3.wgsl
index bed4262..8c49a1a 100644
--- a/test/tint/builtins/gen/var/textureStore/6b75c3.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/6b75c3.wgsl
@@ -25,7 +25,7 @@
 // fn textureStore(texture: texture_storage_1d<rgba32float, write>, coords: i32, value: vec4<f32>)
 fn textureStore_6b75c3() {
   var arg_1 = 1i;
-  var arg_2 = vec4<f32>();
+  var arg_2 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/6b75c3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/6b75c3.wgsl.expected.dxc.hlsl
index d1842f9..1da026a 100644
--- a/test/tint/builtins/gen/var/textureStore/6b75c3.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/6b75c3.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 
 void textureStore_6b75c3() {
   int arg_1 = 1;
-  float4 arg_2 = (0.0f).xxxx;
+  float4 arg_2 = (1.0f).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/6b75c3.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/6b75c3.wgsl.expected.fxc.hlsl
index d1842f9..1da026a 100644
--- a/test/tint/builtins/gen/var/textureStore/6b75c3.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/6b75c3.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 
 void textureStore_6b75c3() {
   int arg_1 = 1;
-  float4 arg_2 = (0.0f).xxxx;
+  float4 arg_2 = (1.0f).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/6b75c3.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/6b75c3.wgsl.expected.msl
index 525cdb8..4637282 100644
--- a/test/tint/builtins/gen/var/textureStore/6b75c3.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/6b75c3.wgsl.expected.msl
@@ -3,7 +3,7 @@
 using namespace metal;
 void textureStore_6b75c3(texture1d<float, access::write> tint_symbol_1) {
   int arg_1 = 1;
-  float4 arg_2 = float4(0.0f);
+  float4 arg_2 = float4(1.0f);
   tint_symbol_1.write(arg_2, uint(arg_1));
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/6b75c3.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/6b75c3.wgsl.expected.spvasm
index 436599f..a170644 100644
--- a/test/tint/builtins/gen/var/textureStore/6b75c3.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/6b75c3.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 41
+; Bound: 42
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
@@ -43,40 +43,41 @@
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
          %20 = OpConstantNull %int
-%_ptr_Function_v4float = OpTypePointer Function %v4float
-         %27 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
+         %22 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%_ptr_Function_v4float = OpTypePointer Function %v4float
+         %29 = OpTypeFunction %v4float
 %textureStore_6b75c3 = OpFunction %void None %12
          %15 = OpLabel
       %arg_1 = OpVariable %_ptr_Function_int Function %20
       %arg_2 = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %int_1
-               OpStore %arg_2 %5
-         %24 = OpLoad %11 %arg_0
-         %25 = OpLoad %int %arg_1
-         %26 = OpLoad %v4float %arg_2
-               OpImageWrite %24 %25 %26
+               OpStore %arg_2 %22
+         %26 = OpLoad %11 %arg_0
+         %27 = OpLoad %int %arg_1
+         %28 = OpLoad %v4float %arg_2
+               OpImageWrite %26 %27 %28
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %27
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %textureStore_6b75c3
+%vertex_main_inner = OpFunction %v4float None %29
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %textureStore_6b75c3
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %32 = OpLabel
-         %33 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %33
+         %34 = OpLabel
+         %35 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %35
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_6b75c3
+         %37 = OpLabel
+         %38 = OpFunctionCall %void %textureStore_6b75c3
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_6b75c3
+         %40 = OpLabel
+         %41 = OpFunctionCall %void %textureStore_6b75c3
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/6b75c3.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/6b75c3.wgsl.expected.wgsl
index d5492bb..da4a7c7 100644
--- a/test/tint/builtins/gen/var/textureStore/6b75c3.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/6b75c3.wgsl.expected.wgsl
@@ -2,7 +2,7 @@
 
 fn textureStore_6b75c3() {
   var arg_1 = 1i;
-  var arg_2 = vec4<f32>();
+  var arg_2 = vec4<f32>(1.0f);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/6b80d2.wgsl b/test/tint/builtins/gen/var/textureStore/6b80d2.wgsl
index d31db6a..2f19c1d 100644
--- a/test/tint/builtins/gen/var/textureStore/6b80d2.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/6b80d2.wgsl
@@ -25,7 +25,7 @@
 // fn textureStore(texture: texture_storage_1d<r32sint, write>, coords: i32, value: vec4<i32>)
 fn textureStore_6b80d2() {
   var arg_1 = 1i;
-  var arg_2 = vec4<i32>();
+  var arg_2 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/6b80d2.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/6b80d2.wgsl.expected.dxc.hlsl
index dc45c99..df5337a 100644
--- a/test/tint/builtins/gen/var/textureStore/6b80d2.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/6b80d2.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 
 void textureStore_6b80d2() {
   int arg_1 = 1;
-  int4 arg_2 = (0).xxxx;
+  int4 arg_2 = (1).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/6b80d2.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/6b80d2.wgsl.expected.fxc.hlsl
index dc45c99..df5337a 100644
--- a/test/tint/builtins/gen/var/textureStore/6b80d2.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/6b80d2.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 
 void textureStore_6b80d2() {
   int arg_1 = 1;
-  int4 arg_2 = (0).xxxx;
+  int4 arg_2 = (1).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/6b80d2.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/6b80d2.wgsl.expected.msl
index 4ec6f6e..872ebc4 100644
--- a/test/tint/builtins/gen/var/textureStore/6b80d2.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/6b80d2.wgsl.expected.msl
@@ -3,7 +3,7 @@
 using namespace metal;
 void textureStore_6b80d2(texture1d<int, access::write> tint_symbol_1) {
   int arg_1 = 1;
-  int4 arg_2 = int4(0);
+  int4 arg_2 = int4(1);
   tint_symbol_1.write(arg_2, uint(arg_1));
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/6b80d2.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/6b80d2.wgsl.expected.spvasm
index cc127a7..e068ee9 100644
--- a/test/tint/builtins/gen/var/textureStore/6b80d2.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/6b80d2.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 43
+; Bound: 44
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
@@ -44,41 +44,42 @@
 %_ptr_Function_int = OpTypePointer Function %int
          %20 = OpConstantNull %int
       %v4int = OpTypeVector %int 4
-         %22 = OpConstantNull %v4int
+         %22 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %29 = OpTypeFunction %v4float
+         %25 = OpConstantNull %v4int
+         %30 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_6b80d2 = OpFunction %void None %13
          %16 = OpLabel
       %arg_1 = OpVariable %_ptr_Function_int Function %20
-      %arg_2 = OpVariable %_ptr_Function_v4int Function %22
+      %arg_2 = OpVariable %_ptr_Function_v4int Function %25
                OpStore %arg_1 %int_1
                OpStore %arg_2 %22
-         %26 = OpLoad %11 %arg_0
-         %27 = OpLoad %int %arg_1
-         %28 = OpLoad %v4int %arg_2
-               OpImageWrite %26 %27 %28
+         %27 = OpLoad %11 %arg_0
+         %28 = OpLoad %int %arg_1
+         %29 = OpLoad %v4int %arg_2
+               OpImageWrite %27 %28 %29
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %29
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %textureStore_6b80d2
+%vertex_main_inner = OpFunction %v4float None %30
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %textureStore_6b80d2
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %34 = OpLabel
-         %35 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %35
+         %35 = OpLabel
+         %36 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %36
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureStore_6b80d2
+         %39 = OpLabel
+         %40 = OpFunctionCall %void %textureStore_6b80d2
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureStore_6b80d2
+         %42 = OpLabel
+         %43 = OpFunctionCall %void %textureStore_6b80d2
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/6b80d2.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/6b80d2.wgsl.expected.wgsl
index e83366d..6d34e25 100644
--- a/test/tint/builtins/gen/var/textureStore/6b80d2.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/6b80d2.wgsl.expected.wgsl
@@ -2,7 +2,7 @@
 
 fn textureStore_6b80d2() {
   var arg_1 = 1i;
-  var arg_2 = vec4<i32>();
+  var arg_2 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/6cff2e.wgsl b/test/tint/builtins/gen/var/textureStore/6cff2e.wgsl
index 21f50ca..6b2ab9a 100644
--- a/test/tint/builtins/gen/var/textureStore/6cff2e.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/6cff2e.wgsl
@@ -24,8 +24,8 @@
 
 // fn textureStore(texture: texture_storage_2d<r32uint, write>, coords: vec2<i32>, value: vec4<u32>)
 fn textureStore_6cff2e() {
-  var arg_1 = vec2<i32>();
-  var arg_2 = vec4<u32>();
+  var arg_1 = vec2<i32>(1i);
+  var arg_2 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/6cff2e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/6cff2e.wgsl.expected.dxc.hlsl
index 030b9a1..eb1d050 100644
--- a/test/tint/builtins/gen/var/textureStore/6cff2e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/6cff2e.wgsl.expected.dxc.hlsl
@@ -1,8 +1,8 @@
 RWTexture2D<uint4> arg_0 : register(u0, space1);
 
 void textureStore_6cff2e() {
-  int2 arg_1 = (0).xx;
-  uint4 arg_2 = (0u).xxxx;
+  int2 arg_1 = (1).xx;
+  uint4 arg_2 = (1u).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/6cff2e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/6cff2e.wgsl.expected.fxc.hlsl
index 030b9a1..eb1d050 100644
--- a/test/tint/builtins/gen/var/textureStore/6cff2e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/6cff2e.wgsl.expected.fxc.hlsl
@@ -1,8 +1,8 @@
 RWTexture2D<uint4> arg_0 : register(u0, space1);
 
 void textureStore_6cff2e() {
-  int2 arg_1 = (0).xx;
-  uint4 arg_2 = (0u).xxxx;
+  int2 arg_1 = (1).xx;
+  uint4 arg_2 = (1u).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/6cff2e.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/6cff2e.wgsl.expected.glsl
index 31dca28..bd3b42a 100644
--- a/test/tint/builtins/gen/var/textureStore/6cff2e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/6cff2e.wgsl.expected.glsl
@@ -2,8 +2,8 @@
 
 layout(r32ui) uniform highp writeonly uimage2D arg_0;
 void textureStore_6cff2e() {
-  ivec2 arg_1 = ivec2(0);
-  uvec4 arg_2 = uvec4(0u);
+  ivec2 arg_1 = ivec2(1);
+  uvec4 arg_2 = uvec4(1u);
   imageStore(arg_0, arg_1, arg_2);
 }
 
@@ -25,8 +25,8 @@
 
 layout(r32ui) uniform highp writeonly uimage2D arg_0;
 void textureStore_6cff2e() {
-  ivec2 arg_1 = ivec2(0);
-  uvec4 arg_2 = uvec4(0u);
+  ivec2 arg_1 = ivec2(1);
+  uvec4 arg_2 = uvec4(1u);
   imageStore(arg_0, arg_1, arg_2);
 }
 
@@ -42,8 +42,8 @@
 
 layout(r32ui) uniform highp writeonly uimage2D arg_0;
 void textureStore_6cff2e() {
-  ivec2 arg_1 = ivec2(0);
-  uvec4 arg_2 = uvec4(0u);
+  ivec2 arg_1 = ivec2(1);
+  uvec4 arg_2 = uvec4(1u);
   imageStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/6cff2e.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/6cff2e.wgsl.expected.msl
index 47ac09a..62842d4 100644
--- a/test/tint/builtins/gen/var/textureStore/6cff2e.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/6cff2e.wgsl.expected.msl
@@ -2,8 +2,8 @@
 
 using namespace metal;
 void textureStore_6cff2e(texture2d<uint, access::write> tint_symbol_1) {
-  int2 arg_1 = int2(0);
-  uint4 arg_2 = uint4(0u);
+  int2 arg_1 = int2(1);
+  uint4 arg_2 = uint4(1u);
   tint_symbol_1.write(arg_2, uint2(arg_1));
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/6cff2e.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/6cff2e.wgsl.expected.spvasm
index 7907a00..e7c5b80 100644
--- a/test/tint/builtins/gen/var/textureStore/6cff2e.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/6cff2e.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 48
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -41,44 +41,48 @@
          %13 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
-         %19 = OpConstantNull %v2int
+      %int_1 = OpConstant %int 1
+         %20 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v2int = OpTypePointer Function %v2int
+         %23 = OpConstantNull %v2int
      %v4uint = OpTypeVector %uint 4
-         %23 = OpConstantNull %v4uint
+     %uint_1 = OpConstant %uint 1
+         %26 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %30 = OpTypeFunction %v4float
+         %29 = OpConstantNull %v4uint
+         %34 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_6cff2e = OpFunction %void None %13
          %16 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2int Function %19
-      %arg_2 = OpVariable %_ptr_Function_v4uint Function %23
-               OpStore %arg_1 %19
-               OpStore %arg_2 %23
-         %27 = OpLoad %11 %arg_0
-         %28 = OpLoad %v2int %arg_1
-         %29 = OpLoad %v4uint %arg_2
-               OpImageWrite %27 %28 %29
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %23
+      %arg_2 = OpVariable %_ptr_Function_v4uint Function %29
+               OpStore %arg_1 %20
+               OpStore %arg_2 %26
+         %31 = OpLoad %11 %arg_0
+         %32 = OpLoad %v2int %arg_1
+         %33 = OpLoad %v4uint %arg_2
+               OpImageWrite %31 %32 %33
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %30
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_6cff2e
+%vertex_main_inner = OpFunction %v4float None %34
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureStore_6cff2e
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %36
+         %39 = OpLabel
+         %40 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %40
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_6cff2e
+         %43 = OpLabel
+         %44 = OpFunctionCall %void %textureStore_6cff2e
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_6cff2e
+         %46 = OpLabel
+         %47 = OpFunctionCall %void %textureStore_6cff2e
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/6cff2e.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/6cff2e.wgsl.expected.wgsl
index 37ba249..decce81 100644
--- a/test/tint/builtins/gen/var/textureStore/6cff2e.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/6cff2e.wgsl.expected.wgsl
@@ -1,8 +1,8 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d<r32uint, write>;
 
 fn textureStore_6cff2e() {
-  var arg_1 = vec2<i32>();
-  var arg_2 = vec4<u32>();
+  var arg_1 = vec2<i32>(1i);
+  var arg_2 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/6da692.wgsl b/test/tint/builtins/gen/var/textureStore/6da692.wgsl
index 1caeb3e..7260963 100644
--- a/test/tint/builtins/gen/var/textureStore/6da692.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/6da692.wgsl
@@ -24,9 +24,9 @@
 
 // fn textureStore(texture: texture_storage_2d_array<rgba16uint, write>, coords: vec2<i32>, array_index: i32, value: vec4<u32>)
 fn textureStore_6da692() {
-  var arg_1 = vec2<i32>();
+  var arg_1 = vec2<i32>(1i);
   var arg_2 = 1i;
-  var arg_3 = vec4<u32>();
+  var arg_3 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/6da692.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/6da692.wgsl.expected.dxc.hlsl
index 2188ce1..3a0b352 100644
--- a/test/tint/builtins/gen/var/textureStore/6da692.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/6da692.wgsl.expected.dxc.hlsl
@@ -1,9 +1,9 @@
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 void textureStore_6da692() {
-  int2 arg_1 = (0).xx;
+  int2 arg_1 = (1).xx;
   int arg_2 = 1;
-  uint4 arg_3 = (0u).xxxx;
+  uint4 arg_3 = (1u).xxxx;
   arg_0[int3(arg_1, arg_2)] = arg_3;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/6da692.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/6da692.wgsl.expected.fxc.hlsl
index 2188ce1..3a0b352 100644
--- a/test/tint/builtins/gen/var/textureStore/6da692.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/6da692.wgsl.expected.fxc.hlsl
@@ -1,9 +1,9 @@
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 void textureStore_6da692() {
-  int2 arg_1 = (0).xx;
+  int2 arg_1 = (1).xx;
   int arg_2 = 1;
-  uint4 arg_3 = (0u).xxxx;
+  uint4 arg_3 = (1u).xxxx;
   arg_0[int3(arg_1, arg_2)] = arg_3;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/6da692.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/6da692.wgsl.expected.glsl
index c7bc567..8cc9b7c 100644
--- a/test/tint/builtins/gen/var/textureStore/6da692.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/6da692.wgsl.expected.glsl
@@ -2,9 +2,9 @@
 
 layout(rgba16ui) uniform highp writeonly uimage2DArray arg_0;
 void textureStore_6da692() {
-  ivec2 arg_1 = ivec2(0);
+  ivec2 arg_1 = ivec2(1);
   int arg_2 = 1;
-  uvec4 arg_3 = uvec4(0u);
+  uvec4 arg_3 = uvec4(1u);
   imageStore(arg_0, ivec3(arg_1, arg_2), arg_3);
 }
 
@@ -26,9 +26,9 @@
 
 layout(rgba16ui) uniform highp writeonly uimage2DArray arg_0;
 void textureStore_6da692() {
-  ivec2 arg_1 = ivec2(0);
+  ivec2 arg_1 = ivec2(1);
   int arg_2 = 1;
-  uvec4 arg_3 = uvec4(0u);
+  uvec4 arg_3 = uvec4(1u);
   imageStore(arg_0, ivec3(arg_1, arg_2), arg_3);
 }
 
@@ -44,9 +44,9 @@
 
 layout(rgba16ui) uniform highp writeonly uimage2DArray arg_0;
 void textureStore_6da692() {
-  ivec2 arg_1 = ivec2(0);
+  ivec2 arg_1 = ivec2(1);
   int arg_2 = 1;
-  uvec4 arg_3 = uvec4(0u);
+  uvec4 arg_3 = uvec4(1u);
   imageStore(arg_0, ivec3(arg_1, arg_2), arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/6da692.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/6da692.wgsl.expected.msl
index 305d2bd..4f4cf30 100644
--- a/test/tint/builtins/gen/var/textureStore/6da692.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/6da692.wgsl.expected.msl
@@ -2,9 +2,9 @@
 
 using namespace metal;
 void textureStore_6da692(texture2d_array<uint, access::write> tint_symbol_1) {
-  int2 arg_1 = int2(0);
+  int2 arg_1 = int2(1);
   int arg_2 = 1;
-  uint4 arg_3 = uint4(0u);
+  uint4 arg_3 = uint4(1u);
   tint_symbol_1.write(arg_3, uint2(arg_1), arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/6da692.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/6da692.wgsl.expected.spvasm
index 4296871..3dc1804 100644
--- a/test/tint/builtins/gen/var/textureStore/6da692.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/6da692.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 53
+; Bound: 56
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -42,54 +42,57 @@
          %13 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
-         %19 = OpConstantNull %v2int
-%_ptr_Function_v2int = OpTypePointer Function %v2int
       %int_1 = OpConstant %int 1
+         %20 = OpConstantComposite %v2int %int_1 %int_1
+%_ptr_Function_v2int = OpTypePointer Function %v2int
+         %23 = OpConstantNull %v2int
 %_ptr_Function_int = OpTypePointer Function %int
-         %25 = OpConstantNull %int
+         %26 = OpConstantNull %int
      %v4uint = OpTypeVector %uint 4
-         %27 = OpConstantNull %v4uint
+     %uint_1 = OpConstant %uint 1
+         %29 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
+         %32 = OpConstantNull %v4uint
       %v3int = OpTypeVector %int 3
-         %39 = OpTypeFunction %v4float
+         %42 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_6da692 = OpFunction %void None %13
          %16 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2int Function %19
-      %arg_2 = OpVariable %_ptr_Function_int Function %25
-      %arg_3 = OpVariable %_ptr_Function_v4uint Function %27
-               OpStore %arg_1 %19
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %23
+      %arg_2 = OpVariable %_ptr_Function_int Function %26
+      %arg_3 = OpVariable %_ptr_Function_v4uint Function %32
+               OpStore %arg_1 %20
                OpStore %arg_2 %int_1
-               OpStore %arg_3 %27
-         %31 = OpLoad %11 %arg_0
-         %33 = OpLoad %v2int %arg_1
-         %34 = OpCompositeExtract %int %33 0
-         %35 = OpCompositeExtract %int %33 1
-         %36 = OpLoad %int %arg_2
-         %37 = OpCompositeConstruct %v3int %34 %35 %36
-         %38 = OpLoad %v4uint %arg_3
-               OpImageWrite %31 %37 %38
+               OpStore %arg_3 %29
+         %34 = OpLoad %11 %arg_0
+         %36 = OpLoad %v2int %arg_1
+         %37 = OpCompositeExtract %int %36 0
+         %38 = OpCompositeExtract %int %36 1
+         %39 = OpLoad %int %arg_2
+         %40 = OpCompositeConstruct %v3int %37 %38 %39
+         %41 = OpLoad %v4uint %arg_3
+               OpImageWrite %34 %40 %41
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %39
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureStore_6da692
+%vertex_main_inner = OpFunction %v4float None %42
+         %44 = OpLabel
+         %45 = OpFunctionCall %void %textureStore_6da692
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %44 = OpLabel
-         %45 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %45
+         %47 = OpLabel
+         %48 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %48
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %48 = OpLabel
-         %49 = OpFunctionCall %void %textureStore_6da692
+         %51 = OpLabel
+         %52 = OpFunctionCall %void %textureStore_6da692
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %51 = OpLabel
-         %52 = OpFunctionCall %void %textureStore_6da692
+         %54 = OpLabel
+         %55 = OpFunctionCall %void %textureStore_6da692
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/6da692.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/6da692.wgsl.expected.wgsl
index eb4983b..3aef0ec 100644
--- a/test/tint/builtins/gen/var/textureStore/6da692.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/6da692.wgsl.expected.wgsl
@@ -1,9 +1,9 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba16uint, write>;
 
 fn textureStore_6da692() {
-  var arg_1 = vec2<i32>();
+  var arg_1 = vec2<i32>(1i);
   var arg_2 = 1i;
-  var arg_3 = vec4<u32>();
+  var arg_3 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/6f8642.wgsl b/test/tint/builtins/gen/var/textureStore/6f8642.wgsl
index 23a8676..b10038e 100644
--- a/test/tint/builtins/gen/var/textureStore/6f8642.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/6f8642.wgsl
@@ -24,9 +24,9 @@
 
 // fn textureStore(texture: texture_storage_2d_array<rgba32uint, write>, coords: vec2<u32>, array_index: i32, value: vec4<u32>)
 fn textureStore_6f8642() {
-  var arg_1 = vec2<u32>();
+  var arg_1 = vec2<u32>(1u);
   var arg_2 = 1i;
-  var arg_3 = vec4<u32>();
+  var arg_3 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/6f8642.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/6f8642.wgsl.expected.dxc.hlsl
index 68d1cee..3c1a7e3 100644
--- a/test/tint/builtins/gen/var/textureStore/6f8642.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/6f8642.wgsl.expected.dxc.hlsl
@@ -1,9 +1,9 @@
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 void textureStore_6f8642() {
-  uint2 arg_1 = (0u).xx;
+  uint2 arg_1 = (1u).xx;
   int arg_2 = 1;
-  uint4 arg_3 = (0u).xxxx;
+  uint4 arg_3 = (1u).xxxx;
   arg_0[uint3(arg_1, uint(arg_2))] = arg_3;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/6f8642.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/6f8642.wgsl.expected.fxc.hlsl
index 68d1cee..3c1a7e3 100644
--- a/test/tint/builtins/gen/var/textureStore/6f8642.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/6f8642.wgsl.expected.fxc.hlsl
@@ -1,9 +1,9 @@
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 void textureStore_6f8642() {
-  uint2 arg_1 = (0u).xx;
+  uint2 arg_1 = (1u).xx;
   int arg_2 = 1;
-  uint4 arg_3 = (0u).xxxx;
+  uint4 arg_3 = (1u).xxxx;
   arg_0[uint3(arg_1, uint(arg_2))] = arg_3;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/6f8642.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/6f8642.wgsl.expected.glsl
index c44aae7..47c47cc 100644
--- a/test/tint/builtins/gen/var/textureStore/6f8642.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/6f8642.wgsl.expected.glsl
@@ -2,9 +2,9 @@
 
 layout(rgba32ui) uniform highp writeonly uimage2DArray arg_0;
 void textureStore_6f8642() {
-  uvec2 arg_1 = uvec2(0u);
+  uvec2 arg_1 = uvec2(1u);
   int arg_2 = 1;
-  uvec4 arg_3 = uvec4(0u);
+  uvec4 arg_3 = uvec4(1u);
   imageStore(arg_0, ivec3(uvec3(arg_1, uint(arg_2))), arg_3);
 }
 
@@ -26,9 +26,9 @@
 
 layout(rgba32ui) uniform highp writeonly uimage2DArray arg_0;
 void textureStore_6f8642() {
-  uvec2 arg_1 = uvec2(0u);
+  uvec2 arg_1 = uvec2(1u);
   int arg_2 = 1;
-  uvec4 arg_3 = uvec4(0u);
+  uvec4 arg_3 = uvec4(1u);
   imageStore(arg_0, ivec3(uvec3(arg_1, uint(arg_2))), arg_3);
 }
 
@@ -44,9 +44,9 @@
 
 layout(rgba32ui) uniform highp writeonly uimage2DArray arg_0;
 void textureStore_6f8642() {
-  uvec2 arg_1 = uvec2(0u);
+  uvec2 arg_1 = uvec2(1u);
   int arg_2 = 1;
-  uvec4 arg_3 = uvec4(0u);
+  uvec4 arg_3 = uvec4(1u);
   imageStore(arg_0, ivec3(uvec3(arg_1, uint(arg_2))), arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/6f8642.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/6f8642.wgsl.expected.msl
index 5b98209..9b423b5 100644
--- a/test/tint/builtins/gen/var/textureStore/6f8642.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/6f8642.wgsl.expected.msl
@@ -2,9 +2,9 @@
 
 using namespace metal;
 void textureStore_6f8642(texture2d_array<uint, access::write> tint_symbol_1) {
-  uint2 arg_1 = uint2(0u);
+  uint2 arg_1 = uint2(1u);
   int arg_2 = 1;
-  uint4 arg_3 = uint4(0u);
+  uint4 arg_3 = uint4(1u);
   tint_symbol_1.write(arg_3, uint2(arg_1), arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/6f8642.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/6f8642.wgsl.expected.spvasm
index cd9d76a..786268a 100644
--- a/test/tint/builtins/gen/var/textureStore/6f8642.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/6f8642.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 54
+; Bound: 57
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -41,56 +41,59 @@
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
      %v2uint = OpTypeVector %uint 2
-         %18 = OpConstantNull %v2uint
+     %uint_1 = OpConstant %uint 1
+         %19 = OpConstantComposite %v2uint %uint_1 %uint_1
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
+         %22 = OpConstantNull %v2uint
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
-         %25 = OpConstantNull %int
+         %27 = OpConstantNull %int
      %v4uint = OpTypeVector %uint 4
-         %27 = OpConstantNull %v4uint
+         %29 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
+         %32 = OpConstantNull %v4uint
      %v3uint = OpTypeVector %uint 3
-         %40 = OpTypeFunction %v4float
+         %43 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_6f8642 = OpFunction %void None %13
          %16 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2uint Function %18
-      %arg_2 = OpVariable %_ptr_Function_int Function %25
-      %arg_3 = OpVariable %_ptr_Function_v4uint Function %27
-               OpStore %arg_1 %18
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %22
+      %arg_2 = OpVariable %_ptr_Function_int Function %27
+      %arg_3 = OpVariable %_ptr_Function_v4uint Function %32
+               OpStore %arg_1 %19
                OpStore %arg_2 %int_1
-               OpStore %arg_3 %27
-         %31 = OpLoad %11 %arg_0
-         %33 = OpLoad %v2uint %arg_1
-         %34 = OpCompositeExtract %uint %33 0
-         %35 = OpCompositeExtract %uint %33 1
-         %37 = OpLoad %int %arg_2
-         %36 = OpBitcast %uint %37
-         %38 = OpCompositeConstruct %v3uint %34 %35 %36
-         %39 = OpLoad %v4uint %arg_3
-               OpImageWrite %31 %38 %39
+               OpStore %arg_3 %29
+         %34 = OpLoad %11 %arg_0
+         %36 = OpLoad %v2uint %arg_1
+         %37 = OpCompositeExtract %uint %36 0
+         %38 = OpCompositeExtract %uint %36 1
+         %40 = OpLoad %int %arg_2
+         %39 = OpBitcast %uint %40
+         %41 = OpCompositeConstruct %v3uint %37 %38 %39
+         %42 = OpLoad %v4uint %arg_3
+               OpImageWrite %34 %41 %42
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %40
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_6f8642
+%vertex_main_inner = OpFunction %v4float None %43
+         %45 = OpLabel
+         %46 = OpFunctionCall %void %textureStore_6f8642
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %45 = OpLabel
-         %46 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %46
+         %48 = OpLabel
+         %49 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %49
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %49 = OpLabel
-         %50 = OpFunctionCall %void %textureStore_6f8642
+         %52 = OpLabel
+         %53 = OpFunctionCall %void %textureStore_6f8642
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %52 = OpLabel
-         %53 = OpFunctionCall %void %textureStore_6f8642
+         %55 = OpLabel
+         %56 = OpFunctionCall %void %textureStore_6f8642
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/6f8642.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/6f8642.wgsl.expected.wgsl
index 36630e4..cb9827a 100644
--- a/test/tint/builtins/gen/var/textureStore/6f8642.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/6f8642.wgsl.expected.wgsl
@@ -1,9 +1,9 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba32uint, write>;
 
 fn textureStore_6f8642() {
-  var arg_1 = vec2<u32>();
+  var arg_1 = vec2<u32>(1u);
   var arg_2 = 1i;
-  var arg_3 = vec4<u32>();
+  var arg_3 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/726472.wgsl b/test/tint/builtins/gen/var/textureStore/726472.wgsl
index 7feec83..c758e8d 100644
--- a/test/tint/builtins/gen/var/textureStore/726472.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/726472.wgsl
@@ -24,8 +24,8 @@
 
 // fn textureStore(texture: texture_storage_2d<rg32float, write>, coords: vec2<u32>, value: vec4<f32>)
 fn textureStore_726472() {
-  var arg_1 = vec2<u32>();
-  var arg_2 = vec4<f32>();
+  var arg_1 = vec2<u32>(1u);
+  var arg_2 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/726472.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/726472.wgsl.expected.dxc.hlsl
index 7730353..d825a22 100644
--- a/test/tint/builtins/gen/var/textureStore/726472.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/726472.wgsl.expected.dxc.hlsl
@@ -1,8 +1,8 @@
 RWTexture2D<float4> arg_0 : register(u0, space1);
 
 void textureStore_726472() {
-  uint2 arg_1 = (0u).xx;
-  float4 arg_2 = (0.0f).xxxx;
+  uint2 arg_1 = (1u).xx;
+  float4 arg_2 = (1.0f).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/726472.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/726472.wgsl.expected.fxc.hlsl
index 7730353..d825a22 100644
--- a/test/tint/builtins/gen/var/textureStore/726472.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/726472.wgsl.expected.fxc.hlsl
@@ -1,8 +1,8 @@
 RWTexture2D<float4> arg_0 : register(u0, space1);
 
 void textureStore_726472() {
-  uint2 arg_1 = (0u).xx;
-  float4 arg_2 = (0.0f).xxxx;
+  uint2 arg_1 = (1u).xx;
+  float4 arg_2 = (1.0f).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/726472.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/726472.wgsl.expected.msl
index 5f2f55c..a4358df 100644
--- a/test/tint/builtins/gen/var/textureStore/726472.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/726472.wgsl.expected.msl
@@ -2,8 +2,8 @@
 
 using namespace metal;
 void textureStore_726472(texture2d<float, access::write> tint_symbol_1) {
-  uint2 arg_1 = uint2(0u);
-  float4 arg_2 = float4(0.0f);
+  uint2 arg_1 = uint2(1u);
+  float4 arg_2 = float4(1.0f);
   tint_symbol_1.write(arg_2, uint2(arg_1));
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/726472.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/726472.wgsl.expected.spvasm
index 6670ea4..f981dac 100644
--- a/test/tint/builtins/gen/var/textureStore/726472.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/726472.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 41
+; Bound: 44
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
@@ -41,42 +41,45 @@
          %12 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
-         %18 = OpConstantNull %v2uint
+     %uint_1 = OpConstant %uint 1
+         %19 = OpConstantComposite %v2uint %uint_1 %uint_1
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
-%_ptr_Function_v4float = OpTypePointer Function %v4float
-         %27 = OpTypeFunction %v4float
+         %22 = OpConstantNull %v2uint
     %float_1 = OpConstant %float 1
+         %24 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%_ptr_Function_v4float = OpTypePointer Function %v4float
+         %31 = OpTypeFunction %v4float
 %textureStore_726472 = OpFunction %void None %12
          %15 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2uint Function %18
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %22
       %arg_2 = OpVariable %_ptr_Function_v4float Function %5
-               OpStore %arg_1 %18
-               OpStore %arg_2 %5
-         %24 = OpLoad %11 %arg_0
-         %25 = OpLoad %v2uint %arg_1
-         %26 = OpLoad %v4float %arg_2
-               OpImageWrite %24 %25 %26
+               OpStore %arg_1 %19
+               OpStore %arg_2 %24
+         %28 = OpLoad %11 %arg_0
+         %29 = OpLoad %v2uint %arg_1
+         %30 = OpLoad %v4float %arg_2
+               OpImageWrite %28 %29 %30
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %27
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %textureStore_726472
+%vertex_main_inner = OpFunction %v4float None %31
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureStore_726472
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %32 = OpLabel
-         %33 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %33
+         %36 = OpLabel
+         %37 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %37
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_726472
+         %39 = OpLabel
+         %40 = OpFunctionCall %void %textureStore_726472
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_726472
+         %42 = OpLabel
+         %43 = OpFunctionCall %void %textureStore_726472
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/726472.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/726472.wgsl.expected.wgsl
index b0866a3..1712bd8 100644
--- a/test/tint/builtins/gen/var/textureStore/726472.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/726472.wgsl.expected.wgsl
@@ -1,8 +1,8 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rg32float, write>;
 
 fn textureStore_726472() {
-  var arg_1 = vec2<u32>();
-  var arg_2 = vec4<f32>();
+  var arg_1 = vec2<u32>(1u);
+  var arg_2 = vec4<f32>(1.0f);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/72fa64.wgsl b/test/tint/builtins/gen/var/textureStore/72fa64.wgsl
index 08b9a1f..a7805f3 100644
--- a/test/tint/builtins/gen/var/textureStore/72fa64.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/72fa64.wgsl
@@ -24,9 +24,9 @@
 
 // fn textureStore(texture: texture_storage_2d_array<rg32sint, write>, coords: vec2<u32>, array_index: i32, value: vec4<i32>)
 fn textureStore_72fa64() {
-  var arg_1 = vec2<u32>();
+  var arg_1 = vec2<u32>(1u);
   var arg_2 = 1i;
-  var arg_3 = vec4<i32>();
+  var arg_3 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/72fa64.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/72fa64.wgsl.expected.dxc.hlsl
index 8de0613..1dbffbb 100644
--- a/test/tint/builtins/gen/var/textureStore/72fa64.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/72fa64.wgsl.expected.dxc.hlsl
@@ -1,9 +1,9 @@
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 void textureStore_72fa64() {
-  uint2 arg_1 = (0u).xx;
+  uint2 arg_1 = (1u).xx;
   int arg_2 = 1;
-  int4 arg_3 = (0).xxxx;
+  int4 arg_3 = (1).xxxx;
   arg_0[uint3(arg_1, uint(arg_2))] = arg_3;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/72fa64.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/72fa64.wgsl.expected.fxc.hlsl
index 8de0613..1dbffbb 100644
--- a/test/tint/builtins/gen/var/textureStore/72fa64.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/72fa64.wgsl.expected.fxc.hlsl
@@ -1,9 +1,9 @@
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 void textureStore_72fa64() {
-  uint2 arg_1 = (0u).xx;
+  uint2 arg_1 = (1u).xx;
   int arg_2 = 1;
-  int4 arg_3 = (0).xxxx;
+  int4 arg_3 = (1).xxxx;
   arg_0[uint3(arg_1, uint(arg_2))] = arg_3;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/72fa64.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/72fa64.wgsl.expected.msl
index 501db77..7dc7a4d 100644
--- a/test/tint/builtins/gen/var/textureStore/72fa64.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/72fa64.wgsl.expected.msl
@@ -2,9 +2,9 @@
 
 using namespace metal;
 void textureStore_72fa64(texture2d_array<int, access::write> tint_symbol_1) {
-  uint2 arg_1 = uint2(0u);
+  uint2 arg_1 = uint2(1u);
   int arg_2 = 1;
-  int4 arg_3 = int4(0);
+  int4 arg_3 = int4(1);
   tint_symbol_1.write(arg_3, uint2(arg_1), arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/72fa64.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/72fa64.wgsl.expected.spvasm
index 2f14a12..f1980f3 100644
--- a/test/tint/builtins/gen/var/textureStore/72fa64.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/72fa64.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 54
+; Bound: 57
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
@@ -43,55 +43,58 @@
          %13 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
-         %19 = OpConstantNull %v2uint
+     %uint_1 = OpConstant %uint 1
+         %20 = OpConstantComposite %v2uint %uint_1 %uint_1
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
+         %23 = OpConstantNull %v2uint
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
-         %25 = OpConstantNull %int
+         %27 = OpConstantNull %int
       %v4int = OpTypeVector %int 4
-         %27 = OpConstantNull %v4int
+         %29 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
+         %32 = OpConstantNull %v4int
      %v3uint = OpTypeVector %uint 3
-         %40 = OpTypeFunction %v4float
+         %43 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_72fa64 = OpFunction %void None %13
          %16 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2uint Function %19
-      %arg_2 = OpVariable %_ptr_Function_int Function %25
-      %arg_3 = OpVariable %_ptr_Function_v4int Function %27
-               OpStore %arg_1 %19
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %23
+      %arg_2 = OpVariable %_ptr_Function_int Function %27
+      %arg_3 = OpVariable %_ptr_Function_v4int Function %32
+               OpStore %arg_1 %20
                OpStore %arg_2 %int_1
-               OpStore %arg_3 %27
-         %31 = OpLoad %11 %arg_0
-         %33 = OpLoad %v2uint %arg_1
-         %34 = OpCompositeExtract %uint %33 0
-         %35 = OpCompositeExtract %uint %33 1
-         %37 = OpLoad %int %arg_2
-         %36 = OpBitcast %uint %37
-         %38 = OpCompositeConstruct %v3uint %34 %35 %36
-         %39 = OpLoad %v4int %arg_3
-               OpImageWrite %31 %38 %39
+               OpStore %arg_3 %29
+         %34 = OpLoad %11 %arg_0
+         %36 = OpLoad %v2uint %arg_1
+         %37 = OpCompositeExtract %uint %36 0
+         %38 = OpCompositeExtract %uint %36 1
+         %40 = OpLoad %int %arg_2
+         %39 = OpBitcast %uint %40
+         %41 = OpCompositeConstruct %v3uint %37 %38 %39
+         %42 = OpLoad %v4int %arg_3
+               OpImageWrite %34 %41 %42
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %40
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_72fa64
+%vertex_main_inner = OpFunction %v4float None %43
+         %45 = OpLabel
+         %46 = OpFunctionCall %void %textureStore_72fa64
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %45 = OpLabel
-         %46 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %46
+         %48 = OpLabel
+         %49 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %49
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %49 = OpLabel
-         %50 = OpFunctionCall %void %textureStore_72fa64
+         %52 = OpLabel
+         %53 = OpFunctionCall %void %textureStore_72fa64
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %52 = OpLabel
-         %53 = OpFunctionCall %void %textureStore_72fa64
+         %55 = OpLabel
+         %56 = OpFunctionCall %void %textureStore_72fa64
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/72fa64.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/72fa64.wgsl.expected.wgsl
index 0e90aab..a68ac82 100644
--- a/test/tint/builtins/gen/var/textureStore/72fa64.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/72fa64.wgsl.expected.wgsl
@@ -1,9 +1,9 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rg32sint, write>;
 
 fn textureStore_72fa64() {
-  var arg_1 = vec2<u32>();
+  var arg_1 = vec2<u32>(1u);
   var arg_2 = 1i;
-  var arg_3 = vec4<i32>();
+  var arg_3 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/731349.wgsl b/test/tint/builtins/gen/var/textureStore/731349.wgsl
index c28f3a2..2063ea5 100644
--- a/test/tint/builtins/gen/var/textureStore/731349.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/731349.wgsl
@@ -24,8 +24,8 @@
 
 // fn textureStore(texture: texture_storage_2d<rgba8unorm, write>, coords: vec2<i32>, value: vec4<f32>)
 fn textureStore_731349() {
-  var arg_1 = vec2<i32>();
-  var arg_2 = vec4<f32>();
+  var arg_1 = vec2<i32>(1i);
+  var arg_2 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/731349.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/731349.wgsl.expected.dxc.hlsl
index 9647546..41c6295 100644
--- a/test/tint/builtins/gen/var/textureStore/731349.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/731349.wgsl.expected.dxc.hlsl
@@ -1,8 +1,8 @@
 RWTexture2D<float4> arg_0 : register(u0, space1);
 
 void textureStore_731349() {
-  int2 arg_1 = (0).xx;
-  float4 arg_2 = (0.0f).xxxx;
+  int2 arg_1 = (1).xx;
+  float4 arg_2 = (1.0f).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/731349.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/731349.wgsl.expected.fxc.hlsl
index 9647546..41c6295 100644
--- a/test/tint/builtins/gen/var/textureStore/731349.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/731349.wgsl.expected.fxc.hlsl
@@ -1,8 +1,8 @@
 RWTexture2D<float4> arg_0 : register(u0, space1);
 
 void textureStore_731349() {
-  int2 arg_1 = (0).xx;
-  float4 arg_2 = (0.0f).xxxx;
+  int2 arg_1 = (1).xx;
+  float4 arg_2 = (1.0f).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/731349.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/731349.wgsl.expected.glsl
index 2fc13d7..7873e23 100644
--- a/test/tint/builtins/gen/var/textureStore/731349.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/731349.wgsl.expected.glsl
@@ -2,8 +2,8 @@
 
 layout(rgba8) uniform highp writeonly image2D arg_0;
 void textureStore_731349() {
-  ivec2 arg_1 = ivec2(0);
-  vec4 arg_2 = vec4(0.0f);
+  ivec2 arg_1 = ivec2(1);
+  vec4 arg_2 = vec4(1.0f);
   imageStore(arg_0, arg_1, arg_2);
 }
 
@@ -25,8 +25,8 @@
 
 layout(rgba8) uniform highp writeonly image2D arg_0;
 void textureStore_731349() {
-  ivec2 arg_1 = ivec2(0);
-  vec4 arg_2 = vec4(0.0f);
+  ivec2 arg_1 = ivec2(1);
+  vec4 arg_2 = vec4(1.0f);
   imageStore(arg_0, arg_1, arg_2);
 }
 
@@ -42,8 +42,8 @@
 
 layout(rgba8) uniform highp writeonly image2D arg_0;
 void textureStore_731349() {
-  ivec2 arg_1 = ivec2(0);
-  vec4 arg_2 = vec4(0.0f);
+  ivec2 arg_1 = ivec2(1);
+  vec4 arg_2 = vec4(1.0f);
   imageStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/731349.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/731349.wgsl.expected.msl
index f7898d7..4c20f23 100644
--- a/test/tint/builtins/gen/var/textureStore/731349.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/731349.wgsl.expected.msl
@@ -2,8 +2,8 @@
 
 using namespace metal;
 void textureStore_731349(texture2d<float, access::write> tint_symbol_1) {
-  int2 arg_1 = int2(0);
-  float4 arg_2 = float4(0.0f);
+  int2 arg_1 = int2(1);
+  float4 arg_2 = float4(1.0f);
   tint_symbol_1.write(arg_2, uint2(arg_1));
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/731349.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/731349.wgsl.expected.spvasm
index 0d4982f..d804641 100644
--- a/test/tint/builtins/gen/var/textureStore/731349.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/731349.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 41
+; Bound: 44
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -40,42 +40,45 @@
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
-         %18 = OpConstantNull %v2int
+      %int_1 = OpConstant %int 1
+         %19 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v2int = OpTypePointer Function %v2int
-%_ptr_Function_v4float = OpTypePointer Function %v4float
-         %27 = OpTypeFunction %v4float
+         %22 = OpConstantNull %v2int
     %float_1 = OpConstant %float 1
+         %24 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%_ptr_Function_v4float = OpTypePointer Function %v4float
+         %31 = OpTypeFunction %v4float
 %textureStore_731349 = OpFunction %void None %12
          %15 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2int Function %18
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %22
       %arg_2 = OpVariable %_ptr_Function_v4float Function %5
-               OpStore %arg_1 %18
-               OpStore %arg_2 %5
-         %24 = OpLoad %11 %arg_0
-         %25 = OpLoad %v2int %arg_1
-         %26 = OpLoad %v4float %arg_2
-               OpImageWrite %24 %25 %26
+               OpStore %arg_1 %19
+               OpStore %arg_2 %24
+         %28 = OpLoad %11 %arg_0
+         %29 = OpLoad %v2int %arg_1
+         %30 = OpLoad %v4float %arg_2
+               OpImageWrite %28 %29 %30
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %27
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %textureStore_731349
+%vertex_main_inner = OpFunction %v4float None %31
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureStore_731349
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %32 = OpLabel
-         %33 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %33
+         %36 = OpLabel
+         %37 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %37
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_731349
+         %39 = OpLabel
+         %40 = OpFunctionCall %void %textureStore_731349
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_731349
+         %42 = OpLabel
+         %43 = OpFunctionCall %void %textureStore_731349
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/731349.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/731349.wgsl.expected.wgsl
index eb1aa14..8269e63 100644
--- a/test/tint/builtins/gen/var/textureStore/731349.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/731349.wgsl.expected.wgsl
@@ -1,8 +1,8 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba8unorm, write>;
 
 fn textureStore_731349() {
-  var arg_1 = vec2<i32>();
-  var arg_2 = vec4<f32>();
+  var arg_1 = vec2<i32>(1i);
+  var arg_2 = vec4<f32>(1.0f);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/73bbbc.wgsl b/test/tint/builtins/gen/var/textureStore/73bbbc.wgsl
index caabbdb..95ca71c 100644
--- a/test/tint/builtins/gen/var/textureStore/73bbbc.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/73bbbc.wgsl
@@ -24,8 +24,8 @@
 
 // fn textureStore(texture: texture_storage_2d<rgba8unorm, write>, coords: vec2<u32>, value: vec4<f32>)
 fn textureStore_73bbbc() {
-  var arg_1 = vec2<u32>();
-  var arg_2 = vec4<f32>();
+  var arg_1 = vec2<u32>(1u);
+  var arg_2 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/73bbbc.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/73bbbc.wgsl.expected.dxc.hlsl
index 689ab29..df29991 100644
--- a/test/tint/builtins/gen/var/textureStore/73bbbc.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/73bbbc.wgsl.expected.dxc.hlsl
@@ -1,8 +1,8 @@
 RWTexture2D<float4> arg_0 : register(u0, space1);
 
 void textureStore_73bbbc() {
-  uint2 arg_1 = (0u).xx;
-  float4 arg_2 = (0.0f).xxxx;
+  uint2 arg_1 = (1u).xx;
+  float4 arg_2 = (1.0f).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/73bbbc.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/73bbbc.wgsl.expected.fxc.hlsl
index 689ab29..df29991 100644
--- a/test/tint/builtins/gen/var/textureStore/73bbbc.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/73bbbc.wgsl.expected.fxc.hlsl
@@ -1,8 +1,8 @@
 RWTexture2D<float4> arg_0 : register(u0, space1);
 
 void textureStore_73bbbc() {
-  uint2 arg_1 = (0u).xx;
-  float4 arg_2 = (0.0f).xxxx;
+  uint2 arg_1 = (1u).xx;
+  float4 arg_2 = (1.0f).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/73bbbc.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/73bbbc.wgsl.expected.glsl
index 59505cb..f100d49 100644
--- a/test/tint/builtins/gen/var/textureStore/73bbbc.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/73bbbc.wgsl.expected.glsl
@@ -2,8 +2,8 @@
 
 layout(rgba8) uniform highp writeonly image2D arg_0;
 void textureStore_73bbbc() {
-  uvec2 arg_1 = uvec2(0u);
-  vec4 arg_2 = vec4(0.0f);
+  uvec2 arg_1 = uvec2(1u);
+  vec4 arg_2 = vec4(1.0f);
   imageStore(arg_0, ivec2(arg_1), arg_2);
 }
 
@@ -25,8 +25,8 @@
 
 layout(rgba8) uniform highp writeonly image2D arg_0;
 void textureStore_73bbbc() {
-  uvec2 arg_1 = uvec2(0u);
-  vec4 arg_2 = vec4(0.0f);
+  uvec2 arg_1 = uvec2(1u);
+  vec4 arg_2 = vec4(1.0f);
   imageStore(arg_0, ivec2(arg_1), arg_2);
 }
 
@@ -42,8 +42,8 @@
 
 layout(rgba8) uniform highp writeonly image2D arg_0;
 void textureStore_73bbbc() {
-  uvec2 arg_1 = uvec2(0u);
-  vec4 arg_2 = vec4(0.0f);
+  uvec2 arg_1 = uvec2(1u);
+  vec4 arg_2 = vec4(1.0f);
   imageStore(arg_0, ivec2(arg_1), arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/73bbbc.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/73bbbc.wgsl.expected.msl
index 941e50f..df9a954 100644
--- a/test/tint/builtins/gen/var/textureStore/73bbbc.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/73bbbc.wgsl.expected.msl
@@ -2,8 +2,8 @@
 
 using namespace metal;
 void textureStore_73bbbc(texture2d<float, access::write> tint_symbol_1) {
-  uint2 arg_1 = uint2(0u);
-  float4 arg_2 = float4(0.0f);
+  uint2 arg_1 = uint2(1u);
+  float4 arg_2 = float4(1.0f);
   tint_symbol_1.write(arg_2, uint2(arg_1));
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/73bbbc.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/73bbbc.wgsl.expected.spvasm
index 8b04462..d968e79 100644
--- a/test/tint/builtins/gen/var/textureStore/73bbbc.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/73bbbc.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 41
+; Bound: 44
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -40,42 +40,45 @@
          %12 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
-         %18 = OpConstantNull %v2uint
+     %uint_1 = OpConstant %uint 1
+         %19 = OpConstantComposite %v2uint %uint_1 %uint_1
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
-%_ptr_Function_v4float = OpTypePointer Function %v4float
-         %27 = OpTypeFunction %v4float
+         %22 = OpConstantNull %v2uint
     %float_1 = OpConstant %float 1
+         %24 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%_ptr_Function_v4float = OpTypePointer Function %v4float
+         %31 = OpTypeFunction %v4float
 %textureStore_73bbbc = OpFunction %void None %12
          %15 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2uint Function %18
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %22
       %arg_2 = OpVariable %_ptr_Function_v4float Function %5
-               OpStore %arg_1 %18
-               OpStore %arg_2 %5
-         %24 = OpLoad %11 %arg_0
-         %25 = OpLoad %v2uint %arg_1
-         %26 = OpLoad %v4float %arg_2
-               OpImageWrite %24 %25 %26
+               OpStore %arg_1 %19
+               OpStore %arg_2 %24
+         %28 = OpLoad %11 %arg_0
+         %29 = OpLoad %v2uint %arg_1
+         %30 = OpLoad %v4float %arg_2
+               OpImageWrite %28 %29 %30
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %27
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %textureStore_73bbbc
+%vertex_main_inner = OpFunction %v4float None %31
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureStore_73bbbc
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %32 = OpLabel
-         %33 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %33
+         %36 = OpLabel
+         %37 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %37
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_73bbbc
+         %39 = OpLabel
+         %40 = OpFunctionCall %void %textureStore_73bbbc
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_73bbbc
+         %42 = OpLabel
+         %43 = OpFunctionCall %void %textureStore_73bbbc
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/73bbbc.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/73bbbc.wgsl.expected.wgsl
index 7728131..a8c6754 100644
--- a/test/tint/builtins/gen/var/textureStore/73bbbc.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/73bbbc.wgsl.expected.wgsl
@@ -1,8 +1,8 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba8unorm, write>;
 
 fn textureStore_73bbbc() {
-  var arg_1 = vec2<u32>();
-  var arg_2 = vec4<f32>();
+  var arg_1 = vec2<u32>(1u);
+  var arg_2 = vec4<f32>(1.0f);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/752da6.wgsl b/test/tint/builtins/gen/var/textureStore/752da6.wgsl
index e085cce..80276c2 100644
--- a/test/tint/builtins/gen/var/textureStore/752da6.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/752da6.wgsl
@@ -24,8 +24,8 @@
 
 // fn textureStore(texture: texture_storage_2d<rgba32sint, write>, coords: vec2<i32>, value: vec4<i32>)
 fn textureStore_752da6() {
-  var arg_1 = vec2<i32>();
-  var arg_2 = vec4<i32>();
+  var arg_1 = vec2<i32>(1i);
+  var arg_2 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/752da6.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/752da6.wgsl.expected.dxc.hlsl
index 74afe66..897f76c 100644
--- a/test/tint/builtins/gen/var/textureStore/752da6.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/752da6.wgsl.expected.dxc.hlsl
@@ -1,8 +1,8 @@
 RWTexture2D<int4> arg_0 : register(u0, space1);
 
 void textureStore_752da6() {
-  int2 arg_1 = (0).xx;
-  int4 arg_2 = (0).xxxx;
+  int2 arg_1 = (1).xx;
+  int4 arg_2 = (1).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/752da6.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/752da6.wgsl.expected.fxc.hlsl
index 74afe66..897f76c 100644
--- a/test/tint/builtins/gen/var/textureStore/752da6.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/752da6.wgsl.expected.fxc.hlsl
@@ -1,8 +1,8 @@
 RWTexture2D<int4> arg_0 : register(u0, space1);
 
 void textureStore_752da6() {
-  int2 arg_1 = (0).xx;
-  int4 arg_2 = (0).xxxx;
+  int2 arg_1 = (1).xx;
+  int4 arg_2 = (1).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/752da6.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/752da6.wgsl.expected.glsl
index 4c49f79..1d02b54 100644
--- a/test/tint/builtins/gen/var/textureStore/752da6.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/752da6.wgsl.expected.glsl
@@ -2,8 +2,8 @@
 
 layout(rgba32i) uniform highp writeonly iimage2D arg_0;
 void textureStore_752da6() {
-  ivec2 arg_1 = ivec2(0);
-  ivec4 arg_2 = ivec4(0);
+  ivec2 arg_1 = ivec2(1);
+  ivec4 arg_2 = ivec4(1);
   imageStore(arg_0, arg_1, arg_2);
 }
 
@@ -25,8 +25,8 @@
 
 layout(rgba32i) uniform highp writeonly iimage2D arg_0;
 void textureStore_752da6() {
-  ivec2 arg_1 = ivec2(0);
-  ivec4 arg_2 = ivec4(0);
+  ivec2 arg_1 = ivec2(1);
+  ivec4 arg_2 = ivec4(1);
   imageStore(arg_0, arg_1, arg_2);
 }
 
@@ -42,8 +42,8 @@
 
 layout(rgba32i) uniform highp writeonly iimage2D arg_0;
 void textureStore_752da6() {
-  ivec2 arg_1 = ivec2(0);
-  ivec4 arg_2 = ivec4(0);
+  ivec2 arg_1 = ivec2(1);
+  ivec4 arg_2 = ivec4(1);
   imageStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/752da6.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/752da6.wgsl.expected.msl
index 14805dc..34cacd9 100644
--- a/test/tint/builtins/gen/var/textureStore/752da6.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/752da6.wgsl.expected.msl
@@ -2,8 +2,8 @@
 
 using namespace metal;
 void textureStore_752da6(texture2d<int, access::write> tint_symbol_1) {
-  int2 arg_1 = int2(0);
-  int4 arg_2 = int4(0);
+  int2 arg_1 = int2(1);
+  int4 arg_2 = int4(1);
   tint_symbol_1.write(arg_2, uint2(arg_1));
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/752da6.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/752da6.wgsl.expected.spvasm
index 4b831a2..670bde4 100644
--- a/test/tint/builtins/gen/var/textureStore/752da6.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/752da6.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 43
+; Bound: 46
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -40,44 +40,47 @@
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
       %v2int = OpTypeVector %int 2
-         %18 = OpConstantNull %v2int
+      %int_1 = OpConstant %int 1
+         %19 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v2int = OpTypePointer Function %v2int
+         %22 = OpConstantNull %v2int
       %v4int = OpTypeVector %int 4
-         %22 = OpConstantNull %v4int
+         %24 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %29 = OpTypeFunction %v4float
+         %27 = OpConstantNull %v4int
+         %32 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_752da6 = OpFunction %void None %13
          %16 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2int Function %18
-      %arg_2 = OpVariable %_ptr_Function_v4int Function %22
-               OpStore %arg_1 %18
-               OpStore %arg_2 %22
-         %26 = OpLoad %11 %arg_0
-         %27 = OpLoad %v2int %arg_1
-         %28 = OpLoad %v4int %arg_2
-               OpImageWrite %26 %27 %28
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %22
+      %arg_2 = OpVariable %_ptr_Function_v4int Function %27
+               OpStore %arg_1 %19
+               OpStore %arg_2 %24
+         %29 = OpLoad %11 %arg_0
+         %30 = OpLoad %v2int %arg_1
+         %31 = OpLoad %v4int %arg_2
+               OpImageWrite %29 %30 %31
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %29
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %textureStore_752da6
+%vertex_main_inner = OpFunction %v4float None %32
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %textureStore_752da6
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %34 = OpLabel
-         %35 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %35
+         %37 = OpLabel
+         %38 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %38
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureStore_752da6
+         %41 = OpLabel
+         %42 = OpFunctionCall %void %textureStore_752da6
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureStore_752da6
+         %44 = OpLabel
+         %45 = OpFunctionCall %void %textureStore_752da6
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/752da6.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/752da6.wgsl.expected.wgsl
index 5ec1d8d..7f42960 100644
--- a/test/tint/builtins/gen/var/textureStore/752da6.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/752da6.wgsl.expected.wgsl
@@ -1,8 +1,8 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba32sint, write>;
 
 fn textureStore_752da6() {
-  var arg_1 = vec2<i32>();
-  var arg_2 = vec4<i32>();
+  var arg_1 = vec2<i32>(1i);
+  var arg_2 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/779d14.wgsl b/test/tint/builtins/gen/var/textureStore/779d14.wgsl
index 1850240..66154bc 100644
--- a/test/tint/builtins/gen/var/textureStore/779d14.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/779d14.wgsl
@@ -24,9 +24,9 @@
 
 // fn textureStore(texture: texture_storage_2d_array<rgba16uint, write>, coords: vec2<u32>, array_index: u32, value: vec4<u32>)
 fn textureStore_779d14() {
-  var arg_1 = vec2<u32>();
+  var arg_1 = vec2<u32>(1u);
   var arg_2 = 1u;
-  var arg_3 = vec4<u32>();
+  var arg_3 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/779d14.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/779d14.wgsl.expected.dxc.hlsl
index 1d92629..d8cc420 100644
--- a/test/tint/builtins/gen/var/textureStore/779d14.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/779d14.wgsl.expected.dxc.hlsl
@@ -1,9 +1,9 @@
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 void textureStore_779d14() {
-  uint2 arg_1 = (0u).xx;
+  uint2 arg_1 = (1u).xx;
   uint arg_2 = 1u;
-  uint4 arg_3 = (0u).xxxx;
+  uint4 arg_3 = (1u).xxxx;
   arg_0[uint3(arg_1, arg_2)] = arg_3;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/779d14.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/779d14.wgsl.expected.fxc.hlsl
index 1d92629..d8cc420 100644
--- a/test/tint/builtins/gen/var/textureStore/779d14.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/779d14.wgsl.expected.fxc.hlsl
@@ -1,9 +1,9 @@
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 void textureStore_779d14() {
-  uint2 arg_1 = (0u).xx;
+  uint2 arg_1 = (1u).xx;
   uint arg_2 = 1u;
-  uint4 arg_3 = (0u).xxxx;
+  uint4 arg_3 = (1u).xxxx;
   arg_0[uint3(arg_1, arg_2)] = arg_3;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/779d14.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/779d14.wgsl.expected.glsl
index 3ad1db2..3bd1e15 100644
--- a/test/tint/builtins/gen/var/textureStore/779d14.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/779d14.wgsl.expected.glsl
@@ -2,9 +2,9 @@
 
 layout(rgba16ui) uniform highp writeonly uimage2DArray arg_0;
 void textureStore_779d14() {
-  uvec2 arg_1 = uvec2(0u);
+  uvec2 arg_1 = uvec2(1u);
   uint arg_2 = 1u;
-  uvec4 arg_3 = uvec4(0u);
+  uvec4 arg_3 = uvec4(1u);
   imageStore(arg_0, ivec3(uvec3(arg_1, arg_2)), arg_3);
 }
 
@@ -26,9 +26,9 @@
 
 layout(rgba16ui) uniform highp writeonly uimage2DArray arg_0;
 void textureStore_779d14() {
-  uvec2 arg_1 = uvec2(0u);
+  uvec2 arg_1 = uvec2(1u);
   uint arg_2 = 1u;
-  uvec4 arg_3 = uvec4(0u);
+  uvec4 arg_3 = uvec4(1u);
   imageStore(arg_0, ivec3(uvec3(arg_1, arg_2)), arg_3);
 }
 
@@ -44,9 +44,9 @@
 
 layout(rgba16ui) uniform highp writeonly uimage2DArray arg_0;
 void textureStore_779d14() {
-  uvec2 arg_1 = uvec2(0u);
+  uvec2 arg_1 = uvec2(1u);
   uint arg_2 = 1u;
-  uvec4 arg_3 = uvec4(0u);
+  uvec4 arg_3 = uvec4(1u);
   imageStore(arg_0, ivec3(uvec3(arg_1, arg_2)), arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/779d14.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/779d14.wgsl.expected.msl
index 0d04ed0..cb582aa 100644
--- a/test/tint/builtins/gen/var/textureStore/779d14.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/779d14.wgsl.expected.msl
@@ -2,9 +2,9 @@
 
 using namespace metal;
 void textureStore_779d14(texture2d_array<uint, access::write> tint_symbol_1) {
-  uint2 arg_1 = uint2(0u);
+  uint2 arg_1 = uint2(1u);
   uint arg_2 = 1u;
-  uint4 arg_3 = uint4(0u);
+  uint4 arg_3 = uint4(1u);
   tint_symbol_1.write(arg_3, uint2(arg_1), arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/779d14.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/779d14.wgsl.expected.spvasm
index f61b543..d686881 100644
--- a/test/tint/builtins/gen/var/textureStore/779d14.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/779d14.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 52
+; Bound: 54
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -41,54 +41,56 @@
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
      %v2uint = OpTypeVector %uint 2
-         %18 = OpConstantNull %v2uint
-%_ptr_Function_v2uint = OpTypePointer Function %v2uint
      %uint_1 = OpConstant %uint 1
+         %19 = OpConstantComposite %v2uint %uint_1 %uint_1
+%_ptr_Function_v2uint = OpTypePointer Function %v2uint
+         %22 = OpConstantNull %v2uint
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %24 = OpConstantNull %uint
+         %25 = OpConstantNull %uint
      %v4uint = OpTypeVector %uint 4
-         %26 = OpConstantNull %v4uint
+         %27 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
+         %30 = OpConstantNull %v4uint
      %v3uint = OpTypeVector %uint 3
-         %38 = OpTypeFunction %v4float
+         %40 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_779d14 = OpFunction %void None %13
          %16 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2uint Function %18
-      %arg_2 = OpVariable %_ptr_Function_uint Function %24
-      %arg_3 = OpVariable %_ptr_Function_v4uint Function %26
-               OpStore %arg_1 %18
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %22
+      %arg_2 = OpVariable %_ptr_Function_uint Function %25
+      %arg_3 = OpVariable %_ptr_Function_v4uint Function %30
+               OpStore %arg_1 %19
                OpStore %arg_2 %uint_1
-               OpStore %arg_3 %26
-         %30 = OpLoad %11 %arg_0
-         %32 = OpLoad %v2uint %arg_1
-         %33 = OpCompositeExtract %uint %32 0
-         %34 = OpCompositeExtract %uint %32 1
-         %35 = OpLoad %uint %arg_2
-         %36 = OpCompositeConstruct %v3uint %33 %34 %35
-         %37 = OpLoad %v4uint %arg_3
-               OpImageWrite %30 %36 %37
+               OpStore %arg_3 %27
+         %32 = OpLoad %11 %arg_0
+         %34 = OpLoad %v2uint %arg_1
+         %35 = OpCompositeExtract %uint %34 0
+         %36 = OpCompositeExtract %uint %34 1
+         %37 = OpLoad %uint %arg_2
+         %38 = OpCompositeConstruct %v3uint %35 %36 %37
+         %39 = OpLoad %v4uint %arg_3
+               OpImageWrite %32 %38 %39
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %38
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureStore_779d14
+%vertex_main_inner = OpFunction %v4float None %40
+         %42 = OpLabel
+         %43 = OpFunctionCall %void %textureStore_779d14
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %43 = OpLabel
-         %44 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %44
+         %45 = OpLabel
+         %46 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %46
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %47 = OpLabel
-         %48 = OpFunctionCall %void %textureStore_779d14
+         %49 = OpLabel
+         %50 = OpFunctionCall %void %textureStore_779d14
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %50 = OpLabel
-         %51 = OpFunctionCall %void %textureStore_779d14
+         %52 = OpLabel
+         %53 = OpFunctionCall %void %textureStore_779d14
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/779d14.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/779d14.wgsl.expected.wgsl
index 543447b..0af83b5 100644
--- a/test/tint/builtins/gen/var/textureStore/779d14.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/779d14.wgsl.expected.wgsl
@@ -1,9 +1,9 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba16uint, write>;
 
 fn textureStore_779d14() {
-  var arg_1 = vec2<u32>();
+  var arg_1 = vec2<u32>(1u);
   var arg_2 = 1u;
-  var arg_3 = vec4<u32>();
+  var arg_3 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/77c0ae.wgsl b/test/tint/builtins/gen/var/textureStore/77c0ae.wgsl
index 052401c..add7ba4 100644
--- a/test/tint/builtins/gen/var/textureStore/77c0ae.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/77c0ae.wgsl
@@ -24,8 +24,8 @@
 
 // fn textureStore(texture: texture_storage_2d<rgba8uint, write>, coords: vec2<i32>, value: vec4<u32>)
 fn textureStore_77c0ae() {
-  var arg_1 = vec2<i32>();
-  var arg_2 = vec4<u32>();
+  var arg_1 = vec2<i32>(1i);
+  var arg_2 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/77c0ae.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/77c0ae.wgsl.expected.dxc.hlsl
index 04dafb0..f6f06f7 100644
--- a/test/tint/builtins/gen/var/textureStore/77c0ae.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/77c0ae.wgsl.expected.dxc.hlsl
@@ -1,8 +1,8 @@
 RWTexture2D<uint4> arg_0 : register(u0, space1);
 
 void textureStore_77c0ae() {
-  int2 arg_1 = (0).xx;
-  uint4 arg_2 = (0u).xxxx;
+  int2 arg_1 = (1).xx;
+  uint4 arg_2 = (1u).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/77c0ae.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/77c0ae.wgsl.expected.fxc.hlsl
index 04dafb0..f6f06f7 100644
--- a/test/tint/builtins/gen/var/textureStore/77c0ae.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/77c0ae.wgsl.expected.fxc.hlsl
@@ -1,8 +1,8 @@
 RWTexture2D<uint4> arg_0 : register(u0, space1);
 
 void textureStore_77c0ae() {
-  int2 arg_1 = (0).xx;
-  uint4 arg_2 = (0u).xxxx;
+  int2 arg_1 = (1).xx;
+  uint4 arg_2 = (1u).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/77c0ae.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/77c0ae.wgsl.expected.glsl
index ebdb907..1b74a4e 100644
--- a/test/tint/builtins/gen/var/textureStore/77c0ae.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/77c0ae.wgsl.expected.glsl
@@ -2,8 +2,8 @@
 
 layout(rgba8ui) uniform highp writeonly uimage2D arg_0;
 void textureStore_77c0ae() {
-  ivec2 arg_1 = ivec2(0);
-  uvec4 arg_2 = uvec4(0u);
+  ivec2 arg_1 = ivec2(1);
+  uvec4 arg_2 = uvec4(1u);
   imageStore(arg_0, arg_1, arg_2);
 }
 
@@ -25,8 +25,8 @@
 
 layout(rgba8ui) uniform highp writeonly uimage2D arg_0;
 void textureStore_77c0ae() {
-  ivec2 arg_1 = ivec2(0);
-  uvec4 arg_2 = uvec4(0u);
+  ivec2 arg_1 = ivec2(1);
+  uvec4 arg_2 = uvec4(1u);
   imageStore(arg_0, arg_1, arg_2);
 }
 
@@ -42,8 +42,8 @@
 
 layout(rgba8ui) uniform highp writeonly uimage2D arg_0;
 void textureStore_77c0ae() {
-  ivec2 arg_1 = ivec2(0);
-  uvec4 arg_2 = uvec4(0u);
+  ivec2 arg_1 = ivec2(1);
+  uvec4 arg_2 = uvec4(1u);
   imageStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/77c0ae.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/77c0ae.wgsl.expected.msl
index d7d8457..35bc870 100644
--- a/test/tint/builtins/gen/var/textureStore/77c0ae.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/77c0ae.wgsl.expected.msl
@@ -2,8 +2,8 @@
 
 using namespace metal;
 void textureStore_77c0ae(texture2d<uint, access::write> tint_symbol_1) {
-  int2 arg_1 = int2(0);
-  uint4 arg_2 = uint4(0u);
+  int2 arg_1 = int2(1);
+  uint4 arg_2 = uint4(1u);
   tint_symbol_1.write(arg_2, uint2(arg_1));
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/77c0ae.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/77c0ae.wgsl.expected.spvasm
index 6bacd0e..53da4ac 100644
--- a/test/tint/builtins/gen/var/textureStore/77c0ae.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/77c0ae.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 48
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -41,44 +41,48 @@
          %13 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
-         %19 = OpConstantNull %v2int
+      %int_1 = OpConstant %int 1
+         %20 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v2int = OpTypePointer Function %v2int
+         %23 = OpConstantNull %v2int
      %v4uint = OpTypeVector %uint 4
-         %23 = OpConstantNull %v4uint
+     %uint_1 = OpConstant %uint 1
+         %26 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %30 = OpTypeFunction %v4float
+         %29 = OpConstantNull %v4uint
+         %34 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_77c0ae = OpFunction %void None %13
          %16 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2int Function %19
-      %arg_2 = OpVariable %_ptr_Function_v4uint Function %23
-               OpStore %arg_1 %19
-               OpStore %arg_2 %23
-         %27 = OpLoad %11 %arg_0
-         %28 = OpLoad %v2int %arg_1
-         %29 = OpLoad %v4uint %arg_2
-               OpImageWrite %27 %28 %29
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %23
+      %arg_2 = OpVariable %_ptr_Function_v4uint Function %29
+               OpStore %arg_1 %20
+               OpStore %arg_2 %26
+         %31 = OpLoad %11 %arg_0
+         %32 = OpLoad %v2int %arg_1
+         %33 = OpLoad %v4uint %arg_2
+               OpImageWrite %31 %32 %33
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %30
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_77c0ae
+%vertex_main_inner = OpFunction %v4float None %34
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureStore_77c0ae
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %36
+         %39 = OpLabel
+         %40 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %40
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_77c0ae
+         %43 = OpLabel
+         %44 = OpFunctionCall %void %textureStore_77c0ae
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_77c0ae
+         %46 = OpLabel
+         %47 = OpFunctionCall %void %textureStore_77c0ae
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/77c0ae.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/77c0ae.wgsl.expected.wgsl
index 28994fc..2bcbf7b 100644
--- a/test/tint/builtins/gen/var/textureStore/77c0ae.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/77c0ae.wgsl.expected.wgsl
@@ -1,8 +1,8 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba8uint, write>;
 
 fn textureStore_77c0ae() {
-  var arg_1 = vec2<i32>();
-  var arg_2 = vec4<u32>();
+  var arg_1 = vec2<i32>(1i);
+  var arg_2 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/7bb211.wgsl b/test/tint/builtins/gen/var/textureStore/7bb211.wgsl
index c9fe455..3588d57 100644
--- a/test/tint/builtins/gen/var/textureStore/7bb211.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/7bb211.wgsl
@@ -24,9 +24,9 @@
 
 // fn textureStore(texture: texture_storage_2d_array<rg32sint, write>, coords: vec2<i32>, array_index: u32, value: vec4<i32>)
 fn textureStore_7bb211() {
-  var arg_1 = vec2<i32>();
+  var arg_1 = vec2<i32>(1i);
   var arg_2 = 1u;
-  var arg_3 = vec4<i32>();
+  var arg_3 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/7bb211.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/7bb211.wgsl.expected.dxc.hlsl
index 0074f0f..957b02a 100644
--- a/test/tint/builtins/gen/var/textureStore/7bb211.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/7bb211.wgsl.expected.dxc.hlsl
@@ -1,9 +1,9 @@
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 void textureStore_7bb211() {
-  int2 arg_1 = (0).xx;
+  int2 arg_1 = (1).xx;
   uint arg_2 = 1u;
-  int4 arg_3 = (0).xxxx;
+  int4 arg_3 = (1).xxxx;
   arg_0[int3(arg_1, int(arg_2))] = arg_3;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/7bb211.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/7bb211.wgsl.expected.fxc.hlsl
index 0074f0f..957b02a 100644
--- a/test/tint/builtins/gen/var/textureStore/7bb211.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/7bb211.wgsl.expected.fxc.hlsl
@@ -1,9 +1,9 @@
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 void textureStore_7bb211() {
-  int2 arg_1 = (0).xx;
+  int2 arg_1 = (1).xx;
   uint arg_2 = 1u;
-  int4 arg_3 = (0).xxxx;
+  int4 arg_3 = (1).xxxx;
   arg_0[int3(arg_1, int(arg_2))] = arg_3;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/7bb211.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/7bb211.wgsl.expected.msl
index 6d2729b..6941c58 100644
--- a/test/tint/builtins/gen/var/textureStore/7bb211.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/7bb211.wgsl.expected.msl
@@ -2,9 +2,9 @@
 
 using namespace metal;
 void textureStore_7bb211(texture2d_array<int, access::write> tint_symbol_1) {
-  int2 arg_1 = int2(0);
+  int2 arg_1 = int2(1);
   uint arg_2 = 1u;
-  int4 arg_3 = int4(0);
+  int4 arg_3 = int4(1);
   tint_symbol_1.write(arg_3, uint2(arg_1), arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/7bb211.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/7bb211.wgsl.expected.spvasm
index cb6aa19..afea97a 100644
--- a/test/tint/builtins/gen/var/textureStore/7bb211.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/7bb211.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 54
+; Bound: 57
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
@@ -42,56 +42,59 @@
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
       %v2int = OpTypeVector %int 2
-         %18 = OpConstantNull %v2int
+      %int_1 = OpConstant %int 1
+         %19 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v2int = OpTypePointer Function %v2int
+         %22 = OpConstantNull %v2int
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %25 = OpConstantNull %uint
+         %27 = OpConstantNull %uint
       %v4int = OpTypeVector %int 4
-         %27 = OpConstantNull %v4int
+         %29 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
+         %32 = OpConstantNull %v4int
       %v3int = OpTypeVector %int 3
-         %40 = OpTypeFunction %v4float
+         %43 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_7bb211 = OpFunction %void None %13
          %16 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2int Function %18
-      %arg_2 = OpVariable %_ptr_Function_uint Function %25
-      %arg_3 = OpVariable %_ptr_Function_v4int Function %27
-               OpStore %arg_1 %18
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %22
+      %arg_2 = OpVariable %_ptr_Function_uint Function %27
+      %arg_3 = OpVariable %_ptr_Function_v4int Function %32
+               OpStore %arg_1 %19
                OpStore %arg_2 %uint_1
-               OpStore %arg_3 %27
-         %31 = OpLoad %11 %arg_0
-         %33 = OpLoad %v2int %arg_1
-         %34 = OpCompositeExtract %int %33 0
-         %35 = OpCompositeExtract %int %33 1
-         %37 = OpLoad %uint %arg_2
-         %36 = OpBitcast %int %37
-         %38 = OpCompositeConstruct %v3int %34 %35 %36
-         %39 = OpLoad %v4int %arg_3
-               OpImageWrite %31 %38 %39
+               OpStore %arg_3 %29
+         %34 = OpLoad %11 %arg_0
+         %36 = OpLoad %v2int %arg_1
+         %37 = OpCompositeExtract %int %36 0
+         %38 = OpCompositeExtract %int %36 1
+         %40 = OpLoad %uint %arg_2
+         %39 = OpBitcast %int %40
+         %41 = OpCompositeConstruct %v3int %37 %38 %39
+         %42 = OpLoad %v4int %arg_3
+               OpImageWrite %34 %41 %42
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %40
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_7bb211
+%vertex_main_inner = OpFunction %v4float None %43
+         %45 = OpLabel
+         %46 = OpFunctionCall %void %textureStore_7bb211
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %45 = OpLabel
-         %46 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %46
+         %48 = OpLabel
+         %49 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %49
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %49 = OpLabel
-         %50 = OpFunctionCall %void %textureStore_7bb211
+         %52 = OpLabel
+         %53 = OpFunctionCall %void %textureStore_7bb211
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %52 = OpLabel
-         %53 = OpFunctionCall %void %textureStore_7bb211
+         %55 = OpLabel
+         %56 = OpFunctionCall %void %textureStore_7bb211
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/7bb211.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/7bb211.wgsl.expected.wgsl
index 990b9c1..27b0ce8 100644
--- a/test/tint/builtins/gen/var/textureStore/7bb211.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/7bb211.wgsl.expected.wgsl
@@ -1,9 +1,9 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rg32sint, write>;
 
 fn textureStore_7bb211() {
-  var arg_1 = vec2<i32>();
+  var arg_1 = vec2<i32>(1i);
   var arg_2 = 1u;
-  var arg_3 = vec4<i32>();
+  var arg_3 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/7cec8d.wgsl b/test/tint/builtins/gen/var/textureStore/7cec8d.wgsl
index 270a825..c51618c 100644
--- a/test/tint/builtins/gen/var/textureStore/7cec8d.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/7cec8d.wgsl
@@ -24,9 +24,9 @@
 
 // fn textureStore(texture: texture_storage_2d_array<rgba32sint, write>, coords: vec2<i32>, array_index: i32, value: vec4<i32>)
 fn textureStore_7cec8d() {
-  var arg_1 = vec2<i32>();
+  var arg_1 = vec2<i32>(1i);
   var arg_2 = 1i;
-  var arg_3 = vec4<i32>();
+  var arg_3 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/7cec8d.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/7cec8d.wgsl.expected.dxc.hlsl
index d31432b..a90a31f 100644
--- a/test/tint/builtins/gen/var/textureStore/7cec8d.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/7cec8d.wgsl.expected.dxc.hlsl
@@ -1,9 +1,9 @@
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 void textureStore_7cec8d() {
-  int2 arg_1 = (0).xx;
+  int2 arg_1 = (1).xx;
   int arg_2 = 1;
-  int4 arg_3 = (0).xxxx;
+  int4 arg_3 = (1).xxxx;
   arg_0[int3(arg_1, arg_2)] = arg_3;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/7cec8d.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/7cec8d.wgsl.expected.fxc.hlsl
index d31432b..a90a31f 100644
--- a/test/tint/builtins/gen/var/textureStore/7cec8d.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/7cec8d.wgsl.expected.fxc.hlsl
@@ -1,9 +1,9 @@
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 void textureStore_7cec8d() {
-  int2 arg_1 = (0).xx;
+  int2 arg_1 = (1).xx;
   int arg_2 = 1;
-  int4 arg_3 = (0).xxxx;
+  int4 arg_3 = (1).xxxx;
   arg_0[int3(arg_1, arg_2)] = arg_3;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/7cec8d.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/7cec8d.wgsl.expected.glsl
index 05b54d9..5d8dfd7 100644
--- a/test/tint/builtins/gen/var/textureStore/7cec8d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/7cec8d.wgsl.expected.glsl
@@ -2,9 +2,9 @@
 
 layout(rgba32i) uniform highp writeonly iimage2DArray arg_0;
 void textureStore_7cec8d() {
-  ivec2 arg_1 = ivec2(0);
+  ivec2 arg_1 = ivec2(1);
   int arg_2 = 1;
-  ivec4 arg_3 = ivec4(0);
+  ivec4 arg_3 = ivec4(1);
   imageStore(arg_0, ivec3(arg_1, arg_2), arg_3);
 }
 
@@ -26,9 +26,9 @@
 
 layout(rgba32i) uniform highp writeonly iimage2DArray arg_0;
 void textureStore_7cec8d() {
-  ivec2 arg_1 = ivec2(0);
+  ivec2 arg_1 = ivec2(1);
   int arg_2 = 1;
-  ivec4 arg_3 = ivec4(0);
+  ivec4 arg_3 = ivec4(1);
   imageStore(arg_0, ivec3(arg_1, arg_2), arg_3);
 }
 
@@ -44,9 +44,9 @@
 
 layout(rgba32i) uniform highp writeonly iimage2DArray arg_0;
 void textureStore_7cec8d() {
-  ivec2 arg_1 = ivec2(0);
+  ivec2 arg_1 = ivec2(1);
   int arg_2 = 1;
-  ivec4 arg_3 = ivec4(0);
+  ivec4 arg_3 = ivec4(1);
   imageStore(arg_0, ivec3(arg_1, arg_2), arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/7cec8d.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/7cec8d.wgsl.expected.msl
index bc68202..450a31a 100644
--- a/test/tint/builtins/gen/var/textureStore/7cec8d.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/7cec8d.wgsl.expected.msl
@@ -2,9 +2,9 @@
 
 using namespace metal;
 void textureStore_7cec8d(texture2d_array<int, access::write> tint_symbol_1) {
-  int2 arg_1 = int2(0);
+  int2 arg_1 = int2(1);
   int arg_2 = 1;
-  int4 arg_3 = int4(0);
+  int4 arg_3 = int4(1);
   tint_symbol_1.write(arg_3, uint2(arg_1), arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/7cec8d.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/7cec8d.wgsl.expected.spvasm
index b36ee5f..83c7715 100644
--- a/test/tint/builtins/gen/var/textureStore/7cec8d.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/7cec8d.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 52
+; Bound: 54
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -41,54 +41,56 @@
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
       %v2int = OpTypeVector %int 2
-         %18 = OpConstantNull %v2int
-%_ptr_Function_v2int = OpTypePointer Function %v2int
       %int_1 = OpConstant %int 1
+         %19 = OpConstantComposite %v2int %int_1 %int_1
+%_ptr_Function_v2int = OpTypePointer Function %v2int
+         %22 = OpConstantNull %v2int
 %_ptr_Function_int = OpTypePointer Function %int
-         %24 = OpConstantNull %int
+         %25 = OpConstantNull %int
       %v4int = OpTypeVector %int 4
-         %26 = OpConstantNull %v4int
+         %27 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
+         %30 = OpConstantNull %v4int
       %v3int = OpTypeVector %int 3
-         %38 = OpTypeFunction %v4float
+         %40 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_7cec8d = OpFunction %void None %13
          %16 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2int Function %18
-      %arg_2 = OpVariable %_ptr_Function_int Function %24
-      %arg_3 = OpVariable %_ptr_Function_v4int Function %26
-               OpStore %arg_1 %18
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %22
+      %arg_2 = OpVariable %_ptr_Function_int Function %25
+      %arg_3 = OpVariable %_ptr_Function_v4int Function %30
+               OpStore %arg_1 %19
                OpStore %arg_2 %int_1
-               OpStore %arg_3 %26
-         %30 = OpLoad %11 %arg_0
-         %32 = OpLoad %v2int %arg_1
-         %33 = OpCompositeExtract %int %32 0
-         %34 = OpCompositeExtract %int %32 1
-         %35 = OpLoad %int %arg_2
-         %36 = OpCompositeConstruct %v3int %33 %34 %35
-         %37 = OpLoad %v4int %arg_3
-               OpImageWrite %30 %36 %37
+               OpStore %arg_3 %27
+         %32 = OpLoad %11 %arg_0
+         %34 = OpLoad %v2int %arg_1
+         %35 = OpCompositeExtract %int %34 0
+         %36 = OpCompositeExtract %int %34 1
+         %37 = OpLoad %int %arg_2
+         %38 = OpCompositeConstruct %v3int %35 %36 %37
+         %39 = OpLoad %v4int %arg_3
+               OpImageWrite %32 %38 %39
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %38
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureStore_7cec8d
+%vertex_main_inner = OpFunction %v4float None %40
+         %42 = OpLabel
+         %43 = OpFunctionCall %void %textureStore_7cec8d
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %43 = OpLabel
-         %44 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %44
+         %45 = OpLabel
+         %46 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %46
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %47 = OpLabel
-         %48 = OpFunctionCall %void %textureStore_7cec8d
+         %49 = OpLabel
+         %50 = OpFunctionCall %void %textureStore_7cec8d
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %50 = OpLabel
-         %51 = OpFunctionCall %void %textureStore_7cec8d
+         %52 = OpLabel
+         %53 = OpFunctionCall %void %textureStore_7cec8d
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/7cec8d.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/7cec8d.wgsl.expected.wgsl
index 38fb600..77a6f71 100644
--- a/test/tint/builtins/gen/var/textureStore/7cec8d.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/7cec8d.wgsl.expected.wgsl
@@ -1,9 +1,9 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba32sint, write>;
 
 fn textureStore_7cec8d() {
-  var arg_1 = vec2<i32>();
+  var arg_1 = vec2<i32>(1i);
   var arg_2 = 1i;
-  var arg_3 = vec4<i32>();
+  var arg_3 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/7cf6e7.wgsl b/test/tint/builtins/gen/var/textureStore/7cf6e7.wgsl
index b64eb22..1728981 100644
--- a/test/tint/builtins/gen/var/textureStore/7cf6e7.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/7cf6e7.wgsl
@@ -24,8 +24,8 @@
 
 // fn textureStore(texture: texture_storage_2d<rgba16float, write>, coords: vec2<u32>, value: vec4<f32>)
 fn textureStore_7cf6e7() {
-  var arg_1 = vec2<u32>();
-  var arg_2 = vec4<f32>();
+  var arg_1 = vec2<u32>(1u);
+  var arg_2 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/7cf6e7.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/7cf6e7.wgsl.expected.dxc.hlsl
index 516eb54..5ba45d9 100644
--- a/test/tint/builtins/gen/var/textureStore/7cf6e7.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/7cf6e7.wgsl.expected.dxc.hlsl
@@ -1,8 +1,8 @@
 RWTexture2D<float4> arg_0 : register(u0, space1);
 
 void textureStore_7cf6e7() {
-  uint2 arg_1 = (0u).xx;
-  float4 arg_2 = (0.0f).xxxx;
+  uint2 arg_1 = (1u).xx;
+  float4 arg_2 = (1.0f).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/7cf6e7.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/7cf6e7.wgsl.expected.fxc.hlsl
index 516eb54..5ba45d9 100644
--- a/test/tint/builtins/gen/var/textureStore/7cf6e7.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/7cf6e7.wgsl.expected.fxc.hlsl
@@ -1,8 +1,8 @@
 RWTexture2D<float4> arg_0 : register(u0, space1);
 
 void textureStore_7cf6e7() {
-  uint2 arg_1 = (0u).xx;
-  float4 arg_2 = (0.0f).xxxx;
+  uint2 arg_1 = (1u).xx;
+  float4 arg_2 = (1.0f).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/7cf6e7.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/7cf6e7.wgsl.expected.glsl
index dc0045b..7abe534 100644
--- a/test/tint/builtins/gen/var/textureStore/7cf6e7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/7cf6e7.wgsl.expected.glsl
@@ -2,8 +2,8 @@
 
 layout(rgba16f) uniform highp writeonly image2D arg_0;
 void textureStore_7cf6e7() {
-  uvec2 arg_1 = uvec2(0u);
-  vec4 arg_2 = vec4(0.0f);
+  uvec2 arg_1 = uvec2(1u);
+  vec4 arg_2 = vec4(1.0f);
   imageStore(arg_0, ivec2(arg_1), arg_2);
 }
 
@@ -25,8 +25,8 @@
 
 layout(rgba16f) uniform highp writeonly image2D arg_0;
 void textureStore_7cf6e7() {
-  uvec2 arg_1 = uvec2(0u);
-  vec4 arg_2 = vec4(0.0f);
+  uvec2 arg_1 = uvec2(1u);
+  vec4 arg_2 = vec4(1.0f);
   imageStore(arg_0, ivec2(arg_1), arg_2);
 }
 
@@ -42,8 +42,8 @@
 
 layout(rgba16f) uniform highp writeonly image2D arg_0;
 void textureStore_7cf6e7() {
-  uvec2 arg_1 = uvec2(0u);
-  vec4 arg_2 = vec4(0.0f);
+  uvec2 arg_1 = uvec2(1u);
+  vec4 arg_2 = vec4(1.0f);
   imageStore(arg_0, ivec2(arg_1), arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/7cf6e7.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/7cf6e7.wgsl.expected.msl
index f19febe..e69790b 100644
--- a/test/tint/builtins/gen/var/textureStore/7cf6e7.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/7cf6e7.wgsl.expected.msl
@@ -2,8 +2,8 @@
 
 using namespace metal;
 void textureStore_7cf6e7(texture2d<float, access::write> tint_symbol_1) {
-  uint2 arg_1 = uint2(0u);
-  float4 arg_2 = float4(0.0f);
+  uint2 arg_1 = uint2(1u);
+  float4 arg_2 = float4(1.0f);
   tint_symbol_1.write(arg_2, uint2(arg_1));
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/7cf6e7.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/7cf6e7.wgsl.expected.spvasm
index d303e8f..78fb718 100644
--- a/test/tint/builtins/gen/var/textureStore/7cf6e7.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/7cf6e7.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 41
+; Bound: 44
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -40,42 +40,45 @@
          %12 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
-         %18 = OpConstantNull %v2uint
+     %uint_1 = OpConstant %uint 1
+         %19 = OpConstantComposite %v2uint %uint_1 %uint_1
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
-%_ptr_Function_v4float = OpTypePointer Function %v4float
-         %27 = OpTypeFunction %v4float
+         %22 = OpConstantNull %v2uint
     %float_1 = OpConstant %float 1
+         %24 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%_ptr_Function_v4float = OpTypePointer Function %v4float
+         %31 = OpTypeFunction %v4float
 %textureStore_7cf6e7 = OpFunction %void None %12
          %15 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2uint Function %18
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %22
       %arg_2 = OpVariable %_ptr_Function_v4float Function %5
-               OpStore %arg_1 %18
-               OpStore %arg_2 %5
-         %24 = OpLoad %11 %arg_0
-         %25 = OpLoad %v2uint %arg_1
-         %26 = OpLoad %v4float %arg_2
-               OpImageWrite %24 %25 %26
+               OpStore %arg_1 %19
+               OpStore %arg_2 %24
+         %28 = OpLoad %11 %arg_0
+         %29 = OpLoad %v2uint %arg_1
+         %30 = OpLoad %v4float %arg_2
+               OpImageWrite %28 %29 %30
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %27
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %textureStore_7cf6e7
+%vertex_main_inner = OpFunction %v4float None %31
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureStore_7cf6e7
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %32 = OpLabel
-         %33 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %33
+         %36 = OpLabel
+         %37 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %37
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_7cf6e7
+         %39 = OpLabel
+         %40 = OpFunctionCall %void %textureStore_7cf6e7
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_7cf6e7
+         %42 = OpLabel
+         %43 = OpFunctionCall %void %textureStore_7cf6e7
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/7cf6e7.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/7cf6e7.wgsl.expected.wgsl
index f93f1a0..4300c7d 100644
--- a/test/tint/builtins/gen/var/textureStore/7cf6e7.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/7cf6e7.wgsl.expected.wgsl
@@ -1,8 +1,8 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba16float, write>;
 
 fn textureStore_7cf6e7() {
-  var arg_1 = vec2<u32>();
-  var arg_2 = vec4<f32>();
+  var arg_1 = vec2<u32>(1u);
+  var arg_2 = vec4<f32>(1.0f);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/7f7fae.wgsl b/test/tint/builtins/gen/var/textureStore/7f7fae.wgsl
index 247b97c..6357ca2 100644
--- a/test/tint/builtins/gen/var/textureStore/7f7fae.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/7f7fae.wgsl
@@ -25,7 +25,7 @@
 // fn textureStore(texture: texture_storage_1d<rgba8unorm, write>, coords: i32, value: vec4<f32>)
 fn textureStore_7f7fae() {
   var arg_1 = 1i;
-  var arg_2 = vec4<f32>();
+  var arg_2 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/7f7fae.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/7f7fae.wgsl.expected.dxc.hlsl
index 6d80e54..5cdb0c0 100644
--- a/test/tint/builtins/gen/var/textureStore/7f7fae.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/7f7fae.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 
 void textureStore_7f7fae() {
   int arg_1 = 1;
-  float4 arg_2 = (0.0f).xxxx;
+  float4 arg_2 = (1.0f).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/7f7fae.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/7f7fae.wgsl.expected.fxc.hlsl
index 6d80e54..5cdb0c0 100644
--- a/test/tint/builtins/gen/var/textureStore/7f7fae.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/7f7fae.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 
 void textureStore_7f7fae() {
   int arg_1 = 1;
-  float4 arg_2 = (0.0f).xxxx;
+  float4 arg_2 = (1.0f).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/7f7fae.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/7f7fae.wgsl.expected.msl
index a991af1..9b457ce 100644
--- a/test/tint/builtins/gen/var/textureStore/7f7fae.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/7f7fae.wgsl.expected.msl
@@ -3,7 +3,7 @@
 using namespace metal;
 void textureStore_7f7fae(texture1d<float, access::write> tint_symbol_1) {
   int arg_1 = 1;
-  float4 arg_2 = float4(0.0f);
+  float4 arg_2 = float4(1.0f);
   tint_symbol_1.write(arg_2, uint(arg_1));
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/7f7fae.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/7f7fae.wgsl.expected.spvasm
index aace840..2727ee4 100644
--- a/test/tint/builtins/gen/var/textureStore/7f7fae.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/7f7fae.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 41
+; Bound: 42
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
@@ -43,40 +43,41 @@
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
          %20 = OpConstantNull %int
-%_ptr_Function_v4float = OpTypePointer Function %v4float
-         %27 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
+         %22 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%_ptr_Function_v4float = OpTypePointer Function %v4float
+         %29 = OpTypeFunction %v4float
 %textureStore_7f7fae = OpFunction %void None %12
          %15 = OpLabel
       %arg_1 = OpVariable %_ptr_Function_int Function %20
       %arg_2 = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %int_1
-               OpStore %arg_2 %5
-         %24 = OpLoad %11 %arg_0
-         %25 = OpLoad %int %arg_1
-         %26 = OpLoad %v4float %arg_2
-               OpImageWrite %24 %25 %26
+               OpStore %arg_2 %22
+         %26 = OpLoad %11 %arg_0
+         %27 = OpLoad %int %arg_1
+         %28 = OpLoad %v4float %arg_2
+               OpImageWrite %26 %27 %28
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %27
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %textureStore_7f7fae
+%vertex_main_inner = OpFunction %v4float None %29
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %textureStore_7f7fae
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %32 = OpLabel
-         %33 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %33
+         %34 = OpLabel
+         %35 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %35
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_7f7fae
+         %37 = OpLabel
+         %38 = OpFunctionCall %void %textureStore_7f7fae
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_7f7fae
+         %40 = OpLabel
+         %41 = OpFunctionCall %void %textureStore_7f7fae
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/7f7fae.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/7f7fae.wgsl.expected.wgsl
index 9815899..b36d9e0 100644
--- a/test/tint/builtins/gen/var/textureStore/7f7fae.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/7f7fae.wgsl.expected.wgsl
@@ -2,7 +2,7 @@
 
 fn textureStore_7f7fae() {
   var arg_1 = 1i;
-  var arg_2 = vec4<f32>();
+  var arg_2 = vec4<f32>(1.0f);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/804942.wgsl b/test/tint/builtins/gen/var/textureStore/804942.wgsl
index f2bae96..be1271a 100644
--- a/test/tint/builtins/gen/var/textureStore/804942.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/804942.wgsl
@@ -24,8 +24,8 @@
 
 // fn textureStore(texture: texture_storage_2d<r32sint, write>, coords: vec2<i32>, value: vec4<i32>)
 fn textureStore_804942() {
-  var arg_1 = vec2<i32>();
-  var arg_2 = vec4<i32>();
+  var arg_1 = vec2<i32>(1i);
+  var arg_2 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/804942.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/804942.wgsl.expected.dxc.hlsl
index f2f0dd3..e663487 100644
--- a/test/tint/builtins/gen/var/textureStore/804942.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/804942.wgsl.expected.dxc.hlsl
@@ -1,8 +1,8 @@
 RWTexture2D<int4> arg_0 : register(u0, space1);
 
 void textureStore_804942() {
-  int2 arg_1 = (0).xx;
-  int4 arg_2 = (0).xxxx;
+  int2 arg_1 = (1).xx;
+  int4 arg_2 = (1).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/804942.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/804942.wgsl.expected.fxc.hlsl
index f2f0dd3..e663487 100644
--- a/test/tint/builtins/gen/var/textureStore/804942.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/804942.wgsl.expected.fxc.hlsl
@@ -1,8 +1,8 @@
 RWTexture2D<int4> arg_0 : register(u0, space1);
 
 void textureStore_804942() {
-  int2 arg_1 = (0).xx;
-  int4 arg_2 = (0).xxxx;
+  int2 arg_1 = (1).xx;
+  int4 arg_2 = (1).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/804942.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/804942.wgsl.expected.glsl
index e99ccc5..9cf56e0 100644
--- a/test/tint/builtins/gen/var/textureStore/804942.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/804942.wgsl.expected.glsl
@@ -2,8 +2,8 @@
 
 layout(r32i) uniform highp writeonly iimage2D arg_0;
 void textureStore_804942() {
-  ivec2 arg_1 = ivec2(0);
-  ivec4 arg_2 = ivec4(0);
+  ivec2 arg_1 = ivec2(1);
+  ivec4 arg_2 = ivec4(1);
   imageStore(arg_0, arg_1, arg_2);
 }
 
@@ -25,8 +25,8 @@
 
 layout(r32i) uniform highp writeonly iimage2D arg_0;
 void textureStore_804942() {
-  ivec2 arg_1 = ivec2(0);
-  ivec4 arg_2 = ivec4(0);
+  ivec2 arg_1 = ivec2(1);
+  ivec4 arg_2 = ivec4(1);
   imageStore(arg_0, arg_1, arg_2);
 }
 
@@ -42,8 +42,8 @@
 
 layout(r32i) uniform highp writeonly iimage2D arg_0;
 void textureStore_804942() {
-  ivec2 arg_1 = ivec2(0);
-  ivec4 arg_2 = ivec4(0);
+  ivec2 arg_1 = ivec2(1);
+  ivec4 arg_2 = ivec4(1);
   imageStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/804942.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/804942.wgsl.expected.msl
index d2e755d..3d5af50 100644
--- a/test/tint/builtins/gen/var/textureStore/804942.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/804942.wgsl.expected.msl
@@ -2,8 +2,8 @@
 
 using namespace metal;
 void textureStore_804942(texture2d<int, access::write> tint_symbol_1) {
-  int2 arg_1 = int2(0);
-  int4 arg_2 = int4(0);
+  int2 arg_1 = int2(1);
+  int4 arg_2 = int4(1);
   tint_symbol_1.write(arg_2, uint2(arg_1));
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/804942.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/804942.wgsl.expected.spvasm
index b6cc2c9..a48d006 100644
--- a/test/tint/builtins/gen/var/textureStore/804942.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/804942.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 43
+; Bound: 46
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -40,44 +40,47 @@
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
       %v2int = OpTypeVector %int 2
-         %18 = OpConstantNull %v2int
+      %int_1 = OpConstant %int 1
+         %19 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v2int = OpTypePointer Function %v2int
+         %22 = OpConstantNull %v2int
       %v4int = OpTypeVector %int 4
-         %22 = OpConstantNull %v4int
+         %24 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %29 = OpTypeFunction %v4float
+         %27 = OpConstantNull %v4int
+         %32 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_804942 = OpFunction %void None %13
          %16 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2int Function %18
-      %arg_2 = OpVariable %_ptr_Function_v4int Function %22
-               OpStore %arg_1 %18
-               OpStore %arg_2 %22
-         %26 = OpLoad %11 %arg_0
-         %27 = OpLoad %v2int %arg_1
-         %28 = OpLoad %v4int %arg_2
-               OpImageWrite %26 %27 %28
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %22
+      %arg_2 = OpVariable %_ptr_Function_v4int Function %27
+               OpStore %arg_1 %19
+               OpStore %arg_2 %24
+         %29 = OpLoad %11 %arg_0
+         %30 = OpLoad %v2int %arg_1
+         %31 = OpLoad %v4int %arg_2
+               OpImageWrite %29 %30 %31
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %29
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %textureStore_804942
+%vertex_main_inner = OpFunction %v4float None %32
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %textureStore_804942
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %34 = OpLabel
-         %35 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %35
+         %37 = OpLabel
+         %38 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %38
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureStore_804942
+         %41 = OpLabel
+         %42 = OpFunctionCall %void %textureStore_804942
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureStore_804942
+         %44 = OpLabel
+         %45 = OpFunctionCall %void %textureStore_804942
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/804942.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/804942.wgsl.expected.wgsl
index 171f249..ab6fef7 100644
--- a/test/tint/builtins/gen/var/textureStore/804942.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/804942.wgsl.expected.wgsl
@@ -1,8 +1,8 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d<r32sint, write>;
 
 fn textureStore_804942() {
-  var arg_1 = vec2<i32>();
-  var arg_2 = vec4<i32>();
+  var arg_1 = vec2<i32>(1i);
+  var arg_2 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/805dae.wgsl b/test/tint/builtins/gen/var/textureStore/805dae.wgsl
index d38a59f..96b5ec1 100644
--- a/test/tint/builtins/gen/var/textureStore/805dae.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/805dae.wgsl
@@ -24,8 +24,8 @@
 
 // fn textureStore(texture: texture_storage_2d<rgba8snorm, write>, coords: vec2<i32>, value: vec4<f32>)
 fn textureStore_805dae() {
-  var arg_1 = vec2<i32>();
-  var arg_2 = vec4<f32>();
+  var arg_1 = vec2<i32>(1i);
+  var arg_2 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/805dae.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/805dae.wgsl.expected.dxc.hlsl
index b251d9f..36697f9 100644
--- a/test/tint/builtins/gen/var/textureStore/805dae.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/805dae.wgsl.expected.dxc.hlsl
@@ -1,8 +1,8 @@
 RWTexture2D<float4> arg_0 : register(u0, space1);
 
 void textureStore_805dae() {
-  int2 arg_1 = (0).xx;
-  float4 arg_2 = (0.0f).xxxx;
+  int2 arg_1 = (1).xx;
+  float4 arg_2 = (1.0f).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/805dae.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/805dae.wgsl.expected.fxc.hlsl
index b251d9f..36697f9 100644
--- a/test/tint/builtins/gen/var/textureStore/805dae.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/805dae.wgsl.expected.fxc.hlsl
@@ -1,8 +1,8 @@
 RWTexture2D<float4> arg_0 : register(u0, space1);
 
 void textureStore_805dae() {
-  int2 arg_1 = (0).xx;
-  float4 arg_2 = (0.0f).xxxx;
+  int2 arg_1 = (1).xx;
+  float4 arg_2 = (1.0f).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/805dae.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/805dae.wgsl.expected.glsl
index 77e3041..76c472a 100644
--- a/test/tint/builtins/gen/var/textureStore/805dae.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/805dae.wgsl.expected.glsl
@@ -2,8 +2,8 @@
 
 layout(rgba8_snorm) uniform highp writeonly image2D arg_0;
 void textureStore_805dae() {
-  ivec2 arg_1 = ivec2(0);
-  vec4 arg_2 = vec4(0.0f);
+  ivec2 arg_1 = ivec2(1);
+  vec4 arg_2 = vec4(1.0f);
   imageStore(arg_0, arg_1, arg_2);
 }
 
@@ -25,8 +25,8 @@
 
 layout(rgba8_snorm) uniform highp writeonly image2D arg_0;
 void textureStore_805dae() {
-  ivec2 arg_1 = ivec2(0);
-  vec4 arg_2 = vec4(0.0f);
+  ivec2 arg_1 = ivec2(1);
+  vec4 arg_2 = vec4(1.0f);
   imageStore(arg_0, arg_1, arg_2);
 }
 
@@ -42,8 +42,8 @@
 
 layout(rgba8_snorm) uniform highp writeonly image2D arg_0;
 void textureStore_805dae() {
-  ivec2 arg_1 = ivec2(0);
-  vec4 arg_2 = vec4(0.0f);
+  ivec2 arg_1 = ivec2(1);
+  vec4 arg_2 = vec4(1.0f);
   imageStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/805dae.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/805dae.wgsl.expected.msl
index 8ba8e48..a516aaf 100644
--- a/test/tint/builtins/gen/var/textureStore/805dae.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/805dae.wgsl.expected.msl
@@ -2,8 +2,8 @@
 
 using namespace metal;
 void textureStore_805dae(texture2d<float, access::write> tint_symbol_1) {
-  int2 arg_1 = int2(0);
-  float4 arg_2 = float4(0.0f);
+  int2 arg_1 = int2(1);
+  float4 arg_2 = float4(1.0f);
   tint_symbol_1.write(arg_2, uint2(arg_1));
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/805dae.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/805dae.wgsl.expected.spvasm
index 0bcb46d..9dc18fa 100644
--- a/test/tint/builtins/gen/var/textureStore/805dae.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/805dae.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 41
+; Bound: 44
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -40,42 +40,45 @@
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
-         %18 = OpConstantNull %v2int
+      %int_1 = OpConstant %int 1
+         %19 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v2int = OpTypePointer Function %v2int
-%_ptr_Function_v4float = OpTypePointer Function %v4float
-         %27 = OpTypeFunction %v4float
+         %22 = OpConstantNull %v2int
     %float_1 = OpConstant %float 1
+         %24 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%_ptr_Function_v4float = OpTypePointer Function %v4float
+         %31 = OpTypeFunction %v4float
 %textureStore_805dae = OpFunction %void None %12
          %15 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2int Function %18
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %22
       %arg_2 = OpVariable %_ptr_Function_v4float Function %5
-               OpStore %arg_1 %18
-               OpStore %arg_2 %5
-         %24 = OpLoad %11 %arg_0
-         %25 = OpLoad %v2int %arg_1
-         %26 = OpLoad %v4float %arg_2
-               OpImageWrite %24 %25 %26
+               OpStore %arg_1 %19
+               OpStore %arg_2 %24
+         %28 = OpLoad %11 %arg_0
+         %29 = OpLoad %v2int %arg_1
+         %30 = OpLoad %v4float %arg_2
+               OpImageWrite %28 %29 %30
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %27
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %textureStore_805dae
+%vertex_main_inner = OpFunction %v4float None %31
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureStore_805dae
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %32 = OpLabel
-         %33 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %33
+         %36 = OpLabel
+         %37 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %37
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_805dae
+         %39 = OpLabel
+         %40 = OpFunctionCall %void %textureStore_805dae
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_805dae
+         %42 = OpLabel
+         %43 = OpFunctionCall %void %textureStore_805dae
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/805dae.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/805dae.wgsl.expected.wgsl
index 3e6f446..4c2b4c3 100644
--- a/test/tint/builtins/gen/var/textureStore/805dae.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/805dae.wgsl.expected.wgsl
@@ -1,8 +1,8 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba8snorm, write>;
 
 fn textureStore_805dae() {
-  var arg_1 = vec2<i32>();
-  var arg_2 = vec4<f32>();
+  var arg_1 = vec2<i32>(1i);
+  var arg_2 = vec4<f32>(1.0f);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/83bcc1.wgsl b/test/tint/builtins/gen/var/textureStore/83bcc1.wgsl
index 58dc1d8..e0476d9 100644
--- a/test/tint/builtins/gen/var/textureStore/83bcc1.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/83bcc1.wgsl
@@ -25,7 +25,7 @@
 // fn textureStore(texture: texture_storage_1d<rg32uint, write>, coords: i32, value: vec4<u32>)
 fn textureStore_83bcc1() {
   var arg_1 = 1i;
-  var arg_2 = vec4<u32>();
+  var arg_2 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/83bcc1.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/83bcc1.wgsl.expected.dxc.hlsl
index b606a3a..cd22634 100644
--- a/test/tint/builtins/gen/var/textureStore/83bcc1.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/83bcc1.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 
 void textureStore_83bcc1() {
   int arg_1 = 1;
-  uint4 arg_2 = (0u).xxxx;
+  uint4 arg_2 = (1u).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/83bcc1.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/83bcc1.wgsl.expected.fxc.hlsl
index b606a3a..cd22634 100644
--- a/test/tint/builtins/gen/var/textureStore/83bcc1.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/83bcc1.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 
 void textureStore_83bcc1() {
   int arg_1 = 1;
-  uint4 arg_2 = (0u).xxxx;
+  uint4 arg_2 = (1u).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/83bcc1.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/83bcc1.wgsl.expected.msl
index bf59f21..d1016d0 100644
--- a/test/tint/builtins/gen/var/textureStore/83bcc1.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/83bcc1.wgsl.expected.msl
@@ -3,7 +3,7 @@
 using namespace metal;
 void textureStore_83bcc1(texture1d<uint, access::write> tint_symbol_1) {
   int arg_1 = 1;
-  uint4 arg_2 = uint4(0u);
+  uint4 arg_2 = uint4(1u);
   tint_symbol_1.write(arg_2, uint(arg_1));
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/83bcc1.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/83bcc1.wgsl.expected.spvasm
index da8b6bf..8bd3f62 100644
--- a/test/tint/builtins/gen/var/textureStore/83bcc1.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/83bcc1.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 46
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
@@ -46,41 +46,43 @@
 %_ptr_Function_int = OpTypePointer Function %int
          %21 = OpConstantNull %int
      %v4uint = OpTypeVector %uint 4
-         %23 = OpConstantNull %v4uint
+     %uint_1 = OpConstant %uint 1
+         %24 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %30 = OpTypeFunction %v4float
+         %27 = OpConstantNull %v4uint
+         %32 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_83bcc1 = OpFunction %void None %13
          %16 = OpLabel
       %arg_1 = OpVariable %_ptr_Function_int Function %21
-      %arg_2 = OpVariable %_ptr_Function_v4uint Function %23
+      %arg_2 = OpVariable %_ptr_Function_v4uint Function %27
                OpStore %arg_1 %int_1
-               OpStore %arg_2 %23
-         %27 = OpLoad %11 %arg_0
-         %28 = OpLoad %int %arg_1
-         %29 = OpLoad %v4uint %arg_2
-               OpImageWrite %27 %28 %29
+               OpStore %arg_2 %24
+         %29 = OpLoad %11 %arg_0
+         %30 = OpLoad %int %arg_1
+         %31 = OpLoad %v4uint %arg_2
+               OpImageWrite %29 %30 %31
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %30
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_83bcc1
+%vertex_main_inner = OpFunction %v4float None %32
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %textureStore_83bcc1
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %36
+         %37 = OpLabel
+         %38 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %38
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_83bcc1
+         %41 = OpLabel
+         %42 = OpFunctionCall %void %textureStore_83bcc1
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_83bcc1
+         %44 = OpLabel
+         %45 = OpFunctionCall %void %textureStore_83bcc1
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/83bcc1.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/83bcc1.wgsl.expected.wgsl
index 7625aa6..eec57a4 100644
--- a/test/tint/builtins/gen/var/textureStore/83bcc1.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/83bcc1.wgsl.expected.wgsl
@@ -2,7 +2,7 @@
 
 fn textureStore_83bcc1() {
   var arg_1 = 1i;
-  var arg_2 = vec4<u32>();
+  var arg_2 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/872747.wgsl b/test/tint/builtins/gen/var/textureStore/872747.wgsl
index a48109e..71d6beb 100644
--- a/test/tint/builtins/gen/var/textureStore/872747.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/872747.wgsl
@@ -25,7 +25,7 @@
 // fn textureStore(texture: texture_storage_1d<rg32float, write>, coords: i32, value: vec4<f32>)
 fn textureStore_872747() {
   var arg_1 = 1i;
-  var arg_2 = vec4<f32>();
+  var arg_2 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/872747.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/872747.wgsl.expected.dxc.hlsl
index 9c937a5..d70ea27 100644
--- a/test/tint/builtins/gen/var/textureStore/872747.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/872747.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 
 void textureStore_872747() {
   int arg_1 = 1;
-  float4 arg_2 = (0.0f).xxxx;
+  float4 arg_2 = (1.0f).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/872747.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/872747.wgsl.expected.fxc.hlsl
index 9c937a5..d70ea27 100644
--- a/test/tint/builtins/gen/var/textureStore/872747.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/872747.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 
 void textureStore_872747() {
   int arg_1 = 1;
-  float4 arg_2 = (0.0f).xxxx;
+  float4 arg_2 = (1.0f).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/872747.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/872747.wgsl.expected.msl
index fcb5caa..0306531 100644
--- a/test/tint/builtins/gen/var/textureStore/872747.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/872747.wgsl.expected.msl
@@ -3,7 +3,7 @@
 using namespace metal;
 void textureStore_872747(texture1d<float, access::write> tint_symbol_1) {
   int arg_1 = 1;
-  float4 arg_2 = float4(0.0f);
+  float4 arg_2 = float4(1.0f);
   tint_symbol_1.write(arg_2, uint(arg_1));
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/872747.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/872747.wgsl.expected.spvasm
index a197ec4..8d8d31a 100644
--- a/test/tint/builtins/gen/var/textureStore/872747.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/872747.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 41
+; Bound: 42
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
@@ -44,40 +44,41 @@
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
          %20 = OpConstantNull %int
-%_ptr_Function_v4float = OpTypePointer Function %v4float
-         %27 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
+         %22 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%_ptr_Function_v4float = OpTypePointer Function %v4float
+         %29 = OpTypeFunction %v4float
 %textureStore_872747 = OpFunction %void None %12
          %15 = OpLabel
       %arg_1 = OpVariable %_ptr_Function_int Function %20
       %arg_2 = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %int_1
-               OpStore %arg_2 %5
-         %24 = OpLoad %11 %arg_0
-         %25 = OpLoad %int %arg_1
-         %26 = OpLoad %v4float %arg_2
-               OpImageWrite %24 %25 %26
+               OpStore %arg_2 %22
+         %26 = OpLoad %11 %arg_0
+         %27 = OpLoad %int %arg_1
+         %28 = OpLoad %v4float %arg_2
+               OpImageWrite %26 %27 %28
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %27
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %textureStore_872747
+%vertex_main_inner = OpFunction %v4float None %29
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %textureStore_872747
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %32 = OpLabel
-         %33 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %33
+         %34 = OpLabel
+         %35 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %35
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_872747
+         %37 = OpLabel
+         %38 = OpFunctionCall %void %textureStore_872747
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_872747
+         %40 = OpLabel
+         %41 = OpFunctionCall %void %textureStore_872747
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/872747.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/872747.wgsl.expected.wgsl
index 34d6be2..32ed1eb 100644
--- a/test/tint/builtins/gen/var/textureStore/872747.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/872747.wgsl.expected.wgsl
@@ -2,7 +2,7 @@
 
 fn textureStore_872747() {
   var arg_1 = 1i;
-  var arg_2 = vec4<f32>();
+  var arg_2 = vec4<f32>(1.0f);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/8b9310.wgsl b/test/tint/builtins/gen/var/textureStore/8b9310.wgsl
index 5c1529a..8924093 100644
--- a/test/tint/builtins/gen/var/textureStore/8b9310.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/8b9310.wgsl
@@ -24,8 +24,8 @@
 
 // fn textureStore(texture: texture_storage_3d<rgba16float, write>, coords: vec3<u32>, value: vec4<f32>)
 fn textureStore_8b9310() {
-  var arg_1 = vec3<u32>();
-  var arg_2 = vec4<f32>();
+  var arg_1 = vec3<u32>(1u);
+  var arg_2 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/8b9310.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/8b9310.wgsl.expected.dxc.hlsl
index 63e02b9..9be824a 100644
--- a/test/tint/builtins/gen/var/textureStore/8b9310.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/8b9310.wgsl.expected.dxc.hlsl
@@ -1,8 +1,8 @@
 RWTexture3D<float4> arg_0 : register(u0, space1);
 
 void textureStore_8b9310() {
-  uint3 arg_1 = (0u).xxx;
-  float4 arg_2 = (0.0f).xxxx;
+  uint3 arg_1 = (1u).xxx;
+  float4 arg_2 = (1.0f).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/8b9310.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/8b9310.wgsl.expected.fxc.hlsl
index 63e02b9..9be824a 100644
--- a/test/tint/builtins/gen/var/textureStore/8b9310.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/8b9310.wgsl.expected.fxc.hlsl
@@ -1,8 +1,8 @@
 RWTexture3D<float4> arg_0 : register(u0, space1);
 
 void textureStore_8b9310() {
-  uint3 arg_1 = (0u).xxx;
-  float4 arg_2 = (0.0f).xxxx;
+  uint3 arg_1 = (1u).xxx;
+  float4 arg_2 = (1.0f).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/8b9310.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/8b9310.wgsl.expected.glsl
index 07179e6..01aa711 100644
--- a/test/tint/builtins/gen/var/textureStore/8b9310.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/8b9310.wgsl.expected.glsl
@@ -2,8 +2,8 @@
 
 layout(rgba16f) uniform highp writeonly image3D arg_0;
 void textureStore_8b9310() {
-  uvec3 arg_1 = uvec3(0u);
-  vec4 arg_2 = vec4(0.0f);
+  uvec3 arg_1 = uvec3(1u);
+  vec4 arg_2 = vec4(1.0f);
   imageStore(arg_0, ivec3(arg_1), arg_2);
 }
 
@@ -25,8 +25,8 @@
 
 layout(rgba16f) uniform highp writeonly image3D arg_0;
 void textureStore_8b9310() {
-  uvec3 arg_1 = uvec3(0u);
-  vec4 arg_2 = vec4(0.0f);
+  uvec3 arg_1 = uvec3(1u);
+  vec4 arg_2 = vec4(1.0f);
   imageStore(arg_0, ivec3(arg_1), arg_2);
 }
 
@@ -42,8 +42,8 @@
 
 layout(rgba16f) uniform highp writeonly image3D arg_0;
 void textureStore_8b9310() {
-  uvec3 arg_1 = uvec3(0u);
-  vec4 arg_2 = vec4(0.0f);
+  uvec3 arg_1 = uvec3(1u);
+  vec4 arg_2 = vec4(1.0f);
   imageStore(arg_0, ivec3(arg_1), arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/8b9310.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/8b9310.wgsl.expected.msl
index a56cd43..43ca7a4 100644
--- a/test/tint/builtins/gen/var/textureStore/8b9310.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/8b9310.wgsl.expected.msl
@@ -2,8 +2,8 @@
 
 using namespace metal;
 void textureStore_8b9310(texture3d<float, access::write> tint_symbol_1) {
-  uint3 arg_1 = uint3(0u);
-  float4 arg_2 = float4(0.0f);
+  uint3 arg_1 = uint3(1u);
+  float4 arg_2 = float4(1.0f);
   tint_symbol_1.write(arg_2, uint3(arg_1));
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/8b9310.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/8b9310.wgsl.expected.spvasm
index 6dcd46e..c920206 100644
--- a/test/tint/builtins/gen/var/textureStore/8b9310.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/8b9310.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 41
+; Bound: 44
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -40,42 +40,45 @@
          %12 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
-         %18 = OpConstantNull %v3uint
+     %uint_1 = OpConstant %uint 1
+         %19 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
 %_ptr_Function_v3uint = OpTypePointer Function %v3uint
-%_ptr_Function_v4float = OpTypePointer Function %v4float
-         %27 = OpTypeFunction %v4float
+         %22 = OpConstantNull %v3uint
     %float_1 = OpConstant %float 1
+         %24 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%_ptr_Function_v4float = OpTypePointer Function %v4float
+         %31 = OpTypeFunction %v4float
 %textureStore_8b9310 = OpFunction %void None %12
          %15 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v3uint Function %18
+      %arg_1 = OpVariable %_ptr_Function_v3uint Function %22
       %arg_2 = OpVariable %_ptr_Function_v4float Function %5
-               OpStore %arg_1 %18
-               OpStore %arg_2 %5
-         %24 = OpLoad %11 %arg_0
-         %25 = OpLoad %v3uint %arg_1
-         %26 = OpLoad %v4float %arg_2
-               OpImageWrite %24 %25 %26
+               OpStore %arg_1 %19
+               OpStore %arg_2 %24
+         %28 = OpLoad %11 %arg_0
+         %29 = OpLoad %v3uint %arg_1
+         %30 = OpLoad %v4float %arg_2
+               OpImageWrite %28 %29 %30
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %27
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %textureStore_8b9310
+%vertex_main_inner = OpFunction %v4float None %31
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureStore_8b9310
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %32 = OpLabel
-         %33 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %33
+         %36 = OpLabel
+         %37 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %37
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_8b9310
+         %39 = OpLabel
+         %40 = OpFunctionCall %void %textureStore_8b9310
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_8b9310
+         %42 = OpLabel
+         %43 = OpFunctionCall %void %textureStore_8b9310
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/8b9310.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/8b9310.wgsl.expected.wgsl
index f4095ea..aa74595 100644
--- a/test/tint/builtins/gen/var/textureStore/8b9310.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/8b9310.wgsl.expected.wgsl
@@ -1,8 +1,8 @@
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rgba16float, write>;
 
 fn textureStore_8b9310() {
-  var arg_1 = vec3<u32>();
-  var arg_2 = vec4<f32>();
+  var arg_1 = vec3<u32>(1u);
+  var arg_2 = vec4<f32>(1.0f);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/8bb287.wgsl b/test/tint/builtins/gen/var/textureStore/8bb287.wgsl
index 4798b48..cf485b6 100644
--- a/test/tint/builtins/gen/var/textureStore/8bb287.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/8bb287.wgsl
@@ -24,9 +24,9 @@
 
 // fn textureStore(texture: texture_storage_2d_array<rgba32sint, write>, coords: vec2<u32>, array_index: u32, value: vec4<i32>)
 fn textureStore_8bb287() {
-  var arg_1 = vec2<u32>();
+  var arg_1 = vec2<u32>(1u);
   var arg_2 = 1u;
-  var arg_3 = vec4<i32>();
+  var arg_3 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/8bb287.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/8bb287.wgsl.expected.dxc.hlsl
index 69cee8c..a21698e 100644
--- a/test/tint/builtins/gen/var/textureStore/8bb287.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/8bb287.wgsl.expected.dxc.hlsl
@@ -1,9 +1,9 @@
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 void textureStore_8bb287() {
-  uint2 arg_1 = (0u).xx;
+  uint2 arg_1 = (1u).xx;
   uint arg_2 = 1u;
-  int4 arg_3 = (0).xxxx;
+  int4 arg_3 = (1).xxxx;
   arg_0[uint3(arg_1, arg_2)] = arg_3;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/8bb287.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/8bb287.wgsl.expected.fxc.hlsl
index 69cee8c..a21698e 100644
--- a/test/tint/builtins/gen/var/textureStore/8bb287.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/8bb287.wgsl.expected.fxc.hlsl
@@ -1,9 +1,9 @@
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 void textureStore_8bb287() {
-  uint2 arg_1 = (0u).xx;
+  uint2 arg_1 = (1u).xx;
   uint arg_2 = 1u;
-  int4 arg_3 = (0).xxxx;
+  int4 arg_3 = (1).xxxx;
   arg_0[uint3(arg_1, arg_2)] = arg_3;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/8bb287.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/8bb287.wgsl.expected.glsl
index 88ef4d6..0fd9536 100644
--- a/test/tint/builtins/gen/var/textureStore/8bb287.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/8bb287.wgsl.expected.glsl
@@ -2,9 +2,9 @@
 
 layout(rgba32i) uniform highp writeonly iimage2DArray arg_0;
 void textureStore_8bb287() {
-  uvec2 arg_1 = uvec2(0u);
+  uvec2 arg_1 = uvec2(1u);
   uint arg_2 = 1u;
-  ivec4 arg_3 = ivec4(0);
+  ivec4 arg_3 = ivec4(1);
   imageStore(arg_0, ivec3(uvec3(arg_1, arg_2)), arg_3);
 }
 
@@ -26,9 +26,9 @@
 
 layout(rgba32i) uniform highp writeonly iimage2DArray arg_0;
 void textureStore_8bb287() {
-  uvec2 arg_1 = uvec2(0u);
+  uvec2 arg_1 = uvec2(1u);
   uint arg_2 = 1u;
-  ivec4 arg_3 = ivec4(0);
+  ivec4 arg_3 = ivec4(1);
   imageStore(arg_0, ivec3(uvec3(arg_1, arg_2)), arg_3);
 }
 
@@ -44,9 +44,9 @@
 
 layout(rgba32i) uniform highp writeonly iimage2DArray arg_0;
 void textureStore_8bb287() {
-  uvec2 arg_1 = uvec2(0u);
+  uvec2 arg_1 = uvec2(1u);
   uint arg_2 = 1u;
-  ivec4 arg_3 = ivec4(0);
+  ivec4 arg_3 = ivec4(1);
   imageStore(arg_0, ivec3(uvec3(arg_1, arg_2)), arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/8bb287.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/8bb287.wgsl.expected.msl
index f5202e7..576d3df 100644
--- a/test/tint/builtins/gen/var/textureStore/8bb287.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/8bb287.wgsl.expected.msl
@@ -2,9 +2,9 @@
 
 using namespace metal;
 void textureStore_8bb287(texture2d_array<int, access::write> tint_symbol_1) {
-  uint2 arg_1 = uint2(0u);
+  uint2 arg_1 = uint2(1u);
   uint arg_2 = 1u;
-  int4 arg_3 = int4(0);
+  int4 arg_3 = int4(1);
   tint_symbol_1.write(arg_3, uint2(arg_1), arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/8bb287.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/8bb287.wgsl.expected.spvasm
index 1c82ad5..e21dcae 100644
--- a/test/tint/builtins/gen/var/textureStore/8bb287.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/8bb287.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 53
+; Bound: 56
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -42,54 +42,57 @@
          %13 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
-         %19 = OpConstantNull %v2uint
-%_ptr_Function_v2uint = OpTypePointer Function %v2uint
      %uint_1 = OpConstant %uint 1
+         %20 = OpConstantComposite %v2uint %uint_1 %uint_1
+%_ptr_Function_v2uint = OpTypePointer Function %v2uint
+         %23 = OpConstantNull %v2uint
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %25 = OpConstantNull %uint
+         %26 = OpConstantNull %uint
       %v4int = OpTypeVector %int 4
-         %27 = OpConstantNull %v4int
+      %int_1 = OpConstant %int 1
+         %29 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
+         %32 = OpConstantNull %v4int
      %v3uint = OpTypeVector %uint 3
-         %39 = OpTypeFunction %v4float
+         %42 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_8bb287 = OpFunction %void None %13
          %16 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2uint Function %19
-      %arg_2 = OpVariable %_ptr_Function_uint Function %25
-      %arg_3 = OpVariable %_ptr_Function_v4int Function %27
-               OpStore %arg_1 %19
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %23
+      %arg_2 = OpVariable %_ptr_Function_uint Function %26
+      %arg_3 = OpVariable %_ptr_Function_v4int Function %32
+               OpStore %arg_1 %20
                OpStore %arg_2 %uint_1
-               OpStore %arg_3 %27
-         %31 = OpLoad %11 %arg_0
-         %33 = OpLoad %v2uint %arg_1
-         %34 = OpCompositeExtract %uint %33 0
-         %35 = OpCompositeExtract %uint %33 1
-         %36 = OpLoad %uint %arg_2
-         %37 = OpCompositeConstruct %v3uint %34 %35 %36
-         %38 = OpLoad %v4int %arg_3
-               OpImageWrite %31 %37 %38
+               OpStore %arg_3 %29
+         %34 = OpLoad %11 %arg_0
+         %36 = OpLoad %v2uint %arg_1
+         %37 = OpCompositeExtract %uint %36 0
+         %38 = OpCompositeExtract %uint %36 1
+         %39 = OpLoad %uint %arg_2
+         %40 = OpCompositeConstruct %v3uint %37 %38 %39
+         %41 = OpLoad %v4int %arg_3
+               OpImageWrite %34 %40 %41
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %39
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureStore_8bb287
+%vertex_main_inner = OpFunction %v4float None %42
+         %44 = OpLabel
+         %45 = OpFunctionCall %void %textureStore_8bb287
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %44 = OpLabel
-         %45 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %45
+         %47 = OpLabel
+         %48 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %48
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %48 = OpLabel
-         %49 = OpFunctionCall %void %textureStore_8bb287
+         %51 = OpLabel
+         %52 = OpFunctionCall %void %textureStore_8bb287
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %51 = OpLabel
-         %52 = OpFunctionCall %void %textureStore_8bb287
+         %54 = OpLabel
+         %55 = OpFunctionCall %void %textureStore_8bb287
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/8bb287.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/8bb287.wgsl.expected.wgsl
index a8e7a96..11d1d8f 100644
--- a/test/tint/builtins/gen/var/textureStore/8bb287.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/8bb287.wgsl.expected.wgsl
@@ -1,9 +1,9 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba32sint, write>;
 
 fn textureStore_8bb287() {
-  var arg_1 = vec2<u32>();
+  var arg_1 = vec2<u32>(1u);
   var arg_2 = 1u;
-  var arg_3 = vec4<i32>();
+  var arg_3 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/8c76e9.wgsl b/test/tint/builtins/gen/var/textureStore/8c76e9.wgsl
index d5510a9..df2a149 100644
--- a/test/tint/builtins/gen/var/textureStore/8c76e9.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/8c76e9.wgsl
@@ -25,7 +25,7 @@
 // fn textureStore(texture: texture_storage_1d<rgba16sint, write>, coords: u32, value: vec4<i32>)
 fn textureStore_8c76e9() {
   var arg_1 = 1u;
-  var arg_2 = vec4<i32>();
+  var arg_2 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/8c76e9.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/8c76e9.wgsl.expected.dxc.hlsl
index 94d7ce9..6facd77 100644
--- a/test/tint/builtins/gen/var/textureStore/8c76e9.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/8c76e9.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 
 void textureStore_8c76e9() {
   uint arg_1 = 1u;
-  int4 arg_2 = (0).xxxx;
+  int4 arg_2 = (1).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/8c76e9.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/8c76e9.wgsl.expected.fxc.hlsl
index 94d7ce9..6facd77 100644
--- a/test/tint/builtins/gen/var/textureStore/8c76e9.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/8c76e9.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 
 void textureStore_8c76e9() {
   uint arg_1 = 1u;
-  int4 arg_2 = (0).xxxx;
+  int4 arg_2 = (1).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/8c76e9.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/8c76e9.wgsl.expected.msl
index c5331dd..08136cd 100644
--- a/test/tint/builtins/gen/var/textureStore/8c76e9.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/8c76e9.wgsl.expected.msl
@@ -3,7 +3,7 @@
 using namespace metal;
 void textureStore_8c76e9(texture1d<int, access::write> tint_symbol_1) {
   uint arg_1 = 1u;
-  int4 arg_2 = int4(0);
+  int4 arg_2 = int4(1);
   tint_symbol_1.write(arg_2, uint(arg_1));
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/8c76e9.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/8c76e9.wgsl.expected.spvasm
index dff91f3..d1b88d3 100644
--- a/test/tint/builtins/gen/var/textureStore/8c76e9.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/8c76e9.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 46
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
@@ -45,41 +45,43 @@
 %_ptr_Function_uint = OpTypePointer Function %uint
          %21 = OpConstantNull %uint
       %v4int = OpTypeVector %int 4
-         %23 = OpConstantNull %v4int
+      %int_1 = OpConstant %int 1
+         %24 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %30 = OpTypeFunction %v4float
+         %27 = OpConstantNull %v4int
+         %32 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_8c76e9 = OpFunction %void None %13
          %16 = OpLabel
       %arg_1 = OpVariable %_ptr_Function_uint Function %21
-      %arg_2 = OpVariable %_ptr_Function_v4int Function %23
+      %arg_2 = OpVariable %_ptr_Function_v4int Function %27
                OpStore %arg_1 %uint_1
-               OpStore %arg_2 %23
-         %27 = OpLoad %11 %arg_0
-         %28 = OpLoad %uint %arg_1
-         %29 = OpLoad %v4int %arg_2
-               OpImageWrite %27 %28 %29
+               OpStore %arg_2 %24
+         %29 = OpLoad %11 %arg_0
+         %30 = OpLoad %uint %arg_1
+         %31 = OpLoad %v4int %arg_2
+               OpImageWrite %29 %30 %31
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %30
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_8c76e9
+%vertex_main_inner = OpFunction %v4float None %32
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %textureStore_8c76e9
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %36
+         %37 = OpLabel
+         %38 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %38
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_8c76e9
+         %41 = OpLabel
+         %42 = OpFunctionCall %void %textureStore_8c76e9
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_8c76e9
+         %44 = OpLabel
+         %45 = OpFunctionCall %void %textureStore_8c76e9
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/8c76e9.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/8c76e9.wgsl.expected.wgsl
index 41c78a3..8b5ce79 100644
--- a/test/tint/builtins/gen/var/textureStore/8c76e9.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/8c76e9.wgsl.expected.wgsl
@@ -2,7 +2,7 @@
 
 fn textureStore_8c76e9() {
   var arg_1 = 1u;
-  var arg_2 = vec4<i32>();
+  var arg_2 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/8dc54f.wgsl b/test/tint/builtins/gen/var/textureStore/8dc54f.wgsl
index ea6156b..f17830e 100644
--- a/test/tint/builtins/gen/var/textureStore/8dc54f.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/8dc54f.wgsl
@@ -24,8 +24,8 @@
 
 // fn textureStore(texture: texture_storage_2d<rgba8uint, write>, coords: vec2<u32>, value: vec4<u32>)
 fn textureStore_8dc54f() {
-  var arg_1 = vec2<u32>();
-  var arg_2 = vec4<u32>();
+  var arg_1 = vec2<u32>(1u);
+  var arg_2 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/8dc54f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/8dc54f.wgsl.expected.dxc.hlsl
index 9356f2b..306c254 100644
--- a/test/tint/builtins/gen/var/textureStore/8dc54f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/8dc54f.wgsl.expected.dxc.hlsl
@@ -1,8 +1,8 @@
 RWTexture2D<uint4> arg_0 : register(u0, space1);
 
 void textureStore_8dc54f() {
-  uint2 arg_1 = (0u).xx;
-  uint4 arg_2 = (0u).xxxx;
+  uint2 arg_1 = (1u).xx;
+  uint4 arg_2 = (1u).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/8dc54f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/8dc54f.wgsl.expected.fxc.hlsl
index 9356f2b..306c254 100644
--- a/test/tint/builtins/gen/var/textureStore/8dc54f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/8dc54f.wgsl.expected.fxc.hlsl
@@ -1,8 +1,8 @@
 RWTexture2D<uint4> arg_0 : register(u0, space1);
 
 void textureStore_8dc54f() {
-  uint2 arg_1 = (0u).xx;
-  uint4 arg_2 = (0u).xxxx;
+  uint2 arg_1 = (1u).xx;
+  uint4 arg_2 = (1u).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/8dc54f.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/8dc54f.wgsl.expected.glsl
index c736632..53f7885 100644
--- a/test/tint/builtins/gen/var/textureStore/8dc54f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/8dc54f.wgsl.expected.glsl
@@ -2,8 +2,8 @@
 
 layout(rgba8ui) uniform highp writeonly uimage2D arg_0;
 void textureStore_8dc54f() {
-  uvec2 arg_1 = uvec2(0u);
-  uvec4 arg_2 = uvec4(0u);
+  uvec2 arg_1 = uvec2(1u);
+  uvec4 arg_2 = uvec4(1u);
   imageStore(arg_0, ivec2(arg_1), arg_2);
 }
 
@@ -25,8 +25,8 @@
 
 layout(rgba8ui) uniform highp writeonly uimage2D arg_0;
 void textureStore_8dc54f() {
-  uvec2 arg_1 = uvec2(0u);
-  uvec4 arg_2 = uvec4(0u);
+  uvec2 arg_1 = uvec2(1u);
+  uvec4 arg_2 = uvec4(1u);
   imageStore(arg_0, ivec2(arg_1), arg_2);
 }
 
@@ -42,8 +42,8 @@
 
 layout(rgba8ui) uniform highp writeonly uimage2D arg_0;
 void textureStore_8dc54f() {
-  uvec2 arg_1 = uvec2(0u);
-  uvec4 arg_2 = uvec4(0u);
+  uvec2 arg_1 = uvec2(1u);
+  uvec4 arg_2 = uvec4(1u);
   imageStore(arg_0, ivec2(arg_1), arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/8dc54f.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/8dc54f.wgsl.expected.msl
index a4b43c5..4655fad 100644
--- a/test/tint/builtins/gen/var/textureStore/8dc54f.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/8dc54f.wgsl.expected.msl
@@ -2,8 +2,8 @@
 
 using namespace metal;
 void textureStore_8dc54f(texture2d<uint, access::write> tint_symbol_1) {
-  uint2 arg_1 = uint2(0u);
-  uint4 arg_2 = uint4(0u);
+  uint2 arg_1 = uint2(1u);
+  uint4 arg_2 = uint4(1u);
   tint_symbol_1.write(arg_2, uint2(arg_1));
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/8dc54f.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/8dc54f.wgsl.expected.spvasm
index f6c0c9d..5f5ada3 100644
--- a/test/tint/builtins/gen/var/textureStore/8dc54f.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/8dc54f.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 43
+; Bound: 46
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -40,44 +40,47 @@
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
      %v2uint = OpTypeVector %uint 2
-         %18 = OpConstantNull %v2uint
+     %uint_1 = OpConstant %uint 1
+         %19 = OpConstantComposite %v2uint %uint_1 %uint_1
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
+         %22 = OpConstantNull %v2uint
      %v4uint = OpTypeVector %uint 4
-         %22 = OpConstantNull %v4uint
+         %24 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %29 = OpTypeFunction %v4float
+         %27 = OpConstantNull %v4uint
+         %32 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_8dc54f = OpFunction %void None %13
          %16 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2uint Function %18
-      %arg_2 = OpVariable %_ptr_Function_v4uint Function %22
-               OpStore %arg_1 %18
-               OpStore %arg_2 %22
-         %26 = OpLoad %11 %arg_0
-         %27 = OpLoad %v2uint %arg_1
-         %28 = OpLoad %v4uint %arg_2
-               OpImageWrite %26 %27 %28
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %22
+      %arg_2 = OpVariable %_ptr_Function_v4uint Function %27
+               OpStore %arg_1 %19
+               OpStore %arg_2 %24
+         %29 = OpLoad %11 %arg_0
+         %30 = OpLoad %v2uint %arg_1
+         %31 = OpLoad %v4uint %arg_2
+               OpImageWrite %29 %30 %31
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %29
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %textureStore_8dc54f
+%vertex_main_inner = OpFunction %v4float None %32
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %textureStore_8dc54f
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %34 = OpLabel
-         %35 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %35
+         %37 = OpLabel
+         %38 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %38
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureStore_8dc54f
+         %41 = OpLabel
+         %42 = OpFunctionCall %void %textureStore_8dc54f
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureStore_8dc54f
+         %44 = OpLabel
+         %45 = OpFunctionCall %void %textureStore_8dc54f
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/8dc54f.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/8dc54f.wgsl.expected.wgsl
index 45a3bce..a655b36 100644
--- a/test/tint/builtins/gen/var/textureStore/8dc54f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/8dc54f.wgsl.expected.wgsl
@@ -1,8 +1,8 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba8uint, write>;
 
 fn textureStore_8dc54f() {
-  var arg_1 = vec2<u32>();
-  var arg_2 = vec4<u32>();
+  var arg_1 = vec2<u32>(1u);
+  var arg_2 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/8e0479.wgsl b/test/tint/builtins/gen/var/textureStore/8e0479.wgsl
index 3920a85..96639ec 100644
--- a/test/tint/builtins/gen/var/textureStore/8e0479.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/8e0479.wgsl
@@ -24,9 +24,9 @@
 
 // fn textureStore(texture: texture_storage_2d_array<rgba32uint, write>, coords: vec2<i32>, array_index: i32, value: vec4<u32>)
 fn textureStore_8e0479() {
-  var arg_1 = vec2<i32>();
+  var arg_1 = vec2<i32>(1i);
   var arg_2 = 1i;
-  var arg_3 = vec4<u32>();
+  var arg_3 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/8e0479.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/8e0479.wgsl.expected.dxc.hlsl
index 24d93ef..e3875a4 100644
--- a/test/tint/builtins/gen/var/textureStore/8e0479.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/8e0479.wgsl.expected.dxc.hlsl
@@ -1,9 +1,9 @@
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 void textureStore_8e0479() {
-  int2 arg_1 = (0).xx;
+  int2 arg_1 = (1).xx;
   int arg_2 = 1;
-  uint4 arg_3 = (0u).xxxx;
+  uint4 arg_3 = (1u).xxxx;
   arg_0[int3(arg_1, arg_2)] = arg_3;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/8e0479.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/8e0479.wgsl.expected.fxc.hlsl
index 24d93ef..e3875a4 100644
--- a/test/tint/builtins/gen/var/textureStore/8e0479.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/8e0479.wgsl.expected.fxc.hlsl
@@ -1,9 +1,9 @@
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 void textureStore_8e0479() {
-  int2 arg_1 = (0).xx;
+  int2 arg_1 = (1).xx;
   int arg_2 = 1;
-  uint4 arg_3 = (0u).xxxx;
+  uint4 arg_3 = (1u).xxxx;
   arg_0[int3(arg_1, arg_2)] = arg_3;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/8e0479.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/8e0479.wgsl.expected.glsl
index 0a78791..d070bb9 100644
--- a/test/tint/builtins/gen/var/textureStore/8e0479.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/8e0479.wgsl.expected.glsl
@@ -2,9 +2,9 @@
 
 layout(rgba32ui) uniform highp writeonly uimage2DArray arg_0;
 void textureStore_8e0479() {
-  ivec2 arg_1 = ivec2(0);
+  ivec2 arg_1 = ivec2(1);
   int arg_2 = 1;
-  uvec4 arg_3 = uvec4(0u);
+  uvec4 arg_3 = uvec4(1u);
   imageStore(arg_0, ivec3(arg_1, arg_2), arg_3);
 }
 
@@ -26,9 +26,9 @@
 
 layout(rgba32ui) uniform highp writeonly uimage2DArray arg_0;
 void textureStore_8e0479() {
-  ivec2 arg_1 = ivec2(0);
+  ivec2 arg_1 = ivec2(1);
   int arg_2 = 1;
-  uvec4 arg_3 = uvec4(0u);
+  uvec4 arg_3 = uvec4(1u);
   imageStore(arg_0, ivec3(arg_1, arg_2), arg_3);
 }
 
@@ -44,9 +44,9 @@
 
 layout(rgba32ui) uniform highp writeonly uimage2DArray arg_0;
 void textureStore_8e0479() {
-  ivec2 arg_1 = ivec2(0);
+  ivec2 arg_1 = ivec2(1);
   int arg_2 = 1;
-  uvec4 arg_3 = uvec4(0u);
+  uvec4 arg_3 = uvec4(1u);
   imageStore(arg_0, ivec3(arg_1, arg_2), arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/8e0479.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/8e0479.wgsl.expected.msl
index 6ad4aba..9634e28 100644
--- a/test/tint/builtins/gen/var/textureStore/8e0479.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/8e0479.wgsl.expected.msl
@@ -2,9 +2,9 @@
 
 using namespace metal;
 void textureStore_8e0479(texture2d_array<uint, access::write> tint_symbol_1) {
-  int2 arg_1 = int2(0);
+  int2 arg_1 = int2(1);
   int arg_2 = 1;
-  uint4 arg_3 = uint4(0u);
+  uint4 arg_3 = uint4(1u);
   tint_symbol_1.write(arg_3, uint2(arg_1), arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/8e0479.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/8e0479.wgsl.expected.spvasm
index baca5da..e891980 100644
--- a/test/tint/builtins/gen/var/textureStore/8e0479.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/8e0479.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 53
+; Bound: 56
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -42,54 +42,57 @@
          %13 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
-         %19 = OpConstantNull %v2int
-%_ptr_Function_v2int = OpTypePointer Function %v2int
       %int_1 = OpConstant %int 1
+         %20 = OpConstantComposite %v2int %int_1 %int_1
+%_ptr_Function_v2int = OpTypePointer Function %v2int
+         %23 = OpConstantNull %v2int
 %_ptr_Function_int = OpTypePointer Function %int
-         %25 = OpConstantNull %int
+         %26 = OpConstantNull %int
      %v4uint = OpTypeVector %uint 4
-         %27 = OpConstantNull %v4uint
+     %uint_1 = OpConstant %uint 1
+         %29 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
+         %32 = OpConstantNull %v4uint
       %v3int = OpTypeVector %int 3
-         %39 = OpTypeFunction %v4float
+         %42 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_8e0479 = OpFunction %void None %13
          %16 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2int Function %19
-      %arg_2 = OpVariable %_ptr_Function_int Function %25
-      %arg_3 = OpVariable %_ptr_Function_v4uint Function %27
-               OpStore %arg_1 %19
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %23
+      %arg_2 = OpVariable %_ptr_Function_int Function %26
+      %arg_3 = OpVariable %_ptr_Function_v4uint Function %32
+               OpStore %arg_1 %20
                OpStore %arg_2 %int_1
-               OpStore %arg_3 %27
-         %31 = OpLoad %11 %arg_0
-         %33 = OpLoad %v2int %arg_1
-         %34 = OpCompositeExtract %int %33 0
-         %35 = OpCompositeExtract %int %33 1
-         %36 = OpLoad %int %arg_2
-         %37 = OpCompositeConstruct %v3int %34 %35 %36
-         %38 = OpLoad %v4uint %arg_3
-               OpImageWrite %31 %37 %38
+               OpStore %arg_3 %29
+         %34 = OpLoad %11 %arg_0
+         %36 = OpLoad %v2int %arg_1
+         %37 = OpCompositeExtract %int %36 0
+         %38 = OpCompositeExtract %int %36 1
+         %39 = OpLoad %int %arg_2
+         %40 = OpCompositeConstruct %v3int %37 %38 %39
+         %41 = OpLoad %v4uint %arg_3
+               OpImageWrite %34 %40 %41
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %39
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureStore_8e0479
+%vertex_main_inner = OpFunction %v4float None %42
+         %44 = OpLabel
+         %45 = OpFunctionCall %void %textureStore_8e0479
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %44 = OpLabel
-         %45 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %45
+         %47 = OpLabel
+         %48 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %48
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %48 = OpLabel
-         %49 = OpFunctionCall %void %textureStore_8e0479
+         %51 = OpLabel
+         %52 = OpFunctionCall %void %textureStore_8e0479
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %51 = OpLabel
-         %52 = OpFunctionCall %void %textureStore_8e0479
+         %54 = OpLabel
+         %55 = OpFunctionCall %void %textureStore_8e0479
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/8e0479.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/8e0479.wgsl.expected.wgsl
index 62cc919..bc56661 100644
--- a/test/tint/builtins/gen/var/textureStore/8e0479.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/8e0479.wgsl.expected.wgsl
@@ -1,9 +1,9 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba32uint, write>;
 
 fn textureStore_8e0479() {
-  var arg_1 = vec2<i32>();
+  var arg_1 = vec2<i32>(1i);
   var arg_2 = 1i;
-  var arg_3 = vec4<u32>();
+  var arg_3 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/8ed9f8.wgsl b/test/tint/builtins/gen/var/textureStore/8ed9f8.wgsl
index cadc370..963166a 100644
--- a/test/tint/builtins/gen/var/textureStore/8ed9f8.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/8ed9f8.wgsl
@@ -24,8 +24,8 @@
 
 // fn textureStore(texture: texture_storage_3d<rgba8unorm, write>, coords: vec3<u32>, value: vec4<f32>)
 fn textureStore_8ed9f8() {
-  var arg_1 = vec3<u32>();
-  var arg_2 = vec4<f32>();
+  var arg_1 = vec3<u32>(1u);
+  var arg_2 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/8ed9f8.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/8ed9f8.wgsl.expected.dxc.hlsl
index 0660af5..b187376 100644
--- a/test/tint/builtins/gen/var/textureStore/8ed9f8.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/8ed9f8.wgsl.expected.dxc.hlsl
@@ -1,8 +1,8 @@
 RWTexture3D<float4> arg_0 : register(u0, space1);
 
 void textureStore_8ed9f8() {
-  uint3 arg_1 = (0u).xxx;
-  float4 arg_2 = (0.0f).xxxx;
+  uint3 arg_1 = (1u).xxx;
+  float4 arg_2 = (1.0f).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/8ed9f8.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/8ed9f8.wgsl.expected.fxc.hlsl
index 0660af5..b187376 100644
--- a/test/tint/builtins/gen/var/textureStore/8ed9f8.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/8ed9f8.wgsl.expected.fxc.hlsl
@@ -1,8 +1,8 @@
 RWTexture3D<float4> arg_0 : register(u0, space1);
 
 void textureStore_8ed9f8() {
-  uint3 arg_1 = (0u).xxx;
-  float4 arg_2 = (0.0f).xxxx;
+  uint3 arg_1 = (1u).xxx;
+  float4 arg_2 = (1.0f).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/8ed9f8.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/8ed9f8.wgsl.expected.glsl
index 1f7cd6b..be631e3 100644
--- a/test/tint/builtins/gen/var/textureStore/8ed9f8.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/8ed9f8.wgsl.expected.glsl
@@ -2,8 +2,8 @@
 
 layout(rgba8) uniform highp writeonly image3D arg_0;
 void textureStore_8ed9f8() {
-  uvec3 arg_1 = uvec3(0u);
-  vec4 arg_2 = vec4(0.0f);
+  uvec3 arg_1 = uvec3(1u);
+  vec4 arg_2 = vec4(1.0f);
   imageStore(arg_0, ivec3(arg_1), arg_2);
 }
 
@@ -25,8 +25,8 @@
 
 layout(rgba8) uniform highp writeonly image3D arg_0;
 void textureStore_8ed9f8() {
-  uvec3 arg_1 = uvec3(0u);
-  vec4 arg_2 = vec4(0.0f);
+  uvec3 arg_1 = uvec3(1u);
+  vec4 arg_2 = vec4(1.0f);
   imageStore(arg_0, ivec3(arg_1), arg_2);
 }
 
@@ -42,8 +42,8 @@
 
 layout(rgba8) uniform highp writeonly image3D arg_0;
 void textureStore_8ed9f8() {
-  uvec3 arg_1 = uvec3(0u);
-  vec4 arg_2 = vec4(0.0f);
+  uvec3 arg_1 = uvec3(1u);
+  vec4 arg_2 = vec4(1.0f);
   imageStore(arg_0, ivec3(arg_1), arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/8ed9f8.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/8ed9f8.wgsl.expected.msl
index bb463d3..ee96051 100644
--- a/test/tint/builtins/gen/var/textureStore/8ed9f8.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/8ed9f8.wgsl.expected.msl
@@ -2,8 +2,8 @@
 
 using namespace metal;
 void textureStore_8ed9f8(texture3d<float, access::write> tint_symbol_1) {
-  uint3 arg_1 = uint3(0u);
-  float4 arg_2 = float4(0.0f);
+  uint3 arg_1 = uint3(1u);
+  float4 arg_2 = float4(1.0f);
   tint_symbol_1.write(arg_2, uint3(arg_1));
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/8ed9f8.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/8ed9f8.wgsl.expected.spvasm
index f6fe75a..2ee7bf3 100644
--- a/test/tint/builtins/gen/var/textureStore/8ed9f8.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/8ed9f8.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 41
+; Bound: 44
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -40,42 +40,45 @@
          %12 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
-         %18 = OpConstantNull %v3uint
+     %uint_1 = OpConstant %uint 1
+         %19 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
 %_ptr_Function_v3uint = OpTypePointer Function %v3uint
-%_ptr_Function_v4float = OpTypePointer Function %v4float
-         %27 = OpTypeFunction %v4float
+         %22 = OpConstantNull %v3uint
     %float_1 = OpConstant %float 1
+         %24 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%_ptr_Function_v4float = OpTypePointer Function %v4float
+         %31 = OpTypeFunction %v4float
 %textureStore_8ed9f8 = OpFunction %void None %12
          %15 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v3uint Function %18
+      %arg_1 = OpVariable %_ptr_Function_v3uint Function %22
       %arg_2 = OpVariable %_ptr_Function_v4float Function %5
-               OpStore %arg_1 %18
-               OpStore %arg_2 %5
-         %24 = OpLoad %11 %arg_0
-         %25 = OpLoad %v3uint %arg_1
-         %26 = OpLoad %v4float %arg_2
-               OpImageWrite %24 %25 %26
+               OpStore %arg_1 %19
+               OpStore %arg_2 %24
+         %28 = OpLoad %11 %arg_0
+         %29 = OpLoad %v3uint %arg_1
+         %30 = OpLoad %v4float %arg_2
+               OpImageWrite %28 %29 %30
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %27
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %textureStore_8ed9f8
+%vertex_main_inner = OpFunction %v4float None %31
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureStore_8ed9f8
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %32 = OpLabel
-         %33 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %33
+         %36 = OpLabel
+         %37 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %37
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_8ed9f8
+         %39 = OpLabel
+         %40 = OpFunctionCall %void %textureStore_8ed9f8
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_8ed9f8
+         %42 = OpLabel
+         %43 = OpFunctionCall %void %textureStore_8ed9f8
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/8ed9f8.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/8ed9f8.wgsl.expected.wgsl
index b650269..77a7d50 100644
--- a/test/tint/builtins/gen/var/textureStore/8ed9f8.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/8ed9f8.wgsl.expected.wgsl
@@ -1,8 +1,8 @@
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rgba8unorm, write>;
 
 fn textureStore_8ed9f8() {
-  var arg_1 = vec3<u32>();
-  var arg_2 = vec4<f32>();
+  var arg_1 = vec3<u32>(1u);
+  var arg_2 = vec4<f32>(1.0f);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/8f71a1.wgsl b/test/tint/builtins/gen/var/textureStore/8f71a1.wgsl
index dd7f731..12d406f 100644
--- a/test/tint/builtins/gen/var/textureStore/8f71a1.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/8f71a1.wgsl
@@ -24,8 +24,8 @@
 
 // fn textureStore(texture: texture_storage_3d<rgba16sint, write>, coords: vec3<i32>, value: vec4<i32>)
 fn textureStore_8f71a1() {
-  var arg_1 = vec3<i32>();
-  var arg_2 = vec4<i32>();
+  var arg_1 = vec3<i32>(1i);
+  var arg_2 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/8f71a1.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/8f71a1.wgsl.expected.dxc.hlsl
index 513e377..dfdbda8 100644
--- a/test/tint/builtins/gen/var/textureStore/8f71a1.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/8f71a1.wgsl.expected.dxc.hlsl
@@ -1,8 +1,8 @@
 RWTexture3D<int4> arg_0 : register(u0, space1);
 
 void textureStore_8f71a1() {
-  int3 arg_1 = (0).xxx;
-  int4 arg_2 = (0).xxxx;
+  int3 arg_1 = (1).xxx;
+  int4 arg_2 = (1).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/8f71a1.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/8f71a1.wgsl.expected.fxc.hlsl
index 513e377..dfdbda8 100644
--- a/test/tint/builtins/gen/var/textureStore/8f71a1.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/8f71a1.wgsl.expected.fxc.hlsl
@@ -1,8 +1,8 @@
 RWTexture3D<int4> arg_0 : register(u0, space1);
 
 void textureStore_8f71a1() {
-  int3 arg_1 = (0).xxx;
-  int4 arg_2 = (0).xxxx;
+  int3 arg_1 = (1).xxx;
+  int4 arg_2 = (1).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/8f71a1.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/8f71a1.wgsl.expected.glsl
index ebb51a8..90fded8 100644
--- a/test/tint/builtins/gen/var/textureStore/8f71a1.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/8f71a1.wgsl.expected.glsl
@@ -2,8 +2,8 @@
 
 layout(rgba16i) uniform highp writeonly iimage3D arg_0;
 void textureStore_8f71a1() {
-  ivec3 arg_1 = ivec3(0);
-  ivec4 arg_2 = ivec4(0);
+  ivec3 arg_1 = ivec3(1);
+  ivec4 arg_2 = ivec4(1);
   imageStore(arg_0, arg_1, arg_2);
 }
 
@@ -25,8 +25,8 @@
 
 layout(rgba16i) uniform highp writeonly iimage3D arg_0;
 void textureStore_8f71a1() {
-  ivec3 arg_1 = ivec3(0);
-  ivec4 arg_2 = ivec4(0);
+  ivec3 arg_1 = ivec3(1);
+  ivec4 arg_2 = ivec4(1);
   imageStore(arg_0, arg_1, arg_2);
 }
 
@@ -42,8 +42,8 @@
 
 layout(rgba16i) uniform highp writeonly iimage3D arg_0;
 void textureStore_8f71a1() {
-  ivec3 arg_1 = ivec3(0);
-  ivec4 arg_2 = ivec4(0);
+  ivec3 arg_1 = ivec3(1);
+  ivec4 arg_2 = ivec4(1);
   imageStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/8f71a1.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/8f71a1.wgsl.expected.msl
index bf5a54e..b3277b9 100644
--- a/test/tint/builtins/gen/var/textureStore/8f71a1.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/8f71a1.wgsl.expected.msl
@@ -2,8 +2,8 @@
 
 using namespace metal;
 void textureStore_8f71a1(texture3d<int, access::write> tint_symbol_1) {
-  int3 arg_1 = int3(0);
-  int4 arg_2 = int4(0);
+  int3 arg_1 = int3(1);
+  int4 arg_2 = int4(1);
   tint_symbol_1.write(arg_2, uint3(arg_1));
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/8f71a1.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/8f71a1.wgsl.expected.spvasm
index 1492698..2b06178 100644
--- a/test/tint/builtins/gen/var/textureStore/8f71a1.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/8f71a1.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 43
+; Bound: 46
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -40,44 +40,47 @@
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
       %v3int = OpTypeVector %int 3
-         %18 = OpConstantNull %v3int
+      %int_1 = OpConstant %int 1
+         %19 = OpConstantComposite %v3int %int_1 %int_1 %int_1
 %_ptr_Function_v3int = OpTypePointer Function %v3int
+         %22 = OpConstantNull %v3int
       %v4int = OpTypeVector %int 4
-         %22 = OpConstantNull %v4int
+         %24 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %29 = OpTypeFunction %v4float
+         %27 = OpConstantNull %v4int
+         %32 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_8f71a1 = OpFunction %void None %13
          %16 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v3int Function %18
-      %arg_2 = OpVariable %_ptr_Function_v4int Function %22
-               OpStore %arg_1 %18
-               OpStore %arg_2 %22
-         %26 = OpLoad %11 %arg_0
-         %27 = OpLoad %v3int %arg_1
-         %28 = OpLoad %v4int %arg_2
-               OpImageWrite %26 %27 %28
+      %arg_1 = OpVariable %_ptr_Function_v3int Function %22
+      %arg_2 = OpVariable %_ptr_Function_v4int Function %27
+               OpStore %arg_1 %19
+               OpStore %arg_2 %24
+         %29 = OpLoad %11 %arg_0
+         %30 = OpLoad %v3int %arg_1
+         %31 = OpLoad %v4int %arg_2
+               OpImageWrite %29 %30 %31
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %29
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %textureStore_8f71a1
+%vertex_main_inner = OpFunction %v4float None %32
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %textureStore_8f71a1
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %34 = OpLabel
-         %35 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %35
+         %37 = OpLabel
+         %38 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %38
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureStore_8f71a1
+         %41 = OpLabel
+         %42 = OpFunctionCall %void %textureStore_8f71a1
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureStore_8f71a1
+         %44 = OpLabel
+         %45 = OpFunctionCall %void %textureStore_8f71a1
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/8f71a1.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/8f71a1.wgsl.expected.wgsl
index 709f78e..ff0e20c 100644
--- a/test/tint/builtins/gen/var/textureStore/8f71a1.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/8f71a1.wgsl.expected.wgsl
@@ -1,8 +1,8 @@
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rgba16sint, write>;
 
 fn textureStore_8f71a1() {
-  var arg_1 = vec3<i32>();
-  var arg_2 = vec4<i32>();
+  var arg_1 = vec3<i32>(1i);
+  var arg_2 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/8ff674.wgsl b/test/tint/builtins/gen/var/textureStore/8ff674.wgsl
index 9c6fc3e..79cf930 100644
--- a/test/tint/builtins/gen/var/textureStore/8ff674.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/8ff674.wgsl
@@ -24,9 +24,9 @@
 
 // fn textureStore(texture: texture_storage_2d_array<r32uint, write>, coords: vec2<i32>, array_index: u32, value: vec4<u32>)
 fn textureStore_8ff674() {
-  var arg_1 = vec2<i32>();
+  var arg_1 = vec2<i32>(1i);
   var arg_2 = 1u;
-  var arg_3 = vec4<u32>();
+  var arg_3 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/8ff674.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/8ff674.wgsl.expected.dxc.hlsl
index 4265f0c..ade6cd2 100644
--- a/test/tint/builtins/gen/var/textureStore/8ff674.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/8ff674.wgsl.expected.dxc.hlsl
@@ -1,9 +1,9 @@
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 void textureStore_8ff674() {
-  int2 arg_1 = (0).xx;
+  int2 arg_1 = (1).xx;
   uint arg_2 = 1u;
-  uint4 arg_3 = (0u).xxxx;
+  uint4 arg_3 = (1u).xxxx;
   arg_0[int3(arg_1, int(arg_2))] = arg_3;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/8ff674.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/8ff674.wgsl.expected.fxc.hlsl
index 4265f0c..ade6cd2 100644
--- a/test/tint/builtins/gen/var/textureStore/8ff674.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/8ff674.wgsl.expected.fxc.hlsl
@@ -1,9 +1,9 @@
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 void textureStore_8ff674() {
-  int2 arg_1 = (0).xx;
+  int2 arg_1 = (1).xx;
   uint arg_2 = 1u;
-  uint4 arg_3 = (0u).xxxx;
+  uint4 arg_3 = (1u).xxxx;
   arg_0[int3(arg_1, int(arg_2))] = arg_3;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/8ff674.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/8ff674.wgsl.expected.glsl
index cf082e9..4934abc 100644
--- a/test/tint/builtins/gen/var/textureStore/8ff674.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/8ff674.wgsl.expected.glsl
@@ -2,9 +2,9 @@
 
 layout(r32ui) uniform highp writeonly uimage2DArray arg_0;
 void textureStore_8ff674() {
-  ivec2 arg_1 = ivec2(0);
+  ivec2 arg_1 = ivec2(1);
   uint arg_2 = 1u;
-  uvec4 arg_3 = uvec4(0u);
+  uvec4 arg_3 = uvec4(1u);
   imageStore(arg_0, ivec3(arg_1, int(arg_2)), arg_3);
 }
 
@@ -26,9 +26,9 @@
 
 layout(r32ui) uniform highp writeonly uimage2DArray arg_0;
 void textureStore_8ff674() {
-  ivec2 arg_1 = ivec2(0);
+  ivec2 arg_1 = ivec2(1);
   uint arg_2 = 1u;
-  uvec4 arg_3 = uvec4(0u);
+  uvec4 arg_3 = uvec4(1u);
   imageStore(arg_0, ivec3(arg_1, int(arg_2)), arg_3);
 }
 
@@ -44,9 +44,9 @@
 
 layout(r32ui) uniform highp writeonly uimage2DArray arg_0;
 void textureStore_8ff674() {
-  ivec2 arg_1 = ivec2(0);
+  ivec2 arg_1 = ivec2(1);
   uint arg_2 = 1u;
-  uvec4 arg_3 = uvec4(0u);
+  uvec4 arg_3 = uvec4(1u);
   imageStore(arg_0, ivec3(arg_1, int(arg_2)), arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/8ff674.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/8ff674.wgsl.expected.msl
index 051723b..e7e60b1 100644
--- a/test/tint/builtins/gen/var/textureStore/8ff674.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/8ff674.wgsl.expected.msl
@@ -2,9 +2,9 @@
 
 using namespace metal;
 void textureStore_8ff674(texture2d_array<uint, access::write> tint_symbol_1) {
-  int2 arg_1 = int2(0);
+  int2 arg_1 = int2(1);
   uint arg_2 = 1u;
-  uint4 arg_3 = uint4(0u);
+  uint4 arg_3 = uint4(1u);
   tint_symbol_1.write(arg_3, uint2(arg_1), arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/8ff674.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/8ff674.wgsl.expected.spvasm
index 768cb93..ef45f7e 100644
--- a/test/tint/builtins/gen/var/textureStore/8ff674.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/8ff674.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 54
+; Bound: 57
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -42,55 +42,58 @@
          %13 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
-         %19 = OpConstantNull %v2int
+      %int_1 = OpConstant %int 1
+         %20 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v2int = OpTypePointer Function %v2int
+         %23 = OpConstantNull %v2int
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %25 = OpConstantNull %uint
+         %27 = OpConstantNull %uint
      %v4uint = OpTypeVector %uint 4
-         %27 = OpConstantNull %v4uint
+         %29 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
+         %32 = OpConstantNull %v4uint
       %v3int = OpTypeVector %int 3
-         %40 = OpTypeFunction %v4float
+         %43 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_8ff674 = OpFunction %void None %13
          %16 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2int Function %19
-      %arg_2 = OpVariable %_ptr_Function_uint Function %25
-      %arg_3 = OpVariable %_ptr_Function_v4uint Function %27
-               OpStore %arg_1 %19
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %23
+      %arg_2 = OpVariable %_ptr_Function_uint Function %27
+      %arg_3 = OpVariable %_ptr_Function_v4uint Function %32
+               OpStore %arg_1 %20
                OpStore %arg_2 %uint_1
-               OpStore %arg_3 %27
-         %31 = OpLoad %11 %arg_0
-         %33 = OpLoad %v2int %arg_1
-         %34 = OpCompositeExtract %int %33 0
-         %35 = OpCompositeExtract %int %33 1
-         %37 = OpLoad %uint %arg_2
-         %36 = OpBitcast %int %37
-         %38 = OpCompositeConstruct %v3int %34 %35 %36
-         %39 = OpLoad %v4uint %arg_3
-               OpImageWrite %31 %38 %39
+               OpStore %arg_3 %29
+         %34 = OpLoad %11 %arg_0
+         %36 = OpLoad %v2int %arg_1
+         %37 = OpCompositeExtract %int %36 0
+         %38 = OpCompositeExtract %int %36 1
+         %40 = OpLoad %uint %arg_2
+         %39 = OpBitcast %int %40
+         %41 = OpCompositeConstruct %v3int %37 %38 %39
+         %42 = OpLoad %v4uint %arg_3
+               OpImageWrite %34 %41 %42
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %40
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_8ff674
+%vertex_main_inner = OpFunction %v4float None %43
+         %45 = OpLabel
+         %46 = OpFunctionCall %void %textureStore_8ff674
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %45 = OpLabel
-         %46 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %46
+         %48 = OpLabel
+         %49 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %49
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %49 = OpLabel
-         %50 = OpFunctionCall %void %textureStore_8ff674
+         %52 = OpLabel
+         %53 = OpFunctionCall %void %textureStore_8ff674
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %52 = OpLabel
-         %53 = OpFunctionCall %void %textureStore_8ff674
+         %55 = OpLabel
+         %56 = OpFunctionCall %void %textureStore_8ff674
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/8ff674.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/8ff674.wgsl.expected.wgsl
index dc5d1f2..405abd5 100644
--- a/test/tint/builtins/gen/var/textureStore/8ff674.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/8ff674.wgsl.expected.wgsl
@@ -1,9 +1,9 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<r32uint, write>;
 
 fn textureStore_8ff674() {
-  var arg_1 = vec2<i32>();
+  var arg_1 = vec2<i32>(1i);
   var arg_2 = 1u;
-  var arg_3 = vec4<u32>();
+  var arg_3 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/958353.wgsl b/test/tint/builtins/gen/var/textureStore/958353.wgsl
index 6548f0e..0d1dcd6 100644
--- a/test/tint/builtins/gen/var/textureStore/958353.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/958353.wgsl
@@ -25,7 +25,7 @@
 // fn textureStore(texture: texture_storage_1d<rgba8sint, write>, coords: u32, value: vec4<i32>)
 fn textureStore_958353() {
   var arg_1 = 1u;
-  var arg_2 = vec4<i32>();
+  var arg_2 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/958353.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/958353.wgsl.expected.dxc.hlsl
index 07fc6aa..61de862 100644
--- a/test/tint/builtins/gen/var/textureStore/958353.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/958353.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 
 void textureStore_958353() {
   uint arg_1 = 1u;
-  int4 arg_2 = (0).xxxx;
+  int4 arg_2 = (1).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/958353.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/958353.wgsl.expected.fxc.hlsl
index 07fc6aa..61de862 100644
--- a/test/tint/builtins/gen/var/textureStore/958353.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/958353.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 
 void textureStore_958353() {
   uint arg_1 = 1u;
-  int4 arg_2 = (0).xxxx;
+  int4 arg_2 = (1).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/958353.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/958353.wgsl.expected.msl
index bad5668..d1fcf04 100644
--- a/test/tint/builtins/gen/var/textureStore/958353.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/958353.wgsl.expected.msl
@@ -3,7 +3,7 @@
 using namespace metal;
 void textureStore_958353(texture1d<int, access::write> tint_symbol_1) {
   uint arg_1 = 1u;
-  int4 arg_2 = int4(0);
+  int4 arg_2 = int4(1);
   tint_symbol_1.write(arg_2, uint(arg_1));
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/958353.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/958353.wgsl.expected.spvasm
index bc99529..41534d4 100644
--- a/test/tint/builtins/gen/var/textureStore/958353.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/958353.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 46
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
@@ -45,41 +45,43 @@
 %_ptr_Function_uint = OpTypePointer Function %uint
          %21 = OpConstantNull %uint
       %v4int = OpTypeVector %int 4
-         %23 = OpConstantNull %v4int
+      %int_1 = OpConstant %int 1
+         %24 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %30 = OpTypeFunction %v4float
+         %27 = OpConstantNull %v4int
+         %32 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_958353 = OpFunction %void None %13
          %16 = OpLabel
       %arg_1 = OpVariable %_ptr_Function_uint Function %21
-      %arg_2 = OpVariable %_ptr_Function_v4int Function %23
+      %arg_2 = OpVariable %_ptr_Function_v4int Function %27
                OpStore %arg_1 %uint_1
-               OpStore %arg_2 %23
-         %27 = OpLoad %11 %arg_0
-         %28 = OpLoad %uint %arg_1
-         %29 = OpLoad %v4int %arg_2
-               OpImageWrite %27 %28 %29
+               OpStore %arg_2 %24
+         %29 = OpLoad %11 %arg_0
+         %30 = OpLoad %uint %arg_1
+         %31 = OpLoad %v4int %arg_2
+               OpImageWrite %29 %30 %31
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %30
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_958353
+%vertex_main_inner = OpFunction %v4float None %32
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %textureStore_958353
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %36
+         %37 = OpLabel
+         %38 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %38
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_958353
+         %41 = OpLabel
+         %42 = OpFunctionCall %void %textureStore_958353
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_958353
+         %44 = OpLabel
+         %45 = OpFunctionCall %void %textureStore_958353
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/958353.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/958353.wgsl.expected.wgsl
index 3da0474..436e67b 100644
--- a/test/tint/builtins/gen/var/textureStore/958353.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/958353.wgsl.expected.wgsl
@@ -2,7 +2,7 @@
 
 fn textureStore_958353() {
   var arg_1 = 1u;
-  var arg_2 = vec4<i32>();
+  var arg_2 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/959d94.wgsl b/test/tint/builtins/gen/var/textureStore/959d94.wgsl
index 404fd19..37080fa 100644
--- a/test/tint/builtins/gen/var/textureStore/959d94.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/959d94.wgsl
@@ -25,7 +25,7 @@
 // fn textureStore(texture: texture_storage_1d<rgba8snorm, write>, coords: u32, value: vec4<f32>)
 fn textureStore_959d94() {
   var arg_1 = 1u;
-  var arg_2 = vec4<f32>();
+  var arg_2 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/959d94.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/959d94.wgsl.expected.dxc.hlsl
index 807d0de..9119e4a 100644
--- a/test/tint/builtins/gen/var/textureStore/959d94.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/959d94.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 
 void textureStore_959d94() {
   uint arg_1 = 1u;
-  float4 arg_2 = (0.0f).xxxx;
+  float4 arg_2 = (1.0f).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/959d94.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/959d94.wgsl.expected.fxc.hlsl
index 807d0de..9119e4a 100644
--- a/test/tint/builtins/gen/var/textureStore/959d94.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/959d94.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 
 void textureStore_959d94() {
   uint arg_1 = 1u;
-  float4 arg_2 = (0.0f).xxxx;
+  float4 arg_2 = (1.0f).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/959d94.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/959d94.wgsl.expected.msl
index bd790af..515eff2 100644
--- a/test/tint/builtins/gen/var/textureStore/959d94.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/959d94.wgsl.expected.msl
@@ -3,7 +3,7 @@
 using namespace metal;
 void textureStore_959d94(texture1d<float, access::write> tint_symbol_1) {
   uint arg_1 = 1u;
-  float4 arg_2 = float4(0.0f);
+  float4 arg_2 = float4(1.0f);
   tint_symbol_1.write(arg_2, uint(arg_1));
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/959d94.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/959d94.wgsl.expected.spvasm
index 33e3eab..f40074f 100644
--- a/test/tint/builtins/gen/var/textureStore/959d94.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/959d94.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 41
+; Bound: 42
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
@@ -43,40 +43,41 @@
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
          %20 = OpConstantNull %uint
-%_ptr_Function_v4float = OpTypePointer Function %v4float
-         %27 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
+         %22 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%_ptr_Function_v4float = OpTypePointer Function %v4float
+         %29 = OpTypeFunction %v4float
 %textureStore_959d94 = OpFunction %void None %12
          %15 = OpLabel
       %arg_1 = OpVariable %_ptr_Function_uint Function %20
       %arg_2 = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %uint_1
-               OpStore %arg_2 %5
-         %24 = OpLoad %11 %arg_0
-         %25 = OpLoad %uint %arg_1
-         %26 = OpLoad %v4float %arg_2
-               OpImageWrite %24 %25 %26
+               OpStore %arg_2 %22
+         %26 = OpLoad %11 %arg_0
+         %27 = OpLoad %uint %arg_1
+         %28 = OpLoad %v4float %arg_2
+               OpImageWrite %26 %27 %28
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %27
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %textureStore_959d94
+%vertex_main_inner = OpFunction %v4float None %29
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %textureStore_959d94
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %32 = OpLabel
-         %33 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %33
+         %34 = OpLabel
+         %35 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %35
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_959d94
+         %37 = OpLabel
+         %38 = OpFunctionCall %void %textureStore_959d94
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_959d94
+         %40 = OpLabel
+         %41 = OpFunctionCall %void %textureStore_959d94
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/959d94.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/959d94.wgsl.expected.wgsl
index d9300eb..1c4d7e2 100644
--- a/test/tint/builtins/gen/var/textureStore/959d94.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/959d94.wgsl.expected.wgsl
@@ -2,7 +2,7 @@
 
 fn textureStore_959d94() {
   var arg_1 = 1u;
-  var arg_2 = vec4<f32>();
+  var arg_2 = vec4<f32>(1.0f);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/95e452.wgsl b/test/tint/builtins/gen/var/textureStore/95e452.wgsl
index 0b1037d..e93a933 100644
--- a/test/tint/builtins/gen/var/textureStore/95e452.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/95e452.wgsl
@@ -24,8 +24,8 @@
 
 // fn textureStore(texture: texture_storage_2d<r32sint, write>, coords: vec2<u32>, value: vec4<i32>)
 fn textureStore_95e452() {
-  var arg_1 = vec2<u32>();
-  var arg_2 = vec4<i32>();
+  var arg_1 = vec2<u32>(1u);
+  var arg_2 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/95e452.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/95e452.wgsl.expected.dxc.hlsl
index e602bae..980ad86 100644
--- a/test/tint/builtins/gen/var/textureStore/95e452.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/95e452.wgsl.expected.dxc.hlsl
@@ -1,8 +1,8 @@
 RWTexture2D<int4> arg_0 : register(u0, space1);
 
 void textureStore_95e452() {
-  uint2 arg_1 = (0u).xx;
-  int4 arg_2 = (0).xxxx;
+  uint2 arg_1 = (1u).xx;
+  int4 arg_2 = (1).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/95e452.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/95e452.wgsl.expected.fxc.hlsl
index e602bae..980ad86 100644
--- a/test/tint/builtins/gen/var/textureStore/95e452.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/95e452.wgsl.expected.fxc.hlsl
@@ -1,8 +1,8 @@
 RWTexture2D<int4> arg_0 : register(u0, space1);
 
 void textureStore_95e452() {
-  uint2 arg_1 = (0u).xx;
-  int4 arg_2 = (0).xxxx;
+  uint2 arg_1 = (1u).xx;
+  int4 arg_2 = (1).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/95e452.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/95e452.wgsl.expected.glsl
index e25384d..64f694f 100644
--- a/test/tint/builtins/gen/var/textureStore/95e452.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/95e452.wgsl.expected.glsl
@@ -2,8 +2,8 @@
 
 layout(r32i) uniform highp writeonly iimage2D arg_0;
 void textureStore_95e452() {
-  uvec2 arg_1 = uvec2(0u);
-  ivec4 arg_2 = ivec4(0);
+  uvec2 arg_1 = uvec2(1u);
+  ivec4 arg_2 = ivec4(1);
   imageStore(arg_0, ivec2(arg_1), arg_2);
 }
 
@@ -25,8 +25,8 @@
 
 layout(r32i) uniform highp writeonly iimage2D arg_0;
 void textureStore_95e452() {
-  uvec2 arg_1 = uvec2(0u);
-  ivec4 arg_2 = ivec4(0);
+  uvec2 arg_1 = uvec2(1u);
+  ivec4 arg_2 = ivec4(1);
   imageStore(arg_0, ivec2(arg_1), arg_2);
 }
 
@@ -42,8 +42,8 @@
 
 layout(r32i) uniform highp writeonly iimage2D arg_0;
 void textureStore_95e452() {
-  uvec2 arg_1 = uvec2(0u);
-  ivec4 arg_2 = ivec4(0);
+  uvec2 arg_1 = uvec2(1u);
+  ivec4 arg_2 = ivec4(1);
   imageStore(arg_0, ivec2(arg_1), arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/95e452.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/95e452.wgsl.expected.msl
index ce3297b..3326a49 100644
--- a/test/tint/builtins/gen/var/textureStore/95e452.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/95e452.wgsl.expected.msl
@@ -2,8 +2,8 @@
 
 using namespace metal;
 void textureStore_95e452(texture2d<int, access::write> tint_symbol_1) {
-  uint2 arg_1 = uint2(0u);
-  int4 arg_2 = int4(0);
+  uint2 arg_1 = uint2(1u);
+  int4 arg_2 = int4(1);
   tint_symbol_1.write(arg_2, uint2(arg_1));
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/95e452.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/95e452.wgsl.expected.spvasm
index 1fd3674..04c19d1 100644
--- a/test/tint/builtins/gen/var/textureStore/95e452.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/95e452.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 48
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -41,44 +41,48 @@
          %13 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
-         %19 = OpConstantNull %v2uint
+     %uint_1 = OpConstant %uint 1
+         %20 = OpConstantComposite %v2uint %uint_1 %uint_1
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
+         %23 = OpConstantNull %v2uint
       %v4int = OpTypeVector %int 4
-         %23 = OpConstantNull %v4int
+      %int_1 = OpConstant %int 1
+         %26 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %30 = OpTypeFunction %v4float
+         %29 = OpConstantNull %v4int
+         %34 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_95e452 = OpFunction %void None %13
          %16 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2uint Function %19
-      %arg_2 = OpVariable %_ptr_Function_v4int Function %23
-               OpStore %arg_1 %19
-               OpStore %arg_2 %23
-         %27 = OpLoad %11 %arg_0
-         %28 = OpLoad %v2uint %arg_1
-         %29 = OpLoad %v4int %arg_2
-               OpImageWrite %27 %28 %29
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %23
+      %arg_2 = OpVariable %_ptr_Function_v4int Function %29
+               OpStore %arg_1 %20
+               OpStore %arg_2 %26
+         %31 = OpLoad %11 %arg_0
+         %32 = OpLoad %v2uint %arg_1
+         %33 = OpLoad %v4int %arg_2
+               OpImageWrite %31 %32 %33
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %30
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_95e452
+%vertex_main_inner = OpFunction %v4float None %34
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureStore_95e452
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %36
+         %39 = OpLabel
+         %40 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %40
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_95e452
+         %43 = OpLabel
+         %44 = OpFunctionCall %void %textureStore_95e452
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_95e452
+         %46 = OpLabel
+         %47 = OpFunctionCall %void %textureStore_95e452
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/95e452.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/95e452.wgsl.expected.wgsl
index 6eaf3fa..ab3968fb 100644
--- a/test/tint/builtins/gen/var/textureStore/95e452.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/95e452.wgsl.expected.wgsl
@@ -1,8 +1,8 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d<r32sint, write>;
 
 fn textureStore_95e452() {
-  var arg_1 = vec2<u32>();
-  var arg_2 = vec4<i32>();
+  var arg_1 = vec2<u32>(1u);
+  var arg_2 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/969534.wgsl b/test/tint/builtins/gen/var/textureStore/969534.wgsl
index ee132a7..be1ee39 100644
--- a/test/tint/builtins/gen/var/textureStore/969534.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/969534.wgsl
@@ -25,7 +25,7 @@
 // fn textureStore(texture: texture_storage_1d<rgba32sint, write>, coords: i32, value: vec4<i32>)
 fn textureStore_969534() {
   var arg_1 = 1i;
-  var arg_2 = vec4<i32>();
+  var arg_2 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/969534.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/969534.wgsl.expected.dxc.hlsl
index abe1eac..105c863 100644
--- a/test/tint/builtins/gen/var/textureStore/969534.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/969534.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 
 void textureStore_969534() {
   int arg_1 = 1;
-  int4 arg_2 = (0).xxxx;
+  int4 arg_2 = (1).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/969534.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/969534.wgsl.expected.fxc.hlsl
index abe1eac..105c863 100644
--- a/test/tint/builtins/gen/var/textureStore/969534.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/969534.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 
 void textureStore_969534() {
   int arg_1 = 1;
-  int4 arg_2 = (0).xxxx;
+  int4 arg_2 = (1).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/969534.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/969534.wgsl.expected.msl
index aed04dd..ce5ff51 100644
--- a/test/tint/builtins/gen/var/textureStore/969534.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/969534.wgsl.expected.msl
@@ -3,7 +3,7 @@
 using namespace metal;
 void textureStore_969534(texture1d<int, access::write> tint_symbol_1) {
   int arg_1 = 1;
-  int4 arg_2 = int4(0);
+  int4 arg_2 = int4(1);
   tint_symbol_1.write(arg_2, uint(arg_1));
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/969534.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/969534.wgsl.expected.spvasm
index 74def9c..475896e 100644
--- a/test/tint/builtins/gen/var/textureStore/969534.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/969534.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 43
+; Bound: 44
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
@@ -44,41 +44,42 @@
 %_ptr_Function_int = OpTypePointer Function %int
          %20 = OpConstantNull %int
       %v4int = OpTypeVector %int 4
-         %22 = OpConstantNull %v4int
+         %22 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %29 = OpTypeFunction %v4float
+         %25 = OpConstantNull %v4int
+         %30 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_969534 = OpFunction %void None %13
          %16 = OpLabel
       %arg_1 = OpVariable %_ptr_Function_int Function %20
-      %arg_2 = OpVariable %_ptr_Function_v4int Function %22
+      %arg_2 = OpVariable %_ptr_Function_v4int Function %25
                OpStore %arg_1 %int_1
                OpStore %arg_2 %22
-         %26 = OpLoad %11 %arg_0
-         %27 = OpLoad %int %arg_1
-         %28 = OpLoad %v4int %arg_2
-               OpImageWrite %26 %27 %28
+         %27 = OpLoad %11 %arg_0
+         %28 = OpLoad %int %arg_1
+         %29 = OpLoad %v4int %arg_2
+               OpImageWrite %27 %28 %29
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %29
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %textureStore_969534
+%vertex_main_inner = OpFunction %v4float None %30
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %textureStore_969534
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %34 = OpLabel
-         %35 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %35
+         %35 = OpLabel
+         %36 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %36
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureStore_969534
+         %39 = OpLabel
+         %40 = OpFunctionCall %void %textureStore_969534
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureStore_969534
+         %42 = OpLabel
+         %43 = OpFunctionCall %void %textureStore_969534
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/969534.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/969534.wgsl.expected.wgsl
index 259cbc8..df5ca1d 100644
--- a/test/tint/builtins/gen/var/textureStore/969534.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/969534.wgsl.expected.wgsl
@@ -2,7 +2,7 @@
 
 fn textureStore_969534() {
   var arg_1 = 1i;
-  var arg_2 = vec4<i32>();
+  var arg_2 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/9938b7.wgsl b/test/tint/builtins/gen/var/textureStore/9938b7.wgsl
index bbd789c..c722fc7 100644
--- a/test/tint/builtins/gen/var/textureStore/9938b7.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/9938b7.wgsl
@@ -24,9 +24,9 @@
 
 // fn textureStore(texture: texture_storage_2d_array<r32sint, write>, coords: vec2<i32>, array_index: u32, value: vec4<i32>)
 fn textureStore_9938b7() {
-  var arg_1 = vec2<i32>();
+  var arg_1 = vec2<i32>(1i);
   var arg_2 = 1u;
-  var arg_3 = vec4<i32>();
+  var arg_3 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/9938b7.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/9938b7.wgsl.expected.dxc.hlsl
index 80692a9..392499e 100644
--- a/test/tint/builtins/gen/var/textureStore/9938b7.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/9938b7.wgsl.expected.dxc.hlsl
@@ -1,9 +1,9 @@
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 void textureStore_9938b7() {
-  int2 arg_1 = (0).xx;
+  int2 arg_1 = (1).xx;
   uint arg_2 = 1u;
-  int4 arg_3 = (0).xxxx;
+  int4 arg_3 = (1).xxxx;
   arg_0[int3(arg_1, int(arg_2))] = arg_3;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/9938b7.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/9938b7.wgsl.expected.fxc.hlsl
index 80692a9..392499e 100644
--- a/test/tint/builtins/gen/var/textureStore/9938b7.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/9938b7.wgsl.expected.fxc.hlsl
@@ -1,9 +1,9 @@
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 void textureStore_9938b7() {
-  int2 arg_1 = (0).xx;
+  int2 arg_1 = (1).xx;
   uint arg_2 = 1u;
-  int4 arg_3 = (0).xxxx;
+  int4 arg_3 = (1).xxxx;
   arg_0[int3(arg_1, int(arg_2))] = arg_3;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/9938b7.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/9938b7.wgsl.expected.glsl
index 3a267d7..d95242f 100644
--- a/test/tint/builtins/gen/var/textureStore/9938b7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/9938b7.wgsl.expected.glsl
@@ -2,9 +2,9 @@
 
 layout(r32i) uniform highp writeonly iimage2DArray arg_0;
 void textureStore_9938b7() {
-  ivec2 arg_1 = ivec2(0);
+  ivec2 arg_1 = ivec2(1);
   uint arg_2 = 1u;
-  ivec4 arg_3 = ivec4(0);
+  ivec4 arg_3 = ivec4(1);
   imageStore(arg_0, ivec3(arg_1, int(arg_2)), arg_3);
 }
 
@@ -26,9 +26,9 @@
 
 layout(r32i) uniform highp writeonly iimage2DArray arg_0;
 void textureStore_9938b7() {
-  ivec2 arg_1 = ivec2(0);
+  ivec2 arg_1 = ivec2(1);
   uint arg_2 = 1u;
-  ivec4 arg_3 = ivec4(0);
+  ivec4 arg_3 = ivec4(1);
   imageStore(arg_0, ivec3(arg_1, int(arg_2)), arg_3);
 }
 
@@ -44,9 +44,9 @@
 
 layout(r32i) uniform highp writeonly iimage2DArray arg_0;
 void textureStore_9938b7() {
-  ivec2 arg_1 = ivec2(0);
+  ivec2 arg_1 = ivec2(1);
   uint arg_2 = 1u;
-  ivec4 arg_3 = ivec4(0);
+  ivec4 arg_3 = ivec4(1);
   imageStore(arg_0, ivec3(arg_1, int(arg_2)), arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/9938b7.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/9938b7.wgsl.expected.msl
index 2a67476..5ebe2ac 100644
--- a/test/tint/builtins/gen/var/textureStore/9938b7.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/9938b7.wgsl.expected.msl
@@ -2,9 +2,9 @@
 
 using namespace metal;
 void textureStore_9938b7(texture2d_array<int, access::write> tint_symbol_1) {
-  int2 arg_1 = int2(0);
+  int2 arg_1 = int2(1);
   uint arg_2 = 1u;
-  int4 arg_3 = int4(0);
+  int4 arg_3 = int4(1);
   tint_symbol_1.write(arg_3, uint2(arg_1), arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/9938b7.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/9938b7.wgsl.expected.spvasm
index 3874961..35871f0 100644
--- a/test/tint/builtins/gen/var/textureStore/9938b7.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/9938b7.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 54
+; Bound: 57
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -41,56 +41,59 @@
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
       %v2int = OpTypeVector %int 2
-         %18 = OpConstantNull %v2int
+      %int_1 = OpConstant %int 1
+         %19 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v2int = OpTypePointer Function %v2int
+         %22 = OpConstantNull %v2int
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %25 = OpConstantNull %uint
+         %27 = OpConstantNull %uint
       %v4int = OpTypeVector %int 4
-         %27 = OpConstantNull %v4int
+         %29 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
+         %32 = OpConstantNull %v4int
       %v3int = OpTypeVector %int 3
-         %40 = OpTypeFunction %v4float
+         %43 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_9938b7 = OpFunction %void None %13
          %16 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2int Function %18
-      %arg_2 = OpVariable %_ptr_Function_uint Function %25
-      %arg_3 = OpVariable %_ptr_Function_v4int Function %27
-               OpStore %arg_1 %18
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %22
+      %arg_2 = OpVariable %_ptr_Function_uint Function %27
+      %arg_3 = OpVariable %_ptr_Function_v4int Function %32
+               OpStore %arg_1 %19
                OpStore %arg_2 %uint_1
-               OpStore %arg_3 %27
-         %31 = OpLoad %11 %arg_0
-         %33 = OpLoad %v2int %arg_1
-         %34 = OpCompositeExtract %int %33 0
-         %35 = OpCompositeExtract %int %33 1
-         %37 = OpLoad %uint %arg_2
-         %36 = OpBitcast %int %37
-         %38 = OpCompositeConstruct %v3int %34 %35 %36
-         %39 = OpLoad %v4int %arg_3
-               OpImageWrite %31 %38 %39
+               OpStore %arg_3 %29
+         %34 = OpLoad %11 %arg_0
+         %36 = OpLoad %v2int %arg_1
+         %37 = OpCompositeExtract %int %36 0
+         %38 = OpCompositeExtract %int %36 1
+         %40 = OpLoad %uint %arg_2
+         %39 = OpBitcast %int %40
+         %41 = OpCompositeConstruct %v3int %37 %38 %39
+         %42 = OpLoad %v4int %arg_3
+               OpImageWrite %34 %41 %42
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %40
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_9938b7
+%vertex_main_inner = OpFunction %v4float None %43
+         %45 = OpLabel
+         %46 = OpFunctionCall %void %textureStore_9938b7
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %45 = OpLabel
-         %46 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %46
+         %48 = OpLabel
+         %49 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %49
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %49 = OpLabel
-         %50 = OpFunctionCall %void %textureStore_9938b7
+         %52 = OpLabel
+         %53 = OpFunctionCall %void %textureStore_9938b7
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %52 = OpLabel
-         %53 = OpFunctionCall %void %textureStore_9938b7
+         %55 = OpLabel
+         %56 = OpFunctionCall %void %textureStore_9938b7
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/9938b7.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/9938b7.wgsl.expected.wgsl
index b2c3376..a4045a5 100644
--- a/test/tint/builtins/gen/var/textureStore/9938b7.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/9938b7.wgsl.expected.wgsl
@@ -1,9 +1,9 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<r32sint, write>;
 
 fn textureStore_9938b7() {
-  var arg_1 = vec2<i32>();
+  var arg_1 = vec2<i32>(1i);
   var arg_2 = 1u;
-  var arg_3 = vec4<i32>();
+  var arg_3 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/9a3ecc.wgsl b/test/tint/builtins/gen/var/textureStore/9a3ecc.wgsl
index d732945..add0fbc 100644
--- a/test/tint/builtins/gen/var/textureStore/9a3ecc.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/9a3ecc.wgsl
@@ -24,8 +24,8 @@
 
 // fn textureStore(texture: texture_storage_3d<rgba32sint, write>, coords: vec3<i32>, value: vec4<i32>)
 fn textureStore_9a3ecc() {
-  var arg_1 = vec3<i32>();
-  var arg_2 = vec4<i32>();
+  var arg_1 = vec3<i32>(1i);
+  var arg_2 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/9a3ecc.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/9a3ecc.wgsl.expected.dxc.hlsl
index f6dae1c..0225f3a 100644
--- a/test/tint/builtins/gen/var/textureStore/9a3ecc.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/9a3ecc.wgsl.expected.dxc.hlsl
@@ -1,8 +1,8 @@
 RWTexture3D<int4> arg_0 : register(u0, space1);
 
 void textureStore_9a3ecc() {
-  int3 arg_1 = (0).xxx;
-  int4 arg_2 = (0).xxxx;
+  int3 arg_1 = (1).xxx;
+  int4 arg_2 = (1).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/9a3ecc.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/9a3ecc.wgsl.expected.fxc.hlsl
index f6dae1c..0225f3a 100644
--- a/test/tint/builtins/gen/var/textureStore/9a3ecc.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/9a3ecc.wgsl.expected.fxc.hlsl
@@ -1,8 +1,8 @@
 RWTexture3D<int4> arg_0 : register(u0, space1);
 
 void textureStore_9a3ecc() {
-  int3 arg_1 = (0).xxx;
-  int4 arg_2 = (0).xxxx;
+  int3 arg_1 = (1).xxx;
+  int4 arg_2 = (1).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/9a3ecc.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/9a3ecc.wgsl.expected.glsl
index 9beb825..70c00a6 100644
--- a/test/tint/builtins/gen/var/textureStore/9a3ecc.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/9a3ecc.wgsl.expected.glsl
@@ -2,8 +2,8 @@
 
 layout(rgba32i) uniform highp writeonly iimage3D arg_0;
 void textureStore_9a3ecc() {
-  ivec3 arg_1 = ivec3(0);
-  ivec4 arg_2 = ivec4(0);
+  ivec3 arg_1 = ivec3(1);
+  ivec4 arg_2 = ivec4(1);
   imageStore(arg_0, arg_1, arg_2);
 }
 
@@ -25,8 +25,8 @@
 
 layout(rgba32i) uniform highp writeonly iimage3D arg_0;
 void textureStore_9a3ecc() {
-  ivec3 arg_1 = ivec3(0);
-  ivec4 arg_2 = ivec4(0);
+  ivec3 arg_1 = ivec3(1);
+  ivec4 arg_2 = ivec4(1);
   imageStore(arg_0, arg_1, arg_2);
 }
 
@@ -42,8 +42,8 @@
 
 layout(rgba32i) uniform highp writeonly iimage3D arg_0;
 void textureStore_9a3ecc() {
-  ivec3 arg_1 = ivec3(0);
-  ivec4 arg_2 = ivec4(0);
+  ivec3 arg_1 = ivec3(1);
+  ivec4 arg_2 = ivec4(1);
   imageStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/9a3ecc.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/9a3ecc.wgsl.expected.msl
index 44b8e33..9c2fa40 100644
--- a/test/tint/builtins/gen/var/textureStore/9a3ecc.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/9a3ecc.wgsl.expected.msl
@@ -2,8 +2,8 @@
 
 using namespace metal;
 void textureStore_9a3ecc(texture3d<int, access::write> tint_symbol_1) {
-  int3 arg_1 = int3(0);
-  int4 arg_2 = int4(0);
+  int3 arg_1 = int3(1);
+  int4 arg_2 = int4(1);
   tint_symbol_1.write(arg_2, uint3(arg_1));
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/9a3ecc.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/9a3ecc.wgsl.expected.spvasm
index 7b6db7c..5548c20 100644
--- a/test/tint/builtins/gen/var/textureStore/9a3ecc.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/9a3ecc.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 43
+; Bound: 46
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -40,44 +40,47 @@
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
       %v3int = OpTypeVector %int 3
-         %18 = OpConstantNull %v3int
+      %int_1 = OpConstant %int 1
+         %19 = OpConstantComposite %v3int %int_1 %int_1 %int_1
 %_ptr_Function_v3int = OpTypePointer Function %v3int
+         %22 = OpConstantNull %v3int
       %v4int = OpTypeVector %int 4
-         %22 = OpConstantNull %v4int
+         %24 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %29 = OpTypeFunction %v4float
+         %27 = OpConstantNull %v4int
+         %32 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_9a3ecc = OpFunction %void None %13
          %16 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v3int Function %18
-      %arg_2 = OpVariable %_ptr_Function_v4int Function %22
-               OpStore %arg_1 %18
-               OpStore %arg_2 %22
-         %26 = OpLoad %11 %arg_0
-         %27 = OpLoad %v3int %arg_1
-         %28 = OpLoad %v4int %arg_2
-               OpImageWrite %26 %27 %28
+      %arg_1 = OpVariable %_ptr_Function_v3int Function %22
+      %arg_2 = OpVariable %_ptr_Function_v4int Function %27
+               OpStore %arg_1 %19
+               OpStore %arg_2 %24
+         %29 = OpLoad %11 %arg_0
+         %30 = OpLoad %v3int %arg_1
+         %31 = OpLoad %v4int %arg_2
+               OpImageWrite %29 %30 %31
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %29
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %textureStore_9a3ecc
+%vertex_main_inner = OpFunction %v4float None %32
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %textureStore_9a3ecc
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %34 = OpLabel
-         %35 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %35
+         %37 = OpLabel
+         %38 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %38
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureStore_9a3ecc
+         %41 = OpLabel
+         %42 = OpFunctionCall %void %textureStore_9a3ecc
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureStore_9a3ecc
+         %44 = OpLabel
+         %45 = OpFunctionCall %void %textureStore_9a3ecc
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/9a3ecc.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/9a3ecc.wgsl.expected.wgsl
index 04f9424..a64c7b3 100644
--- a/test/tint/builtins/gen/var/textureStore/9a3ecc.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/9a3ecc.wgsl.expected.wgsl
@@ -1,8 +1,8 @@
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rgba32sint, write>;
 
 fn textureStore_9a3ecc() {
-  var arg_1 = vec3<i32>();
-  var arg_2 = vec4<i32>();
+  var arg_1 = vec3<i32>(1i);
+  var arg_2 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/9d8668.wgsl b/test/tint/builtins/gen/var/textureStore/9d8668.wgsl
index fd44463..43c26e5 100644
--- a/test/tint/builtins/gen/var/textureStore/9d8668.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/9d8668.wgsl
@@ -24,9 +24,9 @@
 
 // fn textureStore(texture: texture_storage_2d_array<rgba8unorm, write>, coords: vec2<i32>, array_index: u32, value: vec4<f32>)
 fn textureStore_9d8668() {
-  var arg_1 = vec2<i32>();
+  var arg_1 = vec2<i32>(1i);
   var arg_2 = 1u;
-  var arg_3 = vec4<f32>();
+  var arg_3 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/9d8668.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/9d8668.wgsl.expected.dxc.hlsl
index 0ad43ef..20c597c 100644
--- a/test/tint/builtins/gen/var/textureStore/9d8668.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/9d8668.wgsl.expected.dxc.hlsl
@@ -1,9 +1,9 @@
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 void textureStore_9d8668() {
-  int2 arg_1 = (0).xx;
+  int2 arg_1 = (1).xx;
   uint arg_2 = 1u;
-  float4 arg_3 = (0.0f).xxxx;
+  float4 arg_3 = (1.0f).xxxx;
   arg_0[int3(arg_1, int(arg_2))] = arg_3;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/9d8668.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/9d8668.wgsl.expected.fxc.hlsl
index 0ad43ef..20c597c 100644
--- a/test/tint/builtins/gen/var/textureStore/9d8668.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/9d8668.wgsl.expected.fxc.hlsl
@@ -1,9 +1,9 @@
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 void textureStore_9d8668() {
-  int2 arg_1 = (0).xx;
+  int2 arg_1 = (1).xx;
   uint arg_2 = 1u;
-  float4 arg_3 = (0.0f).xxxx;
+  float4 arg_3 = (1.0f).xxxx;
   arg_0[int3(arg_1, int(arg_2))] = arg_3;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/9d8668.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/9d8668.wgsl.expected.glsl
index 5600dbe..27ef778 100644
--- a/test/tint/builtins/gen/var/textureStore/9d8668.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/9d8668.wgsl.expected.glsl
@@ -2,9 +2,9 @@
 
 layout(rgba8) uniform highp writeonly image2DArray arg_0;
 void textureStore_9d8668() {
-  ivec2 arg_1 = ivec2(0);
+  ivec2 arg_1 = ivec2(1);
   uint arg_2 = 1u;
-  vec4 arg_3 = vec4(0.0f);
+  vec4 arg_3 = vec4(1.0f);
   imageStore(arg_0, ivec3(arg_1, int(arg_2)), arg_3);
 }
 
@@ -26,9 +26,9 @@
 
 layout(rgba8) uniform highp writeonly image2DArray arg_0;
 void textureStore_9d8668() {
-  ivec2 arg_1 = ivec2(0);
+  ivec2 arg_1 = ivec2(1);
   uint arg_2 = 1u;
-  vec4 arg_3 = vec4(0.0f);
+  vec4 arg_3 = vec4(1.0f);
   imageStore(arg_0, ivec3(arg_1, int(arg_2)), arg_3);
 }
 
@@ -44,9 +44,9 @@
 
 layout(rgba8) uniform highp writeonly image2DArray arg_0;
 void textureStore_9d8668() {
-  ivec2 arg_1 = ivec2(0);
+  ivec2 arg_1 = ivec2(1);
   uint arg_2 = 1u;
-  vec4 arg_3 = vec4(0.0f);
+  vec4 arg_3 = vec4(1.0f);
   imageStore(arg_0, ivec3(arg_1, int(arg_2)), arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/9d8668.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/9d8668.wgsl.expected.msl
index e0efa79..7bbee65 100644
--- a/test/tint/builtins/gen/var/textureStore/9d8668.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/9d8668.wgsl.expected.msl
@@ -2,9 +2,9 @@
 
 using namespace metal;
 void textureStore_9d8668(texture2d_array<float, access::write> tint_symbol_1) {
-  int2 arg_1 = int2(0);
+  int2 arg_1 = int2(1);
   uint arg_2 = 1u;
-  float4 arg_3 = float4(0.0f);
+  float4 arg_3 = float4(1.0f);
   tint_symbol_1.write(arg_3, uint2(arg_1), arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/9d8668.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/9d8668.wgsl.expected.spvasm
index 8c3095c..aa6a4d3 100644
--- a/test/tint/builtins/gen/var/textureStore/9d8668.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/9d8668.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 52
+; Bound: 55
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -41,54 +41,57 @@
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
-         %18 = OpConstantNull %v2int
+      %int_1 = OpConstant %int 1
+         %19 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v2int = OpTypePointer Function %v2int
+         %22 = OpConstantNull %v2int
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %25 = OpConstantNull %uint
+         %27 = OpConstantNull %uint
+    %float_1 = OpConstant %float 1
+         %29 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
       %v3int = OpTypeVector %int 3
-         %38 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %42 = OpTypeFunction %v4float
 %textureStore_9d8668 = OpFunction %void None %12
          %15 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2int Function %18
-      %arg_2 = OpVariable %_ptr_Function_uint Function %25
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %22
+      %arg_2 = OpVariable %_ptr_Function_uint Function %27
       %arg_3 = OpVariable %_ptr_Function_v4float Function %5
-               OpStore %arg_1 %18
+               OpStore %arg_1 %19
                OpStore %arg_2 %uint_1
-               OpStore %arg_3 %5
-         %29 = OpLoad %11 %arg_0
-         %31 = OpLoad %v2int %arg_1
-         %32 = OpCompositeExtract %int %31 0
-         %33 = OpCompositeExtract %int %31 1
-         %35 = OpLoad %uint %arg_2
-         %34 = OpBitcast %int %35
-         %36 = OpCompositeConstruct %v3int %32 %33 %34
-         %37 = OpLoad %v4float %arg_3
-               OpImageWrite %29 %36 %37
+               OpStore %arg_3 %29
+         %33 = OpLoad %11 %arg_0
+         %35 = OpLoad %v2int %arg_1
+         %36 = OpCompositeExtract %int %35 0
+         %37 = OpCompositeExtract %int %35 1
+         %39 = OpLoad %uint %arg_2
+         %38 = OpBitcast %int %39
+         %40 = OpCompositeConstruct %v3int %36 %37 %38
+         %41 = OpLoad %v4float %arg_3
+               OpImageWrite %33 %40 %41
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %38
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureStore_9d8668
+%vertex_main_inner = OpFunction %v4float None %42
+         %44 = OpLabel
+         %45 = OpFunctionCall %void %textureStore_9d8668
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %43 = OpLabel
-         %44 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %44
+         %47 = OpLabel
+         %48 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %48
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %47 = OpLabel
-         %48 = OpFunctionCall %void %textureStore_9d8668
+         %50 = OpLabel
+         %51 = OpFunctionCall %void %textureStore_9d8668
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %50 = OpLabel
-         %51 = OpFunctionCall %void %textureStore_9d8668
+         %53 = OpLabel
+         %54 = OpFunctionCall %void %textureStore_9d8668
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/9d8668.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/9d8668.wgsl.expected.wgsl
index b04ebc4..5241933 100644
--- a/test/tint/builtins/gen/var/textureStore/9d8668.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/9d8668.wgsl.expected.wgsl
@@ -1,9 +1,9 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba8unorm, write>;
 
 fn textureStore_9d8668() {
-  var arg_1 = vec2<i32>();
+  var arg_1 = vec2<i32>(1i);
   var arg_2 = 1u;
-  var arg_3 = vec4<f32>();
+  var arg_3 = vec4<f32>(1.0f);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/9d9cd5.wgsl b/test/tint/builtins/gen/var/textureStore/9d9cd5.wgsl
index 46518d6..68cd648 100644
--- a/test/tint/builtins/gen/var/textureStore/9d9cd5.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/9d9cd5.wgsl
@@ -24,9 +24,9 @@
 
 // fn textureStore(texture: texture_storage_2d_array<rgba32float, write>, coords: vec2<i32>, array_index: i32, value: vec4<f32>)
 fn textureStore_9d9cd5() {
-  var arg_1 = vec2<i32>();
+  var arg_1 = vec2<i32>(1i);
   var arg_2 = 1i;
-  var arg_3 = vec4<f32>();
+  var arg_3 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/9d9cd5.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/9d9cd5.wgsl.expected.dxc.hlsl
index 63531a6..4451b9d 100644
--- a/test/tint/builtins/gen/var/textureStore/9d9cd5.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/9d9cd5.wgsl.expected.dxc.hlsl
@@ -1,9 +1,9 @@
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 void textureStore_9d9cd5() {
-  int2 arg_1 = (0).xx;
+  int2 arg_1 = (1).xx;
   int arg_2 = 1;
-  float4 arg_3 = (0.0f).xxxx;
+  float4 arg_3 = (1.0f).xxxx;
   arg_0[int3(arg_1, arg_2)] = arg_3;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/9d9cd5.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/9d9cd5.wgsl.expected.fxc.hlsl
index 63531a6..4451b9d 100644
--- a/test/tint/builtins/gen/var/textureStore/9d9cd5.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/9d9cd5.wgsl.expected.fxc.hlsl
@@ -1,9 +1,9 @@
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 void textureStore_9d9cd5() {
-  int2 arg_1 = (0).xx;
+  int2 arg_1 = (1).xx;
   int arg_2 = 1;
-  float4 arg_3 = (0.0f).xxxx;
+  float4 arg_3 = (1.0f).xxxx;
   arg_0[int3(arg_1, arg_2)] = arg_3;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/9d9cd5.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/9d9cd5.wgsl.expected.glsl
index 05a0d53..7bd328d 100644
--- a/test/tint/builtins/gen/var/textureStore/9d9cd5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/9d9cd5.wgsl.expected.glsl
@@ -2,9 +2,9 @@
 
 layout(rgba32f) uniform highp writeonly image2DArray arg_0;
 void textureStore_9d9cd5() {
-  ivec2 arg_1 = ivec2(0);
+  ivec2 arg_1 = ivec2(1);
   int arg_2 = 1;
-  vec4 arg_3 = vec4(0.0f);
+  vec4 arg_3 = vec4(1.0f);
   imageStore(arg_0, ivec3(arg_1, arg_2), arg_3);
 }
 
@@ -26,9 +26,9 @@
 
 layout(rgba32f) uniform highp writeonly image2DArray arg_0;
 void textureStore_9d9cd5() {
-  ivec2 arg_1 = ivec2(0);
+  ivec2 arg_1 = ivec2(1);
   int arg_2 = 1;
-  vec4 arg_3 = vec4(0.0f);
+  vec4 arg_3 = vec4(1.0f);
   imageStore(arg_0, ivec3(arg_1, arg_2), arg_3);
 }
 
@@ -44,9 +44,9 @@
 
 layout(rgba32f) uniform highp writeonly image2DArray arg_0;
 void textureStore_9d9cd5() {
-  ivec2 arg_1 = ivec2(0);
+  ivec2 arg_1 = ivec2(1);
   int arg_2 = 1;
-  vec4 arg_3 = vec4(0.0f);
+  vec4 arg_3 = vec4(1.0f);
   imageStore(arg_0, ivec3(arg_1, arg_2), arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/9d9cd5.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/9d9cd5.wgsl.expected.msl
index 48036cd..b9e24ad 100644
--- a/test/tint/builtins/gen/var/textureStore/9d9cd5.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/9d9cd5.wgsl.expected.msl
@@ -2,9 +2,9 @@
 
 using namespace metal;
 void textureStore_9d9cd5(texture2d_array<float, access::write> tint_symbol_1) {
-  int2 arg_1 = int2(0);
+  int2 arg_1 = int2(1);
   int arg_2 = 1;
-  float4 arg_3 = float4(0.0f);
+  float4 arg_3 = float4(1.0f);
   tint_symbol_1.write(arg_3, uint2(arg_1), arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/9d9cd5.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/9d9cd5.wgsl.expected.spvasm
index 9e32370..4c7a242 100644
--- a/test/tint/builtins/gen/var/textureStore/9d9cd5.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/9d9cd5.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 50
+; Bound: 52
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -41,52 +41,54 @@
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
-         %18 = OpConstantNull %v2int
-%_ptr_Function_v2int = OpTypePointer Function %v2int
       %int_1 = OpConstant %int 1
+         %19 = OpConstantComposite %v2int %int_1 %int_1
+%_ptr_Function_v2int = OpTypePointer Function %v2int
+         %22 = OpConstantNull %v2int
 %_ptr_Function_int = OpTypePointer Function %int
-         %24 = OpConstantNull %int
+         %25 = OpConstantNull %int
+    %float_1 = OpConstant %float 1
+         %27 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
       %v3int = OpTypeVector %int 3
-         %36 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %39 = OpTypeFunction %v4float
 %textureStore_9d9cd5 = OpFunction %void None %12
          %15 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2int Function %18
-      %arg_2 = OpVariable %_ptr_Function_int Function %24
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %22
+      %arg_2 = OpVariable %_ptr_Function_int Function %25
       %arg_3 = OpVariable %_ptr_Function_v4float Function %5
-               OpStore %arg_1 %18
+               OpStore %arg_1 %19
                OpStore %arg_2 %int_1
-               OpStore %arg_3 %5
-         %28 = OpLoad %11 %arg_0
-         %30 = OpLoad %v2int %arg_1
-         %31 = OpCompositeExtract %int %30 0
-         %32 = OpCompositeExtract %int %30 1
-         %33 = OpLoad %int %arg_2
-         %34 = OpCompositeConstruct %v3int %31 %32 %33
-         %35 = OpLoad %v4float %arg_3
-               OpImageWrite %28 %34 %35
+               OpStore %arg_3 %27
+         %31 = OpLoad %11 %arg_0
+         %33 = OpLoad %v2int %arg_1
+         %34 = OpCompositeExtract %int %33 0
+         %35 = OpCompositeExtract %int %33 1
+         %36 = OpLoad %int %arg_2
+         %37 = OpCompositeConstruct %v3int %34 %35 %36
+         %38 = OpLoad %v4float %arg_3
+               OpImageWrite %31 %37 %38
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %36
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureStore_9d9cd5
+%vertex_main_inner = OpFunction %v4float None %39
+         %41 = OpLabel
+         %42 = OpFunctionCall %void %textureStore_9d9cd5
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %41 = OpLabel
-         %42 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %42
+         %44 = OpLabel
+         %45 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %45
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %45 = OpLabel
-         %46 = OpFunctionCall %void %textureStore_9d9cd5
+         %47 = OpLabel
+         %48 = OpFunctionCall %void %textureStore_9d9cd5
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %48 = OpLabel
-         %49 = OpFunctionCall %void %textureStore_9d9cd5
+         %50 = OpLabel
+         %51 = OpFunctionCall %void %textureStore_9d9cd5
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/9d9cd5.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/9d9cd5.wgsl.expected.wgsl
index e34f0eb..4d43460 100644
--- a/test/tint/builtins/gen/var/textureStore/9d9cd5.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/9d9cd5.wgsl.expected.wgsl
@@ -1,9 +1,9 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba32float, write>;
 
 fn textureStore_9d9cd5() {
-  var arg_1 = vec2<i32>();
+  var arg_1 = vec2<i32>(1i);
   var arg_2 = 1i;
-  var arg_3 = vec4<f32>();
+  var arg_3 = vec4<f32>(1.0f);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/9e3ec5.wgsl b/test/tint/builtins/gen/var/textureStore/9e3ec5.wgsl
index 8175a48..859fd3c 100644
--- a/test/tint/builtins/gen/var/textureStore/9e3ec5.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/9e3ec5.wgsl
@@ -24,8 +24,8 @@
 
 // fn textureStore(texture: texture_storage_2d<rgba16sint, write>, coords: vec2<i32>, value: vec4<i32>)
 fn textureStore_9e3ec5() {
-  var arg_1 = vec2<i32>();
-  var arg_2 = vec4<i32>();
+  var arg_1 = vec2<i32>(1i);
+  var arg_2 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/9e3ec5.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/9e3ec5.wgsl.expected.dxc.hlsl
index 0c02acb..22ca488 100644
--- a/test/tint/builtins/gen/var/textureStore/9e3ec5.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/9e3ec5.wgsl.expected.dxc.hlsl
@@ -1,8 +1,8 @@
 RWTexture2D<int4> arg_0 : register(u0, space1);
 
 void textureStore_9e3ec5() {
-  int2 arg_1 = (0).xx;
-  int4 arg_2 = (0).xxxx;
+  int2 arg_1 = (1).xx;
+  int4 arg_2 = (1).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/9e3ec5.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/9e3ec5.wgsl.expected.fxc.hlsl
index 0c02acb..22ca488 100644
--- a/test/tint/builtins/gen/var/textureStore/9e3ec5.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/9e3ec5.wgsl.expected.fxc.hlsl
@@ -1,8 +1,8 @@
 RWTexture2D<int4> arg_0 : register(u0, space1);
 
 void textureStore_9e3ec5() {
-  int2 arg_1 = (0).xx;
-  int4 arg_2 = (0).xxxx;
+  int2 arg_1 = (1).xx;
+  int4 arg_2 = (1).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/9e3ec5.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/9e3ec5.wgsl.expected.glsl
index 19ace0b..33a744d 100644
--- a/test/tint/builtins/gen/var/textureStore/9e3ec5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/9e3ec5.wgsl.expected.glsl
@@ -2,8 +2,8 @@
 
 layout(rgba16i) uniform highp writeonly iimage2D arg_0;
 void textureStore_9e3ec5() {
-  ivec2 arg_1 = ivec2(0);
-  ivec4 arg_2 = ivec4(0);
+  ivec2 arg_1 = ivec2(1);
+  ivec4 arg_2 = ivec4(1);
   imageStore(arg_0, arg_1, arg_2);
 }
 
@@ -25,8 +25,8 @@
 
 layout(rgba16i) uniform highp writeonly iimage2D arg_0;
 void textureStore_9e3ec5() {
-  ivec2 arg_1 = ivec2(0);
-  ivec4 arg_2 = ivec4(0);
+  ivec2 arg_1 = ivec2(1);
+  ivec4 arg_2 = ivec4(1);
   imageStore(arg_0, arg_1, arg_2);
 }
 
@@ -42,8 +42,8 @@
 
 layout(rgba16i) uniform highp writeonly iimage2D arg_0;
 void textureStore_9e3ec5() {
-  ivec2 arg_1 = ivec2(0);
-  ivec4 arg_2 = ivec4(0);
+  ivec2 arg_1 = ivec2(1);
+  ivec4 arg_2 = ivec4(1);
   imageStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/9e3ec5.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/9e3ec5.wgsl.expected.msl
index 942418d..2c1da1d 100644
--- a/test/tint/builtins/gen/var/textureStore/9e3ec5.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/9e3ec5.wgsl.expected.msl
@@ -2,8 +2,8 @@
 
 using namespace metal;
 void textureStore_9e3ec5(texture2d<int, access::write> tint_symbol_1) {
-  int2 arg_1 = int2(0);
-  int4 arg_2 = int4(0);
+  int2 arg_1 = int2(1);
+  int4 arg_2 = int4(1);
   tint_symbol_1.write(arg_2, uint2(arg_1));
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/9e3ec5.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/9e3ec5.wgsl.expected.spvasm
index 4ce3d9e..e2c8e64 100644
--- a/test/tint/builtins/gen/var/textureStore/9e3ec5.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/9e3ec5.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 43
+; Bound: 46
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -40,44 +40,47 @@
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
       %v2int = OpTypeVector %int 2
-         %18 = OpConstantNull %v2int
+      %int_1 = OpConstant %int 1
+         %19 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v2int = OpTypePointer Function %v2int
+         %22 = OpConstantNull %v2int
       %v4int = OpTypeVector %int 4
-         %22 = OpConstantNull %v4int
+         %24 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %29 = OpTypeFunction %v4float
+         %27 = OpConstantNull %v4int
+         %32 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_9e3ec5 = OpFunction %void None %13
          %16 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2int Function %18
-      %arg_2 = OpVariable %_ptr_Function_v4int Function %22
-               OpStore %arg_1 %18
-               OpStore %arg_2 %22
-         %26 = OpLoad %11 %arg_0
-         %27 = OpLoad %v2int %arg_1
-         %28 = OpLoad %v4int %arg_2
-               OpImageWrite %26 %27 %28
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %22
+      %arg_2 = OpVariable %_ptr_Function_v4int Function %27
+               OpStore %arg_1 %19
+               OpStore %arg_2 %24
+         %29 = OpLoad %11 %arg_0
+         %30 = OpLoad %v2int %arg_1
+         %31 = OpLoad %v4int %arg_2
+               OpImageWrite %29 %30 %31
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %29
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %textureStore_9e3ec5
+%vertex_main_inner = OpFunction %v4float None %32
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %textureStore_9e3ec5
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %34 = OpLabel
-         %35 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %35
+         %37 = OpLabel
+         %38 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %38
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureStore_9e3ec5
+         %41 = OpLabel
+         %42 = OpFunctionCall %void %textureStore_9e3ec5
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureStore_9e3ec5
+         %44 = OpLabel
+         %45 = OpFunctionCall %void %textureStore_9e3ec5
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/9e3ec5.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/9e3ec5.wgsl.expected.wgsl
index a825923..786a000 100644
--- a/test/tint/builtins/gen/var/textureStore/9e3ec5.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/9e3ec5.wgsl.expected.wgsl
@@ -1,8 +1,8 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba16sint, write>;
 
 fn textureStore_9e3ec5() {
-  var arg_1 = vec2<i32>();
-  var arg_2 = vec4<i32>();
+  var arg_1 = vec2<i32>(1i);
+  var arg_2 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/9f5318.wgsl b/test/tint/builtins/gen/var/textureStore/9f5318.wgsl
index 46cfbcb..fa9d76b 100644
--- a/test/tint/builtins/gen/var/textureStore/9f5318.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/9f5318.wgsl
@@ -24,8 +24,8 @@
 
 // fn textureStore(texture: texture_storage_2d<rg32sint, write>, coords: vec2<u32>, value: vec4<i32>)
 fn textureStore_9f5318() {
-  var arg_1 = vec2<u32>();
-  var arg_2 = vec4<i32>();
+  var arg_1 = vec2<u32>(1u);
+  var arg_2 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/9f5318.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/9f5318.wgsl.expected.dxc.hlsl
index 68caac1..db1e551 100644
--- a/test/tint/builtins/gen/var/textureStore/9f5318.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/9f5318.wgsl.expected.dxc.hlsl
@@ -1,8 +1,8 @@
 RWTexture2D<int4> arg_0 : register(u0, space1);
 
 void textureStore_9f5318() {
-  uint2 arg_1 = (0u).xx;
-  int4 arg_2 = (0).xxxx;
+  uint2 arg_1 = (1u).xx;
+  int4 arg_2 = (1).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/9f5318.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/9f5318.wgsl.expected.fxc.hlsl
index 68caac1..db1e551 100644
--- a/test/tint/builtins/gen/var/textureStore/9f5318.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/9f5318.wgsl.expected.fxc.hlsl
@@ -1,8 +1,8 @@
 RWTexture2D<int4> arg_0 : register(u0, space1);
 
 void textureStore_9f5318() {
-  uint2 arg_1 = (0u).xx;
-  int4 arg_2 = (0).xxxx;
+  uint2 arg_1 = (1u).xx;
+  int4 arg_2 = (1).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/9f5318.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/9f5318.wgsl.expected.msl
index 190288b..58486e7 100644
--- a/test/tint/builtins/gen/var/textureStore/9f5318.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/9f5318.wgsl.expected.msl
@@ -2,8 +2,8 @@
 
 using namespace metal;
 void textureStore_9f5318(texture2d<int, access::write> tint_symbol_1) {
-  uint2 arg_1 = uint2(0u);
-  int4 arg_2 = int4(0);
+  uint2 arg_1 = uint2(1u);
+  int4 arg_2 = int4(1);
   tint_symbol_1.write(arg_2, uint2(arg_1));
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/9f5318.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/9f5318.wgsl.expected.spvasm
index 821ca97..93dec97 100644
--- a/test/tint/builtins/gen/var/textureStore/9f5318.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/9f5318.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 48
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
@@ -42,44 +42,48 @@
          %13 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
-         %19 = OpConstantNull %v2uint
+     %uint_1 = OpConstant %uint 1
+         %20 = OpConstantComposite %v2uint %uint_1 %uint_1
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
+         %23 = OpConstantNull %v2uint
       %v4int = OpTypeVector %int 4
-         %23 = OpConstantNull %v4int
+      %int_1 = OpConstant %int 1
+         %26 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %30 = OpTypeFunction %v4float
+         %29 = OpConstantNull %v4int
+         %34 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_9f5318 = OpFunction %void None %13
          %16 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2uint Function %19
-      %arg_2 = OpVariable %_ptr_Function_v4int Function %23
-               OpStore %arg_1 %19
-               OpStore %arg_2 %23
-         %27 = OpLoad %11 %arg_0
-         %28 = OpLoad %v2uint %arg_1
-         %29 = OpLoad %v4int %arg_2
-               OpImageWrite %27 %28 %29
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %23
+      %arg_2 = OpVariable %_ptr_Function_v4int Function %29
+               OpStore %arg_1 %20
+               OpStore %arg_2 %26
+         %31 = OpLoad %11 %arg_0
+         %32 = OpLoad %v2uint %arg_1
+         %33 = OpLoad %v4int %arg_2
+               OpImageWrite %31 %32 %33
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %30
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_9f5318
+%vertex_main_inner = OpFunction %v4float None %34
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureStore_9f5318
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %36
+         %39 = OpLabel
+         %40 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %40
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_9f5318
+         %43 = OpLabel
+         %44 = OpFunctionCall %void %textureStore_9f5318
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_9f5318
+         %46 = OpLabel
+         %47 = OpFunctionCall %void %textureStore_9f5318
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/9f5318.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/9f5318.wgsl.expected.wgsl
index 1ab319c..1b711ae 100644
--- a/test/tint/builtins/gen/var/textureStore/9f5318.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/9f5318.wgsl.expected.wgsl
@@ -1,8 +1,8 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rg32sint, write>;
 
 fn textureStore_9f5318() {
-  var arg_1 = vec2<u32>();
-  var arg_2 = vec4<i32>();
+  var arg_1 = vec2<u32>(1u);
+  var arg_2 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/9f7cea.wgsl b/test/tint/builtins/gen/var/textureStore/9f7cea.wgsl
index dc02938..0ed2545 100644
--- a/test/tint/builtins/gen/var/textureStore/9f7cea.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/9f7cea.wgsl
@@ -24,9 +24,9 @@
 
 // fn textureStore(texture: texture_storage_2d_array<rgba8uint, write>, coords: vec2<i32>, array_index: u32, value: vec4<u32>)
 fn textureStore_9f7cea() {
-  var arg_1 = vec2<i32>();
+  var arg_1 = vec2<i32>(1i);
   var arg_2 = 1u;
-  var arg_3 = vec4<u32>();
+  var arg_3 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/9f7cea.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/9f7cea.wgsl.expected.dxc.hlsl
index 9decbcd..c06bbdf 100644
--- a/test/tint/builtins/gen/var/textureStore/9f7cea.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/9f7cea.wgsl.expected.dxc.hlsl
@@ -1,9 +1,9 @@
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 void textureStore_9f7cea() {
-  int2 arg_1 = (0).xx;
+  int2 arg_1 = (1).xx;
   uint arg_2 = 1u;
-  uint4 arg_3 = (0u).xxxx;
+  uint4 arg_3 = (1u).xxxx;
   arg_0[int3(arg_1, int(arg_2))] = arg_3;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/9f7cea.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/9f7cea.wgsl.expected.fxc.hlsl
index 9decbcd..c06bbdf 100644
--- a/test/tint/builtins/gen/var/textureStore/9f7cea.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/9f7cea.wgsl.expected.fxc.hlsl
@@ -1,9 +1,9 @@
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 void textureStore_9f7cea() {
-  int2 arg_1 = (0).xx;
+  int2 arg_1 = (1).xx;
   uint arg_2 = 1u;
-  uint4 arg_3 = (0u).xxxx;
+  uint4 arg_3 = (1u).xxxx;
   arg_0[int3(arg_1, int(arg_2))] = arg_3;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/9f7cea.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/9f7cea.wgsl.expected.glsl
index a561d87..a429114 100644
--- a/test/tint/builtins/gen/var/textureStore/9f7cea.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/9f7cea.wgsl.expected.glsl
@@ -2,9 +2,9 @@
 
 layout(rgba8ui) uniform highp writeonly uimage2DArray arg_0;
 void textureStore_9f7cea() {
-  ivec2 arg_1 = ivec2(0);
+  ivec2 arg_1 = ivec2(1);
   uint arg_2 = 1u;
-  uvec4 arg_3 = uvec4(0u);
+  uvec4 arg_3 = uvec4(1u);
   imageStore(arg_0, ivec3(arg_1, int(arg_2)), arg_3);
 }
 
@@ -26,9 +26,9 @@
 
 layout(rgba8ui) uniform highp writeonly uimage2DArray arg_0;
 void textureStore_9f7cea() {
-  ivec2 arg_1 = ivec2(0);
+  ivec2 arg_1 = ivec2(1);
   uint arg_2 = 1u;
-  uvec4 arg_3 = uvec4(0u);
+  uvec4 arg_3 = uvec4(1u);
   imageStore(arg_0, ivec3(arg_1, int(arg_2)), arg_3);
 }
 
@@ -44,9 +44,9 @@
 
 layout(rgba8ui) uniform highp writeonly uimage2DArray arg_0;
 void textureStore_9f7cea() {
-  ivec2 arg_1 = ivec2(0);
+  ivec2 arg_1 = ivec2(1);
   uint arg_2 = 1u;
-  uvec4 arg_3 = uvec4(0u);
+  uvec4 arg_3 = uvec4(1u);
   imageStore(arg_0, ivec3(arg_1, int(arg_2)), arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/9f7cea.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/9f7cea.wgsl.expected.msl
index c6000bd..0b17dac 100644
--- a/test/tint/builtins/gen/var/textureStore/9f7cea.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/9f7cea.wgsl.expected.msl
@@ -2,9 +2,9 @@
 
 using namespace metal;
 void textureStore_9f7cea(texture2d_array<uint, access::write> tint_symbol_1) {
-  int2 arg_1 = int2(0);
+  int2 arg_1 = int2(1);
   uint arg_2 = 1u;
-  uint4 arg_3 = uint4(0u);
+  uint4 arg_3 = uint4(1u);
   tint_symbol_1.write(arg_3, uint2(arg_1), arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/9f7cea.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/9f7cea.wgsl.expected.spvasm
index 71767cd..d6a2eed 100644
--- a/test/tint/builtins/gen/var/textureStore/9f7cea.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/9f7cea.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 54
+; Bound: 57
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -42,55 +42,58 @@
          %13 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
-         %19 = OpConstantNull %v2int
+      %int_1 = OpConstant %int 1
+         %20 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v2int = OpTypePointer Function %v2int
+         %23 = OpConstantNull %v2int
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %25 = OpConstantNull %uint
+         %27 = OpConstantNull %uint
      %v4uint = OpTypeVector %uint 4
-         %27 = OpConstantNull %v4uint
+         %29 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
+         %32 = OpConstantNull %v4uint
       %v3int = OpTypeVector %int 3
-         %40 = OpTypeFunction %v4float
+         %43 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_9f7cea = OpFunction %void None %13
          %16 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2int Function %19
-      %arg_2 = OpVariable %_ptr_Function_uint Function %25
-      %arg_3 = OpVariable %_ptr_Function_v4uint Function %27
-               OpStore %arg_1 %19
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %23
+      %arg_2 = OpVariable %_ptr_Function_uint Function %27
+      %arg_3 = OpVariable %_ptr_Function_v4uint Function %32
+               OpStore %arg_1 %20
                OpStore %arg_2 %uint_1
-               OpStore %arg_3 %27
-         %31 = OpLoad %11 %arg_0
-         %33 = OpLoad %v2int %arg_1
-         %34 = OpCompositeExtract %int %33 0
-         %35 = OpCompositeExtract %int %33 1
-         %37 = OpLoad %uint %arg_2
-         %36 = OpBitcast %int %37
-         %38 = OpCompositeConstruct %v3int %34 %35 %36
-         %39 = OpLoad %v4uint %arg_3
-               OpImageWrite %31 %38 %39
+               OpStore %arg_3 %29
+         %34 = OpLoad %11 %arg_0
+         %36 = OpLoad %v2int %arg_1
+         %37 = OpCompositeExtract %int %36 0
+         %38 = OpCompositeExtract %int %36 1
+         %40 = OpLoad %uint %arg_2
+         %39 = OpBitcast %int %40
+         %41 = OpCompositeConstruct %v3int %37 %38 %39
+         %42 = OpLoad %v4uint %arg_3
+               OpImageWrite %34 %41 %42
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %40
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_9f7cea
+%vertex_main_inner = OpFunction %v4float None %43
+         %45 = OpLabel
+         %46 = OpFunctionCall %void %textureStore_9f7cea
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %45 = OpLabel
-         %46 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %46
+         %48 = OpLabel
+         %49 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %49
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %49 = OpLabel
-         %50 = OpFunctionCall %void %textureStore_9f7cea
+         %52 = OpLabel
+         %53 = OpFunctionCall %void %textureStore_9f7cea
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %52 = OpLabel
-         %53 = OpFunctionCall %void %textureStore_9f7cea
+         %55 = OpLabel
+         %56 = OpFunctionCall %void %textureStore_9f7cea
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/9f7cea.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/9f7cea.wgsl.expected.wgsl
index 6b55981..c8cceff 100644
--- a/test/tint/builtins/gen/var/textureStore/9f7cea.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/9f7cea.wgsl.expected.wgsl
@@ -1,9 +1,9 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba8uint, write>;
 
 fn textureStore_9f7cea() {
-  var arg_1 = vec2<i32>();
+  var arg_1 = vec2<i32>(1i);
   var arg_2 = 1u;
-  var arg_3 = vec4<u32>();
+  var arg_3 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/a0f96e.wgsl b/test/tint/builtins/gen/var/textureStore/a0f96e.wgsl
index 7ff74cd..2088a74 100644
--- a/test/tint/builtins/gen/var/textureStore/a0f96e.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/a0f96e.wgsl
@@ -24,9 +24,9 @@
 
 // fn textureStore(texture: texture_storage_2d_array<rgba16float, write>, coords: vec2<u32>, array_index: u32, value: vec4<f32>)
 fn textureStore_a0f96e() {
-  var arg_1 = vec2<u32>();
+  var arg_1 = vec2<u32>(1u);
   var arg_2 = 1u;
-  var arg_3 = vec4<f32>();
+  var arg_3 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/a0f96e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/a0f96e.wgsl.expected.dxc.hlsl
index 97ab824..24a137e 100644
--- a/test/tint/builtins/gen/var/textureStore/a0f96e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/a0f96e.wgsl.expected.dxc.hlsl
@@ -1,9 +1,9 @@
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 void textureStore_a0f96e() {
-  uint2 arg_1 = (0u).xx;
+  uint2 arg_1 = (1u).xx;
   uint arg_2 = 1u;
-  float4 arg_3 = (0.0f).xxxx;
+  float4 arg_3 = (1.0f).xxxx;
   arg_0[uint3(arg_1, arg_2)] = arg_3;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/a0f96e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/a0f96e.wgsl.expected.fxc.hlsl
index 97ab824..24a137e 100644
--- a/test/tint/builtins/gen/var/textureStore/a0f96e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/a0f96e.wgsl.expected.fxc.hlsl
@@ -1,9 +1,9 @@
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 void textureStore_a0f96e() {
-  uint2 arg_1 = (0u).xx;
+  uint2 arg_1 = (1u).xx;
   uint arg_2 = 1u;
-  float4 arg_3 = (0.0f).xxxx;
+  float4 arg_3 = (1.0f).xxxx;
   arg_0[uint3(arg_1, arg_2)] = arg_3;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/a0f96e.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/a0f96e.wgsl.expected.glsl
index 276a6f9..fe82253 100644
--- a/test/tint/builtins/gen/var/textureStore/a0f96e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/a0f96e.wgsl.expected.glsl
@@ -2,9 +2,9 @@
 
 layout(rgba16f) uniform highp writeonly image2DArray arg_0;
 void textureStore_a0f96e() {
-  uvec2 arg_1 = uvec2(0u);
+  uvec2 arg_1 = uvec2(1u);
   uint arg_2 = 1u;
-  vec4 arg_3 = vec4(0.0f);
+  vec4 arg_3 = vec4(1.0f);
   imageStore(arg_0, ivec3(uvec3(arg_1, arg_2)), arg_3);
 }
 
@@ -26,9 +26,9 @@
 
 layout(rgba16f) uniform highp writeonly image2DArray arg_0;
 void textureStore_a0f96e() {
-  uvec2 arg_1 = uvec2(0u);
+  uvec2 arg_1 = uvec2(1u);
   uint arg_2 = 1u;
-  vec4 arg_3 = vec4(0.0f);
+  vec4 arg_3 = vec4(1.0f);
   imageStore(arg_0, ivec3(uvec3(arg_1, arg_2)), arg_3);
 }
 
@@ -44,9 +44,9 @@
 
 layout(rgba16f) uniform highp writeonly image2DArray arg_0;
 void textureStore_a0f96e() {
-  uvec2 arg_1 = uvec2(0u);
+  uvec2 arg_1 = uvec2(1u);
   uint arg_2 = 1u;
-  vec4 arg_3 = vec4(0.0f);
+  vec4 arg_3 = vec4(1.0f);
   imageStore(arg_0, ivec3(uvec3(arg_1, arg_2)), arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/a0f96e.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/a0f96e.wgsl.expected.msl
index 03c6f52..8d5db86 100644
--- a/test/tint/builtins/gen/var/textureStore/a0f96e.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/a0f96e.wgsl.expected.msl
@@ -2,9 +2,9 @@
 
 using namespace metal;
 void textureStore_a0f96e(texture2d_array<float, access::write> tint_symbol_1) {
-  uint2 arg_1 = uint2(0u);
+  uint2 arg_1 = uint2(1u);
   uint arg_2 = 1u;
-  float4 arg_3 = float4(0.0f);
+  float4 arg_3 = float4(1.0f);
   tint_symbol_1.write(arg_3, uint2(arg_1), arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/a0f96e.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/a0f96e.wgsl.expected.spvasm
index 5277c6c..b04517c 100644
--- a/test/tint/builtins/gen/var/textureStore/a0f96e.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/a0f96e.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 50
+; Bound: 52
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -41,52 +41,54 @@
          %12 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
-         %18 = OpConstantNull %v2uint
-%_ptr_Function_v2uint = OpTypePointer Function %v2uint
      %uint_1 = OpConstant %uint 1
+         %19 = OpConstantComposite %v2uint %uint_1 %uint_1
+%_ptr_Function_v2uint = OpTypePointer Function %v2uint
+         %22 = OpConstantNull %v2uint
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %24 = OpConstantNull %uint
+         %25 = OpConstantNull %uint
+    %float_1 = OpConstant %float 1
+         %27 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
      %v3uint = OpTypeVector %uint 3
-         %36 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %39 = OpTypeFunction %v4float
 %textureStore_a0f96e = OpFunction %void None %12
          %15 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2uint Function %18
-      %arg_2 = OpVariable %_ptr_Function_uint Function %24
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %22
+      %arg_2 = OpVariable %_ptr_Function_uint Function %25
       %arg_3 = OpVariable %_ptr_Function_v4float Function %5
-               OpStore %arg_1 %18
+               OpStore %arg_1 %19
                OpStore %arg_2 %uint_1
-               OpStore %arg_3 %5
-         %28 = OpLoad %11 %arg_0
-         %30 = OpLoad %v2uint %arg_1
-         %31 = OpCompositeExtract %uint %30 0
-         %32 = OpCompositeExtract %uint %30 1
-         %33 = OpLoad %uint %arg_2
-         %34 = OpCompositeConstruct %v3uint %31 %32 %33
-         %35 = OpLoad %v4float %arg_3
-               OpImageWrite %28 %34 %35
+               OpStore %arg_3 %27
+         %31 = OpLoad %11 %arg_0
+         %33 = OpLoad %v2uint %arg_1
+         %34 = OpCompositeExtract %uint %33 0
+         %35 = OpCompositeExtract %uint %33 1
+         %36 = OpLoad %uint %arg_2
+         %37 = OpCompositeConstruct %v3uint %34 %35 %36
+         %38 = OpLoad %v4float %arg_3
+               OpImageWrite %31 %37 %38
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %36
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureStore_a0f96e
+%vertex_main_inner = OpFunction %v4float None %39
+         %41 = OpLabel
+         %42 = OpFunctionCall %void %textureStore_a0f96e
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %41 = OpLabel
-         %42 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %42
+         %44 = OpLabel
+         %45 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %45
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %45 = OpLabel
-         %46 = OpFunctionCall %void %textureStore_a0f96e
+         %47 = OpLabel
+         %48 = OpFunctionCall %void %textureStore_a0f96e
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %48 = OpLabel
-         %49 = OpFunctionCall %void %textureStore_a0f96e
+         %50 = OpLabel
+         %51 = OpFunctionCall %void %textureStore_a0f96e
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/a0f96e.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/a0f96e.wgsl.expected.wgsl
index d9babfe..7ed7210 100644
--- a/test/tint/builtins/gen/var/textureStore/a0f96e.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/a0f96e.wgsl.expected.wgsl
@@ -1,9 +1,9 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba16float, write>;
 
 fn textureStore_a0f96e() {
-  var arg_1 = vec2<u32>();
+  var arg_1 = vec2<u32>(1u);
   var arg_2 = 1u;
-  var arg_3 = vec4<f32>();
+  var arg_3 = vec4<f32>(1.0f);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/a1352c.wgsl b/test/tint/builtins/gen/var/textureStore/a1352c.wgsl
index d2c7483..4be46e8 100644
--- a/test/tint/builtins/gen/var/textureStore/a1352c.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/a1352c.wgsl
@@ -24,9 +24,9 @@
 
 // fn textureStore(texture: texture_storage_2d_array<rgba8sint, write>, coords: vec2<u32>, array_index: u32, value: vec4<i32>)
 fn textureStore_a1352c() {
-  var arg_1 = vec2<u32>();
+  var arg_1 = vec2<u32>(1u);
   var arg_2 = 1u;
-  var arg_3 = vec4<i32>();
+  var arg_3 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/a1352c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/a1352c.wgsl.expected.dxc.hlsl
index f9c5558..c9ae03c 100644
--- a/test/tint/builtins/gen/var/textureStore/a1352c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/a1352c.wgsl.expected.dxc.hlsl
@@ -1,9 +1,9 @@
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 void textureStore_a1352c() {
-  uint2 arg_1 = (0u).xx;
+  uint2 arg_1 = (1u).xx;
   uint arg_2 = 1u;
-  int4 arg_3 = (0).xxxx;
+  int4 arg_3 = (1).xxxx;
   arg_0[uint3(arg_1, arg_2)] = arg_3;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/a1352c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/a1352c.wgsl.expected.fxc.hlsl
index f9c5558..c9ae03c 100644
--- a/test/tint/builtins/gen/var/textureStore/a1352c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/a1352c.wgsl.expected.fxc.hlsl
@@ -1,9 +1,9 @@
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 void textureStore_a1352c() {
-  uint2 arg_1 = (0u).xx;
+  uint2 arg_1 = (1u).xx;
   uint arg_2 = 1u;
-  int4 arg_3 = (0).xxxx;
+  int4 arg_3 = (1).xxxx;
   arg_0[uint3(arg_1, arg_2)] = arg_3;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/a1352c.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/a1352c.wgsl.expected.glsl
index 8d0b050..fba754f 100644
--- a/test/tint/builtins/gen/var/textureStore/a1352c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/a1352c.wgsl.expected.glsl
@@ -2,9 +2,9 @@
 
 layout(rgba8i) uniform highp writeonly iimage2DArray arg_0;
 void textureStore_a1352c() {
-  uvec2 arg_1 = uvec2(0u);
+  uvec2 arg_1 = uvec2(1u);
   uint arg_2 = 1u;
-  ivec4 arg_3 = ivec4(0);
+  ivec4 arg_3 = ivec4(1);
   imageStore(arg_0, ivec3(uvec3(arg_1, arg_2)), arg_3);
 }
 
@@ -26,9 +26,9 @@
 
 layout(rgba8i) uniform highp writeonly iimage2DArray arg_0;
 void textureStore_a1352c() {
-  uvec2 arg_1 = uvec2(0u);
+  uvec2 arg_1 = uvec2(1u);
   uint arg_2 = 1u;
-  ivec4 arg_3 = ivec4(0);
+  ivec4 arg_3 = ivec4(1);
   imageStore(arg_0, ivec3(uvec3(arg_1, arg_2)), arg_3);
 }
 
@@ -44,9 +44,9 @@
 
 layout(rgba8i) uniform highp writeonly iimage2DArray arg_0;
 void textureStore_a1352c() {
-  uvec2 arg_1 = uvec2(0u);
+  uvec2 arg_1 = uvec2(1u);
   uint arg_2 = 1u;
-  ivec4 arg_3 = ivec4(0);
+  ivec4 arg_3 = ivec4(1);
   imageStore(arg_0, ivec3(uvec3(arg_1, arg_2)), arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/a1352c.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/a1352c.wgsl.expected.msl
index 275794f..2eecb90 100644
--- a/test/tint/builtins/gen/var/textureStore/a1352c.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/a1352c.wgsl.expected.msl
@@ -2,9 +2,9 @@
 
 using namespace metal;
 void textureStore_a1352c(texture2d_array<int, access::write> tint_symbol_1) {
-  uint2 arg_1 = uint2(0u);
+  uint2 arg_1 = uint2(1u);
   uint arg_2 = 1u;
-  int4 arg_3 = int4(0);
+  int4 arg_3 = int4(1);
   tint_symbol_1.write(arg_3, uint2(arg_1), arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/a1352c.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/a1352c.wgsl.expected.spvasm
index 60d2114..b6dc94d 100644
--- a/test/tint/builtins/gen/var/textureStore/a1352c.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/a1352c.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 53
+; Bound: 56
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -42,54 +42,57 @@
          %13 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
-         %19 = OpConstantNull %v2uint
-%_ptr_Function_v2uint = OpTypePointer Function %v2uint
      %uint_1 = OpConstant %uint 1
+         %20 = OpConstantComposite %v2uint %uint_1 %uint_1
+%_ptr_Function_v2uint = OpTypePointer Function %v2uint
+         %23 = OpConstantNull %v2uint
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %25 = OpConstantNull %uint
+         %26 = OpConstantNull %uint
       %v4int = OpTypeVector %int 4
-         %27 = OpConstantNull %v4int
+      %int_1 = OpConstant %int 1
+         %29 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
+         %32 = OpConstantNull %v4int
      %v3uint = OpTypeVector %uint 3
-         %39 = OpTypeFunction %v4float
+         %42 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_a1352c = OpFunction %void None %13
          %16 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2uint Function %19
-      %arg_2 = OpVariable %_ptr_Function_uint Function %25
-      %arg_3 = OpVariable %_ptr_Function_v4int Function %27
-               OpStore %arg_1 %19
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %23
+      %arg_2 = OpVariable %_ptr_Function_uint Function %26
+      %arg_3 = OpVariable %_ptr_Function_v4int Function %32
+               OpStore %arg_1 %20
                OpStore %arg_2 %uint_1
-               OpStore %arg_3 %27
-         %31 = OpLoad %11 %arg_0
-         %33 = OpLoad %v2uint %arg_1
-         %34 = OpCompositeExtract %uint %33 0
-         %35 = OpCompositeExtract %uint %33 1
-         %36 = OpLoad %uint %arg_2
-         %37 = OpCompositeConstruct %v3uint %34 %35 %36
-         %38 = OpLoad %v4int %arg_3
-               OpImageWrite %31 %37 %38
+               OpStore %arg_3 %29
+         %34 = OpLoad %11 %arg_0
+         %36 = OpLoad %v2uint %arg_1
+         %37 = OpCompositeExtract %uint %36 0
+         %38 = OpCompositeExtract %uint %36 1
+         %39 = OpLoad %uint %arg_2
+         %40 = OpCompositeConstruct %v3uint %37 %38 %39
+         %41 = OpLoad %v4int %arg_3
+               OpImageWrite %34 %40 %41
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %39
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureStore_a1352c
+%vertex_main_inner = OpFunction %v4float None %42
+         %44 = OpLabel
+         %45 = OpFunctionCall %void %textureStore_a1352c
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %44 = OpLabel
-         %45 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %45
+         %47 = OpLabel
+         %48 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %48
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %48 = OpLabel
-         %49 = OpFunctionCall %void %textureStore_a1352c
+         %51 = OpLabel
+         %52 = OpFunctionCall %void %textureStore_a1352c
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %51 = OpLabel
-         %52 = OpFunctionCall %void %textureStore_a1352c
+         %54 = OpLabel
+         %55 = OpFunctionCall %void %textureStore_a1352c
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/a1352c.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/a1352c.wgsl.expected.wgsl
index 7132f14..0974686 100644
--- a/test/tint/builtins/gen/var/textureStore/a1352c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/a1352c.wgsl.expected.wgsl
@@ -1,9 +1,9 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba8sint, write>;
 
 fn textureStore_a1352c() {
-  var arg_1 = vec2<u32>();
+  var arg_1 = vec2<u32>(1u);
   var arg_2 = 1u;
-  var arg_3 = vec4<i32>();
+  var arg_3 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/a4c338.wgsl b/test/tint/builtins/gen/var/textureStore/a4c338.wgsl
index ded9f8e..dc78645 100644
--- a/test/tint/builtins/gen/var/textureStore/a4c338.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/a4c338.wgsl
@@ -25,7 +25,7 @@
 // fn textureStore(texture: texture_storage_1d<rgba16float, write>, coords: u32, value: vec4<f32>)
 fn textureStore_a4c338() {
   var arg_1 = 1u;
-  var arg_2 = vec4<f32>();
+  var arg_2 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/a4c338.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/a4c338.wgsl.expected.dxc.hlsl
index fbaa791..6f5fbf1 100644
--- a/test/tint/builtins/gen/var/textureStore/a4c338.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/a4c338.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 
 void textureStore_a4c338() {
   uint arg_1 = 1u;
-  float4 arg_2 = (0.0f).xxxx;
+  float4 arg_2 = (1.0f).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/a4c338.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/a4c338.wgsl.expected.fxc.hlsl
index fbaa791..6f5fbf1 100644
--- a/test/tint/builtins/gen/var/textureStore/a4c338.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/a4c338.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 
 void textureStore_a4c338() {
   uint arg_1 = 1u;
-  float4 arg_2 = (0.0f).xxxx;
+  float4 arg_2 = (1.0f).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/a4c338.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/a4c338.wgsl.expected.msl
index f4ae68c..5643f17 100644
--- a/test/tint/builtins/gen/var/textureStore/a4c338.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/a4c338.wgsl.expected.msl
@@ -3,7 +3,7 @@
 using namespace metal;
 void textureStore_a4c338(texture1d<float, access::write> tint_symbol_1) {
   uint arg_1 = 1u;
-  float4 arg_2 = float4(0.0f);
+  float4 arg_2 = float4(1.0f);
   tint_symbol_1.write(arg_2, uint(arg_1));
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/a4c338.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/a4c338.wgsl.expected.spvasm
index 3ff8ca1..d92f716 100644
--- a/test/tint/builtins/gen/var/textureStore/a4c338.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/a4c338.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 41
+; Bound: 42
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
@@ -43,40 +43,41 @@
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
          %20 = OpConstantNull %uint
-%_ptr_Function_v4float = OpTypePointer Function %v4float
-         %27 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
+         %22 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%_ptr_Function_v4float = OpTypePointer Function %v4float
+         %29 = OpTypeFunction %v4float
 %textureStore_a4c338 = OpFunction %void None %12
          %15 = OpLabel
       %arg_1 = OpVariable %_ptr_Function_uint Function %20
       %arg_2 = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %uint_1
-               OpStore %arg_2 %5
-         %24 = OpLoad %11 %arg_0
-         %25 = OpLoad %uint %arg_1
-         %26 = OpLoad %v4float %arg_2
-               OpImageWrite %24 %25 %26
+               OpStore %arg_2 %22
+         %26 = OpLoad %11 %arg_0
+         %27 = OpLoad %uint %arg_1
+         %28 = OpLoad %v4float %arg_2
+               OpImageWrite %26 %27 %28
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %27
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %textureStore_a4c338
+%vertex_main_inner = OpFunction %v4float None %29
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %textureStore_a4c338
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %32 = OpLabel
-         %33 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %33
+         %34 = OpLabel
+         %35 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %35
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_a4c338
+         %37 = OpLabel
+         %38 = OpFunctionCall %void %textureStore_a4c338
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_a4c338
+         %40 = OpLabel
+         %41 = OpFunctionCall %void %textureStore_a4c338
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/a4c338.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/a4c338.wgsl.expected.wgsl
index 49ef550..96e6f1a 100644
--- a/test/tint/builtins/gen/var/textureStore/a4c338.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/a4c338.wgsl.expected.wgsl
@@ -2,7 +2,7 @@
 
 fn textureStore_a4c338() {
   var arg_1 = 1u;
-  var arg_2 = vec4<f32>();
+  var arg_2 = vec4<f32>(1.0f);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/a5e80d.wgsl b/test/tint/builtins/gen/var/textureStore/a5e80d.wgsl
index 34851f6..7e5099f 100644
--- a/test/tint/builtins/gen/var/textureStore/a5e80d.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/a5e80d.wgsl
@@ -24,8 +24,8 @@
 
 // fn textureStore(texture: texture_storage_3d<rgba32float, write>, coords: vec3<u32>, value: vec4<f32>)
 fn textureStore_a5e80d() {
-  var arg_1 = vec3<u32>();
-  var arg_2 = vec4<f32>();
+  var arg_1 = vec3<u32>(1u);
+  var arg_2 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/a5e80d.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/a5e80d.wgsl.expected.dxc.hlsl
index 89f734c..1a1241a 100644
--- a/test/tint/builtins/gen/var/textureStore/a5e80d.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/a5e80d.wgsl.expected.dxc.hlsl
@@ -1,8 +1,8 @@
 RWTexture3D<float4> arg_0 : register(u0, space1);
 
 void textureStore_a5e80d() {
-  uint3 arg_1 = (0u).xxx;
-  float4 arg_2 = (0.0f).xxxx;
+  uint3 arg_1 = (1u).xxx;
+  float4 arg_2 = (1.0f).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/a5e80d.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/a5e80d.wgsl.expected.fxc.hlsl
index 89f734c..1a1241a 100644
--- a/test/tint/builtins/gen/var/textureStore/a5e80d.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/a5e80d.wgsl.expected.fxc.hlsl
@@ -1,8 +1,8 @@
 RWTexture3D<float4> arg_0 : register(u0, space1);
 
 void textureStore_a5e80d() {
-  uint3 arg_1 = (0u).xxx;
-  float4 arg_2 = (0.0f).xxxx;
+  uint3 arg_1 = (1u).xxx;
+  float4 arg_2 = (1.0f).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/a5e80d.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/a5e80d.wgsl.expected.glsl
index 0bf3507..a694566 100644
--- a/test/tint/builtins/gen/var/textureStore/a5e80d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/a5e80d.wgsl.expected.glsl
@@ -2,8 +2,8 @@
 
 layout(rgba32f) uniform highp writeonly image3D arg_0;
 void textureStore_a5e80d() {
-  uvec3 arg_1 = uvec3(0u);
-  vec4 arg_2 = vec4(0.0f);
+  uvec3 arg_1 = uvec3(1u);
+  vec4 arg_2 = vec4(1.0f);
   imageStore(arg_0, ivec3(arg_1), arg_2);
 }
 
@@ -25,8 +25,8 @@
 
 layout(rgba32f) uniform highp writeonly image3D arg_0;
 void textureStore_a5e80d() {
-  uvec3 arg_1 = uvec3(0u);
-  vec4 arg_2 = vec4(0.0f);
+  uvec3 arg_1 = uvec3(1u);
+  vec4 arg_2 = vec4(1.0f);
   imageStore(arg_0, ivec3(arg_1), arg_2);
 }
 
@@ -42,8 +42,8 @@
 
 layout(rgba32f) uniform highp writeonly image3D arg_0;
 void textureStore_a5e80d() {
-  uvec3 arg_1 = uvec3(0u);
-  vec4 arg_2 = vec4(0.0f);
+  uvec3 arg_1 = uvec3(1u);
+  vec4 arg_2 = vec4(1.0f);
   imageStore(arg_0, ivec3(arg_1), arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/a5e80d.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/a5e80d.wgsl.expected.msl
index 09345d4..e00f52f 100644
--- a/test/tint/builtins/gen/var/textureStore/a5e80d.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/a5e80d.wgsl.expected.msl
@@ -2,8 +2,8 @@
 
 using namespace metal;
 void textureStore_a5e80d(texture3d<float, access::write> tint_symbol_1) {
-  uint3 arg_1 = uint3(0u);
-  float4 arg_2 = float4(0.0f);
+  uint3 arg_1 = uint3(1u);
+  float4 arg_2 = float4(1.0f);
   tint_symbol_1.write(arg_2, uint3(arg_1));
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/a5e80d.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/a5e80d.wgsl.expected.spvasm
index fc7f43e..4833576 100644
--- a/test/tint/builtins/gen/var/textureStore/a5e80d.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/a5e80d.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 41
+; Bound: 44
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -40,42 +40,45 @@
          %12 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
-         %18 = OpConstantNull %v3uint
+     %uint_1 = OpConstant %uint 1
+         %19 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
 %_ptr_Function_v3uint = OpTypePointer Function %v3uint
-%_ptr_Function_v4float = OpTypePointer Function %v4float
-         %27 = OpTypeFunction %v4float
+         %22 = OpConstantNull %v3uint
     %float_1 = OpConstant %float 1
+         %24 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%_ptr_Function_v4float = OpTypePointer Function %v4float
+         %31 = OpTypeFunction %v4float
 %textureStore_a5e80d = OpFunction %void None %12
          %15 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v3uint Function %18
+      %arg_1 = OpVariable %_ptr_Function_v3uint Function %22
       %arg_2 = OpVariable %_ptr_Function_v4float Function %5
-               OpStore %arg_1 %18
-               OpStore %arg_2 %5
-         %24 = OpLoad %11 %arg_0
-         %25 = OpLoad %v3uint %arg_1
-         %26 = OpLoad %v4float %arg_2
-               OpImageWrite %24 %25 %26
+               OpStore %arg_1 %19
+               OpStore %arg_2 %24
+         %28 = OpLoad %11 %arg_0
+         %29 = OpLoad %v3uint %arg_1
+         %30 = OpLoad %v4float %arg_2
+               OpImageWrite %28 %29 %30
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %27
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %textureStore_a5e80d
+%vertex_main_inner = OpFunction %v4float None %31
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureStore_a5e80d
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %32 = OpLabel
-         %33 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %33
+         %36 = OpLabel
+         %37 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %37
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_a5e80d
+         %39 = OpLabel
+         %40 = OpFunctionCall %void %textureStore_a5e80d
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_a5e80d
+         %42 = OpLabel
+         %43 = OpFunctionCall %void %textureStore_a5e80d
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/a5e80d.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/a5e80d.wgsl.expected.wgsl
index 3976579..61026f0 100644
--- a/test/tint/builtins/gen/var/textureStore/a5e80d.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/a5e80d.wgsl.expected.wgsl
@@ -1,8 +1,8 @@
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rgba32float, write>;
 
 fn textureStore_a5e80d() {
-  var arg_1 = vec3<u32>();
-  var arg_2 = vec4<f32>();
+  var arg_1 = vec3<u32>(1u);
+  var arg_2 = vec4<f32>(1.0f);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/a6a986.wgsl b/test/tint/builtins/gen/var/textureStore/a6a986.wgsl
index 45715a3..8b6da07 100644
--- a/test/tint/builtins/gen/var/textureStore/a6a986.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/a6a986.wgsl
@@ -24,9 +24,9 @@
 
 // fn textureStore(texture: texture_storage_2d_array<rgba16float, write>, coords: vec2<u32>, array_index: i32, value: vec4<f32>)
 fn textureStore_a6a986() {
-  var arg_1 = vec2<u32>();
+  var arg_1 = vec2<u32>(1u);
   var arg_2 = 1i;
-  var arg_3 = vec4<f32>();
+  var arg_3 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/a6a986.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/a6a986.wgsl.expected.dxc.hlsl
index 87243b7..5102816 100644
--- a/test/tint/builtins/gen/var/textureStore/a6a986.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/a6a986.wgsl.expected.dxc.hlsl
@@ -1,9 +1,9 @@
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 void textureStore_a6a986() {
-  uint2 arg_1 = (0u).xx;
+  uint2 arg_1 = (1u).xx;
   int arg_2 = 1;
-  float4 arg_3 = (0.0f).xxxx;
+  float4 arg_3 = (1.0f).xxxx;
   arg_0[uint3(arg_1, uint(arg_2))] = arg_3;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/a6a986.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/a6a986.wgsl.expected.fxc.hlsl
index 87243b7..5102816 100644
--- a/test/tint/builtins/gen/var/textureStore/a6a986.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/a6a986.wgsl.expected.fxc.hlsl
@@ -1,9 +1,9 @@
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 void textureStore_a6a986() {
-  uint2 arg_1 = (0u).xx;
+  uint2 arg_1 = (1u).xx;
   int arg_2 = 1;
-  float4 arg_3 = (0.0f).xxxx;
+  float4 arg_3 = (1.0f).xxxx;
   arg_0[uint3(arg_1, uint(arg_2))] = arg_3;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/a6a986.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/a6a986.wgsl.expected.glsl
index 63d69b0..2249883 100644
--- a/test/tint/builtins/gen/var/textureStore/a6a986.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/a6a986.wgsl.expected.glsl
@@ -2,9 +2,9 @@
 
 layout(rgba16f) uniform highp writeonly image2DArray arg_0;
 void textureStore_a6a986() {
-  uvec2 arg_1 = uvec2(0u);
+  uvec2 arg_1 = uvec2(1u);
   int arg_2 = 1;
-  vec4 arg_3 = vec4(0.0f);
+  vec4 arg_3 = vec4(1.0f);
   imageStore(arg_0, ivec3(uvec3(arg_1, uint(arg_2))), arg_3);
 }
 
@@ -26,9 +26,9 @@
 
 layout(rgba16f) uniform highp writeonly image2DArray arg_0;
 void textureStore_a6a986() {
-  uvec2 arg_1 = uvec2(0u);
+  uvec2 arg_1 = uvec2(1u);
   int arg_2 = 1;
-  vec4 arg_3 = vec4(0.0f);
+  vec4 arg_3 = vec4(1.0f);
   imageStore(arg_0, ivec3(uvec3(arg_1, uint(arg_2))), arg_3);
 }
 
@@ -44,9 +44,9 @@
 
 layout(rgba16f) uniform highp writeonly image2DArray arg_0;
 void textureStore_a6a986() {
-  uvec2 arg_1 = uvec2(0u);
+  uvec2 arg_1 = uvec2(1u);
   int arg_2 = 1;
-  vec4 arg_3 = vec4(0.0f);
+  vec4 arg_3 = vec4(1.0f);
   imageStore(arg_0, ivec3(uvec3(arg_1, uint(arg_2))), arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/a6a986.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/a6a986.wgsl.expected.msl
index b331c2d..e4fa7fa 100644
--- a/test/tint/builtins/gen/var/textureStore/a6a986.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/a6a986.wgsl.expected.msl
@@ -2,9 +2,9 @@
 
 using namespace metal;
 void textureStore_a6a986(texture2d_array<float, access::write> tint_symbol_1) {
-  uint2 arg_1 = uint2(0u);
+  uint2 arg_1 = uint2(1u);
   int arg_2 = 1;
-  float4 arg_3 = float4(0.0f);
+  float4 arg_3 = float4(1.0f);
   tint_symbol_1.write(arg_3, uint2(arg_1), arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/a6a986.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/a6a986.wgsl.expected.spvasm
index e1eee7c..4186142 100644
--- a/test/tint/builtins/gen/var/textureStore/a6a986.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/a6a986.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 52
+; Bound: 55
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -41,54 +41,57 @@
          %12 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
-         %18 = OpConstantNull %v2uint
+     %uint_1 = OpConstant %uint 1
+         %19 = OpConstantComposite %v2uint %uint_1 %uint_1
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
+         %22 = OpConstantNull %v2uint
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
-         %25 = OpConstantNull %int
+         %27 = OpConstantNull %int
+    %float_1 = OpConstant %float 1
+         %29 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
      %v3uint = OpTypeVector %uint 3
-         %38 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %42 = OpTypeFunction %v4float
 %textureStore_a6a986 = OpFunction %void None %12
          %15 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2uint Function %18
-      %arg_2 = OpVariable %_ptr_Function_int Function %25
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %22
+      %arg_2 = OpVariable %_ptr_Function_int Function %27
       %arg_3 = OpVariable %_ptr_Function_v4float Function %5
-               OpStore %arg_1 %18
+               OpStore %arg_1 %19
                OpStore %arg_2 %int_1
-               OpStore %arg_3 %5
-         %29 = OpLoad %11 %arg_0
-         %31 = OpLoad %v2uint %arg_1
-         %32 = OpCompositeExtract %uint %31 0
-         %33 = OpCompositeExtract %uint %31 1
-         %35 = OpLoad %int %arg_2
-         %34 = OpBitcast %uint %35
-         %36 = OpCompositeConstruct %v3uint %32 %33 %34
-         %37 = OpLoad %v4float %arg_3
-               OpImageWrite %29 %36 %37
+               OpStore %arg_3 %29
+         %33 = OpLoad %11 %arg_0
+         %35 = OpLoad %v2uint %arg_1
+         %36 = OpCompositeExtract %uint %35 0
+         %37 = OpCompositeExtract %uint %35 1
+         %39 = OpLoad %int %arg_2
+         %38 = OpBitcast %uint %39
+         %40 = OpCompositeConstruct %v3uint %36 %37 %38
+         %41 = OpLoad %v4float %arg_3
+               OpImageWrite %33 %40 %41
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %38
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureStore_a6a986
+%vertex_main_inner = OpFunction %v4float None %42
+         %44 = OpLabel
+         %45 = OpFunctionCall %void %textureStore_a6a986
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %43 = OpLabel
-         %44 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %44
+         %47 = OpLabel
+         %48 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %48
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %47 = OpLabel
-         %48 = OpFunctionCall %void %textureStore_a6a986
+         %50 = OpLabel
+         %51 = OpFunctionCall %void %textureStore_a6a986
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %50 = OpLabel
-         %51 = OpFunctionCall %void %textureStore_a6a986
+         %53 = OpLabel
+         %54 = OpFunctionCall %void %textureStore_a6a986
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/a6a986.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/a6a986.wgsl.expected.wgsl
index 5ca9a01..eae1eee 100644
--- a/test/tint/builtins/gen/var/textureStore/a6a986.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/a6a986.wgsl.expected.wgsl
@@ -1,9 +1,9 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba16float, write>;
 
 fn textureStore_a6a986() {
-  var arg_1 = vec2<u32>();
+  var arg_1 = vec2<u32>(1u);
   var arg_2 = 1i;
-  var arg_3 = vec4<f32>();
+  var arg_3 = vec4<f32>(1.0f);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/a6e78f.wgsl b/test/tint/builtins/gen/var/textureStore/a6e78f.wgsl
index ee01fa7..fc02f9f 100644
--- a/test/tint/builtins/gen/var/textureStore/a6e78f.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/a6e78f.wgsl
@@ -25,7 +25,7 @@
 // fn textureStore(texture: texture_storage_1d<r32uint, write>, coords: u32, value: vec4<u32>)
 fn textureStore_a6e78f() {
   var arg_1 = 1u;
-  var arg_2 = vec4<u32>();
+  var arg_2 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/a6e78f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/a6e78f.wgsl.expected.dxc.hlsl
index 1bcd821..0314856 100644
--- a/test/tint/builtins/gen/var/textureStore/a6e78f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/a6e78f.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 
 void textureStore_a6e78f() {
   uint arg_1 = 1u;
-  uint4 arg_2 = (0u).xxxx;
+  uint4 arg_2 = (1u).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/a6e78f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/a6e78f.wgsl.expected.fxc.hlsl
index 1bcd821..0314856 100644
--- a/test/tint/builtins/gen/var/textureStore/a6e78f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/a6e78f.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 
 void textureStore_a6e78f() {
   uint arg_1 = 1u;
-  uint4 arg_2 = (0u).xxxx;
+  uint4 arg_2 = (1u).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/a6e78f.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/a6e78f.wgsl.expected.msl
index c8eae4c..07ee9e6 100644
--- a/test/tint/builtins/gen/var/textureStore/a6e78f.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/a6e78f.wgsl.expected.msl
@@ -3,7 +3,7 @@
 using namespace metal;
 void textureStore_a6e78f(texture1d<uint, access::write> tint_symbol_1) {
   uint arg_1 = 1u;
-  uint4 arg_2 = uint4(0u);
+  uint4 arg_2 = uint4(1u);
   tint_symbol_1.write(arg_2, uint(arg_1));
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/a6e78f.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/a6e78f.wgsl.expected.spvasm
index 8799481..85835b1 100644
--- a/test/tint/builtins/gen/var/textureStore/a6e78f.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/a6e78f.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 43
+; Bound: 44
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
@@ -44,41 +44,42 @@
 %_ptr_Function_uint = OpTypePointer Function %uint
          %20 = OpConstantNull %uint
      %v4uint = OpTypeVector %uint 4
-         %22 = OpConstantNull %v4uint
+         %22 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %29 = OpTypeFunction %v4float
+         %25 = OpConstantNull %v4uint
+         %30 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_a6e78f = OpFunction %void None %13
          %16 = OpLabel
       %arg_1 = OpVariable %_ptr_Function_uint Function %20
-      %arg_2 = OpVariable %_ptr_Function_v4uint Function %22
+      %arg_2 = OpVariable %_ptr_Function_v4uint Function %25
                OpStore %arg_1 %uint_1
                OpStore %arg_2 %22
-         %26 = OpLoad %11 %arg_0
-         %27 = OpLoad %uint %arg_1
-         %28 = OpLoad %v4uint %arg_2
-               OpImageWrite %26 %27 %28
+         %27 = OpLoad %11 %arg_0
+         %28 = OpLoad %uint %arg_1
+         %29 = OpLoad %v4uint %arg_2
+               OpImageWrite %27 %28 %29
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %29
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %textureStore_a6e78f
+%vertex_main_inner = OpFunction %v4float None %30
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %textureStore_a6e78f
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %34 = OpLabel
-         %35 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %35
+         %35 = OpLabel
+         %36 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %36
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureStore_a6e78f
+         %39 = OpLabel
+         %40 = OpFunctionCall %void %textureStore_a6e78f
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureStore_a6e78f
+         %42 = OpLabel
+         %43 = OpFunctionCall %void %textureStore_a6e78f
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/a6e78f.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/a6e78f.wgsl.expected.wgsl
index 5c8eedc..182f6be 100644
--- a/test/tint/builtins/gen/var/textureStore/a6e78f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/a6e78f.wgsl.expected.wgsl
@@ -2,7 +2,7 @@
 
 fn textureStore_a6e78f() {
   var arg_1 = 1u;
-  var arg_2 = vec4<u32>();
+  var arg_2 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/a9426c.wgsl b/test/tint/builtins/gen/var/textureStore/a9426c.wgsl
index 0613670..4560e16 100644
--- a/test/tint/builtins/gen/var/textureStore/a9426c.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/a9426c.wgsl
@@ -24,9 +24,9 @@
 
 // fn textureStore(texture: texture_storage_2d_array<rgba32uint, write>, coords: vec2<u32>, array_index: u32, value: vec4<u32>)
 fn textureStore_a9426c() {
-  var arg_1 = vec2<u32>();
+  var arg_1 = vec2<u32>(1u);
   var arg_2 = 1u;
-  var arg_3 = vec4<u32>();
+  var arg_3 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/a9426c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/a9426c.wgsl.expected.dxc.hlsl
index d8b282f..7e1d847 100644
--- a/test/tint/builtins/gen/var/textureStore/a9426c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/a9426c.wgsl.expected.dxc.hlsl
@@ -1,9 +1,9 @@
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 void textureStore_a9426c() {
-  uint2 arg_1 = (0u).xx;
+  uint2 arg_1 = (1u).xx;
   uint arg_2 = 1u;
-  uint4 arg_3 = (0u).xxxx;
+  uint4 arg_3 = (1u).xxxx;
   arg_0[uint3(arg_1, arg_2)] = arg_3;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/a9426c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/a9426c.wgsl.expected.fxc.hlsl
index d8b282f..7e1d847 100644
--- a/test/tint/builtins/gen/var/textureStore/a9426c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/a9426c.wgsl.expected.fxc.hlsl
@@ -1,9 +1,9 @@
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 void textureStore_a9426c() {
-  uint2 arg_1 = (0u).xx;
+  uint2 arg_1 = (1u).xx;
   uint arg_2 = 1u;
-  uint4 arg_3 = (0u).xxxx;
+  uint4 arg_3 = (1u).xxxx;
   arg_0[uint3(arg_1, arg_2)] = arg_3;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/a9426c.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/a9426c.wgsl.expected.glsl
index 8289c23..61410c5 100644
--- a/test/tint/builtins/gen/var/textureStore/a9426c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/a9426c.wgsl.expected.glsl
@@ -2,9 +2,9 @@
 
 layout(rgba32ui) uniform highp writeonly uimage2DArray arg_0;
 void textureStore_a9426c() {
-  uvec2 arg_1 = uvec2(0u);
+  uvec2 arg_1 = uvec2(1u);
   uint arg_2 = 1u;
-  uvec4 arg_3 = uvec4(0u);
+  uvec4 arg_3 = uvec4(1u);
   imageStore(arg_0, ivec3(uvec3(arg_1, arg_2)), arg_3);
 }
 
@@ -26,9 +26,9 @@
 
 layout(rgba32ui) uniform highp writeonly uimage2DArray arg_0;
 void textureStore_a9426c() {
-  uvec2 arg_1 = uvec2(0u);
+  uvec2 arg_1 = uvec2(1u);
   uint arg_2 = 1u;
-  uvec4 arg_3 = uvec4(0u);
+  uvec4 arg_3 = uvec4(1u);
   imageStore(arg_0, ivec3(uvec3(arg_1, arg_2)), arg_3);
 }
 
@@ -44,9 +44,9 @@
 
 layout(rgba32ui) uniform highp writeonly uimage2DArray arg_0;
 void textureStore_a9426c() {
-  uvec2 arg_1 = uvec2(0u);
+  uvec2 arg_1 = uvec2(1u);
   uint arg_2 = 1u;
-  uvec4 arg_3 = uvec4(0u);
+  uvec4 arg_3 = uvec4(1u);
   imageStore(arg_0, ivec3(uvec3(arg_1, arg_2)), arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/a9426c.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/a9426c.wgsl.expected.msl
index d04e4a7..cd1bca4 100644
--- a/test/tint/builtins/gen/var/textureStore/a9426c.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/a9426c.wgsl.expected.msl
@@ -2,9 +2,9 @@
 
 using namespace metal;
 void textureStore_a9426c(texture2d_array<uint, access::write> tint_symbol_1) {
-  uint2 arg_1 = uint2(0u);
+  uint2 arg_1 = uint2(1u);
   uint arg_2 = 1u;
-  uint4 arg_3 = uint4(0u);
+  uint4 arg_3 = uint4(1u);
   tint_symbol_1.write(arg_3, uint2(arg_1), arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/a9426c.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/a9426c.wgsl.expected.spvasm
index 51c831c..e9d783b 100644
--- a/test/tint/builtins/gen/var/textureStore/a9426c.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/a9426c.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 52
+; Bound: 54
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -41,54 +41,56 @@
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
      %v2uint = OpTypeVector %uint 2
-         %18 = OpConstantNull %v2uint
-%_ptr_Function_v2uint = OpTypePointer Function %v2uint
      %uint_1 = OpConstant %uint 1
+         %19 = OpConstantComposite %v2uint %uint_1 %uint_1
+%_ptr_Function_v2uint = OpTypePointer Function %v2uint
+         %22 = OpConstantNull %v2uint
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %24 = OpConstantNull %uint
+         %25 = OpConstantNull %uint
      %v4uint = OpTypeVector %uint 4
-         %26 = OpConstantNull %v4uint
+         %27 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
+         %30 = OpConstantNull %v4uint
      %v3uint = OpTypeVector %uint 3
-         %38 = OpTypeFunction %v4float
+         %40 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_a9426c = OpFunction %void None %13
          %16 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2uint Function %18
-      %arg_2 = OpVariable %_ptr_Function_uint Function %24
-      %arg_3 = OpVariable %_ptr_Function_v4uint Function %26
-               OpStore %arg_1 %18
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %22
+      %arg_2 = OpVariable %_ptr_Function_uint Function %25
+      %arg_3 = OpVariable %_ptr_Function_v4uint Function %30
+               OpStore %arg_1 %19
                OpStore %arg_2 %uint_1
-               OpStore %arg_3 %26
-         %30 = OpLoad %11 %arg_0
-         %32 = OpLoad %v2uint %arg_1
-         %33 = OpCompositeExtract %uint %32 0
-         %34 = OpCompositeExtract %uint %32 1
-         %35 = OpLoad %uint %arg_2
-         %36 = OpCompositeConstruct %v3uint %33 %34 %35
-         %37 = OpLoad %v4uint %arg_3
-               OpImageWrite %30 %36 %37
+               OpStore %arg_3 %27
+         %32 = OpLoad %11 %arg_0
+         %34 = OpLoad %v2uint %arg_1
+         %35 = OpCompositeExtract %uint %34 0
+         %36 = OpCompositeExtract %uint %34 1
+         %37 = OpLoad %uint %arg_2
+         %38 = OpCompositeConstruct %v3uint %35 %36 %37
+         %39 = OpLoad %v4uint %arg_3
+               OpImageWrite %32 %38 %39
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %38
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureStore_a9426c
+%vertex_main_inner = OpFunction %v4float None %40
+         %42 = OpLabel
+         %43 = OpFunctionCall %void %textureStore_a9426c
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %43 = OpLabel
-         %44 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %44
+         %45 = OpLabel
+         %46 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %46
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %47 = OpLabel
-         %48 = OpFunctionCall %void %textureStore_a9426c
+         %49 = OpLabel
+         %50 = OpFunctionCall %void %textureStore_a9426c
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %50 = OpLabel
-         %51 = OpFunctionCall %void %textureStore_a9426c
+         %52 = OpLabel
+         %53 = OpFunctionCall %void %textureStore_a9426c
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/a9426c.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/a9426c.wgsl.expected.wgsl
index 32f329d..457d2be 100644
--- a/test/tint/builtins/gen/var/textureStore/a9426c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/a9426c.wgsl.expected.wgsl
@@ -1,9 +1,9 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba32uint, write>;
 
 fn textureStore_a9426c() {
-  var arg_1 = vec2<u32>();
+  var arg_1 = vec2<u32>(1u);
   var arg_2 = 1u;
-  var arg_3 = vec4<u32>();
+  var arg_3 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/ac67aa.wgsl b/test/tint/builtins/gen/var/textureStore/ac67aa.wgsl
index e92ea38..8fb06fb 100644
--- a/test/tint/builtins/gen/var/textureStore/ac67aa.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/ac67aa.wgsl
@@ -24,8 +24,8 @@
 
 // fn textureStore(texture: texture_storage_3d<rg32uint, write>, coords: vec3<i32>, value: vec4<u32>)
 fn textureStore_ac67aa() {
-  var arg_1 = vec3<i32>();
-  var arg_2 = vec4<u32>();
+  var arg_1 = vec3<i32>(1i);
+  var arg_2 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/ac67aa.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/ac67aa.wgsl.expected.dxc.hlsl
index b36799d..4ff2367 100644
--- a/test/tint/builtins/gen/var/textureStore/ac67aa.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/ac67aa.wgsl.expected.dxc.hlsl
@@ -1,8 +1,8 @@
 RWTexture3D<uint4> arg_0 : register(u0, space1);
 
 void textureStore_ac67aa() {
-  int3 arg_1 = (0).xxx;
-  uint4 arg_2 = (0u).xxxx;
+  int3 arg_1 = (1).xxx;
+  uint4 arg_2 = (1u).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/ac67aa.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/ac67aa.wgsl.expected.fxc.hlsl
index b36799d..4ff2367 100644
--- a/test/tint/builtins/gen/var/textureStore/ac67aa.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/ac67aa.wgsl.expected.fxc.hlsl
@@ -1,8 +1,8 @@
 RWTexture3D<uint4> arg_0 : register(u0, space1);
 
 void textureStore_ac67aa() {
-  int3 arg_1 = (0).xxx;
-  uint4 arg_2 = (0u).xxxx;
+  int3 arg_1 = (1).xxx;
+  uint4 arg_2 = (1u).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/ac67aa.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/ac67aa.wgsl.expected.msl
index bff5a97..04fa0ba 100644
--- a/test/tint/builtins/gen/var/textureStore/ac67aa.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/ac67aa.wgsl.expected.msl
@@ -2,8 +2,8 @@
 
 using namespace metal;
 void textureStore_ac67aa(texture3d<uint, access::write> tint_symbol_1) {
-  int3 arg_1 = int3(0);
-  uint4 arg_2 = uint4(0u);
+  int3 arg_1 = int3(1);
+  uint4 arg_2 = uint4(1u);
   tint_symbol_1.write(arg_2, uint3(arg_1));
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/ac67aa.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/ac67aa.wgsl.expected.spvasm
index df550ab..4fe2977 100644
--- a/test/tint/builtins/gen/var/textureStore/ac67aa.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/ac67aa.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 48
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
@@ -42,44 +42,48 @@
          %13 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
-         %19 = OpConstantNull %v3int
+      %int_1 = OpConstant %int 1
+         %20 = OpConstantComposite %v3int %int_1 %int_1 %int_1
 %_ptr_Function_v3int = OpTypePointer Function %v3int
+         %23 = OpConstantNull %v3int
      %v4uint = OpTypeVector %uint 4
-         %23 = OpConstantNull %v4uint
+     %uint_1 = OpConstant %uint 1
+         %26 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %30 = OpTypeFunction %v4float
+         %29 = OpConstantNull %v4uint
+         %34 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_ac67aa = OpFunction %void None %13
          %16 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v3int Function %19
-      %arg_2 = OpVariable %_ptr_Function_v4uint Function %23
-               OpStore %arg_1 %19
-               OpStore %arg_2 %23
-         %27 = OpLoad %11 %arg_0
-         %28 = OpLoad %v3int %arg_1
-         %29 = OpLoad %v4uint %arg_2
-               OpImageWrite %27 %28 %29
+      %arg_1 = OpVariable %_ptr_Function_v3int Function %23
+      %arg_2 = OpVariable %_ptr_Function_v4uint Function %29
+               OpStore %arg_1 %20
+               OpStore %arg_2 %26
+         %31 = OpLoad %11 %arg_0
+         %32 = OpLoad %v3int %arg_1
+         %33 = OpLoad %v4uint %arg_2
+               OpImageWrite %31 %32 %33
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %30
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_ac67aa
+%vertex_main_inner = OpFunction %v4float None %34
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureStore_ac67aa
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %36
+         %39 = OpLabel
+         %40 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %40
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_ac67aa
+         %43 = OpLabel
+         %44 = OpFunctionCall %void %textureStore_ac67aa
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_ac67aa
+         %46 = OpLabel
+         %47 = OpFunctionCall %void %textureStore_ac67aa
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/ac67aa.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/ac67aa.wgsl.expected.wgsl
index 2145e3a..e6d0f63 100644
--- a/test/tint/builtins/gen/var/textureStore/ac67aa.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/ac67aa.wgsl.expected.wgsl
@@ -1,8 +1,8 @@
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rg32uint, write>;
 
 fn textureStore_ac67aa() {
-  var arg_1 = vec3<i32>();
-  var arg_2 = vec4<u32>();
+  var arg_1 = vec3<i32>(1i);
+  var arg_2 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/aeb38a.wgsl b/test/tint/builtins/gen/var/textureStore/aeb38a.wgsl
index 30430d6..feace1b 100644
--- a/test/tint/builtins/gen/var/textureStore/aeb38a.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/aeb38a.wgsl
@@ -24,8 +24,8 @@
 
 // fn textureStore(texture: texture_storage_2d<rgba32uint, write>, coords: vec2<u32>, value: vec4<u32>)
 fn textureStore_aeb38a() {
-  var arg_1 = vec2<u32>();
-  var arg_2 = vec4<u32>();
+  var arg_1 = vec2<u32>(1u);
+  var arg_2 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/aeb38a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/aeb38a.wgsl.expected.dxc.hlsl
index 66013e5..63340ad 100644
--- a/test/tint/builtins/gen/var/textureStore/aeb38a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/aeb38a.wgsl.expected.dxc.hlsl
@@ -1,8 +1,8 @@
 RWTexture2D<uint4> arg_0 : register(u0, space1);
 
 void textureStore_aeb38a() {
-  uint2 arg_1 = (0u).xx;
-  uint4 arg_2 = (0u).xxxx;
+  uint2 arg_1 = (1u).xx;
+  uint4 arg_2 = (1u).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/aeb38a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/aeb38a.wgsl.expected.fxc.hlsl
index 66013e5..63340ad 100644
--- a/test/tint/builtins/gen/var/textureStore/aeb38a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/aeb38a.wgsl.expected.fxc.hlsl
@@ -1,8 +1,8 @@
 RWTexture2D<uint4> arg_0 : register(u0, space1);
 
 void textureStore_aeb38a() {
-  uint2 arg_1 = (0u).xx;
-  uint4 arg_2 = (0u).xxxx;
+  uint2 arg_1 = (1u).xx;
+  uint4 arg_2 = (1u).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/aeb38a.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/aeb38a.wgsl.expected.glsl
index adbba2a..dc43e68 100644
--- a/test/tint/builtins/gen/var/textureStore/aeb38a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/aeb38a.wgsl.expected.glsl
@@ -2,8 +2,8 @@
 
 layout(rgba32ui) uniform highp writeonly uimage2D arg_0;
 void textureStore_aeb38a() {
-  uvec2 arg_1 = uvec2(0u);
-  uvec4 arg_2 = uvec4(0u);
+  uvec2 arg_1 = uvec2(1u);
+  uvec4 arg_2 = uvec4(1u);
   imageStore(arg_0, ivec2(arg_1), arg_2);
 }
 
@@ -25,8 +25,8 @@
 
 layout(rgba32ui) uniform highp writeonly uimage2D arg_0;
 void textureStore_aeb38a() {
-  uvec2 arg_1 = uvec2(0u);
-  uvec4 arg_2 = uvec4(0u);
+  uvec2 arg_1 = uvec2(1u);
+  uvec4 arg_2 = uvec4(1u);
   imageStore(arg_0, ivec2(arg_1), arg_2);
 }
 
@@ -42,8 +42,8 @@
 
 layout(rgba32ui) uniform highp writeonly uimage2D arg_0;
 void textureStore_aeb38a() {
-  uvec2 arg_1 = uvec2(0u);
-  uvec4 arg_2 = uvec4(0u);
+  uvec2 arg_1 = uvec2(1u);
+  uvec4 arg_2 = uvec4(1u);
   imageStore(arg_0, ivec2(arg_1), arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/aeb38a.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/aeb38a.wgsl.expected.msl
index d8e7b55..bf39553 100644
--- a/test/tint/builtins/gen/var/textureStore/aeb38a.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/aeb38a.wgsl.expected.msl
@@ -2,8 +2,8 @@
 
 using namespace metal;
 void textureStore_aeb38a(texture2d<uint, access::write> tint_symbol_1) {
-  uint2 arg_1 = uint2(0u);
-  uint4 arg_2 = uint4(0u);
+  uint2 arg_1 = uint2(1u);
+  uint4 arg_2 = uint4(1u);
   tint_symbol_1.write(arg_2, uint2(arg_1));
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/aeb38a.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/aeb38a.wgsl.expected.spvasm
index 5e539c6..4a04967 100644
--- a/test/tint/builtins/gen/var/textureStore/aeb38a.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/aeb38a.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 43
+; Bound: 46
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -40,44 +40,47 @@
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
      %v2uint = OpTypeVector %uint 2
-         %18 = OpConstantNull %v2uint
+     %uint_1 = OpConstant %uint 1
+         %19 = OpConstantComposite %v2uint %uint_1 %uint_1
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
+         %22 = OpConstantNull %v2uint
      %v4uint = OpTypeVector %uint 4
-         %22 = OpConstantNull %v4uint
+         %24 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %29 = OpTypeFunction %v4float
+         %27 = OpConstantNull %v4uint
+         %32 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_aeb38a = OpFunction %void None %13
          %16 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2uint Function %18
-      %arg_2 = OpVariable %_ptr_Function_v4uint Function %22
-               OpStore %arg_1 %18
-               OpStore %arg_2 %22
-         %26 = OpLoad %11 %arg_0
-         %27 = OpLoad %v2uint %arg_1
-         %28 = OpLoad %v4uint %arg_2
-               OpImageWrite %26 %27 %28
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %22
+      %arg_2 = OpVariable %_ptr_Function_v4uint Function %27
+               OpStore %arg_1 %19
+               OpStore %arg_2 %24
+         %29 = OpLoad %11 %arg_0
+         %30 = OpLoad %v2uint %arg_1
+         %31 = OpLoad %v4uint %arg_2
+               OpImageWrite %29 %30 %31
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %29
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %textureStore_aeb38a
+%vertex_main_inner = OpFunction %v4float None %32
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %textureStore_aeb38a
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %34 = OpLabel
-         %35 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %35
+         %37 = OpLabel
+         %38 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %38
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureStore_aeb38a
+         %41 = OpLabel
+         %42 = OpFunctionCall %void %textureStore_aeb38a
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureStore_aeb38a
+         %44 = OpLabel
+         %45 = OpFunctionCall %void %textureStore_aeb38a
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/aeb38a.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/aeb38a.wgsl.expected.wgsl
index 588457c..cacf704 100644
--- a/test/tint/builtins/gen/var/textureStore/aeb38a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/aeb38a.wgsl.expected.wgsl
@@ -1,8 +1,8 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba32uint, write>;
 
 fn textureStore_aeb38a() {
-  var arg_1 = vec2<u32>();
-  var arg_2 = vec4<u32>();
+  var arg_1 = vec2<u32>(1u);
+  var arg_2 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/b42fd3.wgsl b/test/tint/builtins/gen/var/textureStore/b42fd3.wgsl
index 68a682b..c98d5f7 100644
--- a/test/tint/builtins/gen/var/textureStore/b42fd3.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/b42fd3.wgsl
@@ -24,9 +24,9 @@
 
 // fn textureStore(texture: texture_storage_2d_array<rgba8uint, write>, coords: vec2<u32>, array_index: u32, value: vec4<u32>)
 fn textureStore_b42fd3() {
-  var arg_1 = vec2<u32>();
+  var arg_1 = vec2<u32>(1u);
   var arg_2 = 1u;
-  var arg_3 = vec4<u32>();
+  var arg_3 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/b42fd3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/b42fd3.wgsl.expected.dxc.hlsl
index 9088ca1..a6cb47a 100644
--- a/test/tint/builtins/gen/var/textureStore/b42fd3.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/b42fd3.wgsl.expected.dxc.hlsl
@@ -1,9 +1,9 @@
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 void textureStore_b42fd3() {
-  uint2 arg_1 = (0u).xx;
+  uint2 arg_1 = (1u).xx;
   uint arg_2 = 1u;
-  uint4 arg_3 = (0u).xxxx;
+  uint4 arg_3 = (1u).xxxx;
   arg_0[uint3(arg_1, arg_2)] = arg_3;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/b42fd3.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/b42fd3.wgsl.expected.fxc.hlsl
index 9088ca1..a6cb47a 100644
--- a/test/tint/builtins/gen/var/textureStore/b42fd3.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/b42fd3.wgsl.expected.fxc.hlsl
@@ -1,9 +1,9 @@
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 void textureStore_b42fd3() {
-  uint2 arg_1 = (0u).xx;
+  uint2 arg_1 = (1u).xx;
   uint arg_2 = 1u;
-  uint4 arg_3 = (0u).xxxx;
+  uint4 arg_3 = (1u).xxxx;
   arg_0[uint3(arg_1, arg_2)] = arg_3;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/b42fd3.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/b42fd3.wgsl.expected.glsl
index 55586e2..3cf8367 100644
--- a/test/tint/builtins/gen/var/textureStore/b42fd3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/b42fd3.wgsl.expected.glsl
@@ -2,9 +2,9 @@
 
 layout(rgba8ui) uniform highp writeonly uimage2DArray arg_0;
 void textureStore_b42fd3() {
-  uvec2 arg_1 = uvec2(0u);
+  uvec2 arg_1 = uvec2(1u);
   uint arg_2 = 1u;
-  uvec4 arg_3 = uvec4(0u);
+  uvec4 arg_3 = uvec4(1u);
   imageStore(arg_0, ivec3(uvec3(arg_1, arg_2)), arg_3);
 }
 
@@ -26,9 +26,9 @@
 
 layout(rgba8ui) uniform highp writeonly uimage2DArray arg_0;
 void textureStore_b42fd3() {
-  uvec2 arg_1 = uvec2(0u);
+  uvec2 arg_1 = uvec2(1u);
   uint arg_2 = 1u;
-  uvec4 arg_3 = uvec4(0u);
+  uvec4 arg_3 = uvec4(1u);
   imageStore(arg_0, ivec3(uvec3(arg_1, arg_2)), arg_3);
 }
 
@@ -44,9 +44,9 @@
 
 layout(rgba8ui) uniform highp writeonly uimage2DArray arg_0;
 void textureStore_b42fd3() {
-  uvec2 arg_1 = uvec2(0u);
+  uvec2 arg_1 = uvec2(1u);
   uint arg_2 = 1u;
-  uvec4 arg_3 = uvec4(0u);
+  uvec4 arg_3 = uvec4(1u);
   imageStore(arg_0, ivec3(uvec3(arg_1, arg_2)), arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/b42fd3.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/b42fd3.wgsl.expected.msl
index 9896b03..1f5972d 100644
--- a/test/tint/builtins/gen/var/textureStore/b42fd3.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/b42fd3.wgsl.expected.msl
@@ -2,9 +2,9 @@
 
 using namespace metal;
 void textureStore_b42fd3(texture2d_array<uint, access::write> tint_symbol_1) {
-  uint2 arg_1 = uint2(0u);
+  uint2 arg_1 = uint2(1u);
   uint arg_2 = 1u;
-  uint4 arg_3 = uint4(0u);
+  uint4 arg_3 = uint4(1u);
   tint_symbol_1.write(arg_3, uint2(arg_1), arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/b42fd3.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/b42fd3.wgsl.expected.spvasm
index 9e42c7c..09ccb9d 100644
--- a/test/tint/builtins/gen/var/textureStore/b42fd3.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/b42fd3.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 52
+; Bound: 54
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -41,54 +41,56 @@
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
      %v2uint = OpTypeVector %uint 2
-         %18 = OpConstantNull %v2uint
-%_ptr_Function_v2uint = OpTypePointer Function %v2uint
      %uint_1 = OpConstant %uint 1
+         %19 = OpConstantComposite %v2uint %uint_1 %uint_1
+%_ptr_Function_v2uint = OpTypePointer Function %v2uint
+         %22 = OpConstantNull %v2uint
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %24 = OpConstantNull %uint
+         %25 = OpConstantNull %uint
      %v4uint = OpTypeVector %uint 4
-         %26 = OpConstantNull %v4uint
+         %27 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
+         %30 = OpConstantNull %v4uint
      %v3uint = OpTypeVector %uint 3
-         %38 = OpTypeFunction %v4float
+         %40 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_b42fd3 = OpFunction %void None %13
          %16 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2uint Function %18
-      %arg_2 = OpVariable %_ptr_Function_uint Function %24
-      %arg_3 = OpVariable %_ptr_Function_v4uint Function %26
-               OpStore %arg_1 %18
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %22
+      %arg_2 = OpVariable %_ptr_Function_uint Function %25
+      %arg_3 = OpVariable %_ptr_Function_v4uint Function %30
+               OpStore %arg_1 %19
                OpStore %arg_2 %uint_1
-               OpStore %arg_3 %26
-         %30 = OpLoad %11 %arg_0
-         %32 = OpLoad %v2uint %arg_1
-         %33 = OpCompositeExtract %uint %32 0
-         %34 = OpCompositeExtract %uint %32 1
-         %35 = OpLoad %uint %arg_2
-         %36 = OpCompositeConstruct %v3uint %33 %34 %35
-         %37 = OpLoad %v4uint %arg_3
-               OpImageWrite %30 %36 %37
+               OpStore %arg_3 %27
+         %32 = OpLoad %11 %arg_0
+         %34 = OpLoad %v2uint %arg_1
+         %35 = OpCompositeExtract %uint %34 0
+         %36 = OpCompositeExtract %uint %34 1
+         %37 = OpLoad %uint %arg_2
+         %38 = OpCompositeConstruct %v3uint %35 %36 %37
+         %39 = OpLoad %v4uint %arg_3
+               OpImageWrite %32 %38 %39
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %38
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureStore_b42fd3
+%vertex_main_inner = OpFunction %v4float None %40
+         %42 = OpLabel
+         %43 = OpFunctionCall %void %textureStore_b42fd3
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %43 = OpLabel
-         %44 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %44
+         %45 = OpLabel
+         %46 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %46
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %47 = OpLabel
-         %48 = OpFunctionCall %void %textureStore_b42fd3
+         %49 = OpLabel
+         %50 = OpFunctionCall %void %textureStore_b42fd3
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %50 = OpLabel
-         %51 = OpFunctionCall %void %textureStore_b42fd3
+         %52 = OpLabel
+         %53 = OpFunctionCall %void %textureStore_b42fd3
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/b42fd3.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/b42fd3.wgsl.expected.wgsl
index d150b77..3619cb1 100644
--- a/test/tint/builtins/gen/var/textureStore/b42fd3.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/b42fd3.wgsl.expected.wgsl
@@ -1,9 +1,9 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba8uint, write>;
 
 fn textureStore_b42fd3() {
-  var arg_1 = vec2<u32>();
+  var arg_1 = vec2<u32>(1u);
   var arg_2 = 1u;
-  var arg_3 = vec4<u32>();
+  var arg_3 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/b706b1.wgsl b/test/tint/builtins/gen/var/textureStore/b706b1.wgsl
index c0eedb2..b0fa1ca 100644
--- a/test/tint/builtins/gen/var/textureStore/b706b1.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/b706b1.wgsl
@@ -24,8 +24,8 @@
 
 // fn textureStore(texture: texture_storage_3d<rgba8sint, write>, coords: vec3<i32>, value: vec4<i32>)
 fn textureStore_b706b1() {
-  var arg_1 = vec3<i32>();
-  var arg_2 = vec4<i32>();
+  var arg_1 = vec3<i32>(1i);
+  var arg_2 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/b706b1.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/b706b1.wgsl.expected.dxc.hlsl
index 4e96114..bc4e46f 100644
--- a/test/tint/builtins/gen/var/textureStore/b706b1.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/b706b1.wgsl.expected.dxc.hlsl
@@ -1,8 +1,8 @@
 RWTexture3D<int4> arg_0 : register(u0, space1);
 
 void textureStore_b706b1() {
-  int3 arg_1 = (0).xxx;
-  int4 arg_2 = (0).xxxx;
+  int3 arg_1 = (1).xxx;
+  int4 arg_2 = (1).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/b706b1.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/b706b1.wgsl.expected.fxc.hlsl
index 4e96114..bc4e46f 100644
--- a/test/tint/builtins/gen/var/textureStore/b706b1.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/b706b1.wgsl.expected.fxc.hlsl
@@ -1,8 +1,8 @@
 RWTexture3D<int4> arg_0 : register(u0, space1);
 
 void textureStore_b706b1() {
-  int3 arg_1 = (0).xxx;
-  int4 arg_2 = (0).xxxx;
+  int3 arg_1 = (1).xxx;
+  int4 arg_2 = (1).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/b706b1.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/b706b1.wgsl.expected.glsl
index 72e03e7..f8c512a 100644
--- a/test/tint/builtins/gen/var/textureStore/b706b1.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/b706b1.wgsl.expected.glsl
@@ -2,8 +2,8 @@
 
 layout(rgba8i) uniform highp writeonly iimage3D arg_0;
 void textureStore_b706b1() {
-  ivec3 arg_1 = ivec3(0);
-  ivec4 arg_2 = ivec4(0);
+  ivec3 arg_1 = ivec3(1);
+  ivec4 arg_2 = ivec4(1);
   imageStore(arg_0, arg_1, arg_2);
 }
 
@@ -25,8 +25,8 @@
 
 layout(rgba8i) uniform highp writeonly iimage3D arg_0;
 void textureStore_b706b1() {
-  ivec3 arg_1 = ivec3(0);
-  ivec4 arg_2 = ivec4(0);
+  ivec3 arg_1 = ivec3(1);
+  ivec4 arg_2 = ivec4(1);
   imageStore(arg_0, arg_1, arg_2);
 }
 
@@ -42,8 +42,8 @@
 
 layout(rgba8i) uniform highp writeonly iimage3D arg_0;
 void textureStore_b706b1() {
-  ivec3 arg_1 = ivec3(0);
-  ivec4 arg_2 = ivec4(0);
+  ivec3 arg_1 = ivec3(1);
+  ivec4 arg_2 = ivec4(1);
   imageStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/b706b1.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/b706b1.wgsl.expected.msl
index 635cb6c..fed5f14 100644
--- a/test/tint/builtins/gen/var/textureStore/b706b1.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/b706b1.wgsl.expected.msl
@@ -2,8 +2,8 @@
 
 using namespace metal;
 void textureStore_b706b1(texture3d<int, access::write> tint_symbol_1) {
-  int3 arg_1 = int3(0);
-  int4 arg_2 = int4(0);
+  int3 arg_1 = int3(1);
+  int4 arg_2 = int4(1);
   tint_symbol_1.write(arg_2, uint3(arg_1));
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/b706b1.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/b706b1.wgsl.expected.spvasm
index 32c2bcb..363567e 100644
--- a/test/tint/builtins/gen/var/textureStore/b706b1.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/b706b1.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 43
+; Bound: 46
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -40,44 +40,47 @@
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
       %v3int = OpTypeVector %int 3
-         %18 = OpConstantNull %v3int
+      %int_1 = OpConstant %int 1
+         %19 = OpConstantComposite %v3int %int_1 %int_1 %int_1
 %_ptr_Function_v3int = OpTypePointer Function %v3int
+         %22 = OpConstantNull %v3int
       %v4int = OpTypeVector %int 4
-         %22 = OpConstantNull %v4int
+         %24 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %29 = OpTypeFunction %v4float
+         %27 = OpConstantNull %v4int
+         %32 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_b706b1 = OpFunction %void None %13
          %16 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v3int Function %18
-      %arg_2 = OpVariable %_ptr_Function_v4int Function %22
-               OpStore %arg_1 %18
-               OpStore %arg_2 %22
-         %26 = OpLoad %11 %arg_0
-         %27 = OpLoad %v3int %arg_1
-         %28 = OpLoad %v4int %arg_2
-               OpImageWrite %26 %27 %28
+      %arg_1 = OpVariable %_ptr_Function_v3int Function %22
+      %arg_2 = OpVariable %_ptr_Function_v4int Function %27
+               OpStore %arg_1 %19
+               OpStore %arg_2 %24
+         %29 = OpLoad %11 %arg_0
+         %30 = OpLoad %v3int %arg_1
+         %31 = OpLoad %v4int %arg_2
+               OpImageWrite %29 %30 %31
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %29
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %textureStore_b706b1
+%vertex_main_inner = OpFunction %v4float None %32
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %textureStore_b706b1
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %34 = OpLabel
-         %35 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %35
+         %37 = OpLabel
+         %38 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %38
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureStore_b706b1
+         %41 = OpLabel
+         %42 = OpFunctionCall %void %textureStore_b706b1
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureStore_b706b1
+         %44 = OpLabel
+         %45 = OpFunctionCall %void %textureStore_b706b1
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/b706b1.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/b706b1.wgsl.expected.wgsl
index 42775a4..97673b3 100644
--- a/test/tint/builtins/gen/var/textureStore/b706b1.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/b706b1.wgsl.expected.wgsl
@@ -1,8 +1,8 @@
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rgba8sint, write>;
 
 fn textureStore_b706b1() {
-  var arg_1 = vec3<i32>();
-  var arg_2 = vec4<i32>();
+  var arg_1 = vec3<i32>(1i);
+  var arg_2 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/b70ded.wgsl b/test/tint/builtins/gen/var/textureStore/b70ded.wgsl
index ece1d5f..50126ba 100644
--- a/test/tint/builtins/gen/var/textureStore/b70ded.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/b70ded.wgsl
@@ -25,7 +25,7 @@
 // fn textureStore(texture: texture_storage_1d<rgba16uint, write>, coords: u32, value: vec4<u32>)
 fn textureStore_b70ded() {
   var arg_1 = 1u;
-  var arg_2 = vec4<u32>();
+  var arg_2 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/b70ded.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/b70ded.wgsl.expected.dxc.hlsl
index d754d63..522ce4e 100644
--- a/test/tint/builtins/gen/var/textureStore/b70ded.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/b70ded.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 
 void textureStore_b70ded() {
   uint arg_1 = 1u;
-  uint4 arg_2 = (0u).xxxx;
+  uint4 arg_2 = (1u).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/b70ded.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/b70ded.wgsl.expected.fxc.hlsl
index d754d63..522ce4e 100644
--- a/test/tint/builtins/gen/var/textureStore/b70ded.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/b70ded.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 
 void textureStore_b70ded() {
   uint arg_1 = 1u;
-  uint4 arg_2 = (0u).xxxx;
+  uint4 arg_2 = (1u).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/b70ded.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/b70ded.wgsl.expected.msl
index 3a431a5..6256f77 100644
--- a/test/tint/builtins/gen/var/textureStore/b70ded.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/b70ded.wgsl.expected.msl
@@ -3,7 +3,7 @@
 using namespace metal;
 void textureStore_b70ded(texture1d<uint, access::write> tint_symbol_1) {
   uint arg_1 = 1u;
-  uint4 arg_2 = uint4(0u);
+  uint4 arg_2 = uint4(1u);
   tint_symbol_1.write(arg_2, uint(arg_1));
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/b70ded.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/b70ded.wgsl.expected.spvasm
index a62ffee..5beaa6b 100644
--- a/test/tint/builtins/gen/var/textureStore/b70ded.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/b70ded.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 43
+; Bound: 44
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
@@ -44,41 +44,42 @@
 %_ptr_Function_uint = OpTypePointer Function %uint
          %20 = OpConstantNull %uint
      %v4uint = OpTypeVector %uint 4
-         %22 = OpConstantNull %v4uint
+         %22 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %29 = OpTypeFunction %v4float
+         %25 = OpConstantNull %v4uint
+         %30 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_b70ded = OpFunction %void None %13
          %16 = OpLabel
       %arg_1 = OpVariable %_ptr_Function_uint Function %20
-      %arg_2 = OpVariable %_ptr_Function_v4uint Function %22
+      %arg_2 = OpVariable %_ptr_Function_v4uint Function %25
                OpStore %arg_1 %uint_1
                OpStore %arg_2 %22
-         %26 = OpLoad %11 %arg_0
-         %27 = OpLoad %uint %arg_1
-         %28 = OpLoad %v4uint %arg_2
-               OpImageWrite %26 %27 %28
+         %27 = OpLoad %11 %arg_0
+         %28 = OpLoad %uint %arg_1
+         %29 = OpLoad %v4uint %arg_2
+               OpImageWrite %27 %28 %29
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %29
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %textureStore_b70ded
+%vertex_main_inner = OpFunction %v4float None %30
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %textureStore_b70ded
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %34 = OpLabel
-         %35 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %35
+         %35 = OpLabel
+         %36 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %36
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureStore_b70ded
+         %39 = OpLabel
+         %40 = OpFunctionCall %void %textureStore_b70ded
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureStore_b70ded
+         %42 = OpLabel
+         %43 = OpFunctionCall %void %textureStore_b70ded
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/b70ded.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/b70ded.wgsl.expected.wgsl
index 890424d..165633c 100644
--- a/test/tint/builtins/gen/var/textureStore/b70ded.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/b70ded.wgsl.expected.wgsl
@@ -2,7 +2,7 @@
 
 fn textureStore_b70ded() {
   var arg_1 = 1u;
-  var arg_2 = vec4<u32>();
+  var arg_2 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/b76ff3.wgsl b/test/tint/builtins/gen/var/textureStore/b76ff3.wgsl
index 7384312..3e35e34 100644
--- a/test/tint/builtins/gen/var/textureStore/b76ff3.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/b76ff3.wgsl
@@ -24,8 +24,8 @@
 
 // fn textureStore(texture: texture_storage_2d<rgba16sint, write>, coords: vec2<u32>, value: vec4<i32>)
 fn textureStore_b76ff3() {
-  var arg_1 = vec2<u32>();
-  var arg_2 = vec4<i32>();
+  var arg_1 = vec2<u32>(1u);
+  var arg_2 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/b76ff3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/b76ff3.wgsl.expected.dxc.hlsl
index 8314e19..520d0cf 100644
--- a/test/tint/builtins/gen/var/textureStore/b76ff3.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/b76ff3.wgsl.expected.dxc.hlsl
@@ -1,8 +1,8 @@
 RWTexture2D<int4> arg_0 : register(u0, space1);
 
 void textureStore_b76ff3() {
-  uint2 arg_1 = (0u).xx;
-  int4 arg_2 = (0).xxxx;
+  uint2 arg_1 = (1u).xx;
+  int4 arg_2 = (1).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/b76ff3.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/b76ff3.wgsl.expected.fxc.hlsl
index 8314e19..520d0cf 100644
--- a/test/tint/builtins/gen/var/textureStore/b76ff3.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/b76ff3.wgsl.expected.fxc.hlsl
@@ -1,8 +1,8 @@
 RWTexture2D<int4> arg_0 : register(u0, space1);
 
 void textureStore_b76ff3() {
-  uint2 arg_1 = (0u).xx;
-  int4 arg_2 = (0).xxxx;
+  uint2 arg_1 = (1u).xx;
+  int4 arg_2 = (1).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/b76ff3.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/b76ff3.wgsl.expected.glsl
index 70f8711..2357f24 100644
--- a/test/tint/builtins/gen/var/textureStore/b76ff3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/b76ff3.wgsl.expected.glsl
@@ -2,8 +2,8 @@
 
 layout(rgba16i) uniform highp writeonly iimage2D arg_0;
 void textureStore_b76ff3() {
-  uvec2 arg_1 = uvec2(0u);
-  ivec4 arg_2 = ivec4(0);
+  uvec2 arg_1 = uvec2(1u);
+  ivec4 arg_2 = ivec4(1);
   imageStore(arg_0, ivec2(arg_1), arg_2);
 }
 
@@ -25,8 +25,8 @@
 
 layout(rgba16i) uniform highp writeonly iimage2D arg_0;
 void textureStore_b76ff3() {
-  uvec2 arg_1 = uvec2(0u);
-  ivec4 arg_2 = ivec4(0);
+  uvec2 arg_1 = uvec2(1u);
+  ivec4 arg_2 = ivec4(1);
   imageStore(arg_0, ivec2(arg_1), arg_2);
 }
 
@@ -42,8 +42,8 @@
 
 layout(rgba16i) uniform highp writeonly iimage2D arg_0;
 void textureStore_b76ff3() {
-  uvec2 arg_1 = uvec2(0u);
-  ivec4 arg_2 = ivec4(0);
+  uvec2 arg_1 = uvec2(1u);
+  ivec4 arg_2 = ivec4(1);
   imageStore(arg_0, ivec2(arg_1), arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/b76ff3.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/b76ff3.wgsl.expected.msl
index 27f65cd..c60afc3 100644
--- a/test/tint/builtins/gen/var/textureStore/b76ff3.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/b76ff3.wgsl.expected.msl
@@ -2,8 +2,8 @@
 
 using namespace metal;
 void textureStore_b76ff3(texture2d<int, access::write> tint_symbol_1) {
-  uint2 arg_1 = uint2(0u);
-  int4 arg_2 = int4(0);
+  uint2 arg_1 = uint2(1u);
+  int4 arg_2 = int4(1);
   tint_symbol_1.write(arg_2, uint2(arg_1));
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/b76ff3.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/b76ff3.wgsl.expected.spvasm
index 0c8dff4..600e596 100644
--- a/test/tint/builtins/gen/var/textureStore/b76ff3.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/b76ff3.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 48
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -41,44 +41,48 @@
          %13 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
-         %19 = OpConstantNull %v2uint
+     %uint_1 = OpConstant %uint 1
+         %20 = OpConstantComposite %v2uint %uint_1 %uint_1
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
+         %23 = OpConstantNull %v2uint
       %v4int = OpTypeVector %int 4
-         %23 = OpConstantNull %v4int
+      %int_1 = OpConstant %int 1
+         %26 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %30 = OpTypeFunction %v4float
+         %29 = OpConstantNull %v4int
+         %34 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_b76ff3 = OpFunction %void None %13
          %16 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2uint Function %19
-      %arg_2 = OpVariable %_ptr_Function_v4int Function %23
-               OpStore %arg_1 %19
-               OpStore %arg_2 %23
-         %27 = OpLoad %11 %arg_0
-         %28 = OpLoad %v2uint %arg_1
-         %29 = OpLoad %v4int %arg_2
-               OpImageWrite %27 %28 %29
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %23
+      %arg_2 = OpVariable %_ptr_Function_v4int Function %29
+               OpStore %arg_1 %20
+               OpStore %arg_2 %26
+         %31 = OpLoad %11 %arg_0
+         %32 = OpLoad %v2uint %arg_1
+         %33 = OpLoad %v4int %arg_2
+               OpImageWrite %31 %32 %33
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %30
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_b76ff3
+%vertex_main_inner = OpFunction %v4float None %34
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureStore_b76ff3
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %36
+         %39 = OpLabel
+         %40 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %40
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_b76ff3
+         %43 = OpLabel
+         %44 = OpFunctionCall %void %textureStore_b76ff3
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_b76ff3
+         %46 = OpLabel
+         %47 = OpFunctionCall %void %textureStore_b76ff3
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/b76ff3.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/b76ff3.wgsl.expected.wgsl
index 31d8eb6..590b81a 100644
--- a/test/tint/builtins/gen/var/textureStore/b76ff3.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/b76ff3.wgsl.expected.wgsl
@@ -1,8 +1,8 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba16sint, write>;
 
 fn textureStore_b76ff3() {
-  var arg_1 = vec2<u32>();
-  var arg_2 = vec4<i32>();
+  var arg_1 = vec2<u32>(1u);
+  var arg_2 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/b77161.wgsl b/test/tint/builtins/gen/var/textureStore/b77161.wgsl
index 521cf71..35f54ba 100644
--- a/test/tint/builtins/gen/var/textureStore/b77161.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/b77161.wgsl
@@ -25,7 +25,7 @@
 // fn textureStore(texture: texture_storage_1d<rg32uint, write>, coords: u32, value: vec4<u32>)
 fn textureStore_b77161() {
   var arg_1 = 1u;
-  var arg_2 = vec4<u32>();
+  var arg_2 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/b77161.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/b77161.wgsl.expected.dxc.hlsl
index fbf5804..db1ca7e 100644
--- a/test/tint/builtins/gen/var/textureStore/b77161.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/b77161.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 
 void textureStore_b77161() {
   uint arg_1 = 1u;
-  uint4 arg_2 = (0u).xxxx;
+  uint4 arg_2 = (1u).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/b77161.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/b77161.wgsl.expected.fxc.hlsl
index fbf5804..db1ca7e 100644
--- a/test/tint/builtins/gen/var/textureStore/b77161.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/b77161.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 
 void textureStore_b77161() {
   uint arg_1 = 1u;
-  uint4 arg_2 = (0u).xxxx;
+  uint4 arg_2 = (1u).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/b77161.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/b77161.wgsl.expected.msl
index dbc84ef..2b93c27 100644
--- a/test/tint/builtins/gen/var/textureStore/b77161.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/b77161.wgsl.expected.msl
@@ -3,7 +3,7 @@
 using namespace metal;
 void textureStore_b77161(texture1d<uint, access::write> tint_symbol_1) {
   uint arg_1 = 1u;
-  uint4 arg_2 = uint4(0u);
+  uint4 arg_2 = uint4(1u);
   tint_symbol_1.write(arg_2, uint(arg_1));
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/b77161.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/b77161.wgsl.expected.spvasm
index 877baaa..743b5c7 100644
--- a/test/tint/builtins/gen/var/textureStore/b77161.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/b77161.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 43
+; Bound: 44
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
@@ -45,41 +45,42 @@
 %_ptr_Function_uint = OpTypePointer Function %uint
          %20 = OpConstantNull %uint
      %v4uint = OpTypeVector %uint 4
-         %22 = OpConstantNull %v4uint
+         %22 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %29 = OpTypeFunction %v4float
+         %25 = OpConstantNull %v4uint
+         %30 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_b77161 = OpFunction %void None %13
          %16 = OpLabel
       %arg_1 = OpVariable %_ptr_Function_uint Function %20
-      %arg_2 = OpVariable %_ptr_Function_v4uint Function %22
+      %arg_2 = OpVariable %_ptr_Function_v4uint Function %25
                OpStore %arg_1 %uint_1
                OpStore %arg_2 %22
-         %26 = OpLoad %11 %arg_0
-         %27 = OpLoad %uint %arg_1
-         %28 = OpLoad %v4uint %arg_2
-               OpImageWrite %26 %27 %28
+         %27 = OpLoad %11 %arg_0
+         %28 = OpLoad %uint %arg_1
+         %29 = OpLoad %v4uint %arg_2
+               OpImageWrite %27 %28 %29
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %29
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %textureStore_b77161
+%vertex_main_inner = OpFunction %v4float None %30
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %textureStore_b77161
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %34 = OpLabel
-         %35 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %35
+         %35 = OpLabel
+         %36 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %36
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureStore_b77161
+         %39 = OpLabel
+         %40 = OpFunctionCall %void %textureStore_b77161
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureStore_b77161
+         %42 = OpLabel
+         %43 = OpFunctionCall %void %textureStore_b77161
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/b77161.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/b77161.wgsl.expected.wgsl
index 77b02dc..1d7c24f 100644
--- a/test/tint/builtins/gen/var/textureStore/b77161.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/b77161.wgsl.expected.wgsl
@@ -2,7 +2,7 @@
 
 fn textureStore_b77161() {
   var arg_1 = 1u;
-  var arg_2 = vec4<u32>();
+  var arg_2 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/bbcb7f.wgsl b/test/tint/builtins/gen/var/textureStore/bbcb7f.wgsl
index a15240c..90ca4db 100644
--- a/test/tint/builtins/gen/var/textureStore/bbcb7f.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/bbcb7f.wgsl
@@ -24,8 +24,8 @@
 
 // fn textureStore(texture: texture_storage_2d<rgba8sint, write>, coords: vec2<i32>, value: vec4<i32>)
 fn textureStore_bbcb7f() {
-  var arg_1 = vec2<i32>();
-  var arg_2 = vec4<i32>();
+  var arg_1 = vec2<i32>(1i);
+  var arg_2 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/bbcb7f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/bbcb7f.wgsl.expected.dxc.hlsl
index 366a2e7..edf7f91 100644
--- a/test/tint/builtins/gen/var/textureStore/bbcb7f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/bbcb7f.wgsl.expected.dxc.hlsl
@@ -1,8 +1,8 @@
 RWTexture2D<int4> arg_0 : register(u0, space1);
 
 void textureStore_bbcb7f() {
-  int2 arg_1 = (0).xx;
-  int4 arg_2 = (0).xxxx;
+  int2 arg_1 = (1).xx;
+  int4 arg_2 = (1).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/bbcb7f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/bbcb7f.wgsl.expected.fxc.hlsl
index 366a2e7..edf7f91 100644
--- a/test/tint/builtins/gen/var/textureStore/bbcb7f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/bbcb7f.wgsl.expected.fxc.hlsl
@@ -1,8 +1,8 @@
 RWTexture2D<int4> arg_0 : register(u0, space1);
 
 void textureStore_bbcb7f() {
-  int2 arg_1 = (0).xx;
-  int4 arg_2 = (0).xxxx;
+  int2 arg_1 = (1).xx;
+  int4 arg_2 = (1).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/bbcb7f.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/bbcb7f.wgsl.expected.glsl
index 2b486d8..73c6c3c 100644
--- a/test/tint/builtins/gen/var/textureStore/bbcb7f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/bbcb7f.wgsl.expected.glsl
@@ -2,8 +2,8 @@
 
 layout(rgba8i) uniform highp writeonly iimage2D arg_0;
 void textureStore_bbcb7f() {
-  ivec2 arg_1 = ivec2(0);
-  ivec4 arg_2 = ivec4(0);
+  ivec2 arg_1 = ivec2(1);
+  ivec4 arg_2 = ivec4(1);
   imageStore(arg_0, arg_1, arg_2);
 }
 
@@ -25,8 +25,8 @@
 
 layout(rgba8i) uniform highp writeonly iimage2D arg_0;
 void textureStore_bbcb7f() {
-  ivec2 arg_1 = ivec2(0);
-  ivec4 arg_2 = ivec4(0);
+  ivec2 arg_1 = ivec2(1);
+  ivec4 arg_2 = ivec4(1);
   imageStore(arg_0, arg_1, arg_2);
 }
 
@@ -42,8 +42,8 @@
 
 layout(rgba8i) uniform highp writeonly iimage2D arg_0;
 void textureStore_bbcb7f() {
-  ivec2 arg_1 = ivec2(0);
-  ivec4 arg_2 = ivec4(0);
+  ivec2 arg_1 = ivec2(1);
+  ivec4 arg_2 = ivec4(1);
   imageStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/bbcb7f.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/bbcb7f.wgsl.expected.msl
index 0a94285..16f0357 100644
--- a/test/tint/builtins/gen/var/textureStore/bbcb7f.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/bbcb7f.wgsl.expected.msl
@@ -2,8 +2,8 @@
 
 using namespace metal;
 void textureStore_bbcb7f(texture2d<int, access::write> tint_symbol_1) {
-  int2 arg_1 = int2(0);
-  int4 arg_2 = int4(0);
+  int2 arg_1 = int2(1);
+  int4 arg_2 = int4(1);
   tint_symbol_1.write(arg_2, uint2(arg_1));
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/bbcb7f.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/bbcb7f.wgsl.expected.spvasm
index 59e7b74..f3aaa71 100644
--- a/test/tint/builtins/gen/var/textureStore/bbcb7f.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/bbcb7f.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 43
+; Bound: 46
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -40,44 +40,47 @@
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
       %v2int = OpTypeVector %int 2
-         %18 = OpConstantNull %v2int
+      %int_1 = OpConstant %int 1
+         %19 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v2int = OpTypePointer Function %v2int
+         %22 = OpConstantNull %v2int
       %v4int = OpTypeVector %int 4
-         %22 = OpConstantNull %v4int
+         %24 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %29 = OpTypeFunction %v4float
+         %27 = OpConstantNull %v4int
+         %32 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_bbcb7f = OpFunction %void None %13
          %16 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2int Function %18
-      %arg_2 = OpVariable %_ptr_Function_v4int Function %22
-               OpStore %arg_1 %18
-               OpStore %arg_2 %22
-         %26 = OpLoad %11 %arg_0
-         %27 = OpLoad %v2int %arg_1
-         %28 = OpLoad %v4int %arg_2
-               OpImageWrite %26 %27 %28
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %22
+      %arg_2 = OpVariable %_ptr_Function_v4int Function %27
+               OpStore %arg_1 %19
+               OpStore %arg_2 %24
+         %29 = OpLoad %11 %arg_0
+         %30 = OpLoad %v2int %arg_1
+         %31 = OpLoad %v4int %arg_2
+               OpImageWrite %29 %30 %31
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %29
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %textureStore_bbcb7f
+%vertex_main_inner = OpFunction %v4float None %32
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %textureStore_bbcb7f
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %34 = OpLabel
-         %35 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %35
+         %37 = OpLabel
+         %38 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %38
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureStore_bbcb7f
+         %41 = OpLabel
+         %42 = OpFunctionCall %void %textureStore_bbcb7f
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureStore_bbcb7f
+         %44 = OpLabel
+         %45 = OpFunctionCall %void %textureStore_bbcb7f
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/bbcb7f.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/bbcb7f.wgsl.expected.wgsl
index 1bf17d9..1fa51e6 100644
--- a/test/tint/builtins/gen/var/textureStore/bbcb7f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/bbcb7f.wgsl.expected.wgsl
@@ -1,8 +1,8 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba8sint, write>;
 
 fn textureStore_bbcb7f() {
-  var arg_1 = vec2<i32>();
-  var arg_2 = vec4<i32>();
+  var arg_1 = vec2<i32>(1i);
+  var arg_2 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/be6e30.wgsl b/test/tint/builtins/gen/var/textureStore/be6e30.wgsl
index 340cf9e..abb928b 100644
--- a/test/tint/builtins/gen/var/textureStore/be6e30.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/be6e30.wgsl
@@ -24,8 +24,8 @@
 
 // fn textureStore(texture: texture_storage_2d<rgba16float, write>, coords: vec2<i32>, value: vec4<f32>)
 fn textureStore_be6e30() {
-  var arg_1 = vec2<i32>();
-  var arg_2 = vec4<f32>();
+  var arg_1 = vec2<i32>(1i);
+  var arg_2 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/be6e30.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/be6e30.wgsl.expected.dxc.hlsl
index 67ff8b2..743fdfd 100644
--- a/test/tint/builtins/gen/var/textureStore/be6e30.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/be6e30.wgsl.expected.dxc.hlsl
@@ -1,8 +1,8 @@
 RWTexture2D<float4> arg_0 : register(u0, space1);
 
 void textureStore_be6e30() {
-  int2 arg_1 = (0).xx;
-  float4 arg_2 = (0.0f).xxxx;
+  int2 arg_1 = (1).xx;
+  float4 arg_2 = (1.0f).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/be6e30.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/be6e30.wgsl.expected.fxc.hlsl
index 67ff8b2..743fdfd 100644
--- a/test/tint/builtins/gen/var/textureStore/be6e30.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/be6e30.wgsl.expected.fxc.hlsl
@@ -1,8 +1,8 @@
 RWTexture2D<float4> arg_0 : register(u0, space1);
 
 void textureStore_be6e30() {
-  int2 arg_1 = (0).xx;
-  float4 arg_2 = (0.0f).xxxx;
+  int2 arg_1 = (1).xx;
+  float4 arg_2 = (1.0f).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/be6e30.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/be6e30.wgsl.expected.glsl
index 95fa82c..17fe18e 100644
--- a/test/tint/builtins/gen/var/textureStore/be6e30.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/be6e30.wgsl.expected.glsl
@@ -2,8 +2,8 @@
 
 layout(rgba16f) uniform highp writeonly image2D arg_0;
 void textureStore_be6e30() {
-  ivec2 arg_1 = ivec2(0);
-  vec4 arg_2 = vec4(0.0f);
+  ivec2 arg_1 = ivec2(1);
+  vec4 arg_2 = vec4(1.0f);
   imageStore(arg_0, arg_1, arg_2);
 }
 
@@ -25,8 +25,8 @@
 
 layout(rgba16f) uniform highp writeonly image2D arg_0;
 void textureStore_be6e30() {
-  ivec2 arg_1 = ivec2(0);
-  vec4 arg_2 = vec4(0.0f);
+  ivec2 arg_1 = ivec2(1);
+  vec4 arg_2 = vec4(1.0f);
   imageStore(arg_0, arg_1, arg_2);
 }
 
@@ -42,8 +42,8 @@
 
 layout(rgba16f) uniform highp writeonly image2D arg_0;
 void textureStore_be6e30() {
-  ivec2 arg_1 = ivec2(0);
-  vec4 arg_2 = vec4(0.0f);
+  ivec2 arg_1 = ivec2(1);
+  vec4 arg_2 = vec4(1.0f);
   imageStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/be6e30.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/be6e30.wgsl.expected.msl
index ad189e0..87c31cb 100644
--- a/test/tint/builtins/gen/var/textureStore/be6e30.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/be6e30.wgsl.expected.msl
@@ -2,8 +2,8 @@
 
 using namespace metal;
 void textureStore_be6e30(texture2d<float, access::write> tint_symbol_1) {
-  int2 arg_1 = int2(0);
-  float4 arg_2 = float4(0.0f);
+  int2 arg_1 = int2(1);
+  float4 arg_2 = float4(1.0f);
   tint_symbol_1.write(arg_2, uint2(arg_1));
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/be6e30.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/be6e30.wgsl.expected.spvasm
index 57d0a8c..e9e6149 100644
--- a/test/tint/builtins/gen/var/textureStore/be6e30.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/be6e30.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 41
+; Bound: 44
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -40,42 +40,45 @@
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
-         %18 = OpConstantNull %v2int
+      %int_1 = OpConstant %int 1
+         %19 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v2int = OpTypePointer Function %v2int
-%_ptr_Function_v4float = OpTypePointer Function %v4float
-         %27 = OpTypeFunction %v4float
+         %22 = OpConstantNull %v2int
     %float_1 = OpConstant %float 1
+         %24 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%_ptr_Function_v4float = OpTypePointer Function %v4float
+         %31 = OpTypeFunction %v4float
 %textureStore_be6e30 = OpFunction %void None %12
          %15 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2int Function %18
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %22
       %arg_2 = OpVariable %_ptr_Function_v4float Function %5
-               OpStore %arg_1 %18
-               OpStore %arg_2 %5
-         %24 = OpLoad %11 %arg_0
-         %25 = OpLoad %v2int %arg_1
-         %26 = OpLoad %v4float %arg_2
-               OpImageWrite %24 %25 %26
+               OpStore %arg_1 %19
+               OpStore %arg_2 %24
+         %28 = OpLoad %11 %arg_0
+         %29 = OpLoad %v2int %arg_1
+         %30 = OpLoad %v4float %arg_2
+               OpImageWrite %28 %29 %30
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %27
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %textureStore_be6e30
+%vertex_main_inner = OpFunction %v4float None %31
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureStore_be6e30
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %32 = OpLabel
-         %33 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %33
+         %36 = OpLabel
+         %37 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %37
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_be6e30
+         %39 = OpLabel
+         %40 = OpFunctionCall %void %textureStore_be6e30
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_be6e30
+         %42 = OpLabel
+         %43 = OpFunctionCall %void %textureStore_be6e30
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/be6e30.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/be6e30.wgsl.expected.wgsl
index 3fa9fde..523c97d 100644
--- a/test/tint/builtins/gen/var/textureStore/be6e30.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/be6e30.wgsl.expected.wgsl
@@ -1,8 +1,8 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba16float, write>;
 
 fn textureStore_be6e30() {
-  var arg_1 = vec2<i32>();
-  var arg_2 = vec4<f32>();
+  var arg_1 = vec2<i32>(1i);
+  var arg_2 = vec4<f32>(1.0f);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/bf775c.wgsl b/test/tint/builtins/gen/var/textureStore/bf775c.wgsl
index d6c70e7..dcea5ed 100644
--- a/test/tint/builtins/gen/var/textureStore/bf775c.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/bf775c.wgsl
@@ -25,7 +25,7 @@
 // fn textureStore(texture: texture_storage_1d<rgba8sint, write>, coords: i32, value: vec4<i32>)
 fn textureStore_bf775c() {
   var arg_1 = 1i;
-  var arg_2 = vec4<i32>();
+  var arg_2 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/bf775c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/bf775c.wgsl.expected.dxc.hlsl
index c75cb0b..f4a3b24 100644
--- a/test/tint/builtins/gen/var/textureStore/bf775c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/bf775c.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 
 void textureStore_bf775c() {
   int arg_1 = 1;
-  int4 arg_2 = (0).xxxx;
+  int4 arg_2 = (1).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/bf775c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/bf775c.wgsl.expected.fxc.hlsl
index c75cb0b..f4a3b24 100644
--- a/test/tint/builtins/gen/var/textureStore/bf775c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/bf775c.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 
 void textureStore_bf775c() {
   int arg_1 = 1;
-  int4 arg_2 = (0).xxxx;
+  int4 arg_2 = (1).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/bf775c.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/bf775c.wgsl.expected.msl
index 24079fd..b918a1f 100644
--- a/test/tint/builtins/gen/var/textureStore/bf775c.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/bf775c.wgsl.expected.msl
@@ -3,7 +3,7 @@
 using namespace metal;
 void textureStore_bf775c(texture1d<int, access::write> tint_symbol_1) {
   int arg_1 = 1;
-  int4 arg_2 = int4(0);
+  int4 arg_2 = int4(1);
   tint_symbol_1.write(arg_2, uint(arg_1));
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/bf775c.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/bf775c.wgsl.expected.spvasm
index c699fc0..d9b4438 100644
--- a/test/tint/builtins/gen/var/textureStore/bf775c.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/bf775c.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 43
+; Bound: 44
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
@@ -44,41 +44,42 @@
 %_ptr_Function_int = OpTypePointer Function %int
          %20 = OpConstantNull %int
       %v4int = OpTypeVector %int 4
-         %22 = OpConstantNull %v4int
+         %22 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %29 = OpTypeFunction %v4float
+         %25 = OpConstantNull %v4int
+         %30 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_bf775c = OpFunction %void None %13
          %16 = OpLabel
       %arg_1 = OpVariable %_ptr_Function_int Function %20
-      %arg_2 = OpVariable %_ptr_Function_v4int Function %22
+      %arg_2 = OpVariable %_ptr_Function_v4int Function %25
                OpStore %arg_1 %int_1
                OpStore %arg_2 %22
-         %26 = OpLoad %11 %arg_0
-         %27 = OpLoad %int %arg_1
-         %28 = OpLoad %v4int %arg_2
-               OpImageWrite %26 %27 %28
+         %27 = OpLoad %11 %arg_0
+         %28 = OpLoad %int %arg_1
+         %29 = OpLoad %v4int %arg_2
+               OpImageWrite %27 %28 %29
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %29
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %textureStore_bf775c
+%vertex_main_inner = OpFunction %v4float None %30
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %textureStore_bf775c
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %34 = OpLabel
-         %35 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %35
+         %35 = OpLabel
+         %36 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %36
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureStore_bf775c
+         %39 = OpLabel
+         %40 = OpFunctionCall %void %textureStore_bf775c
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureStore_bf775c
+         %42 = OpLabel
+         %43 = OpFunctionCall %void %textureStore_bf775c
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/bf775c.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/bf775c.wgsl.expected.wgsl
index fd24109..d9e173e 100644
--- a/test/tint/builtins/gen/var/textureStore/bf775c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/bf775c.wgsl.expected.wgsl
@@ -2,7 +2,7 @@
 
 fn textureStore_bf775c() {
   var arg_1 = 1i;
-  var arg_2 = vec4<i32>();
+  var arg_2 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/c1f29e.wgsl b/test/tint/builtins/gen/var/textureStore/c1f29e.wgsl
index f2dbc70..b36ad4c 100644
--- a/test/tint/builtins/gen/var/textureStore/c1f29e.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/c1f29e.wgsl
@@ -25,7 +25,7 @@
 // fn textureStore(texture: texture_storage_1d<r32float, write>, coords: u32, value: vec4<f32>)
 fn textureStore_c1f29e() {
   var arg_1 = 1u;
-  var arg_2 = vec4<f32>();
+  var arg_2 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/c1f29e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/c1f29e.wgsl.expected.dxc.hlsl
index 36eb25d..aa5385d 100644
--- a/test/tint/builtins/gen/var/textureStore/c1f29e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/c1f29e.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 
 void textureStore_c1f29e() {
   uint arg_1 = 1u;
-  float4 arg_2 = (0.0f).xxxx;
+  float4 arg_2 = (1.0f).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/c1f29e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/c1f29e.wgsl.expected.fxc.hlsl
index 36eb25d..aa5385d 100644
--- a/test/tint/builtins/gen/var/textureStore/c1f29e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/c1f29e.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 
 void textureStore_c1f29e() {
   uint arg_1 = 1u;
-  float4 arg_2 = (0.0f).xxxx;
+  float4 arg_2 = (1.0f).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/c1f29e.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/c1f29e.wgsl.expected.msl
index b3fdc8a..b90cc9c 100644
--- a/test/tint/builtins/gen/var/textureStore/c1f29e.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/c1f29e.wgsl.expected.msl
@@ -3,7 +3,7 @@
 using namespace metal;
 void textureStore_c1f29e(texture1d<float, access::write> tint_symbol_1) {
   uint arg_1 = 1u;
-  float4 arg_2 = float4(0.0f);
+  float4 arg_2 = float4(1.0f);
   tint_symbol_1.write(arg_2, uint(arg_1));
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/c1f29e.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/c1f29e.wgsl.expected.spvasm
index 183f38c..937da13 100644
--- a/test/tint/builtins/gen/var/textureStore/c1f29e.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/c1f29e.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 41
+; Bound: 42
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
@@ -43,40 +43,41 @@
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
          %20 = OpConstantNull %uint
-%_ptr_Function_v4float = OpTypePointer Function %v4float
-         %27 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
+         %22 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%_ptr_Function_v4float = OpTypePointer Function %v4float
+         %29 = OpTypeFunction %v4float
 %textureStore_c1f29e = OpFunction %void None %12
          %15 = OpLabel
       %arg_1 = OpVariable %_ptr_Function_uint Function %20
       %arg_2 = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %uint_1
-               OpStore %arg_2 %5
-         %24 = OpLoad %11 %arg_0
-         %25 = OpLoad %uint %arg_1
-         %26 = OpLoad %v4float %arg_2
-               OpImageWrite %24 %25 %26
+               OpStore %arg_2 %22
+         %26 = OpLoad %11 %arg_0
+         %27 = OpLoad %uint %arg_1
+         %28 = OpLoad %v4float %arg_2
+               OpImageWrite %26 %27 %28
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %27
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %textureStore_c1f29e
+%vertex_main_inner = OpFunction %v4float None %29
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %textureStore_c1f29e
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %32 = OpLabel
-         %33 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %33
+         %34 = OpLabel
+         %35 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %35
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_c1f29e
+         %37 = OpLabel
+         %38 = OpFunctionCall %void %textureStore_c1f29e
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_c1f29e
+         %40 = OpLabel
+         %41 = OpFunctionCall %void %textureStore_c1f29e
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/c1f29e.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/c1f29e.wgsl.expected.wgsl
index 9d3ff1a..b302fbe 100644
--- a/test/tint/builtins/gen/var/textureStore/c1f29e.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/c1f29e.wgsl.expected.wgsl
@@ -2,7 +2,7 @@
 
 fn textureStore_c1f29e() {
   var arg_1 = 1u;
-  var arg_2 = vec4<f32>();
+  var arg_2 = vec4<f32>(1.0f);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/c2ca46.wgsl b/test/tint/builtins/gen/var/textureStore/c2ca46.wgsl
index 91424c5..4a31b49 100644
--- a/test/tint/builtins/gen/var/textureStore/c2ca46.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/c2ca46.wgsl
@@ -24,9 +24,9 @@
 
 // fn textureStore(texture: texture_storage_2d_array<rgba16sint, write>, coords: vec2<u32>, array_index: u32, value: vec4<i32>)
 fn textureStore_c2ca46() {
-  var arg_1 = vec2<u32>();
+  var arg_1 = vec2<u32>(1u);
   var arg_2 = 1u;
-  var arg_3 = vec4<i32>();
+  var arg_3 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/c2ca46.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/c2ca46.wgsl.expected.dxc.hlsl
index ab57f4a..de55098 100644
--- a/test/tint/builtins/gen/var/textureStore/c2ca46.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/c2ca46.wgsl.expected.dxc.hlsl
@@ -1,9 +1,9 @@
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 void textureStore_c2ca46() {
-  uint2 arg_1 = (0u).xx;
+  uint2 arg_1 = (1u).xx;
   uint arg_2 = 1u;
-  int4 arg_3 = (0).xxxx;
+  int4 arg_3 = (1).xxxx;
   arg_0[uint3(arg_1, arg_2)] = arg_3;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/c2ca46.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/c2ca46.wgsl.expected.fxc.hlsl
index ab57f4a..de55098 100644
--- a/test/tint/builtins/gen/var/textureStore/c2ca46.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/c2ca46.wgsl.expected.fxc.hlsl
@@ -1,9 +1,9 @@
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 void textureStore_c2ca46() {
-  uint2 arg_1 = (0u).xx;
+  uint2 arg_1 = (1u).xx;
   uint arg_2 = 1u;
-  int4 arg_3 = (0).xxxx;
+  int4 arg_3 = (1).xxxx;
   arg_0[uint3(arg_1, arg_2)] = arg_3;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/c2ca46.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/c2ca46.wgsl.expected.glsl
index 5f6b0be..2786286 100644
--- a/test/tint/builtins/gen/var/textureStore/c2ca46.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/c2ca46.wgsl.expected.glsl
@@ -2,9 +2,9 @@
 
 layout(rgba16i) uniform highp writeonly iimage2DArray arg_0;
 void textureStore_c2ca46() {
-  uvec2 arg_1 = uvec2(0u);
+  uvec2 arg_1 = uvec2(1u);
   uint arg_2 = 1u;
-  ivec4 arg_3 = ivec4(0);
+  ivec4 arg_3 = ivec4(1);
   imageStore(arg_0, ivec3(uvec3(arg_1, arg_2)), arg_3);
 }
 
@@ -26,9 +26,9 @@
 
 layout(rgba16i) uniform highp writeonly iimage2DArray arg_0;
 void textureStore_c2ca46() {
-  uvec2 arg_1 = uvec2(0u);
+  uvec2 arg_1 = uvec2(1u);
   uint arg_2 = 1u;
-  ivec4 arg_3 = ivec4(0);
+  ivec4 arg_3 = ivec4(1);
   imageStore(arg_0, ivec3(uvec3(arg_1, arg_2)), arg_3);
 }
 
@@ -44,9 +44,9 @@
 
 layout(rgba16i) uniform highp writeonly iimage2DArray arg_0;
 void textureStore_c2ca46() {
-  uvec2 arg_1 = uvec2(0u);
+  uvec2 arg_1 = uvec2(1u);
   uint arg_2 = 1u;
-  ivec4 arg_3 = ivec4(0);
+  ivec4 arg_3 = ivec4(1);
   imageStore(arg_0, ivec3(uvec3(arg_1, arg_2)), arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/c2ca46.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/c2ca46.wgsl.expected.msl
index ea9becc..711aa8e 100644
--- a/test/tint/builtins/gen/var/textureStore/c2ca46.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/c2ca46.wgsl.expected.msl
@@ -2,9 +2,9 @@
 
 using namespace metal;
 void textureStore_c2ca46(texture2d_array<int, access::write> tint_symbol_1) {
-  uint2 arg_1 = uint2(0u);
+  uint2 arg_1 = uint2(1u);
   uint arg_2 = 1u;
-  int4 arg_3 = int4(0);
+  int4 arg_3 = int4(1);
   tint_symbol_1.write(arg_3, uint2(arg_1), arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/c2ca46.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/c2ca46.wgsl.expected.spvasm
index 5992bcf1..9824af59 100644
--- a/test/tint/builtins/gen/var/textureStore/c2ca46.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/c2ca46.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 53
+; Bound: 56
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -42,54 +42,57 @@
          %13 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
-         %19 = OpConstantNull %v2uint
-%_ptr_Function_v2uint = OpTypePointer Function %v2uint
      %uint_1 = OpConstant %uint 1
+         %20 = OpConstantComposite %v2uint %uint_1 %uint_1
+%_ptr_Function_v2uint = OpTypePointer Function %v2uint
+         %23 = OpConstantNull %v2uint
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %25 = OpConstantNull %uint
+         %26 = OpConstantNull %uint
       %v4int = OpTypeVector %int 4
-         %27 = OpConstantNull %v4int
+      %int_1 = OpConstant %int 1
+         %29 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
+         %32 = OpConstantNull %v4int
      %v3uint = OpTypeVector %uint 3
-         %39 = OpTypeFunction %v4float
+         %42 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_c2ca46 = OpFunction %void None %13
          %16 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2uint Function %19
-      %arg_2 = OpVariable %_ptr_Function_uint Function %25
-      %arg_3 = OpVariable %_ptr_Function_v4int Function %27
-               OpStore %arg_1 %19
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %23
+      %arg_2 = OpVariable %_ptr_Function_uint Function %26
+      %arg_3 = OpVariable %_ptr_Function_v4int Function %32
+               OpStore %arg_1 %20
                OpStore %arg_2 %uint_1
-               OpStore %arg_3 %27
-         %31 = OpLoad %11 %arg_0
-         %33 = OpLoad %v2uint %arg_1
-         %34 = OpCompositeExtract %uint %33 0
-         %35 = OpCompositeExtract %uint %33 1
-         %36 = OpLoad %uint %arg_2
-         %37 = OpCompositeConstruct %v3uint %34 %35 %36
-         %38 = OpLoad %v4int %arg_3
-               OpImageWrite %31 %37 %38
+               OpStore %arg_3 %29
+         %34 = OpLoad %11 %arg_0
+         %36 = OpLoad %v2uint %arg_1
+         %37 = OpCompositeExtract %uint %36 0
+         %38 = OpCompositeExtract %uint %36 1
+         %39 = OpLoad %uint %arg_2
+         %40 = OpCompositeConstruct %v3uint %37 %38 %39
+         %41 = OpLoad %v4int %arg_3
+               OpImageWrite %34 %40 %41
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %39
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureStore_c2ca46
+%vertex_main_inner = OpFunction %v4float None %42
+         %44 = OpLabel
+         %45 = OpFunctionCall %void %textureStore_c2ca46
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %44 = OpLabel
-         %45 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %45
+         %47 = OpLabel
+         %48 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %48
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %48 = OpLabel
-         %49 = OpFunctionCall %void %textureStore_c2ca46
+         %51 = OpLabel
+         %52 = OpFunctionCall %void %textureStore_c2ca46
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %51 = OpLabel
-         %52 = OpFunctionCall %void %textureStore_c2ca46
+         %54 = OpLabel
+         %55 = OpFunctionCall %void %textureStore_c2ca46
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/c2ca46.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/c2ca46.wgsl.expected.wgsl
index 1028c67..621ebe8 100644
--- a/test/tint/builtins/gen/var/textureStore/c2ca46.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/c2ca46.wgsl.expected.wgsl
@@ -1,9 +1,9 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba16sint, write>;
 
 fn textureStore_c2ca46() {
-  var arg_1 = vec2<u32>();
+  var arg_1 = vec2<u32>(1u);
   var arg_2 = 1u;
-  var arg_3 = vec4<i32>();
+  var arg_3 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/c32905.wgsl b/test/tint/builtins/gen/var/textureStore/c32905.wgsl
index 759c4b3..fd11547 100644
--- a/test/tint/builtins/gen/var/textureStore/c32905.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/c32905.wgsl
@@ -24,9 +24,9 @@
 
 // fn textureStore(texture: texture_storage_2d_array<rgba8sint, write>, coords: vec2<u32>, array_index: i32, value: vec4<i32>)
 fn textureStore_c32905() {
-  var arg_1 = vec2<u32>();
+  var arg_1 = vec2<u32>(1u);
   var arg_2 = 1i;
-  var arg_3 = vec4<i32>();
+  var arg_3 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/c32905.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/c32905.wgsl.expected.dxc.hlsl
index 4d99be6..060ff84 100644
--- a/test/tint/builtins/gen/var/textureStore/c32905.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/c32905.wgsl.expected.dxc.hlsl
@@ -1,9 +1,9 @@
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 void textureStore_c32905() {
-  uint2 arg_1 = (0u).xx;
+  uint2 arg_1 = (1u).xx;
   int arg_2 = 1;
-  int4 arg_3 = (0).xxxx;
+  int4 arg_3 = (1).xxxx;
   arg_0[uint3(arg_1, uint(arg_2))] = arg_3;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/c32905.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/c32905.wgsl.expected.fxc.hlsl
index 4d99be6..060ff84 100644
--- a/test/tint/builtins/gen/var/textureStore/c32905.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/c32905.wgsl.expected.fxc.hlsl
@@ -1,9 +1,9 @@
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 void textureStore_c32905() {
-  uint2 arg_1 = (0u).xx;
+  uint2 arg_1 = (1u).xx;
   int arg_2 = 1;
-  int4 arg_3 = (0).xxxx;
+  int4 arg_3 = (1).xxxx;
   arg_0[uint3(arg_1, uint(arg_2))] = arg_3;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/c32905.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/c32905.wgsl.expected.glsl
index 4a695bb..b7b208a 100644
--- a/test/tint/builtins/gen/var/textureStore/c32905.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/c32905.wgsl.expected.glsl
@@ -2,9 +2,9 @@
 
 layout(rgba8i) uniform highp writeonly iimage2DArray arg_0;
 void textureStore_c32905() {
-  uvec2 arg_1 = uvec2(0u);
+  uvec2 arg_1 = uvec2(1u);
   int arg_2 = 1;
-  ivec4 arg_3 = ivec4(0);
+  ivec4 arg_3 = ivec4(1);
   imageStore(arg_0, ivec3(uvec3(arg_1, uint(arg_2))), arg_3);
 }
 
@@ -26,9 +26,9 @@
 
 layout(rgba8i) uniform highp writeonly iimage2DArray arg_0;
 void textureStore_c32905() {
-  uvec2 arg_1 = uvec2(0u);
+  uvec2 arg_1 = uvec2(1u);
   int arg_2 = 1;
-  ivec4 arg_3 = ivec4(0);
+  ivec4 arg_3 = ivec4(1);
   imageStore(arg_0, ivec3(uvec3(arg_1, uint(arg_2))), arg_3);
 }
 
@@ -44,9 +44,9 @@
 
 layout(rgba8i) uniform highp writeonly iimage2DArray arg_0;
 void textureStore_c32905() {
-  uvec2 arg_1 = uvec2(0u);
+  uvec2 arg_1 = uvec2(1u);
   int arg_2 = 1;
-  ivec4 arg_3 = ivec4(0);
+  ivec4 arg_3 = ivec4(1);
   imageStore(arg_0, ivec3(uvec3(arg_1, uint(arg_2))), arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/c32905.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/c32905.wgsl.expected.msl
index 52e8a02..59fd22c 100644
--- a/test/tint/builtins/gen/var/textureStore/c32905.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/c32905.wgsl.expected.msl
@@ -2,9 +2,9 @@
 
 using namespace metal;
 void textureStore_c32905(texture2d_array<int, access::write> tint_symbol_1) {
-  uint2 arg_1 = uint2(0u);
+  uint2 arg_1 = uint2(1u);
   int arg_2 = 1;
-  int4 arg_3 = int4(0);
+  int4 arg_3 = int4(1);
   tint_symbol_1.write(arg_3, uint2(arg_1), arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/c32905.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/c32905.wgsl.expected.spvasm
index 48e2220..6b25e8c 100644
--- a/test/tint/builtins/gen/var/textureStore/c32905.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/c32905.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 54
+; Bound: 57
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -42,55 +42,58 @@
          %13 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
-         %19 = OpConstantNull %v2uint
+     %uint_1 = OpConstant %uint 1
+         %20 = OpConstantComposite %v2uint %uint_1 %uint_1
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
+         %23 = OpConstantNull %v2uint
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
-         %25 = OpConstantNull %int
+         %27 = OpConstantNull %int
       %v4int = OpTypeVector %int 4
-         %27 = OpConstantNull %v4int
+         %29 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
+         %32 = OpConstantNull %v4int
      %v3uint = OpTypeVector %uint 3
-         %40 = OpTypeFunction %v4float
+         %43 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_c32905 = OpFunction %void None %13
          %16 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2uint Function %19
-      %arg_2 = OpVariable %_ptr_Function_int Function %25
-      %arg_3 = OpVariable %_ptr_Function_v4int Function %27
-               OpStore %arg_1 %19
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %23
+      %arg_2 = OpVariable %_ptr_Function_int Function %27
+      %arg_3 = OpVariable %_ptr_Function_v4int Function %32
+               OpStore %arg_1 %20
                OpStore %arg_2 %int_1
-               OpStore %arg_3 %27
-         %31 = OpLoad %11 %arg_0
-         %33 = OpLoad %v2uint %arg_1
-         %34 = OpCompositeExtract %uint %33 0
-         %35 = OpCompositeExtract %uint %33 1
-         %37 = OpLoad %int %arg_2
-         %36 = OpBitcast %uint %37
-         %38 = OpCompositeConstruct %v3uint %34 %35 %36
-         %39 = OpLoad %v4int %arg_3
-               OpImageWrite %31 %38 %39
+               OpStore %arg_3 %29
+         %34 = OpLoad %11 %arg_0
+         %36 = OpLoad %v2uint %arg_1
+         %37 = OpCompositeExtract %uint %36 0
+         %38 = OpCompositeExtract %uint %36 1
+         %40 = OpLoad %int %arg_2
+         %39 = OpBitcast %uint %40
+         %41 = OpCompositeConstruct %v3uint %37 %38 %39
+         %42 = OpLoad %v4int %arg_3
+               OpImageWrite %34 %41 %42
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %40
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_c32905
+%vertex_main_inner = OpFunction %v4float None %43
+         %45 = OpLabel
+         %46 = OpFunctionCall %void %textureStore_c32905
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %45 = OpLabel
-         %46 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %46
+         %48 = OpLabel
+         %49 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %49
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %49 = OpLabel
-         %50 = OpFunctionCall %void %textureStore_c32905
+         %52 = OpLabel
+         %53 = OpFunctionCall %void %textureStore_c32905
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %52 = OpLabel
-         %53 = OpFunctionCall %void %textureStore_c32905
+         %55 = OpLabel
+         %56 = OpFunctionCall %void %textureStore_c32905
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/c32905.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/c32905.wgsl.expected.wgsl
index 73f1d99..d8002b4 100644
--- a/test/tint/builtins/gen/var/textureStore/c32905.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/c32905.wgsl.expected.wgsl
@@ -1,9 +1,9 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba8sint, write>;
 
 fn textureStore_c32905() {
-  var arg_1 = vec2<u32>();
+  var arg_1 = vec2<u32>(1u);
   var arg_2 = 1i;
-  var arg_3 = vec4<i32>();
+  var arg_3 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/c5af1e.wgsl b/test/tint/builtins/gen/var/textureStore/c5af1e.wgsl
index 3f51529..4f58ba3 100644
--- a/test/tint/builtins/gen/var/textureStore/c5af1e.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/c5af1e.wgsl
@@ -24,8 +24,8 @@
 
 // fn textureStore(texture: texture_storage_3d<rgba16float, write>, coords: vec3<i32>, value: vec4<f32>)
 fn textureStore_c5af1e() {
-  var arg_1 = vec3<i32>();
-  var arg_2 = vec4<f32>();
+  var arg_1 = vec3<i32>(1i);
+  var arg_2 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/c5af1e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/c5af1e.wgsl.expected.dxc.hlsl
index c52db8f..f92b8f6 100644
--- a/test/tint/builtins/gen/var/textureStore/c5af1e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/c5af1e.wgsl.expected.dxc.hlsl
@@ -1,8 +1,8 @@
 RWTexture3D<float4> arg_0 : register(u0, space1);
 
 void textureStore_c5af1e() {
-  int3 arg_1 = (0).xxx;
-  float4 arg_2 = (0.0f).xxxx;
+  int3 arg_1 = (1).xxx;
+  float4 arg_2 = (1.0f).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/c5af1e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/c5af1e.wgsl.expected.fxc.hlsl
index c52db8f..f92b8f6 100644
--- a/test/tint/builtins/gen/var/textureStore/c5af1e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/c5af1e.wgsl.expected.fxc.hlsl
@@ -1,8 +1,8 @@
 RWTexture3D<float4> arg_0 : register(u0, space1);
 
 void textureStore_c5af1e() {
-  int3 arg_1 = (0).xxx;
-  float4 arg_2 = (0.0f).xxxx;
+  int3 arg_1 = (1).xxx;
+  float4 arg_2 = (1.0f).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/c5af1e.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/c5af1e.wgsl.expected.glsl
index d75b39b..cd1558a 100644
--- a/test/tint/builtins/gen/var/textureStore/c5af1e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/c5af1e.wgsl.expected.glsl
@@ -2,8 +2,8 @@
 
 layout(rgba16f) uniform highp writeonly image3D arg_0;
 void textureStore_c5af1e() {
-  ivec3 arg_1 = ivec3(0);
-  vec4 arg_2 = vec4(0.0f);
+  ivec3 arg_1 = ivec3(1);
+  vec4 arg_2 = vec4(1.0f);
   imageStore(arg_0, arg_1, arg_2);
 }
 
@@ -25,8 +25,8 @@
 
 layout(rgba16f) uniform highp writeonly image3D arg_0;
 void textureStore_c5af1e() {
-  ivec3 arg_1 = ivec3(0);
-  vec4 arg_2 = vec4(0.0f);
+  ivec3 arg_1 = ivec3(1);
+  vec4 arg_2 = vec4(1.0f);
   imageStore(arg_0, arg_1, arg_2);
 }
 
@@ -42,8 +42,8 @@
 
 layout(rgba16f) uniform highp writeonly image3D arg_0;
 void textureStore_c5af1e() {
-  ivec3 arg_1 = ivec3(0);
-  vec4 arg_2 = vec4(0.0f);
+  ivec3 arg_1 = ivec3(1);
+  vec4 arg_2 = vec4(1.0f);
   imageStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/c5af1e.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/c5af1e.wgsl.expected.msl
index 6e9206f..1abb310 100644
--- a/test/tint/builtins/gen/var/textureStore/c5af1e.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/c5af1e.wgsl.expected.msl
@@ -2,8 +2,8 @@
 
 using namespace metal;
 void textureStore_c5af1e(texture3d<float, access::write> tint_symbol_1) {
-  int3 arg_1 = int3(0);
-  float4 arg_2 = float4(0.0f);
+  int3 arg_1 = int3(1);
+  float4 arg_2 = float4(1.0f);
   tint_symbol_1.write(arg_2, uint3(arg_1));
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/c5af1e.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/c5af1e.wgsl.expected.spvasm
index 0a7e655..cbb579c 100644
--- a/test/tint/builtins/gen/var/textureStore/c5af1e.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/c5af1e.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 41
+; Bound: 44
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -40,42 +40,45 @@
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
-         %18 = OpConstantNull %v3int
+      %int_1 = OpConstant %int 1
+         %19 = OpConstantComposite %v3int %int_1 %int_1 %int_1
 %_ptr_Function_v3int = OpTypePointer Function %v3int
-%_ptr_Function_v4float = OpTypePointer Function %v4float
-         %27 = OpTypeFunction %v4float
+         %22 = OpConstantNull %v3int
     %float_1 = OpConstant %float 1
+         %24 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%_ptr_Function_v4float = OpTypePointer Function %v4float
+         %31 = OpTypeFunction %v4float
 %textureStore_c5af1e = OpFunction %void None %12
          %15 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v3int Function %18
+      %arg_1 = OpVariable %_ptr_Function_v3int Function %22
       %arg_2 = OpVariable %_ptr_Function_v4float Function %5
-               OpStore %arg_1 %18
-               OpStore %arg_2 %5
-         %24 = OpLoad %11 %arg_0
-         %25 = OpLoad %v3int %arg_1
-         %26 = OpLoad %v4float %arg_2
-               OpImageWrite %24 %25 %26
+               OpStore %arg_1 %19
+               OpStore %arg_2 %24
+         %28 = OpLoad %11 %arg_0
+         %29 = OpLoad %v3int %arg_1
+         %30 = OpLoad %v4float %arg_2
+               OpImageWrite %28 %29 %30
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %27
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %textureStore_c5af1e
+%vertex_main_inner = OpFunction %v4float None %31
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureStore_c5af1e
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %32 = OpLabel
-         %33 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %33
+         %36 = OpLabel
+         %37 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %37
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_c5af1e
+         %39 = OpLabel
+         %40 = OpFunctionCall %void %textureStore_c5af1e
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_c5af1e
+         %42 = OpLabel
+         %43 = OpFunctionCall %void %textureStore_c5af1e
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/c5af1e.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/c5af1e.wgsl.expected.wgsl
index cc2c9d1..71ea840 100644
--- a/test/tint/builtins/gen/var/textureStore/c5af1e.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/c5af1e.wgsl.expected.wgsl
@@ -1,8 +1,8 @@
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rgba16float, write>;
 
 fn textureStore_c5af1e() {
-  var arg_1 = vec3<i32>();
-  var arg_2 = vec4<f32>();
+  var arg_1 = vec3<i32>(1i);
+  var arg_2 = vec4<f32>(1.0f);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/c863be.wgsl b/test/tint/builtins/gen/var/textureStore/c863be.wgsl
index ce4bcc6..e42fa06 100644
--- a/test/tint/builtins/gen/var/textureStore/c863be.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/c863be.wgsl
@@ -24,9 +24,9 @@
 
 // fn textureStore(texture: texture_storage_2d_array<rg32float, write>, coords: vec2<i32>, array_index: i32, value: vec4<f32>)
 fn textureStore_c863be() {
-  var arg_1 = vec2<i32>();
+  var arg_1 = vec2<i32>(1i);
   var arg_2 = 1i;
-  var arg_3 = vec4<f32>();
+  var arg_3 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/c863be.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/c863be.wgsl.expected.dxc.hlsl
index bf1dd2c..d755997 100644
--- a/test/tint/builtins/gen/var/textureStore/c863be.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/c863be.wgsl.expected.dxc.hlsl
@@ -1,9 +1,9 @@
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 void textureStore_c863be() {
-  int2 arg_1 = (0).xx;
+  int2 arg_1 = (1).xx;
   int arg_2 = 1;
-  float4 arg_3 = (0.0f).xxxx;
+  float4 arg_3 = (1.0f).xxxx;
   arg_0[int3(arg_1, arg_2)] = arg_3;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/c863be.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/c863be.wgsl.expected.fxc.hlsl
index bf1dd2c..d755997 100644
--- a/test/tint/builtins/gen/var/textureStore/c863be.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/c863be.wgsl.expected.fxc.hlsl
@@ -1,9 +1,9 @@
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 void textureStore_c863be() {
-  int2 arg_1 = (0).xx;
+  int2 arg_1 = (1).xx;
   int arg_2 = 1;
-  float4 arg_3 = (0.0f).xxxx;
+  float4 arg_3 = (1.0f).xxxx;
   arg_0[int3(arg_1, arg_2)] = arg_3;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/c863be.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/c863be.wgsl.expected.msl
index 3b4ee66..3b0b452 100644
--- a/test/tint/builtins/gen/var/textureStore/c863be.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/c863be.wgsl.expected.msl
@@ -2,9 +2,9 @@
 
 using namespace metal;
 void textureStore_c863be(texture2d_array<float, access::write> tint_symbol_1) {
-  int2 arg_1 = int2(0);
+  int2 arg_1 = int2(1);
   int arg_2 = 1;
-  float4 arg_3 = float4(0.0f);
+  float4 arg_3 = float4(1.0f);
   tint_symbol_1.write(arg_3, uint2(arg_1), arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/c863be.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/c863be.wgsl.expected.spvasm
index 49ae3b6..5787add 100644
--- a/test/tint/builtins/gen/var/textureStore/c863be.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/c863be.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 50
+; Bound: 52
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
@@ -42,52 +42,54 @@
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
-         %18 = OpConstantNull %v2int
-%_ptr_Function_v2int = OpTypePointer Function %v2int
       %int_1 = OpConstant %int 1
+         %19 = OpConstantComposite %v2int %int_1 %int_1
+%_ptr_Function_v2int = OpTypePointer Function %v2int
+         %22 = OpConstantNull %v2int
 %_ptr_Function_int = OpTypePointer Function %int
-         %24 = OpConstantNull %int
+         %25 = OpConstantNull %int
+    %float_1 = OpConstant %float 1
+         %27 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
       %v3int = OpTypeVector %int 3
-         %36 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %39 = OpTypeFunction %v4float
 %textureStore_c863be = OpFunction %void None %12
          %15 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2int Function %18
-      %arg_2 = OpVariable %_ptr_Function_int Function %24
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %22
+      %arg_2 = OpVariable %_ptr_Function_int Function %25
       %arg_3 = OpVariable %_ptr_Function_v4float Function %5
-               OpStore %arg_1 %18
+               OpStore %arg_1 %19
                OpStore %arg_2 %int_1
-               OpStore %arg_3 %5
-         %28 = OpLoad %11 %arg_0
-         %30 = OpLoad %v2int %arg_1
-         %31 = OpCompositeExtract %int %30 0
-         %32 = OpCompositeExtract %int %30 1
-         %33 = OpLoad %int %arg_2
-         %34 = OpCompositeConstruct %v3int %31 %32 %33
-         %35 = OpLoad %v4float %arg_3
-               OpImageWrite %28 %34 %35
+               OpStore %arg_3 %27
+         %31 = OpLoad %11 %arg_0
+         %33 = OpLoad %v2int %arg_1
+         %34 = OpCompositeExtract %int %33 0
+         %35 = OpCompositeExtract %int %33 1
+         %36 = OpLoad %int %arg_2
+         %37 = OpCompositeConstruct %v3int %34 %35 %36
+         %38 = OpLoad %v4float %arg_3
+               OpImageWrite %31 %37 %38
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %36
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureStore_c863be
+%vertex_main_inner = OpFunction %v4float None %39
+         %41 = OpLabel
+         %42 = OpFunctionCall %void %textureStore_c863be
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %41 = OpLabel
-         %42 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %42
+         %44 = OpLabel
+         %45 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %45
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %45 = OpLabel
-         %46 = OpFunctionCall %void %textureStore_c863be
+         %47 = OpLabel
+         %48 = OpFunctionCall %void %textureStore_c863be
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %48 = OpLabel
-         %49 = OpFunctionCall %void %textureStore_c863be
+         %50 = OpLabel
+         %51 = OpFunctionCall %void %textureStore_c863be
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/c863be.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/c863be.wgsl.expected.wgsl
index ca615c5..22fc708 100644
--- a/test/tint/builtins/gen/var/textureStore/c863be.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/c863be.wgsl.expected.wgsl
@@ -1,9 +1,9 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rg32float, write>;
 
 fn textureStore_c863be() {
-  var arg_1 = vec2<i32>();
+  var arg_1 = vec2<i32>(1i);
   var arg_2 = 1i;
-  var arg_3 = vec4<f32>();
+  var arg_3 = vec4<f32>(1.0f);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/cb3b0b.wgsl b/test/tint/builtins/gen/var/textureStore/cb3b0b.wgsl
index 92e3678..d8b0fc5 100644
--- a/test/tint/builtins/gen/var/textureStore/cb3b0b.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/cb3b0b.wgsl
@@ -24,8 +24,8 @@
 
 // fn textureStore(texture: texture_storage_3d<rgba8sint, write>, coords: vec3<u32>, value: vec4<i32>)
 fn textureStore_cb3b0b() {
-  var arg_1 = vec3<u32>();
-  var arg_2 = vec4<i32>();
+  var arg_1 = vec3<u32>(1u);
+  var arg_2 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/cb3b0b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/cb3b0b.wgsl.expected.dxc.hlsl
index 6f20c68..158f60c 100644
--- a/test/tint/builtins/gen/var/textureStore/cb3b0b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/cb3b0b.wgsl.expected.dxc.hlsl
@@ -1,8 +1,8 @@
 RWTexture3D<int4> arg_0 : register(u0, space1);
 
 void textureStore_cb3b0b() {
-  uint3 arg_1 = (0u).xxx;
-  int4 arg_2 = (0).xxxx;
+  uint3 arg_1 = (1u).xxx;
+  int4 arg_2 = (1).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/cb3b0b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/cb3b0b.wgsl.expected.fxc.hlsl
index 6f20c68..158f60c 100644
--- a/test/tint/builtins/gen/var/textureStore/cb3b0b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/cb3b0b.wgsl.expected.fxc.hlsl
@@ -1,8 +1,8 @@
 RWTexture3D<int4> arg_0 : register(u0, space1);
 
 void textureStore_cb3b0b() {
-  uint3 arg_1 = (0u).xxx;
-  int4 arg_2 = (0).xxxx;
+  uint3 arg_1 = (1u).xxx;
+  int4 arg_2 = (1).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/cb3b0b.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/cb3b0b.wgsl.expected.glsl
index 96f8c65..9b2d5e6 100644
--- a/test/tint/builtins/gen/var/textureStore/cb3b0b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/cb3b0b.wgsl.expected.glsl
@@ -2,8 +2,8 @@
 
 layout(rgba8i) uniform highp writeonly iimage3D arg_0;
 void textureStore_cb3b0b() {
-  uvec3 arg_1 = uvec3(0u);
-  ivec4 arg_2 = ivec4(0);
+  uvec3 arg_1 = uvec3(1u);
+  ivec4 arg_2 = ivec4(1);
   imageStore(arg_0, ivec3(arg_1), arg_2);
 }
 
@@ -25,8 +25,8 @@
 
 layout(rgba8i) uniform highp writeonly iimage3D arg_0;
 void textureStore_cb3b0b() {
-  uvec3 arg_1 = uvec3(0u);
-  ivec4 arg_2 = ivec4(0);
+  uvec3 arg_1 = uvec3(1u);
+  ivec4 arg_2 = ivec4(1);
   imageStore(arg_0, ivec3(arg_1), arg_2);
 }
 
@@ -42,8 +42,8 @@
 
 layout(rgba8i) uniform highp writeonly iimage3D arg_0;
 void textureStore_cb3b0b() {
-  uvec3 arg_1 = uvec3(0u);
-  ivec4 arg_2 = ivec4(0);
+  uvec3 arg_1 = uvec3(1u);
+  ivec4 arg_2 = ivec4(1);
   imageStore(arg_0, ivec3(arg_1), arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/cb3b0b.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/cb3b0b.wgsl.expected.msl
index 4b6e161..c3fa3ce 100644
--- a/test/tint/builtins/gen/var/textureStore/cb3b0b.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/cb3b0b.wgsl.expected.msl
@@ -2,8 +2,8 @@
 
 using namespace metal;
 void textureStore_cb3b0b(texture3d<int, access::write> tint_symbol_1) {
-  uint3 arg_1 = uint3(0u);
-  int4 arg_2 = int4(0);
+  uint3 arg_1 = uint3(1u);
+  int4 arg_2 = int4(1);
   tint_symbol_1.write(arg_2, uint3(arg_1));
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/cb3b0b.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/cb3b0b.wgsl.expected.spvasm
index 363baf6..0c3ca78 100644
--- a/test/tint/builtins/gen/var/textureStore/cb3b0b.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/cb3b0b.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 48
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -41,44 +41,48 @@
          %13 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
-         %19 = OpConstantNull %v3uint
+     %uint_1 = OpConstant %uint 1
+         %20 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
 %_ptr_Function_v3uint = OpTypePointer Function %v3uint
+         %23 = OpConstantNull %v3uint
       %v4int = OpTypeVector %int 4
-         %23 = OpConstantNull %v4int
+      %int_1 = OpConstant %int 1
+         %26 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %30 = OpTypeFunction %v4float
+         %29 = OpConstantNull %v4int
+         %34 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_cb3b0b = OpFunction %void None %13
          %16 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v3uint Function %19
-      %arg_2 = OpVariable %_ptr_Function_v4int Function %23
-               OpStore %arg_1 %19
-               OpStore %arg_2 %23
-         %27 = OpLoad %11 %arg_0
-         %28 = OpLoad %v3uint %arg_1
-         %29 = OpLoad %v4int %arg_2
-               OpImageWrite %27 %28 %29
+      %arg_1 = OpVariable %_ptr_Function_v3uint Function %23
+      %arg_2 = OpVariable %_ptr_Function_v4int Function %29
+               OpStore %arg_1 %20
+               OpStore %arg_2 %26
+         %31 = OpLoad %11 %arg_0
+         %32 = OpLoad %v3uint %arg_1
+         %33 = OpLoad %v4int %arg_2
+               OpImageWrite %31 %32 %33
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %30
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_cb3b0b
+%vertex_main_inner = OpFunction %v4float None %34
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureStore_cb3b0b
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %36
+         %39 = OpLabel
+         %40 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %40
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_cb3b0b
+         %43 = OpLabel
+         %44 = OpFunctionCall %void %textureStore_cb3b0b
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_cb3b0b
+         %46 = OpLabel
+         %47 = OpFunctionCall %void %textureStore_cb3b0b
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/cb3b0b.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/cb3b0b.wgsl.expected.wgsl
index 846d119..f7148a3 100644
--- a/test/tint/builtins/gen/var/textureStore/cb3b0b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/cb3b0b.wgsl.expected.wgsl
@@ -1,8 +1,8 @@
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rgba8sint, write>;
 
 fn textureStore_cb3b0b() {
-  var arg_1 = vec3<u32>();
-  var arg_2 = vec4<i32>();
+  var arg_1 = vec3<u32>(1u);
+  var arg_2 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/d26166.wgsl b/test/tint/builtins/gen/var/textureStore/d26166.wgsl
index 5b2e2f3..c369da8 100644
--- a/test/tint/builtins/gen/var/textureStore/d26166.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/d26166.wgsl
@@ -25,7 +25,7 @@
 // fn textureStore(texture: texture_storage_1d<rgba32uint, write>, coords: u32, value: vec4<u32>)
 fn textureStore_d26166() {
   var arg_1 = 1u;
-  var arg_2 = vec4<u32>();
+  var arg_2 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/d26166.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/d26166.wgsl.expected.dxc.hlsl
index 8ec5059..35e987a 100644
--- a/test/tint/builtins/gen/var/textureStore/d26166.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/d26166.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 
 void textureStore_d26166() {
   uint arg_1 = 1u;
-  uint4 arg_2 = (0u).xxxx;
+  uint4 arg_2 = (1u).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/d26166.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/d26166.wgsl.expected.fxc.hlsl
index 8ec5059..35e987a 100644
--- a/test/tint/builtins/gen/var/textureStore/d26166.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/d26166.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 
 void textureStore_d26166() {
   uint arg_1 = 1u;
-  uint4 arg_2 = (0u).xxxx;
+  uint4 arg_2 = (1u).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/d26166.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/d26166.wgsl.expected.msl
index 22472ce..121c532 100644
--- a/test/tint/builtins/gen/var/textureStore/d26166.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/d26166.wgsl.expected.msl
@@ -3,7 +3,7 @@
 using namespace metal;
 void textureStore_d26166(texture1d<uint, access::write> tint_symbol_1) {
   uint arg_1 = 1u;
-  uint4 arg_2 = uint4(0u);
+  uint4 arg_2 = uint4(1u);
   tint_symbol_1.write(arg_2, uint(arg_1));
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/d26166.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/d26166.wgsl.expected.spvasm
index 922800c..ee06594 100644
--- a/test/tint/builtins/gen/var/textureStore/d26166.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/d26166.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 43
+; Bound: 44
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
@@ -44,41 +44,42 @@
 %_ptr_Function_uint = OpTypePointer Function %uint
          %20 = OpConstantNull %uint
      %v4uint = OpTypeVector %uint 4
-         %22 = OpConstantNull %v4uint
+         %22 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %29 = OpTypeFunction %v4float
+         %25 = OpConstantNull %v4uint
+         %30 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_d26166 = OpFunction %void None %13
          %16 = OpLabel
       %arg_1 = OpVariable %_ptr_Function_uint Function %20
-      %arg_2 = OpVariable %_ptr_Function_v4uint Function %22
+      %arg_2 = OpVariable %_ptr_Function_v4uint Function %25
                OpStore %arg_1 %uint_1
                OpStore %arg_2 %22
-         %26 = OpLoad %11 %arg_0
-         %27 = OpLoad %uint %arg_1
-         %28 = OpLoad %v4uint %arg_2
-               OpImageWrite %26 %27 %28
+         %27 = OpLoad %11 %arg_0
+         %28 = OpLoad %uint %arg_1
+         %29 = OpLoad %v4uint %arg_2
+               OpImageWrite %27 %28 %29
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %29
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %textureStore_d26166
+%vertex_main_inner = OpFunction %v4float None %30
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %textureStore_d26166
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %34 = OpLabel
-         %35 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %35
+         %35 = OpLabel
+         %36 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %36
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureStore_d26166
+         %39 = OpLabel
+         %40 = OpFunctionCall %void %textureStore_d26166
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureStore_d26166
+         %42 = OpLabel
+         %43 = OpFunctionCall %void %textureStore_d26166
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/d26166.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/d26166.wgsl.expected.wgsl
index 9d51a44..ce91750 100644
--- a/test/tint/builtins/gen/var/textureStore/d26166.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/d26166.wgsl.expected.wgsl
@@ -2,7 +2,7 @@
 
 fn textureStore_d26166() {
   var arg_1 = 1u;
-  var arg_2 = vec4<u32>();
+  var arg_2 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/d55e65.wgsl b/test/tint/builtins/gen/var/textureStore/d55e65.wgsl
index 82ce654..561690e 100644
--- a/test/tint/builtins/gen/var/textureStore/d55e65.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/d55e65.wgsl
@@ -24,9 +24,9 @@
 
 // fn textureStore(texture: texture_storage_2d_array<r32float, write>, coords: vec2<u32>, array_index: i32, value: vec4<f32>)
 fn textureStore_d55e65() {
-  var arg_1 = vec2<u32>();
+  var arg_1 = vec2<u32>(1u);
   var arg_2 = 1i;
-  var arg_3 = vec4<f32>();
+  var arg_3 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/d55e65.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/d55e65.wgsl.expected.dxc.hlsl
index 7933088..3804b29 100644
--- a/test/tint/builtins/gen/var/textureStore/d55e65.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/d55e65.wgsl.expected.dxc.hlsl
@@ -1,9 +1,9 @@
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 void textureStore_d55e65() {
-  uint2 arg_1 = (0u).xx;
+  uint2 arg_1 = (1u).xx;
   int arg_2 = 1;
-  float4 arg_3 = (0.0f).xxxx;
+  float4 arg_3 = (1.0f).xxxx;
   arg_0[uint3(arg_1, uint(arg_2))] = arg_3;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/d55e65.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/d55e65.wgsl.expected.fxc.hlsl
index 7933088..3804b29 100644
--- a/test/tint/builtins/gen/var/textureStore/d55e65.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/d55e65.wgsl.expected.fxc.hlsl
@@ -1,9 +1,9 @@
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 void textureStore_d55e65() {
-  uint2 arg_1 = (0u).xx;
+  uint2 arg_1 = (1u).xx;
   int arg_2 = 1;
-  float4 arg_3 = (0.0f).xxxx;
+  float4 arg_3 = (1.0f).xxxx;
   arg_0[uint3(arg_1, uint(arg_2))] = arg_3;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/d55e65.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/d55e65.wgsl.expected.glsl
index 87199ca..9b95ec7 100644
--- a/test/tint/builtins/gen/var/textureStore/d55e65.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/d55e65.wgsl.expected.glsl
@@ -2,9 +2,9 @@
 
 layout(r32f) uniform highp writeonly image2DArray arg_0;
 void textureStore_d55e65() {
-  uvec2 arg_1 = uvec2(0u);
+  uvec2 arg_1 = uvec2(1u);
   int arg_2 = 1;
-  vec4 arg_3 = vec4(0.0f);
+  vec4 arg_3 = vec4(1.0f);
   imageStore(arg_0, ivec3(uvec3(arg_1, uint(arg_2))), arg_3);
 }
 
@@ -26,9 +26,9 @@
 
 layout(r32f) uniform highp writeonly image2DArray arg_0;
 void textureStore_d55e65() {
-  uvec2 arg_1 = uvec2(0u);
+  uvec2 arg_1 = uvec2(1u);
   int arg_2 = 1;
-  vec4 arg_3 = vec4(0.0f);
+  vec4 arg_3 = vec4(1.0f);
   imageStore(arg_0, ivec3(uvec3(arg_1, uint(arg_2))), arg_3);
 }
 
@@ -44,9 +44,9 @@
 
 layout(r32f) uniform highp writeonly image2DArray arg_0;
 void textureStore_d55e65() {
-  uvec2 arg_1 = uvec2(0u);
+  uvec2 arg_1 = uvec2(1u);
   int arg_2 = 1;
-  vec4 arg_3 = vec4(0.0f);
+  vec4 arg_3 = vec4(1.0f);
   imageStore(arg_0, ivec3(uvec3(arg_1, uint(arg_2))), arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/d55e65.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/d55e65.wgsl.expected.msl
index 11b7b3b..4150e81 100644
--- a/test/tint/builtins/gen/var/textureStore/d55e65.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/d55e65.wgsl.expected.msl
@@ -2,9 +2,9 @@
 
 using namespace metal;
 void textureStore_d55e65(texture2d_array<float, access::write> tint_symbol_1) {
-  uint2 arg_1 = uint2(0u);
+  uint2 arg_1 = uint2(1u);
   int arg_2 = 1;
-  float4 arg_3 = float4(0.0f);
+  float4 arg_3 = float4(1.0f);
   tint_symbol_1.write(arg_3, uint2(arg_1), arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/d55e65.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/d55e65.wgsl.expected.spvasm
index e36f65d..a2014a6 100644
--- a/test/tint/builtins/gen/var/textureStore/d55e65.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/d55e65.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 52
+; Bound: 55
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -41,54 +41,57 @@
          %12 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
-         %18 = OpConstantNull %v2uint
+     %uint_1 = OpConstant %uint 1
+         %19 = OpConstantComposite %v2uint %uint_1 %uint_1
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
+         %22 = OpConstantNull %v2uint
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
-         %25 = OpConstantNull %int
+         %27 = OpConstantNull %int
+    %float_1 = OpConstant %float 1
+         %29 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
      %v3uint = OpTypeVector %uint 3
-         %38 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %42 = OpTypeFunction %v4float
 %textureStore_d55e65 = OpFunction %void None %12
          %15 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2uint Function %18
-      %arg_2 = OpVariable %_ptr_Function_int Function %25
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %22
+      %arg_2 = OpVariable %_ptr_Function_int Function %27
       %arg_3 = OpVariable %_ptr_Function_v4float Function %5
-               OpStore %arg_1 %18
+               OpStore %arg_1 %19
                OpStore %arg_2 %int_1
-               OpStore %arg_3 %5
-         %29 = OpLoad %11 %arg_0
-         %31 = OpLoad %v2uint %arg_1
-         %32 = OpCompositeExtract %uint %31 0
-         %33 = OpCompositeExtract %uint %31 1
-         %35 = OpLoad %int %arg_2
-         %34 = OpBitcast %uint %35
-         %36 = OpCompositeConstruct %v3uint %32 %33 %34
-         %37 = OpLoad %v4float %arg_3
-               OpImageWrite %29 %36 %37
+               OpStore %arg_3 %29
+         %33 = OpLoad %11 %arg_0
+         %35 = OpLoad %v2uint %arg_1
+         %36 = OpCompositeExtract %uint %35 0
+         %37 = OpCompositeExtract %uint %35 1
+         %39 = OpLoad %int %arg_2
+         %38 = OpBitcast %uint %39
+         %40 = OpCompositeConstruct %v3uint %36 %37 %38
+         %41 = OpLoad %v4float %arg_3
+               OpImageWrite %33 %40 %41
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %38
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureStore_d55e65
+%vertex_main_inner = OpFunction %v4float None %42
+         %44 = OpLabel
+         %45 = OpFunctionCall %void %textureStore_d55e65
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %43 = OpLabel
-         %44 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %44
+         %47 = OpLabel
+         %48 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %48
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %47 = OpLabel
-         %48 = OpFunctionCall %void %textureStore_d55e65
+         %50 = OpLabel
+         %51 = OpFunctionCall %void %textureStore_d55e65
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %50 = OpLabel
-         %51 = OpFunctionCall %void %textureStore_d55e65
+         %53 = OpLabel
+         %54 = OpFunctionCall %void %textureStore_d55e65
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/d55e65.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/d55e65.wgsl.expected.wgsl
index 939d999..a3cea00 100644
--- a/test/tint/builtins/gen/var/textureStore/d55e65.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/d55e65.wgsl.expected.wgsl
@@ -1,9 +1,9 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<r32float, write>;
 
 fn textureStore_d55e65() {
-  var arg_1 = vec2<u32>();
+  var arg_1 = vec2<u32>(1u);
   var arg_2 = 1i;
-  var arg_3 = vec4<f32>();
+  var arg_3 = vec4<f32>(1.0f);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/d73b5c.wgsl b/test/tint/builtins/gen/var/textureStore/d73b5c.wgsl
index 5f1aa47..c6dc778 100644
--- a/test/tint/builtins/gen/var/textureStore/d73b5c.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/d73b5c.wgsl
@@ -25,7 +25,7 @@
 // fn textureStore(texture: texture_storage_1d<rg32sint, write>, coords: i32, value: vec4<i32>)
 fn textureStore_d73b5c() {
   var arg_1 = 1i;
-  var arg_2 = vec4<i32>();
+  var arg_2 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/d73b5c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/d73b5c.wgsl.expected.dxc.hlsl
index e4f893a..f0a3ecc 100644
--- a/test/tint/builtins/gen/var/textureStore/d73b5c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/d73b5c.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 
 void textureStore_d73b5c() {
   int arg_1 = 1;
-  int4 arg_2 = (0).xxxx;
+  int4 arg_2 = (1).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/d73b5c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/d73b5c.wgsl.expected.fxc.hlsl
index e4f893a..f0a3ecc 100644
--- a/test/tint/builtins/gen/var/textureStore/d73b5c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/d73b5c.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 
 void textureStore_d73b5c() {
   int arg_1 = 1;
-  int4 arg_2 = (0).xxxx;
+  int4 arg_2 = (1).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/d73b5c.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/d73b5c.wgsl.expected.msl
index 0fe1471..8346f03 100644
--- a/test/tint/builtins/gen/var/textureStore/d73b5c.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/d73b5c.wgsl.expected.msl
@@ -3,7 +3,7 @@
 using namespace metal;
 void textureStore_d73b5c(texture1d<int, access::write> tint_symbol_1) {
   int arg_1 = 1;
-  int4 arg_2 = int4(0);
+  int4 arg_2 = int4(1);
   tint_symbol_1.write(arg_2, uint(arg_1));
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/d73b5c.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/d73b5c.wgsl.expected.spvasm
index b558399..5b3270b 100644
--- a/test/tint/builtins/gen/var/textureStore/d73b5c.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/d73b5c.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 43
+; Bound: 44
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
@@ -45,41 +45,42 @@
 %_ptr_Function_int = OpTypePointer Function %int
          %20 = OpConstantNull %int
       %v4int = OpTypeVector %int 4
-         %22 = OpConstantNull %v4int
+         %22 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %29 = OpTypeFunction %v4float
+         %25 = OpConstantNull %v4int
+         %30 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_d73b5c = OpFunction %void None %13
          %16 = OpLabel
       %arg_1 = OpVariable %_ptr_Function_int Function %20
-      %arg_2 = OpVariable %_ptr_Function_v4int Function %22
+      %arg_2 = OpVariable %_ptr_Function_v4int Function %25
                OpStore %arg_1 %int_1
                OpStore %arg_2 %22
-         %26 = OpLoad %11 %arg_0
-         %27 = OpLoad %int %arg_1
-         %28 = OpLoad %v4int %arg_2
-               OpImageWrite %26 %27 %28
+         %27 = OpLoad %11 %arg_0
+         %28 = OpLoad %int %arg_1
+         %29 = OpLoad %v4int %arg_2
+               OpImageWrite %27 %28 %29
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %29
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %textureStore_d73b5c
+%vertex_main_inner = OpFunction %v4float None %30
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %textureStore_d73b5c
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %34 = OpLabel
-         %35 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %35
+         %35 = OpLabel
+         %36 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %36
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureStore_d73b5c
+         %39 = OpLabel
+         %40 = OpFunctionCall %void %textureStore_d73b5c
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureStore_d73b5c
+         %42 = OpLabel
+         %43 = OpFunctionCall %void %textureStore_d73b5c
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/d73b5c.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/d73b5c.wgsl.expected.wgsl
index b5c5458..9509d8c 100644
--- a/test/tint/builtins/gen/var/textureStore/d73b5c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/d73b5c.wgsl.expected.wgsl
@@ -2,7 +2,7 @@
 
 fn textureStore_d73b5c() {
   var arg_1 = 1i;
-  var arg_2 = vec4<i32>();
+  var arg_2 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/d82b0a.wgsl b/test/tint/builtins/gen/var/textureStore/d82b0a.wgsl
index 14bffb5..6841e09 100644
--- a/test/tint/builtins/gen/var/textureStore/d82b0a.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/d82b0a.wgsl
@@ -24,8 +24,8 @@
 
 // fn textureStore(texture: texture_storage_3d<rg32sint, write>, coords: vec3<u32>, value: vec4<i32>)
 fn textureStore_d82b0a() {
-  var arg_1 = vec3<u32>();
-  var arg_2 = vec4<i32>();
+  var arg_1 = vec3<u32>(1u);
+  var arg_2 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/d82b0a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/d82b0a.wgsl.expected.dxc.hlsl
index f01ea8b..ea9cc97 100644
--- a/test/tint/builtins/gen/var/textureStore/d82b0a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/d82b0a.wgsl.expected.dxc.hlsl
@@ -1,8 +1,8 @@
 RWTexture3D<int4> arg_0 : register(u0, space1);
 
 void textureStore_d82b0a() {
-  uint3 arg_1 = (0u).xxx;
-  int4 arg_2 = (0).xxxx;
+  uint3 arg_1 = (1u).xxx;
+  int4 arg_2 = (1).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/d82b0a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/d82b0a.wgsl.expected.fxc.hlsl
index f01ea8b..ea9cc97 100644
--- a/test/tint/builtins/gen/var/textureStore/d82b0a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/d82b0a.wgsl.expected.fxc.hlsl
@@ -1,8 +1,8 @@
 RWTexture3D<int4> arg_0 : register(u0, space1);
 
 void textureStore_d82b0a() {
-  uint3 arg_1 = (0u).xxx;
-  int4 arg_2 = (0).xxxx;
+  uint3 arg_1 = (1u).xxx;
+  int4 arg_2 = (1).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/d82b0a.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/d82b0a.wgsl.expected.msl
index edc5f9a..e81fb99 100644
--- a/test/tint/builtins/gen/var/textureStore/d82b0a.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/d82b0a.wgsl.expected.msl
@@ -2,8 +2,8 @@
 
 using namespace metal;
 void textureStore_d82b0a(texture3d<int, access::write> tint_symbol_1) {
-  uint3 arg_1 = uint3(0u);
-  int4 arg_2 = int4(0);
+  uint3 arg_1 = uint3(1u);
+  int4 arg_2 = int4(1);
   tint_symbol_1.write(arg_2, uint3(arg_1));
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/d82b0a.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/d82b0a.wgsl.expected.spvasm
index 9e0a95c..f4e3cee 100644
--- a/test/tint/builtins/gen/var/textureStore/d82b0a.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/d82b0a.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 48
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
@@ -42,44 +42,48 @@
          %13 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
-         %19 = OpConstantNull %v3uint
+     %uint_1 = OpConstant %uint 1
+         %20 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
 %_ptr_Function_v3uint = OpTypePointer Function %v3uint
+         %23 = OpConstantNull %v3uint
       %v4int = OpTypeVector %int 4
-         %23 = OpConstantNull %v4int
+      %int_1 = OpConstant %int 1
+         %26 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %30 = OpTypeFunction %v4float
+         %29 = OpConstantNull %v4int
+         %34 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_d82b0a = OpFunction %void None %13
          %16 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v3uint Function %19
-      %arg_2 = OpVariable %_ptr_Function_v4int Function %23
-               OpStore %arg_1 %19
-               OpStore %arg_2 %23
-         %27 = OpLoad %11 %arg_0
-         %28 = OpLoad %v3uint %arg_1
-         %29 = OpLoad %v4int %arg_2
-               OpImageWrite %27 %28 %29
+      %arg_1 = OpVariable %_ptr_Function_v3uint Function %23
+      %arg_2 = OpVariable %_ptr_Function_v4int Function %29
+               OpStore %arg_1 %20
+               OpStore %arg_2 %26
+         %31 = OpLoad %11 %arg_0
+         %32 = OpLoad %v3uint %arg_1
+         %33 = OpLoad %v4int %arg_2
+               OpImageWrite %31 %32 %33
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %30
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_d82b0a
+%vertex_main_inner = OpFunction %v4float None %34
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureStore_d82b0a
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %36
+         %39 = OpLabel
+         %40 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %40
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_d82b0a
+         %43 = OpLabel
+         %44 = OpFunctionCall %void %textureStore_d82b0a
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_d82b0a
+         %46 = OpLabel
+         %47 = OpFunctionCall %void %textureStore_d82b0a
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/d82b0a.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/d82b0a.wgsl.expected.wgsl
index db0d94f..8d992f8 100644
--- a/test/tint/builtins/gen/var/textureStore/d82b0a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/d82b0a.wgsl.expected.wgsl
@@ -1,8 +1,8 @@
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rg32sint, write>;
 
 fn textureStore_d82b0a() {
-  var arg_1 = vec3<u32>();
-  var arg_2 = vec4<i32>();
+  var arg_1 = vec3<u32>(1u);
+  var arg_2 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/db92a2.wgsl b/test/tint/builtins/gen/var/textureStore/db92a2.wgsl
index 38c407e..a5df6eb 100644
--- a/test/tint/builtins/gen/var/textureStore/db92a2.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/db92a2.wgsl
@@ -24,8 +24,8 @@
 
 // fn textureStore(texture: texture_storage_2d<rgba16uint, write>, coords: vec2<u32>, value: vec4<u32>)
 fn textureStore_db92a2() {
-  var arg_1 = vec2<u32>();
-  var arg_2 = vec4<u32>();
+  var arg_1 = vec2<u32>(1u);
+  var arg_2 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/db92a2.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/db92a2.wgsl.expected.dxc.hlsl
index 554bd67..992e579 100644
--- a/test/tint/builtins/gen/var/textureStore/db92a2.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/db92a2.wgsl.expected.dxc.hlsl
@@ -1,8 +1,8 @@
 RWTexture2D<uint4> arg_0 : register(u0, space1);
 
 void textureStore_db92a2() {
-  uint2 arg_1 = (0u).xx;
-  uint4 arg_2 = (0u).xxxx;
+  uint2 arg_1 = (1u).xx;
+  uint4 arg_2 = (1u).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/db92a2.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/db92a2.wgsl.expected.fxc.hlsl
index 554bd67..992e579 100644
--- a/test/tint/builtins/gen/var/textureStore/db92a2.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/db92a2.wgsl.expected.fxc.hlsl
@@ -1,8 +1,8 @@
 RWTexture2D<uint4> arg_0 : register(u0, space1);
 
 void textureStore_db92a2() {
-  uint2 arg_1 = (0u).xx;
-  uint4 arg_2 = (0u).xxxx;
+  uint2 arg_1 = (1u).xx;
+  uint4 arg_2 = (1u).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/db92a2.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/db92a2.wgsl.expected.glsl
index 26e0bf5..c4cb3ba 100644
--- a/test/tint/builtins/gen/var/textureStore/db92a2.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/db92a2.wgsl.expected.glsl
@@ -2,8 +2,8 @@
 
 layout(rgba16ui) uniform highp writeonly uimage2D arg_0;
 void textureStore_db92a2() {
-  uvec2 arg_1 = uvec2(0u);
-  uvec4 arg_2 = uvec4(0u);
+  uvec2 arg_1 = uvec2(1u);
+  uvec4 arg_2 = uvec4(1u);
   imageStore(arg_0, ivec2(arg_1), arg_2);
 }
 
@@ -25,8 +25,8 @@
 
 layout(rgba16ui) uniform highp writeonly uimage2D arg_0;
 void textureStore_db92a2() {
-  uvec2 arg_1 = uvec2(0u);
-  uvec4 arg_2 = uvec4(0u);
+  uvec2 arg_1 = uvec2(1u);
+  uvec4 arg_2 = uvec4(1u);
   imageStore(arg_0, ivec2(arg_1), arg_2);
 }
 
@@ -42,8 +42,8 @@
 
 layout(rgba16ui) uniform highp writeonly uimage2D arg_0;
 void textureStore_db92a2() {
-  uvec2 arg_1 = uvec2(0u);
-  uvec4 arg_2 = uvec4(0u);
+  uvec2 arg_1 = uvec2(1u);
+  uvec4 arg_2 = uvec4(1u);
   imageStore(arg_0, ivec2(arg_1), arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/db92a2.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/db92a2.wgsl.expected.msl
index 71a107a..789c06b 100644
--- a/test/tint/builtins/gen/var/textureStore/db92a2.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/db92a2.wgsl.expected.msl
@@ -2,8 +2,8 @@
 
 using namespace metal;
 void textureStore_db92a2(texture2d<uint, access::write> tint_symbol_1) {
-  uint2 arg_1 = uint2(0u);
-  uint4 arg_2 = uint4(0u);
+  uint2 arg_1 = uint2(1u);
+  uint4 arg_2 = uint4(1u);
   tint_symbol_1.write(arg_2, uint2(arg_1));
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/db92a2.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/db92a2.wgsl.expected.spvasm
index 7a570ae..400c092 100644
--- a/test/tint/builtins/gen/var/textureStore/db92a2.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/db92a2.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 43
+; Bound: 46
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -40,44 +40,47 @@
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
      %v2uint = OpTypeVector %uint 2
-         %18 = OpConstantNull %v2uint
+     %uint_1 = OpConstant %uint 1
+         %19 = OpConstantComposite %v2uint %uint_1 %uint_1
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
+         %22 = OpConstantNull %v2uint
      %v4uint = OpTypeVector %uint 4
-         %22 = OpConstantNull %v4uint
+         %24 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %29 = OpTypeFunction %v4float
+         %27 = OpConstantNull %v4uint
+         %32 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_db92a2 = OpFunction %void None %13
          %16 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2uint Function %18
-      %arg_2 = OpVariable %_ptr_Function_v4uint Function %22
-               OpStore %arg_1 %18
-               OpStore %arg_2 %22
-         %26 = OpLoad %11 %arg_0
-         %27 = OpLoad %v2uint %arg_1
-         %28 = OpLoad %v4uint %arg_2
-               OpImageWrite %26 %27 %28
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %22
+      %arg_2 = OpVariable %_ptr_Function_v4uint Function %27
+               OpStore %arg_1 %19
+               OpStore %arg_2 %24
+         %29 = OpLoad %11 %arg_0
+         %30 = OpLoad %v2uint %arg_1
+         %31 = OpLoad %v4uint %arg_2
+               OpImageWrite %29 %30 %31
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %29
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %textureStore_db92a2
+%vertex_main_inner = OpFunction %v4float None %32
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %textureStore_db92a2
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %34 = OpLabel
-         %35 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %35
+         %37 = OpLabel
+         %38 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %38
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureStore_db92a2
+         %41 = OpLabel
+         %42 = OpFunctionCall %void %textureStore_db92a2
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureStore_db92a2
+         %44 = OpLabel
+         %45 = OpFunctionCall %void %textureStore_db92a2
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/db92a2.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/db92a2.wgsl.expected.wgsl
index 8754246..e6af452 100644
--- a/test/tint/builtins/gen/var/textureStore/db92a2.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/db92a2.wgsl.expected.wgsl
@@ -1,8 +1,8 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba16uint, write>;
 
 fn textureStore_db92a2() {
-  var arg_1 = vec2<u32>();
-  var arg_2 = vec4<u32>();
+  var arg_1 = vec2<u32>(1u);
+  var arg_2 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/dd7d81.wgsl b/test/tint/builtins/gen/var/textureStore/dd7d81.wgsl
index a026e43..79fbb32 100644
--- a/test/tint/builtins/gen/var/textureStore/dd7d81.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/dd7d81.wgsl
@@ -24,8 +24,8 @@
 
 // fn textureStore(texture: texture_storage_3d<rgba8snorm, write>, coords: vec3<i32>, value: vec4<f32>)
 fn textureStore_dd7d81() {
-  var arg_1 = vec3<i32>();
-  var arg_2 = vec4<f32>();
+  var arg_1 = vec3<i32>(1i);
+  var arg_2 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/dd7d81.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/dd7d81.wgsl.expected.dxc.hlsl
index 303f614..c632f94 100644
--- a/test/tint/builtins/gen/var/textureStore/dd7d81.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/dd7d81.wgsl.expected.dxc.hlsl
@@ -1,8 +1,8 @@
 RWTexture3D<float4> arg_0 : register(u0, space1);
 
 void textureStore_dd7d81() {
-  int3 arg_1 = (0).xxx;
-  float4 arg_2 = (0.0f).xxxx;
+  int3 arg_1 = (1).xxx;
+  float4 arg_2 = (1.0f).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/dd7d81.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/dd7d81.wgsl.expected.fxc.hlsl
index 303f614..c632f94 100644
--- a/test/tint/builtins/gen/var/textureStore/dd7d81.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/dd7d81.wgsl.expected.fxc.hlsl
@@ -1,8 +1,8 @@
 RWTexture3D<float4> arg_0 : register(u0, space1);
 
 void textureStore_dd7d81() {
-  int3 arg_1 = (0).xxx;
-  float4 arg_2 = (0.0f).xxxx;
+  int3 arg_1 = (1).xxx;
+  float4 arg_2 = (1.0f).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/dd7d81.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/dd7d81.wgsl.expected.glsl
index 2a86984..60fac80 100644
--- a/test/tint/builtins/gen/var/textureStore/dd7d81.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/dd7d81.wgsl.expected.glsl
@@ -2,8 +2,8 @@
 
 layout(rgba8_snorm) uniform highp writeonly image3D arg_0;
 void textureStore_dd7d81() {
-  ivec3 arg_1 = ivec3(0);
-  vec4 arg_2 = vec4(0.0f);
+  ivec3 arg_1 = ivec3(1);
+  vec4 arg_2 = vec4(1.0f);
   imageStore(arg_0, arg_1, arg_2);
 }
 
@@ -25,8 +25,8 @@
 
 layout(rgba8_snorm) uniform highp writeonly image3D arg_0;
 void textureStore_dd7d81() {
-  ivec3 arg_1 = ivec3(0);
-  vec4 arg_2 = vec4(0.0f);
+  ivec3 arg_1 = ivec3(1);
+  vec4 arg_2 = vec4(1.0f);
   imageStore(arg_0, arg_1, arg_2);
 }
 
@@ -42,8 +42,8 @@
 
 layout(rgba8_snorm) uniform highp writeonly image3D arg_0;
 void textureStore_dd7d81() {
-  ivec3 arg_1 = ivec3(0);
-  vec4 arg_2 = vec4(0.0f);
+  ivec3 arg_1 = ivec3(1);
+  vec4 arg_2 = vec4(1.0f);
   imageStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/dd7d81.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/dd7d81.wgsl.expected.msl
index e87f2ed..30a6239 100644
--- a/test/tint/builtins/gen/var/textureStore/dd7d81.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/dd7d81.wgsl.expected.msl
@@ -2,8 +2,8 @@
 
 using namespace metal;
 void textureStore_dd7d81(texture3d<float, access::write> tint_symbol_1) {
-  int3 arg_1 = int3(0);
-  float4 arg_2 = float4(0.0f);
+  int3 arg_1 = int3(1);
+  float4 arg_2 = float4(1.0f);
   tint_symbol_1.write(arg_2, uint3(arg_1));
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/dd7d81.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/dd7d81.wgsl.expected.spvasm
index 8e21c4c..ff057ab 100644
--- a/test/tint/builtins/gen/var/textureStore/dd7d81.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/dd7d81.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 41
+; Bound: 44
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -40,42 +40,45 @@
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
-         %18 = OpConstantNull %v3int
+      %int_1 = OpConstant %int 1
+         %19 = OpConstantComposite %v3int %int_1 %int_1 %int_1
 %_ptr_Function_v3int = OpTypePointer Function %v3int
-%_ptr_Function_v4float = OpTypePointer Function %v4float
-         %27 = OpTypeFunction %v4float
+         %22 = OpConstantNull %v3int
     %float_1 = OpConstant %float 1
+         %24 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%_ptr_Function_v4float = OpTypePointer Function %v4float
+         %31 = OpTypeFunction %v4float
 %textureStore_dd7d81 = OpFunction %void None %12
          %15 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v3int Function %18
+      %arg_1 = OpVariable %_ptr_Function_v3int Function %22
       %arg_2 = OpVariable %_ptr_Function_v4float Function %5
-               OpStore %arg_1 %18
-               OpStore %arg_2 %5
-         %24 = OpLoad %11 %arg_0
-         %25 = OpLoad %v3int %arg_1
-         %26 = OpLoad %v4float %arg_2
-               OpImageWrite %24 %25 %26
+               OpStore %arg_1 %19
+               OpStore %arg_2 %24
+         %28 = OpLoad %11 %arg_0
+         %29 = OpLoad %v3int %arg_1
+         %30 = OpLoad %v4float %arg_2
+               OpImageWrite %28 %29 %30
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %27
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %textureStore_dd7d81
+%vertex_main_inner = OpFunction %v4float None %31
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureStore_dd7d81
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %32 = OpLabel
-         %33 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %33
+         %36 = OpLabel
+         %37 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %37
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_dd7d81
+         %39 = OpLabel
+         %40 = OpFunctionCall %void %textureStore_dd7d81
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_dd7d81
+         %42 = OpLabel
+         %43 = OpFunctionCall %void %textureStore_dd7d81
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/dd7d81.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/dd7d81.wgsl.expected.wgsl
index 812587c..dfe4f3c 100644
--- a/test/tint/builtins/gen/var/textureStore/dd7d81.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/dd7d81.wgsl.expected.wgsl
@@ -1,8 +1,8 @@
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rgba8snorm, write>;
 
 fn textureStore_dd7d81() {
-  var arg_1 = vec3<i32>();
-  var arg_2 = vec4<f32>();
+  var arg_1 = vec3<i32>(1i);
+  var arg_2 = vec4<f32>(1.0f);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/dde364.wgsl b/test/tint/builtins/gen/var/textureStore/dde364.wgsl
index 29a96ad..5796c71 100644
--- a/test/tint/builtins/gen/var/textureStore/dde364.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/dde364.wgsl
@@ -24,9 +24,9 @@
 
 // fn textureStore(texture: texture_storage_2d_array<rg32uint, write>, coords: vec2<i32>, array_index: i32, value: vec4<u32>)
 fn textureStore_dde364() {
-  var arg_1 = vec2<i32>();
+  var arg_1 = vec2<i32>(1i);
   var arg_2 = 1i;
-  var arg_3 = vec4<u32>();
+  var arg_3 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/dde364.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/dde364.wgsl.expected.dxc.hlsl
index 8bda58b..c51681f 100644
--- a/test/tint/builtins/gen/var/textureStore/dde364.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/dde364.wgsl.expected.dxc.hlsl
@@ -1,9 +1,9 @@
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 void textureStore_dde364() {
-  int2 arg_1 = (0).xx;
+  int2 arg_1 = (1).xx;
   int arg_2 = 1;
-  uint4 arg_3 = (0u).xxxx;
+  uint4 arg_3 = (1u).xxxx;
   arg_0[int3(arg_1, arg_2)] = arg_3;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/dde364.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/dde364.wgsl.expected.fxc.hlsl
index 8bda58b..c51681f 100644
--- a/test/tint/builtins/gen/var/textureStore/dde364.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/dde364.wgsl.expected.fxc.hlsl
@@ -1,9 +1,9 @@
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 void textureStore_dde364() {
-  int2 arg_1 = (0).xx;
+  int2 arg_1 = (1).xx;
   int arg_2 = 1;
-  uint4 arg_3 = (0u).xxxx;
+  uint4 arg_3 = (1u).xxxx;
   arg_0[int3(arg_1, arg_2)] = arg_3;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/dde364.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/dde364.wgsl.expected.msl
index 8ac8d03..6073ae5 100644
--- a/test/tint/builtins/gen/var/textureStore/dde364.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/dde364.wgsl.expected.msl
@@ -2,9 +2,9 @@
 
 using namespace metal;
 void textureStore_dde364(texture2d_array<uint, access::write> tint_symbol_1) {
-  int2 arg_1 = int2(0);
+  int2 arg_1 = int2(1);
   int arg_2 = 1;
-  uint4 arg_3 = uint4(0u);
+  uint4 arg_3 = uint4(1u);
   tint_symbol_1.write(arg_3, uint2(arg_1), arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/dde364.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/dde364.wgsl.expected.spvasm
index 39505fa..84e5b5f 100644
--- a/test/tint/builtins/gen/var/textureStore/dde364.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/dde364.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 53
+; Bound: 56
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
@@ -43,54 +43,57 @@
          %13 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
-         %19 = OpConstantNull %v2int
-%_ptr_Function_v2int = OpTypePointer Function %v2int
       %int_1 = OpConstant %int 1
+         %20 = OpConstantComposite %v2int %int_1 %int_1
+%_ptr_Function_v2int = OpTypePointer Function %v2int
+         %23 = OpConstantNull %v2int
 %_ptr_Function_int = OpTypePointer Function %int
-         %25 = OpConstantNull %int
+         %26 = OpConstantNull %int
      %v4uint = OpTypeVector %uint 4
-         %27 = OpConstantNull %v4uint
+     %uint_1 = OpConstant %uint 1
+         %29 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
+         %32 = OpConstantNull %v4uint
       %v3int = OpTypeVector %int 3
-         %39 = OpTypeFunction %v4float
+         %42 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_dde364 = OpFunction %void None %13
          %16 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2int Function %19
-      %arg_2 = OpVariable %_ptr_Function_int Function %25
-      %arg_3 = OpVariable %_ptr_Function_v4uint Function %27
-               OpStore %arg_1 %19
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %23
+      %arg_2 = OpVariable %_ptr_Function_int Function %26
+      %arg_3 = OpVariable %_ptr_Function_v4uint Function %32
+               OpStore %arg_1 %20
                OpStore %arg_2 %int_1
-               OpStore %arg_3 %27
-         %31 = OpLoad %11 %arg_0
-         %33 = OpLoad %v2int %arg_1
-         %34 = OpCompositeExtract %int %33 0
-         %35 = OpCompositeExtract %int %33 1
-         %36 = OpLoad %int %arg_2
-         %37 = OpCompositeConstruct %v3int %34 %35 %36
-         %38 = OpLoad %v4uint %arg_3
-               OpImageWrite %31 %37 %38
+               OpStore %arg_3 %29
+         %34 = OpLoad %11 %arg_0
+         %36 = OpLoad %v2int %arg_1
+         %37 = OpCompositeExtract %int %36 0
+         %38 = OpCompositeExtract %int %36 1
+         %39 = OpLoad %int %arg_2
+         %40 = OpCompositeConstruct %v3int %37 %38 %39
+         %41 = OpLoad %v4uint %arg_3
+               OpImageWrite %34 %40 %41
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %39
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureStore_dde364
+%vertex_main_inner = OpFunction %v4float None %42
+         %44 = OpLabel
+         %45 = OpFunctionCall %void %textureStore_dde364
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %44 = OpLabel
-         %45 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %45
+         %47 = OpLabel
+         %48 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %48
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %48 = OpLabel
-         %49 = OpFunctionCall %void %textureStore_dde364
+         %51 = OpLabel
+         %52 = OpFunctionCall %void %textureStore_dde364
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %51 = OpLabel
-         %52 = OpFunctionCall %void %textureStore_dde364
+         %54 = OpLabel
+         %55 = OpFunctionCall %void %textureStore_dde364
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/dde364.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/dde364.wgsl.expected.wgsl
index f9ea808..7ac5a16 100644
--- a/test/tint/builtins/gen/var/textureStore/dde364.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/dde364.wgsl.expected.wgsl
@@ -1,9 +1,9 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rg32uint, write>;
 
 fn textureStore_dde364() {
-  var arg_1 = vec2<i32>();
+  var arg_1 = vec2<i32>(1i);
   var arg_2 = 1i;
-  var arg_3 = vec4<u32>();
+  var arg_3 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/de4b94.wgsl b/test/tint/builtins/gen/var/textureStore/de4b94.wgsl
index 74eb6ce..3bd65d2 100644
--- a/test/tint/builtins/gen/var/textureStore/de4b94.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/de4b94.wgsl
@@ -25,7 +25,7 @@
 // fn textureStore(texture: texture_storage_1d<r32sint, write>, coords: u32, value: vec4<i32>)
 fn textureStore_de4b94() {
   var arg_1 = 1u;
-  var arg_2 = vec4<i32>();
+  var arg_2 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/de4b94.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/de4b94.wgsl.expected.dxc.hlsl
index 298f0d2..66c4a17 100644
--- a/test/tint/builtins/gen/var/textureStore/de4b94.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/de4b94.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 
 void textureStore_de4b94() {
   uint arg_1 = 1u;
-  int4 arg_2 = (0).xxxx;
+  int4 arg_2 = (1).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/de4b94.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/de4b94.wgsl.expected.fxc.hlsl
index 298f0d2..66c4a17 100644
--- a/test/tint/builtins/gen/var/textureStore/de4b94.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/de4b94.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 
 void textureStore_de4b94() {
   uint arg_1 = 1u;
-  int4 arg_2 = (0).xxxx;
+  int4 arg_2 = (1).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/de4b94.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/de4b94.wgsl.expected.msl
index 92bf211..f02fdc7 100644
--- a/test/tint/builtins/gen/var/textureStore/de4b94.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/de4b94.wgsl.expected.msl
@@ -3,7 +3,7 @@
 using namespace metal;
 void textureStore_de4b94(texture1d<int, access::write> tint_symbol_1) {
   uint arg_1 = 1u;
-  int4 arg_2 = int4(0);
+  int4 arg_2 = int4(1);
   tint_symbol_1.write(arg_2, uint(arg_1));
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/de4b94.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/de4b94.wgsl.expected.spvasm
index 4d60d83..e306fb9 100644
--- a/test/tint/builtins/gen/var/textureStore/de4b94.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/de4b94.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 46
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
@@ -45,41 +45,43 @@
 %_ptr_Function_uint = OpTypePointer Function %uint
          %21 = OpConstantNull %uint
       %v4int = OpTypeVector %int 4
-         %23 = OpConstantNull %v4int
+      %int_1 = OpConstant %int 1
+         %24 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %30 = OpTypeFunction %v4float
+         %27 = OpConstantNull %v4int
+         %32 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_de4b94 = OpFunction %void None %13
          %16 = OpLabel
       %arg_1 = OpVariable %_ptr_Function_uint Function %21
-      %arg_2 = OpVariable %_ptr_Function_v4int Function %23
+      %arg_2 = OpVariable %_ptr_Function_v4int Function %27
                OpStore %arg_1 %uint_1
-               OpStore %arg_2 %23
-         %27 = OpLoad %11 %arg_0
-         %28 = OpLoad %uint %arg_1
-         %29 = OpLoad %v4int %arg_2
-               OpImageWrite %27 %28 %29
+               OpStore %arg_2 %24
+         %29 = OpLoad %11 %arg_0
+         %30 = OpLoad %uint %arg_1
+         %31 = OpLoad %v4int %arg_2
+               OpImageWrite %29 %30 %31
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %30
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_de4b94
+%vertex_main_inner = OpFunction %v4float None %32
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %textureStore_de4b94
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %36
+         %37 = OpLabel
+         %38 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %38
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_de4b94
+         %41 = OpLabel
+         %42 = OpFunctionCall %void %textureStore_de4b94
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_de4b94
+         %44 = OpLabel
+         %45 = OpFunctionCall %void %textureStore_de4b94
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/de4b94.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/de4b94.wgsl.expected.wgsl
index 112c6b8..98cdbb0 100644
--- a/test/tint/builtins/gen/var/textureStore/de4b94.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/de4b94.wgsl.expected.wgsl
@@ -2,7 +2,7 @@
 
 fn textureStore_de4b94() {
   var arg_1 = 1u;
-  var arg_2 = vec4<i32>();
+  var arg_2 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/df2ca4.wgsl b/test/tint/builtins/gen/var/textureStore/df2ca4.wgsl
index 7d52fc2..b03549c 100644
--- a/test/tint/builtins/gen/var/textureStore/df2ca4.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/df2ca4.wgsl
@@ -24,9 +24,9 @@
 
 // fn textureStore(texture: texture_storage_2d_array<r32float, write>, coords: vec2<i32>, array_index: u32, value: vec4<f32>)
 fn textureStore_df2ca4() {
-  var arg_1 = vec2<i32>();
+  var arg_1 = vec2<i32>(1i);
   var arg_2 = 1u;
-  var arg_3 = vec4<f32>();
+  var arg_3 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/df2ca4.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/df2ca4.wgsl.expected.dxc.hlsl
index 46b5844..1dfaf0f 100644
--- a/test/tint/builtins/gen/var/textureStore/df2ca4.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/df2ca4.wgsl.expected.dxc.hlsl
@@ -1,9 +1,9 @@
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 void textureStore_df2ca4() {
-  int2 arg_1 = (0).xx;
+  int2 arg_1 = (1).xx;
   uint arg_2 = 1u;
-  float4 arg_3 = (0.0f).xxxx;
+  float4 arg_3 = (1.0f).xxxx;
   arg_0[int3(arg_1, int(arg_2))] = arg_3;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/df2ca4.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/df2ca4.wgsl.expected.fxc.hlsl
index 46b5844..1dfaf0f 100644
--- a/test/tint/builtins/gen/var/textureStore/df2ca4.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/df2ca4.wgsl.expected.fxc.hlsl
@@ -1,9 +1,9 @@
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 void textureStore_df2ca4() {
-  int2 arg_1 = (0).xx;
+  int2 arg_1 = (1).xx;
   uint arg_2 = 1u;
-  float4 arg_3 = (0.0f).xxxx;
+  float4 arg_3 = (1.0f).xxxx;
   arg_0[int3(arg_1, int(arg_2))] = arg_3;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/df2ca4.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/df2ca4.wgsl.expected.glsl
index e7547d3..047cb16 100644
--- a/test/tint/builtins/gen/var/textureStore/df2ca4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/df2ca4.wgsl.expected.glsl
@@ -2,9 +2,9 @@
 
 layout(r32f) uniform highp writeonly image2DArray arg_0;
 void textureStore_df2ca4() {
-  ivec2 arg_1 = ivec2(0);
+  ivec2 arg_1 = ivec2(1);
   uint arg_2 = 1u;
-  vec4 arg_3 = vec4(0.0f);
+  vec4 arg_3 = vec4(1.0f);
   imageStore(arg_0, ivec3(arg_1, int(arg_2)), arg_3);
 }
 
@@ -26,9 +26,9 @@
 
 layout(r32f) uniform highp writeonly image2DArray arg_0;
 void textureStore_df2ca4() {
-  ivec2 arg_1 = ivec2(0);
+  ivec2 arg_1 = ivec2(1);
   uint arg_2 = 1u;
-  vec4 arg_3 = vec4(0.0f);
+  vec4 arg_3 = vec4(1.0f);
   imageStore(arg_0, ivec3(arg_1, int(arg_2)), arg_3);
 }
 
@@ -44,9 +44,9 @@
 
 layout(r32f) uniform highp writeonly image2DArray arg_0;
 void textureStore_df2ca4() {
-  ivec2 arg_1 = ivec2(0);
+  ivec2 arg_1 = ivec2(1);
   uint arg_2 = 1u;
-  vec4 arg_3 = vec4(0.0f);
+  vec4 arg_3 = vec4(1.0f);
   imageStore(arg_0, ivec3(arg_1, int(arg_2)), arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/df2ca4.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/df2ca4.wgsl.expected.msl
index d3eea8d..633b3cf 100644
--- a/test/tint/builtins/gen/var/textureStore/df2ca4.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/df2ca4.wgsl.expected.msl
@@ -2,9 +2,9 @@
 
 using namespace metal;
 void textureStore_df2ca4(texture2d_array<float, access::write> tint_symbol_1) {
-  int2 arg_1 = int2(0);
+  int2 arg_1 = int2(1);
   uint arg_2 = 1u;
-  float4 arg_3 = float4(0.0f);
+  float4 arg_3 = float4(1.0f);
   tint_symbol_1.write(arg_3, uint2(arg_1), arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/df2ca4.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/df2ca4.wgsl.expected.spvasm
index 90f4c06..aa53658 100644
--- a/test/tint/builtins/gen/var/textureStore/df2ca4.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/df2ca4.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 52
+; Bound: 55
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -41,54 +41,57 @@
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
-         %18 = OpConstantNull %v2int
+      %int_1 = OpConstant %int 1
+         %19 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v2int = OpTypePointer Function %v2int
+         %22 = OpConstantNull %v2int
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %25 = OpConstantNull %uint
+         %27 = OpConstantNull %uint
+    %float_1 = OpConstant %float 1
+         %29 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
       %v3int = OpTypeVector %int 3
-         %38 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %42 = OpTypeFunction %v4float
 %textureStore_df2ca4 = OpFunction %void None %12
          %15 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2int Function %18
-      %arg_2 = OpVariable %_ptr_Function_uint Function %25
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %22
+      %arg_2 = OpVariable %_ptr_Function_uint Function %27
       %arg_3 = OpVariable %_ptr_Function_v4float Function %5
-               OpStore %arg_1 %18
+               OpStore %arg_1 %19
                OpStore %arg_2 %uint_1
-               OpStore %arg_3 %5
-         %29 = OpLoad %11 %arg_0
-         %31 = OpLoad %v2int %arg_1
-         %32 = OpCompositeExtract %int %31 0
-         %33 = OpCompositeExtract %int %31 1
-         %35 = OpLoad %uint %arg_2
-         %34 = OpBitcast %int %35
-         %36 = OpCompositeConstruct %v3int %32 %33 %34
-         %37 = OpLoad %v4float %arg_3
-               OpImageWrite %29 %36 %37
+               OpStore %arg_3 %29
+         %33 = OpLoad %11 %arg_0
+         %35 = OpLoad %v2int %arg_1
+         %36 = OpCompositeExtract %int %35 0
+         %37 = OpCompositeExtract %int %35 1
+         %39 = OpLoad %uint %arg_2
+         %38 = OpBitcast %int %39
+         %40 = OpCompositeConstruct %v3int %36 %37 %38
+         %41 = OpLoad %v4float %arg_3
+               OpImageWrite %33 %40 %41
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %38
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureStore_df2ca4
+%vertex_main_inner = OpFunction %v4float None %42
+         %44 = OpLabel
+         %45 = OpFunctionCall %void %textureStore_df2ca4
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %43 = OpLabel
-         %44 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %44
+         %47 = OpLabel
+         %48 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %48
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %47 = OpLabel
-         %48 = OpFunctionCall %void %textureStore_df2ca4
+         %50 = OpLabel
+         %51 = OpFunctionCall %void %textureStore_df2ca4
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %50 = OpLabel
-         %51 = OpFunctionCall %void %textureStore_df2ca4
+         %53 = OpLabel
+         %54 = OpFunctionCall %void %textureStore_df2ca4
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/df2ca4.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/df2ca4.wgsl.expected.wgsl
index 60250cc..4775cc0 100644
--- a/test/tint/builtins/gen/var/textureStore/df2ca4.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/df2ca4.wgsl.expected.wgsl
@@ -1,9 +1,9 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<r32float, write>;
 
 fn textureStore_df2ca4() {
-  var arg_1 = vec2<i32>();
+  var arg_1 = vec2<i32>(1i);
   var arg_2 = 1u;
-  var arg_3 = vec4<f32>();
+  var arg_3 = vec4<f32>(1.0f);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/dfa9a1.wgsl b/test/tint/builtins/gen/var/textureStore/dfa9a1.wgsl
index f8595d4..8371fa3 100644
--- a/test/tint/builtins/gen/var/textureStore/dfa9a1.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/dfa9a1.wgsl
@@ -24,9 +24,9 @@
 
 // fn textureStore(texture: texture_storage_2d_array<rg32float, write>, coords: vec2<u32>, array_index: i32, value: vec4<f32>)
 fn textureStore_dfa9a1() {
-  var arg_1 = vec2<u32>();
+  var arg_1 = vec2<u32>(1u);
   var arg_2 = 1i;
-  var arg_3 = vec4<f32>();
+  var arg_3 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/dfa9a1.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/dfa9a1.wgsl.expected.dxc.hlsl
index 0342085..fef042f 100644
--- a/test/tint/builtins/gen/var/textureStore/dfa9a1.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/dfa9a1.wgsl.expected.dxc.hlsl
@@ -1,9 +1,9 @@
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 void textureStore_dfa9a1() {
-  uint2 arg_1 = (0u).xx;
+  uint2 arg_1 = (1u).xx;
   int arg_2 = 1;
-  float4 arg_3 = (0.0f).xxxx;
+  float4 arg_3 = (1.0f).xxxx;
   arg_0[uint3(arg_1, uint(arg_2))] = arg_3;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/dfa9a1.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/dfa9a1.wgsl.expected.fxc.hlsl
index 0342085..fef042f 100644
--- a/test/tint/builtins/gen/var/textureStore/dfa9a1.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/dfa9a1.wgsl.expected.fxc.hlsl
@@ -1,9 +1,9 @@
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 void textureStore_dfa9a1() {
-  uint2 arg_1 = (0u).xx;
+  uint2 arg_1 = (1u).xx;
   int arg_2 = 1;
-  float4 arg_3 = (0.0f).xxxx;
+  float4 arg_3 = (1.0f).xxxx;
   arg_0[uint3(arg_1, uint(arg_2))] = arg_3;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/dfa9a1.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/dfa9a1.wgsl.expected.msl
index 48961ca..3ed3139 100644
--- a/test/tint/builtins/gen/var/textureStore/dfa9a1.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/dfa9a1.wgsl.expected.msl
@@ -2,9 +2,9 @@
 
 using namespace metal;
 void textureStore_dfa9a1(texture2d_array<float, access::write> tint_symbol_1) {
-  uint2 arg_1 = uint2(0u);
+  uint2 arg_1 = uint2(1u);
   int arg_2 = 1;
-  float4 arg_3 = float4(0.0f);
+  float4 arg_3 = float4(1.0f);
   tint_symbol_1.write(arg_3, uint2(arg_1), arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/dfa9a1.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/dfa9a1.wgsl.expected.spvasm
index 1bf8a16..16fa8ef 100644
--- a/test/tint/builtins/gen/var/textureStore/dfa9a1.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/dfa9a1.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 52
+; Bound: 55
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
@@ -42,54 +42,57 @@
          %12 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
-         %18 = OpConstantNull %v2uint
+     %uint_1 = OpConstant %uint 1
+         %19 = OpConstantComposite %v2uint %uint_1 %uint_1
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
+         %22 = OpConstantNull %v2uint
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
-         %25 = OpConstantNull %int
+         %27 = OpConstantNull %int
+    %float_1 = OpConstant %float 1
+         %29 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
      %v3uint = OpTypeVector %uint 3
-         %38 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
+         %42 = OpTypeFunction %v4float
 %textureStore_dfa9a1 = OpFunction %void None %12
          %15 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2uint Function %18
-      %arg_2 = OpVariable %_ptr_Function_int Function %25
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %22
+      %arg_2 = OpVariable %_ptr_Function_int Function %27
       %arg_3 = OpVariable %_ptr_Function_v4float Function %5
-               OpStore %arg_1 %18
+               OpStore %arg_1 %19
                OpStore %arg_2 %int_1
-               OpStore %arg_3 %5
-         %29 = OpLoad %11 %arg_0
-         %31 = OpLoad %v2uint %arg_1
-         %32 = OpCompositeExtract %uint %31 0
-         %33 = OpCompositeExtract %uint %31 1
-         %35 = OpLoad %int %arg_2
-         %34 = OpBitcast %uint %35
-         %36 = OpCompositeConstruct %v3uint %32 %33 %34
-         %37 = OpLoad %v4float %arg_3
-               OpImageWrite %29 %36 %37
+               OpStore %arg_3 %29
+         %33 = OpLoad %11 %arg_0
+         %35 = OpLoad %v2uint %arg_1
+         %36 = OpCompositeExtract %uint %35 0
+         %37 = OpCompositeExtract %uint %35 1
+         %39 = OpLoad %int %arg_2
+         %38 = OpBitcast %uint %39
+         %40 = OpCompositeConstruct %v3uint %36 %37 %38
+         %41 = OpLoad %v4float %arg_3
+               OpImageWrite %33 %40 %41
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %38
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureStore_dfa9a1
+%vertex_main_inner = OpFunction %v4float None %42
+         %44 = OpLabel
+         %45 = OpFunctionCall %void %textureStore_dfa9a1
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %43 = OpLabel
-         %44 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %44
+         %47 = OpLabel
+         %48 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %48
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %47 = OpLabel
-         %48 = OpFunctionCall %void %textureStore_dfa9a1
+         %50 = OpLabel
+         %51 = OpFunctionCall %void %textureStore_dfa9a1
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %50 = OpLabel
-         %51 = OpFunctionCall %void %textureStore_dfa9a1
+         %53 = OpLabel
+         %54 = OpFunctionCall %void %textureStore_dfa9a1
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/dfa9a1.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/dfa9a1.wgsl.expected.wgsl
index f811438..b09f84a 100644
--- a/test/tint/builtins/gen/var/textureStore/dfa9a1.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/dfa9a1.wgsl.expected.wgsl
@@ -1,9 +1,9 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rg32float, write>;
 
 fn textureStore_dfa9a1() {
-  var arg_1 = vec2<u32>();
+  var arg_1 = vec2<u32>(1u);
   var arg_2 = 1i;
-  var arg_3 = vec4<f32>();
+  var arg_3 = vec4<f32>(1.0f);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/dffb13.wgsl b/test/tint/builtins/gen/var/textureStore/dffb13.wgsl
index 760a063..175a7f5 100644
--- a/test/tint/builtins/gen/var/textureStore/dffb13.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/dffb13.wgsl
@@ -24,9 +24,9 @@
 
 // fn textureStore(texture: texture_storage_2d_array<rg32uint, write>, coords: vec2<i32>, array_index: u32, value: vec4<u32>)
 fn textureStore_dffb13() {
-  var arg_1 = vec2<i32>();
+  var arg_1 = vec2<i32>(1i);
   var arg_2 = 1u;
-  var arg_3 = vec4<u32>();
+  var arg_3 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/dffb13.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/dffb13.wgsl.expected.dxc.hlsl
index 532d05c..ff6b8f4 100644
--- a/test/tint/builtins/gen/var/textureStore/dffb13.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/dffb13.wgsl.expected.dxc.hlsl
@@ -1,9 +1,9 @@
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 void textureStore_dffb13() {
-  int2 arg_1 = (0).xx;
+  int2 arg_1 = (1).xx;
   uint arg_2 = 1u;
-  uint4 arg_3 = (0u).xxxx;
+  uint4 arg_3 = (1u).xxxx;
   arg_0[int3(arg_1, int(arg_2))] = arg_3;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/dffb13.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/dffb13.wgsl.expected.fxc.hlsl
index 532d05c..ff6b8f4 100644
--- a/test/tint/builtins/gen/var/textureStore/dffb13.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/dffb13.wgsl.expected.fxc.hlsl
@@ -1,9 +1,9 @@
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 void textureStore_dffb13() {
-  int2 arg_1 = (0).xx;
+  int2 arg_1 = (1).xx;
   uint arg_2 = 1u;
-  uint4 arg_3 = (0u).xxxx;
+  uint4 arg_3 = (1u).xxxx;
   arg_0[int3(arg_1, int(arg_2))] = arg_3;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/dffb13.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/dffb13.wgsl.expected.msl
index 7218365..6d26bd7 100644
--- a/test/tint/builtins/gen/var/textureStore/dffb13.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/dffb13.wgsl.expected.msl
@@ -2,9 +2,9 @@
 
 using namespace metal;
 void textureStore_dffb13(texture2d_array<uint, access::write> tint_symbol_1) {
-  int2 arg_1 = int2(0);
+  int2 arg_1 = int2(1);
   uint arg_2 = 1u;
-  uint4 arg_3 = uint4(0u);
+  uint4 arg_3 = uint4(1u);
   tint_symbol_1.write(arg_3, uint2(arg_1), arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/dffb13.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/dffb13.wgsl.expected.spvasm
index 35fc43a..39fdc16 100644
--- a/test/tint/builtins/gen/var/textureStore/dffb13.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/dffb13.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 54
+; Bound: 57
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
@@ -43,55 +43,58 @@
          %13 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
-         %19 = OpConstantNull %v2int
+      %int_1 = OpConstant %int 1
+         %20 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v2int = OpTypePointer Function %v2int
+         %23 = OpConstantNull %v2int
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %25 = OpConstantNull %uint
+         %27 = OpConstantNull %uint
      %v4uint = OpTypeVector %uint 4
-         %27 = OpConstantNull %v4uint
+         %29 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
+         %32 = OpConstantNull %v4uint
       %v3int = OpTypeVector %int 3
-         %40 = OpTypeFunction %v4float
+         %43 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_dffb13 = OpFunction %void None %13
          %16 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2int Function %19
-      %arg_2 = OpVariable %_ptr_Function_uint Function %25
-      %arg_3 = OpVariable %_ptr_Function_v4uint Function %27
-               OpStore %arg_1 %19
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %23
+      %arg_2 = OpVariable %_ptr_Function_uint Function %27
+      %arg_3 = OpVariable %_ptr_Function_v4uint Function %32
+               OpStore %arg_1 %20
                OpStore %arg_2 %uint_1
-               OpStore %arg_3 %27
-         %31 = OpLoad %11 %arg_0
-         %33 = OpLoad %v2int %arg_1
-         %34 = OpCompositeExtract %int %33 0
-         %35 = OpCompositeExtract %int %33 1
-         %37 = OpLoad %uint %arg_2
-         %36 = OpBitcast %int %37
-         %38 = OpCompositeConstruct %v3int %34 %35 %36
-         %39 = OpLoad %v4uint %arg_3
-               OpImageWrite %31 %38 %39
+               OpStore %arg_3 %29
+         %34 = OpLoad %11 %arg_0
+         %36 = OpLoad %v2int %arg_1
+         %37 = OpCompositeExtract %int %36 0
+         %38 = OpCompositeExtract %int %36 1
+         %40 = OpLoad %uint %arg_2
+         %39 = OpBitcast %int %40
+         %41 = OpCompositeConstruct %v3int %37 %38 %39
+         %42 = OpLoad %v4uint %arg_3
+               OpImageWrite %34 %41 %42
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %40
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_dffb13
+%vertex_main_inner = OpFunction %v4float None %43
+         %45 = OpLabel
+         %46 = OpFunctionCall %void %textureStore_dffb13
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %45 = OpLabel
-         %46 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %46
+         %48 = OpLabel
+         %49 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %49
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %49 = OpLabel
-         %50 = OpFunctionCall %void %textureStore_dffb13
+         %52 = OpLabel
+         %53 = OpFunctionCall %void %textureStore_dffb13
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %52 = OpLabel
-         %53 = OpFunctionCall %void %textureStore_dffb13
+         %55 = OpLabel
+         %56 = OpFunctionCall %void %textureStore_dffb13
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/dffb13.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/dffb13.wgsl.expected.wgsl
index e3ba416..be48ae6 100644
--- a/test/tint/builtins/gen/var/textureStore/dffb13.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/dffb13.wgsl.expected.wgsl
@@ -1,9 +1,9 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rg32uint, write>;
 
 fn textureStore_dffb13() {
-  var arg_1 = vec2<i32>();
+  var arg_1 = vec2<i32>(1i);
   var arg_2 = 1u;
-  var arg_3 = vec4<u32>();
+  var arg_3 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/e7c6d8.wgsl b/test/tint/builtins/gen/var/textureStore/e7c6d8.wgsl
index c05dac5..c8fbc82 100644
--- a/test/tint/builtins/gen/var/textureStore/e7c6d8.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/e7c6d8.wgsl
@@ -25,7 +25,7 @@
 // fn textureStore(texture: texture_storage_1d<rgba8unorm, write>, coords: u32, value: vec4<f32>)
 fn textureStore_e7c6d8() {
   var arg_1 = 1u;
-  var arg_2 = vec4<f32>();
+  var arg_2 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/e7c6d8.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/e7c6d8.wgsl.expected.dxc.hlsl
index af74e51..c41266d 100644
--- a/test/tint/builtins/gen/var/textureStore/e7c6d8.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/e7c6d8.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 
 void textureStore_e7c6d8() {
   uint arg_1 = 1u;
-  float4 arg_2 = (0.0f).xxxx;
+  float4 arg_2 = (1.0f).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/e7c6d8.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/e7c6d8.wgsl.expected.fxc.hlsl
index af74e51..c41266d 100644
--- a/test/tint/builtins/gen/var/textureStore/e7c6d8.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/e7c6d8.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 
 void textureStore_e7c6d8() {
   uint arg_1 = 1u;
-  float4 arg_2 = (0.0f).xxxx;
+  float4 arg_2 = (1.0f).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/e7c6d8.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/e7c6d8.wgsl.expected.msl
index 9b202d0..5d63f1b 100644
--- a/test/tint/builtins/gen/var/textureStore/e7c6d8.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/e7c6d8.wgsl.expected.msl
@@ -3,7 +3,7 @@
 using namespace metal;
 void textureStore_e7c6d8(texture1d<float, access::write> tint_symbol_1) {
   uint arg_1 = 1u;
-  float4 arg_2 = float4(0.0f);
+  float4 arg_2 = float4(1.0f);
   tint_symbol_1.write(arg_2, uint(arg_1));
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/e7c6d8.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/e7c6d8.wgsl.expected.spvasm
index e7268c9..9e5c49a 100644
--- a/test/tint/builtins/gen/var/textureStore/e7c6d8.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/e7c6d8.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 41
+; Bound: 42
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
@@ -43,40 +43,41 @@
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
          %20 = OpConstantNull %uint
-%_ptr_Function_v4float = OpTypePointer Function %v4float
-         %27 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
+         %22 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%_ptr_Function_v4float = OpTypePointer Function %v4float
+         %29 = OpTypeFunction %v4float
 %textureStore_e7c6d8 = OpFunction %void None %12
          %15 = OpLabel
       %arg_1 = OpVariable %_ptr_Function_uint Function %20
       %arg_2 = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %uint_1
-               OpStore %arg_2 %5
-         %24 = OpLoad %11 %arg_0
-         %25 = OpLoad %uint %arg_1
-         %26 = OpLoad %v4float %arg_2
-               OpImageWrite %24 %25 %26
+               OpStore %arg_2 %22
+         %26 = OpLoad %11 %arg_0
+         %27 = OpLoad %uint %arg_1
+         %28 = OpLoad %v4float %arg_2
+               OpImageWrite %26 %27 %28
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %27
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %textureStore_e7c6d8
+%vertex_main_inner = OpFunction %v4float None %29
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %textureStore_e7c6d8
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %32 = OpLabel
-         %33 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %33
+         %34 = OpLabel
+         %35 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %35
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_e7c6d8
+         %37 = OpLabel
+         %38 = OpFunctionCall %void %textureStore_e7c6d8
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_e7c6d8
+         %40 = OpLabel
+         %41 = OpFunctionCall %void %textureStore_e7c6d8
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/e7c6d8.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/e7c6d8.wgsl.expected.wgsl
index 7815feb..3998c63 100644
--- a/test/tint/builtins/gen/var/textureStore/e7c6d8.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/e7c6d8.wgsl.expected.wgsl
@@ -2,7 +2,7 @@
 
 fn textureStore_e7c6d8() {
   var arg_1 = 1u;
-  var arg_2 = vec4<f32>();
+  var arg_2 = vec4<f32>(1.0f);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/e885e8.wgsl b/test/tint/builtins/gen/var/textureStore/e885e8.wgsl
index bc4a830..34b40f5 100644
--- a/test/tint/builtins/gen/var/textureStore/e885e8.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/e885e8.wgsl
@@ -25,7 +25,7 @@
 // fn textureStore(texture: texture_storage_1d<rgba16float, write>, coords: i32, value: vec4<f32>)
 fn textureStore_e885e8() {
   var arg_1 = 1i;
-  var arg_2 = vec4<f32>();
+  var arg_2 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/e885e8.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/e885e8.wgsl.expected.dxc.hlsl
index 3a6acf9..0cb3ecc 100644
--- a/test/tint/builtins/gen/var/textureStore/e885e8.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/e885e8.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 
 void textureStore_e885e8() {
   int arg_1 = 1;
-  float4 arg_2 = (0.0f).xxxx;
+  float4 arg_2 = (1.0f).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/e885e8.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/e885e8.wgsl.expected.fxc.hlsl
index 3a6acf9..0cb3ecc 100644
--- a/test/tint/builtins/gen/var/textureStore/e885e8.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/e885e8.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 
 void textureStore_e885e8() {
   int arg_1 = 1;
-  float4 arg_2 = (0.0f).xxxx;
+  float4 arg_2 = (1.0f).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/e885e8.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/e885e8.wgsl.expected.msl
index 67de77c..cdb58ca 100644
--- a/test/tint/builtins/gen/var/textureStore/e885e8.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/e885e8.wgsl.expected.msl
@@ -3,7 +3,7 @@
 using namespace metal;
 void textureStore_e885e8(texture1d<float, access::write> tint_symbol_1) {
   int arg_1 = 1;
-  float4 arg_2 = float4(0.0f);
+  float4 arg_2 = float4(1.0f);
   tint_symbol_1.write(arg_2, uint(arg_1));
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/e885e8.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/e885e8.wgsl.expected.spvasm
index de6672d..948a8a3 100644
--- a/test/tint/builtins/gen/var/textureStore/e885e8.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/e885e8.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 41
+; Bound: 42
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
@@ -43,40 +43,41 @@
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
          %20 = OpConstantNull %int
-%_ptr_Function_v4float = OpTypePointer Function %v4float
-         %27 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
+         %22 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%_ptr_Function_v4float = OpTypePointer Function %v4float
+         %29 = OpTypeFunction %v4float
 %textureStore_e885e8 = OpFunction %void None %12
          %15 = OpLabel
       %arg_1 = OpVariable %_ptr_Function_int Function %20
       %arg_2 = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %int_1
-               OpStore %arg_2 %5
-         %24 = OpLoad %11 %arg_0
-         %25 = OpLoad %int %arg_1
-         %26 = OpLoad %v4float %arg_2
-               OpImageWrite %24 %25 %26
+               OpStore %arg_2 %22
+         %26 = OpLoad %11 %arg_0
+         %27 = OpLoad %int %arg_1
+         %28 = OpLoad %v4float %arg_2
+               OpImageWrite %26 %27 %28
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %27
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %textureStore_e885e8
+%vertex_main_inner = OpFunction %v4float None %29
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %textureStore_e885e8
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %32 = OpLabel
-         %33 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %33
+         %34 = OpLabel
+         %35 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %35
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_e885e8
+         %37 = OpLabel
+         %38 = OpFunctionCall %void %textureStore_e885e8
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_e885e8
+         %40 = OpLabel
+         %41 = OpFunctionCall %void %textureStore_e885e8
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/e885e8.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/e885e8.wgsl.expected.wgsl
index 32e9ffd..3fcda8b 100644
--- a/test/tint/builtins/gen/var/textureStore/e885e8.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/e885e8.wgsl.expected.wgsl
@@ -2,7 +2,7 @@
 
 fn textureStore_e885e8() {
   var arg_1 = 1i;
-  var arg_2 = vec4<f32>();
+  var arg_2 = vec4<f32>(1.0f);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/e8cbf7.wgsl b/test/tint/builtins/gen/var/textureStore/e8cbf7.wgsl
index dfffdaa..cf4ab0c 100644
--- a/test/tint/builtins/gen/var/textureStore/e8cbf7.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/e8cbf7.wgsl
@@ -24,8 +24,8 @@
 
 // fn textureStore(texture: texture_storage_2d<r32uint, write>, coords: vec2<u32>, value: vec4<u32>)
 fn textureStore_e8cbf7() {
-  var arg_1 = vec2<u32>();
-  var arg_2 = vec4<u32>();
+  var arg_1 = vec2<u32>(1u);
+  var arg_2 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/e8cbf7.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/e8cbf7.wgsl.expected.dxc.hlsl
index 645dff7..165e0bc 100644
--- a/test/tint/builtins/gen/var/textureStore/e8cbf7.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/e8cbf7.wgsl.expected.dxc.hlsl
@@ -1,8 +1,8 @@
 RWTexture2D<uint4> arg_0 : register(u0, space1);
 
 void textureStore_e8cbf7() {
-  uint2 arg_1 = (0u).xx;
-  uint4 arg_2 = (0u).xxxx;
+  uint2 arg_1 = (1u).xx;
+  uint4 arg_2 = (1u).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/e8cbf7.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/e8cbf7.wgsl.expected.fxc.hlsl
index 645dff7..165e0bc 100644
--- a/test/tint/builtins/gen/var/textureStore/e8cbf7.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/e8cbf7.wgsl.expected.fxc.hlsl
@@ -1,8 +1,8 @@
 RWTexture2D<uint4> arg_0 : register(u0, space1);
 
 void textureStore_e8cbf7() {
-  uint2 arg_1 = (0u).xx;
-  uint4 arg_2 = (0u).xxxx;
+  uint2 arg_1 = (1u).xx;
+  uint4 arg_2 = (1u).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/e8cbf7.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/e8cbf7.wgsl.expected.glsl
index 5852ebd..4049bc9 100644
--- a/test/tint/builtins/gen/var/textureStore/e8cbf7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/e8cbf7.wgsl.expected.glsl
@@ -2,8 +2,8 @@
 
 layout(r32ui) uniform highp writeonly uimage2D arg_0;
 void textureStore_e8cbf7() {
-  uvec2 arg_1 = uvec2(0u);
-  uvec4 arg_2 = uvec4(0u);
+  uvec2 arg_1 = uvec2(1u);
+  uvec4 arg_2 = uvec4(1u);
   imageStore(arg_0, ivec2(arg_1), arg_2);
 }
 
@@ -25,8 +25,8 @@
 
 layout(r32ui) uniform highp writeonly uimage2D arg_0;
 void textureStore_e8cbf7() {
-  uvec2 arg_1 = uvec2(0u);
-  uvec4 arg_2 = uvec4(0u);
+  uvec2 arg_1 = uvec2(1u);
+  uvec4 arg_2 = uvec4(1u);
   imageStore(arg_0, ivec2(arg_1), arg_2);
 }
 
@@ -42,8 +42,8 @@
 
 layout(r32ui) uniform highp writeonly uimage2D arg_0;
 void textureStore_e8cbf7() {
-  uvec2 arg_1 = uvec2(0u);
-  uvec4 arg_2 = uvec4(0u);
+  uvec2 arg_1 = uvec2(1u);
+  uvec4 arg_2 = uvec4(1u);
   imageStore(arg_0, ivec2(arg_1), arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/e8cbf7.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/e8cbf7.wgsl.expected.msl
index 92344cd..4412956 100644
--- a/test/tint/builtins/gen/var/textureStore/e8cbf7.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/e8cbf7.wgsl.expected.msl
@@ -2,8 +2,8 @@
 
 using namespace metal;
 void textureStore_e8cbf7(texture2d<uint, access::write> tint_symbol_1) {
-  uint2 arg_1 = uint2(0u);
-  uint4 arg_2 = uint4(0u);
+  uint2 arg_1 = uint2(1u);
+  uint4 arg_2 = uint4(1u);
   tint_symbol_1.write(arg_2, uint2(arg_1));
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/e8cbf7.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/e8cbf7.wgsl.expected.spvasm
index 83db776..4ba7a7b 100644
--- a/test/tint/builtins/gen/var/textureStore/e8cbf7.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/e8cbf7.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 43
+; Bound: 46
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -40,44 +40,47 @@
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
      %v2uint = OpTypeVector %uint 2
-         %18 = OpConstantNull %v2uint
+     %uint_1 = OpConstant %uint 1
+         %19 = OpConstantComposite %v2uint %uint_1 %uint_1
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
+         %22 = OpConstantNull %v2uint
      %v4uint = OpTypeVector %uint 4
-         %22 = OpConstantNull %v4uint
+         %24 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %29 = OpTypeFunction %v4float
+         %27 = OpConstantNull %v4uint
+         %32 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_e8cbf7 = OpFunction %void None %13
          %16 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2uint Function %18
-      %arg_2 = OpVariable %_ptr_Function_v4uint Function %22
-               OpStore %arg_1 %18
-               OpStore %arg_2 %22
-         %26 = OpLoad %11 %arg_0
-         %27 = OpLoad %v2uint %arg_1
-         %28 = OpLoad %v4uint %arg_2
-               OpImageWrite %26 %27 %28
+      %arg_1 = OpVariable %_ptr_Function_v2uint Function %22
+      %arg_2 = OpVariable %_ptr_Function_v4uint Function %27
+               OpStore %arg_1 %19
+               OpStore %arg_2 %24
+         %29 = OpLoad %11 %arg_0
+         %30 = OpLoad %v2uint %arg_1
+         %31 = OpLoad %v4uint %arg_2
+               OpImageWrite %29 %30 %31
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %29
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %textureStore_e8cbf7
+%vertex_main_inner = OpFunction %v4float None %32
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %textureStore_e8cbf7
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %34 = OpLabel
-         %35 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %35
+         %37 = OpLabel
+         %38 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %38
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureStore_e8cbf7
+         %41 = OpLabel
+         %42 = OpFunctionCall %void %textureStore_e8cbf7
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureStore_e8cbf7
+         %44 = OpLabel
+         %45 = OpFunctionCall %void %textureStore_e8cbf7
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/e8cbf7.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/e8cbf7.wgsl.expected.wgsl
index f43ca9b..0402200 100644
--- a/test/tint/builtins/gen/var/textureStore/e8cbf7.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/e8cbf7.wgsl.expected.wgsl
@@ -1,8 +1,8 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d<r32uint, write>;
 
 fn textureStore_e8cbf7() {
-  var arg_1 = vec2<u32>();
-  var arg_2 = vec4<u32>();
+  var arg_1 = vec2<u32>(1u);
+  var arg_2 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/eb702f.wgsl b/test/tint/builtins/gen/var/textureStore/eb702f.wgsl
index 098cfad..36372e1 100644
--- a/test/tint/builtins/gen/var/textureStore/eb702f.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/eb702f.wgsl
@@ -24,8 +24,8 @@
 
 // fn textureStore(texture: texture_storage_3d<r32float, write>, coords: vec3<i32>, value: vec4<f32>)
 fn textureStore_eb702f() {
-  var arg_1 = vec3<i32>();
-  var arg_2 = vec4<f32>();
+  var arg_1 = vec3<i32>(1i);
+  var arg_2 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/eb702f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/eb702f.wgsl.expected.dxc.hlsl
index 55d4e79..ddfc382 100644
--- a/test/tint/builtins/gen/var/textureStore/eb702f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/eb702f.wgsl.expected.dxc.hlsl
@@ -1,8 +1,8 @@
 RWTexture3D<float4> arg_0 : register(u0, space1);
 
 void textureStore_eb702f() {
-  int3 arg_1 = (0).xxx;
-  float4 arg_2 = (0.0f).xxxx;
+  int3 arg_1 = (1).xxx;
+  float4 arg_2 = (1.0f).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/eb702f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/eb702f.wgsl.expected.fxc.hlsl
index 55d4e79..ddfc382 100644
--- a/test/tint/builtins/gen/var/textureStore/eb702f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/eb702f.wgsl.expected.fxc.hlsl
@@ -1,8 +1,8 @@
 RWTexture3D<float4> arg_0 : register(u0, space1);
 
 void textureStore_eb702f() {
-  int3 arg_1 = (0).xxx;
-  float4 arg_2 = (0.0f).xxxx;
+  int3 arg_1 = (1).xxx;
+  float4 arg_2 = (1.0f).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/eb702f.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/eb702f.wgsl.expected.glsl
index 5dfa23d..89e2a01 100644
--- a/test/tint/builtins/gen/var/textureStore/eb702f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/eb702f.wgsl.expected.glsl
@@ -2,8 +2,8 @@
 
 layout(r32f) uniform highp writeonly image3D arg_0;
 void textureStore_eb702f() {
-  ivec3 arg_1 = ivec3(0);
-  vec4 arg_2 = vec4(0.0f);
+  ivec3 arg_1 = ivec3(1);
+  vec4 arg_2 = vec4(1.0f);
   imageStore(arg_0, arg_1, arg_2);
 }
 
@@ -25,8 +25,8 @@
 
 layout(r32f) uniform highp writeonly image3D arg_0;
 void textureStore_eb702f() {
-  ivec3 arg_1 = ivec3(0);
-  vec4 arg_2 = vec4(0.0f);
+  ivec3 arg_1 = ivec3(1);
+  vec4 arg_2 = vec4(1.0f);
   imageStore(arg_0, arg_1, arg_2);
 }
 
@@ -42,8 +42,8 @@
 
 layout(r32f) uniform highp writeonly image3D arg_0;
 void textureStore_eb702f() {
-  ivec3 arg_1 = ivec3(0);
-  vec4 arg_2 = vec4(0.0f);
+  ivec3 arg_1 = ivec3(1);
+  vec4 arg_2 = vec4(1.0f);
   imageStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/eb702f.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/eb702f.wgsl.expected.msl
index 9926e89..550c53e 100644
--- a/test/tint/builtins/gen/var/textureStore/eb702f.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/eb702f.wgsl.expected.msl
@@ -2,8 +2,8 @@
 
 using namespace metal;
 void textureStore_eb702f(texture3d<float, access::write> tint_symbol_1) {
-  int3 arg_1 = int3(0);
-  float4 arg_2 = float4(0.0f);
+  int3 arg_1 = int3(1);
+  float4 arg_2 = float4(1.0f);
   tint_symbol_1.write(arg_2, uint3(arg_1));
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/eb702f.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/eb702f.wgsl.expected.spvasm
index 8d9bddb..f64b950 100644
--- a/test/tint/builtins/gen/var/textureStore/eb702f.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/eb702f.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 41
+; Bound: 44
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -40,42 +40,45 @@
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
-         %18 = OpConstantNull %v3int
+      %int_1 = OpConstant %int 1
+         %19 = OpConstantComposite %v3int %int_1 %int_1 %int_1
 %_ptr_Function_v3int = OpTypePointer Function %v3int
-%_ptr_Function_v4float = OpTypePointer Function %v4float
-         %27 = OpTypeFunction %v4float
+         %22 = OpConstantNull %v3int
     %float_1 = OpConstant %float 1
+         %24 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%_ptr_Function_v4float = OpTypePointer Function %v4float
+         %31 = OpTypeFunction %v4float
 %textureStore_eb702f = OpFunction %void None %12
          %15 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v3int Function %18
+      %arg_1 = OpVariable %_ptr_Function_v3int Function %22
       %arg_2 = OpVariable %_ptr_Function_v4float Function %5
-               OpStore %arg_1 %18
-               OpStore %arg_2 %5
-         %24 = OpLoad %11 %arg_0
-         %25 = OpLoad %v3int %arg_1
-         %26 = OpLoad %v4float %arg_2
-               OpImageWrite %24 %25 %26
+               OpStore %arg_1 %19
+               OpStore %arg_2 %24
+         %28 = OpLoad %11 %arg_0
+         %29 = OpLoad %v3int %arg_1
+         %30 = OpLoad %v4float %arg_2
+               OpImageWrite %28 %29 %30
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %27
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %textureStore_eb702f
+%vertex_main_inner = OpFunction %v4float None %31
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureStore_eb702f
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %32 = OpLabel
-         %33 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %33
+         %36 = OpLabel
+         %37 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %37
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_eb702f
+         %39 = OpLabel
+         %40 = OpFunctionCall %void %textureStore_eb702f
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_eb702f
+         %42 = OpLabel
+         %43 = OpFunctionCall %void %textureStore_eb702f
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/eb702f.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/eb702f.wgsl.expected.wgsl
index bc8a259..9b56f0d 100644
--- a/test/tint/builtins/gen/var/textureStore/eb702f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/eb702f.wgsl.expected.wgsl
@@ -1,8 +1,8 @@
 @group(1) @binding(0) var arg_0 : texture_storage_3d<r32float, write>;
 
 fn textureStore_eb702f() {
-  var arg_1 = vec3<i32>();
-  var arg_2 = vec4<f32>();
+  var arg_1 = vec3<i32>(1i);
+  var arg_2 = vec4<f32>(1.0f);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/eb78b9.wgsl b/test/tint/builtins/gen/var/textureStore/eb78b9.wgsl
index 0ec2c27..bf2ec48 100644
--- a/test/tint/builtins/gen/var/textureStore/eb78b9.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/eb78b9.wgsl
@@ -24,8 +24,8 @@
 
 // fn textureStore(texture: texture_storage_3d<r32sint, write>, coords: vec3<i32>, value: vec4<i32>)
 fn textureStore_eb78b9() {
-  var arg_1 = vec3<i32>();
-  var arg_2 = vec4<i32>();
+  var arg_1 = vec3<i32>(1i);
+  var arg_2 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/eb78b9.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/eb78b9.wgsl.expected.dxc.hlsl
index c798708..626d4a8 100644
--- a/test/tint/builtins/gen/var/textureStore/eb78b9.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/eb78b9.wgsl.expected.dxc.hlsl
@@ -1,8 +1,8 @@
 RWTexture3D<int4> arg_0 : register(u0, space1);
 
 void textureStore_eb78b9() {
-  int3 arg_1 = (0).xxx;
-  int4 arg_2 = (0).xxxx;
+  int3 arg_1 = (1).xxx;
+  int4 arg_2 = (1).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/eb78b9.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/eb78b9.wgsl.expected.fxc.hlsl
index c798708..626d4a8 100644
--- a/test/tint/builtins/gen/var/textureStore/eb78b9.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/eb78b9.wgsl.expected.fxc.hlsl
@@ -1,8 +1,8 @@
 RWTexture3D<int4> arg_0 : register(u0, space1);
 
 void textureStore_eb78b9() {
-  int3 arg_1 = (0).xxx;
-  int4 arg_2 = (0).xxxx;
+  int3 arg_1 = (1).xxx;
+  int4 arg_2 = (1).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/eb78b9.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/eb78b9.wgsl.expected.glsl
index 7a6aa12..ba4886c 100644
--- a/test/tint/builtins/gen/var/textureStore/eb78b9.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/eb78b9.wgsl.expected.glsl
@@ -2,8 +2,8 @@
 
 layout(r32i) uniform highp writeonly iimage3D arg_0;
 void textureStore_eb78b9() {
-  ivec3 arg_1 = ivec3(0);
-  ivec4 arg_2 = ivec4(0);
+  ivec3 arg_1 = ivec3(1);
+  ivec4 arg_2 = ivec4(1);
   imageStore(arg_0, arg_1, arg_2);
 }
 
@@ -25,8 +25,8 @@
 
 layout(r32i) uniform highp writeonly iimage3D arg_0;
 void textureStore_eb78b9() {
-  ivec3 arg_1 = ivec3(0);
-  ivec4 arg_2 = ivec4(0);
+  ivec3 arg_1 = ivec3(1);
+  ivec4 arg_2 = ivec4(1);
   imageStore(arg_0, arg_1, arg_2);
 }
 
@@ -42,8 +42,8 @@
 
 layout(r32i) uniform highp writeonly iimage3D arg_0;
 void textureStore_eb78b9() {
-  ivec3 arg_1 = ivec3(0);
-  ivec4 arg_2 = ivec4(0);
+  ivec3 arg_1 = ivec3(1);
+  ivec4 arg_2 = ivec4(1);
   imageStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/eb78b9.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/eb78b9.wgsl.expected.msl
index e5b872f..135de26 100644
--- a/test/tint/builtins/gen/var/textureStore/eb78b9.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/eb78b9.wgsl.expected.msl
@@ -2,8 +2,8 @@
 
 using namespace metal;
 void textureStore_eb78b9(texture3d<int, access::write> tint_symbol_1) {
-  int3 arg_1 = int3(0);
-  int4 arg_2 = int4(0);
+  int3 arg_1 = int3(1);
+  int4 arg_2 = int4(1);
   tint_symbol_1.write(arg_2, uint3(arg_1));
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/eb78b9.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/eb78b9.wgsl.expected.spvasm
index ca55182..b48dd46 100644
--- a/test/tint/builtins/gen/var/textureStore/eb78b9.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/eb78b9.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 43
+; Bound: 46
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -40,44 +40,47 @@
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
       %v3int = OpTypeVector %int 3
-         %18 = OpConstantNull %v3int
+      %int_1 = OpConstant %int 1
+         %19 = OpConstantComposite %v3int %int_1 %int_1 %int_1
 %_ptr_Function_v3int = OpTypePointer Function %v3int
+         %22 = OpConstantNull %v3int
       %v4int = OpTypeVector %int 4
-         %22 = OpConstantNull %v4int
+         %24 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %29 = OpTypeFunction %v4float
+         %27 = OpConstantNull %v4int
+         %32 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_eb78b9 = OpFunction %void None %13
          %16 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v3int Function %18
-      %arg_2 = OpVariable %_ptr_Function_v4int Function %22
-               OpStore %arg_1 %18
-               OpStore %arg_2 %22
-         %26 = OpLoad %11 %arg_0
-         %27 = OpLoad %v3int %arg_1
-         %28 = OpLoad %v4int %arg_2
-               OpImageWrite %26 %27 %28
+      %arg_1 = OpVariable %_ptr_Function_v3int Function %22
+      %arg_2 = OpVariable %_ptr_Function_v4int Function %27
+               OpStore %arg_1 %19
+               OpStore %arg_2 %24
+         %29 = OpLoad %11 %arg_0
+         %30 = OpLoad %v3int %arg_1
+         %31 = OpLoad %v4int %arg_2
+               OpImageWrite %29 %30 %31
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %29
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %textureStore_eb78b9
+%vertex_main_inner = OpFunction %v4float None %32
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %textureStore_eb78b9
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %34 = OpLabel
-         %35 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %35
+         %37 = OpLabel
+         %38 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %38
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureStore_eb78b9
+         %41 = OpLabel
+         %42 = OpFunctionCall %void %textureStore_eb78b9
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureStore_eb78b9
+         %44 = OpLabel
+         %45 = OpFunctionCall %void %textureStore_eb78b9
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/eb78b9.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/eb78b9.wgsl.expected.wgsl
index 2d7e635..cbee439 100644
--- a/test/tint/builtins/gen/var/textureStore/eb78b9.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/eb78b9.wgsl.expected.wgsl
@@ -1,8 +1,8 @@
 @group(1) @binding(0) var arg_0 : texture_storage_3d<r32sint, write>;
 
 fn textureStore_eb78b9() {
-  var arg_1 = vec3<i32>();
-  var arg_2 = vec4<i32>();
+  var arg_1 = vec3<i32>(1i);
+  var arg_2 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/ee6acc.wgsl b/test/tint/builtins/gen/var/textureStore/ee6acc.wgsl
index 19d501f..6b99bfa 100644
--- a/test/tint/builtins/gen/var/textureStore/ee6acc.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/ee6acc.wgsl
@@ -24,8 +24,8 @@
 
 // fn textureStore(texture: texture_storage_3d<rg32float, write>, coords: vec3<i32>, value: vec4<f32>)
 fn textureStore_ee6acc() {
-  var arg_1 = vec3<i32>();
-  var arg_2 = vec4<f32>();
+  var arg_1 = vec3<i32>(1i);
+  var arg_2 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/ee6acc.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/ee6acc.wgsl.expected.dxc.hlsl
index a6ce8c7..bfaac79 100644
--- a/test/tint/builtins/gen/var/textureStore/ee6acc.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/ee6acc.wgsl.expected.dxc.hlsl
@@ -1,8 +1,8 @@
 RWTexture3D<float4> arg_0 : register(u0, space1);
 
 void textureStore_ee6acc() {
-  int3 arg_1 = (0).xxx;
-  float4 arg_2 = (0.0f).xxxx;
+  int3 arg_1 = (1).xxx;
+  float4 arg_2 = (1.0f).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/ee6acc.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/ee6acc.wgsl.expected.fxc.hlsl
index a6ce8c7..bfaac79 100644
--- a/test/tint/builtins/gen/var/textureStore/ee6acc.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/ee6acc.wgsl.expected.fxc.hlsl
@@ -1,8 +1,8 @@
 RWTexture3D<float4> arg_0 : register(u0, space1);
 
 void textureStore_ee6acc() {
-  int3 arg_1 = (0).xxx;
-  float4 arg_2 = (0.0f).xxxx;
+  int3 arg_1 = (1).xxx;
+  float4 arg_2 = (1.0f).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/ee6acc.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/ee6acc.wgsl.expected.msl
index 9b5c922..ad212b6 100644
--- a/test/tint/builtins/gen/var/textureStore/ee6acc.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/ee6acc.wgsl.expected.msl
@@ -2,8 +2,8 @@
 
 using namespace metal;
 void textureStore_ee6acc(texture3d<float, access::write> tint_symbol_1) {
-  int3 arg_1 = int3(0);
-  float4 arg_2 = float4(0.0f);
+  int3 arg_1 = int3(1);
+  float4 arg_2 = float4(1.0f);
   tint_symbol_1.write(arg_2, uint3(arg_1));
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/ee6acc.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/ee6acc.wgsl.expected.spvasm
index bc3df6d..a004106 100644
--- a/test/tint/builtins/gen/var/textureStore/ee6acc.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/ee6acc.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 41
+; Bound: 44
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
@@ -41,42 +41,45 @@
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
-         %18 = OpConstantNull %v3int
+      %int_1 = OpConstant %int 1
+         %19 = OpConstantComposite %v3int %int_1 %int_1 %int_1
 %_ptr_Function_v3int = OpTypePointer Function %v3int
-%_ptr_Function_v4float = OpTypePointer Function %v4float
-         %27 = OpTypeFunction %v4float
+         %22 = OpConstantNull %v3int
     %float_1 = OpConstant %float 1
+         %24 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%_ptr_Function_v4float = OpTypePointer Function %v4float
+         %31 = OpTypeFunction %v4float
 %textureStore_ee6acc = OpFunction %void None %12
          %15 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v3int Function %18
+      %arg_1 = OpVariable %_ptr_Function_v3int Function %22
       %arg_2 = OpVariable %_ptr_Function_v4float Function %5
-               OpStore %arg_1 %18
-               OpStore %arg_2 %5
-         %24 = OpLoad %11 %arg_0
-         %25 = OpLoad %v3int %arg_1
-         %26 = OpLoad %v4float %arg_2
-               OpImageWrite %24 %25 %26
+               OpStore %arg_1 %19
+               OpStore %arg_2 %24
+         %28 = OpLoad %11 %arg_0
+         %29 = OpLoad %v3int %arg_1
+         %30 = OpLoad %v4float %arg_2
+               OpImageWrite %28 %29 %30
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %27
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %textureStore_ee6acc
+%vertex_main_inner = OpFunction %v4float None %31
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureStore_ee6acc
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %32 = OpLabel
-         %33 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %33
+         %36 = OpLabel
+         %37 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %37
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_ee6acc
+         %39 = OpLabel
+         %40 = OpFunctionCall %void %textureStore_ee6acc
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_ee6acc
+         %42 = OpLabel
+         %43 = OpFunctionCall %void %textureStore_ee6acc
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/ee6acc.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/ee6acc.wgsl.expected.wgsl
index 8ba6d40..c55bbcd 100644
--- a/test/tint/builtins/gen/var/textureStore/ee6acc.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/ee6acc.wgsl.expected.wgsl
@@ -1,8 +1,8 @@
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rg32float, write>;
 
 fn textureStore_ee6acc() {
-  var arg_1 = vec3<i32>();
-  var arg_2 = vec4<f32>();
+  var arg_1 = vec3<i32>(1i);
+  var arg_2 = vec4<f32>(1.0f);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/ef9f2f.wgsl b/test/tint/builtins/gen/var/textureStore/ef9f2f.wgsl
index fa28513..9154768 100644
--- a/test/tint/builtins/gen/var/textureStore/ef9f2f.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/ef9f2f.wgsl
@@ -24,8 +24,8 @@
 
 // fn textureStore(texture: texture_storage_3d<r32uint, write>, coords: vec3<i32>, value: vec4<u32>)
 fn textureStore_ef9f2f() {
-  var arg_1 = vec3<i32>();
-  var arg_2 = vec4<u32>();
+  var arg_1 = vec3<i32>(1i);
+  var arg_2 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/ef9f2f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/ef9f2f.wgsl.expected.dxc.hlsl
index ded9f95..be459f0 100644
--- a/test/tint/builtins/gen/var/textureStore/ef9f2f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/ef9f2f.wgsl.expected.dxc.hlsl
@@ -1,8 +1,8 @@
 RWTexture3D<uint4> arg_0 : register(u0, space1);
 
 void textureStore_ef9f2f() {
-  int3 arg_1 = (0).xxx;
-  uint4 arg_2 = (0u).xxxx;
+  int3 arg_1 = (1).xxx;
+  uint4 arg_2 = (1u).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/ef9f2f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/ef9f2f.wgsl.expected.fxc.hlsl
index ded9f95..be459f0 100644
--- a/test/tint/builtins/gen/var/textureStore/ef9f2f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/ef9f2f.wgsl.expected.fxc.hlsl
@@ -1,8 +1,8 @@
 RWTexture3D<uint4> arg_0 : register(u0, space1);
 
 void textureStore_ef9f2f() {
-  int3 arg_1 = (0).xxx;
-  uint4 arg_2 = (0u).xxxx;
+  int3 arg_1 = (1).xxx;
+  uint4 arg_2 = (1u).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/ef9f2f.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/ef9f2f.wgsl.expected.glsl
index 040973d..03179e4 100644
--- a/test/tint/builtins/gen/var/textureStore/ef9f2f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/ef9f2f.wgsl.expected.glsl
@@ -2,8 +2,8 @@
 
 layout(r32ui) uniform highp writeonly uimage3D arg_0;
 void textureStore_ef9f2f() {
-  ivec3 arg_1 = ivec3(0);
-  uvec4 arg_2 = uvec4(0u);
+  ivec3 arg_1 = ivec3(1);
+  uvec4 arg_2 = uvec4(1u);
   imageStore(arg_0, arg_1, arg_2);
 }
 
@@ -25,8 +25,8 @@
 
 layout(r32ui) uniform highp writeonly uimage3D arg_0;
 void textureStore_ef9f2f() {
-  ivec3 arg_1 = ivec3(0);
-  uvec4 arg_2 = uvec4(0u);
+  ivec3 arg_1 = ivec3(1);
+  uvec4 arg_2 = uvec4(1u);
   imageStore(arg_0, arg_1, arg_2);
 }
 
@@ -42,8 +42,8 @@
 
 layout(r32ui) uniform highp writeonly uimage3D arg_0;
 void textureStore_ef9f2f() {
-  ivec3 arg_1 = ivec3(0);
-  uvec4 arg_2 = uvec4(0u);
+  ivec3 arg_1 = ivec3(1);
+  uvec4 arg_2 = uvec4(1u);
   imageStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/ef9f2f.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/ef9f2f.wgsl.expected.msl
index 9c6a6bd..f7972bd 100644
--- a/test/tint/builtins/gen/var/textureStore/ef9f2f.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/ef9f2f.wgsl.expected.msl
@@ -2,8 +2,8 @@
 
 using namespace metal;
 void textureStore_ef9f2f(texture3d<uint, access::write> tint_symbol_1) {
-  int3 arg_1 = int3(0);
-  uint4 arg_2 = uint4(0u);
+  int3 arg_1 = int3(1);
+  uint4 arg_2 = uint4(1u);
   tint_symbol_1.write(arg_2, uint3(arg_1));
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/ef9f2f.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/ef9f2f.wgsl.expected.spvasm
index 4148955..f841295 100644
--- a/test/tint/builtins/gen/var/textureStore/ef9f2f.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/ef9f2f.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 48
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -41,44 +41,48 @@
          %13 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
-         %19 = OpConstantNull %v3int
+      %int_1 = OpConstant %int 1
+         %20 = OpConstantComposite %v3int %int_1 %int_1 %int_1
 %_ptr_Function_v3int = OpTypePointer Function %v3int
+         %23 = OpConstantNull %v3int
      %v4uint = OpTypeVector %uint 4
-         %23 = OpConstantNull %v4uint
+     %uint_1 = OpConstant %uint 1
+         %26 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %30 = OpTypeFunction %v4float
+         %29 = OpConstantNull %v4uint
+         %34 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_ef9f2f = OpFunction %void None %13
          %16 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v3int Function %19
-      %arg_2 = OpVariable %_ptr_Function_v4uint Function %23
-               OpStore %arg_1 %19
-               OpStore %arg_2 %23
-         %27 = OpLoad %11 %arg_0
-         %28 = OpLoad %v3int %arg_1
-         %29 = OpLoad %v4uint %arg_2
-               OpImageWrite %27 %28 %29
+      %arg_1 = OpVariable %_ptr_Function_v3int Function %23
+      %arg_2 = OpVariable %_ptr_Function_v4uint Function %29
+               OpStore %arg_1 %20
+               OpStore %arg_2 %26
+         %31 = OpLoad %11 %arg_0
+         %32 = OpLoad %v3int %arg_1
+         %33 = OpLoad %v4uint %arg_2
+               OpImageWrite %31 %32 %33
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %30
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_ef9f2f
+%vertex_main_inner = OpFunction %v4float None %34
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureStore_ef9f2f
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %36
+         %39 = OpLabel
+         %40 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %40
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_ef9f2f
+         %43 = OpLabel
+         %44 = OpFunctionCall %void %textureStore_ef9f2f
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_ef9f2f
+         %46 = OpLabel
+         %47 = OpFunctionCall %void %textureStore_ef9f2f
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/ef9f2f.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/ef9f2f.wgsl.expected.wgsl
index 1045a89..dd6845f 100644
--- a/test/tint/builtins/gen/var/textureStore/ef9f2f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/ef9f2f.wgsl.expected.wgsl
@@ -1,8 +1,8 @@
 @group(1) @binding(0) var arg_0 : texture_storage_3d<r32uint, write>;
 
 fn textureStore_ef9f2f() {
-  var arg_1 = vec3<i32>();
-  var arg_2 = vec4<u32>();
+  var arg_1 = vec3<i32>(1i);
+  var arg_2 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/f1e6d3.wgsl b/test/tint/builtins/gen/var/textureStore/f1e6d3.wgsl
index 1014342..f2caa3c 100644
--- a/test/tint/builtins/gen/var/textureStore/f1e6d3.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/f1e6d3.wgsl
@@ -24,8 +24,8 @@
 
 // fn textureStore(texture: texture_storage_3d<r32sint, write>, coords: vec3<u32>, value: vec4<i32>)
 fn textureStore_f1e6d3() {
-  var arg_1 = vec3<u32>();
-  var arg_2 = vec4<i32>();
+  var arg_1 = vec3<u32>(1u);
+  var arg_2 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/f1e6d3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/f1e6d3.wgsl.expected.dxc.hlsl
index 56d522a..0563325 100644
--- a/test/tint/builtins/gen/var/textureStore/f1e6d3.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/f1e6d3.wgsl.expected.dxc.hlsl
@@ -1,8 +1,8 @@
 RWTexture3D<int4> arg_0 : register(u0, space1);
 
 void textureStore_f1e6d3() {
-  uint3 arg_1 = (0u).xxx;
-  int4 arg_2 = (0).xxxx;
+  uint3 arg_1 = (1u).xxx;
+  int4 arg_2 = (1).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/f1e6d3.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/f1e6d3.wgsl.expected.fxc.hlsl
index 56d522a..0563325 100644
--- a/test/tint/builtins/gen/var/textureStore/f1e6d3.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/f1e6d3.wgsl.expected.fxc.hlsl
@@ -1,8 +1,8 @@
 RWTexture3D<int4> arg_0 : register(u0, space1);
 
 void textureStore_f1e6d3() {
-  uint3 arg_1 = (0u).xxx;
-  int4 arg_2 = (0).xxxx;
+  uint3 arg_1 = (1u).xxx;
+  int4 arg_2 = (1).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/f1e6d3.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/f1e6d3.wgsl.expected.glsl
index a4e196b..1276474 100644
--- a/test/tint/builtins/gen/var/textureStore/f1e6d3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/f1e6d3.wgsl.expected.glsl
@@ -2,8 +2,8 @@
 
 layout(r32i) uniform highp writeonly iimage3D arg_0;
 void textureStore_f1e6d3() {
-  uvec3 arg_1 = uvec3(0u);
-  ivec4 arg_2 = ivec4(0);
+  uvec3 arg_1 = uvec3(1u);
+  ivec4 arg_2 = ivec4(1);
   imageStore(arg_0, ivec3(arg_1), arg_2);
 }
 
@@ -25,8 +25,8 @@
 
 layout(r32i) uniform highp writeonly iimage3D arg_0;
 void textureStore_f1e6d3() {
-  uvec3 arg_1 = uvec3(0u);
-  ivec4 arg_2 = ivec4(0);
+  uvec3 arg_1 = uvec3(1u);
+  ivec4 arg_2 = ivec4(1);
   imageStore(arg_0, ivec3(arg_1), arg_2);
 }
 
@@ -42,8 +42,8 @@
 
 layout(r32i) uniform highp writeonly iimage3D arg_0;
 void textureStore_f1e6d3() {
-  uvec3 arg_1 = uvec3(0u);
-  ivec4 arg_2 = ivec4(0);
+  uvec3 arg_1 = uvec3(1u);
+  ivec4 arg_2 = ivec4(1);
   imageStore(arg_0, ivec3(arg_1), arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/f1e6d3.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/f1e6d3.wgsl.expected.msl
index c32f6a9..38b3da4 100644
--- a/test/tint/builtins/gen/var/textureStore/f1e6d3.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/f1e6d3.wgsl.expected.msl
@@ -2,8 +2,8 @@
 
 using namespace metal;
 void textureStore_f1e6d3(texture3d<int, access::write> tint_symbol_1) {
-  uint3 arg_1 = uint3(0u);
-  int4 arg_2 = int4(0);
+  uint3 arg_1 = uint3(1u);
+  int4 arg_2 = int4(1);
   tint_symbol_1.write(arg_2, uint3(arg_1));
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/f1e6d3.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/f1e6d3.wgsl.expected.spvasm
index baf5519..8e17d81 100644
--- a/test/tint/builtins/gen/var/textureStore/f1e6d3.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/f1e6d3.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 48
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -41,44 +41,48 @@
          %13 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
-         %19 = OpConstantNull %v3uint
+     %uint_1 = OpConstant %uint 1
+         %20 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
 %_ptr_Function_v3uint = OpTypePointer Function %v3uint
+         %23 = OpConstantNull %v3uint
       %v4int = OpTypeVector %int 4
-         %23 = OpConstantNull %v4int
+      %int_1 = OpConstant %int 1
+         %26 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %30 = OpTypeFunction %v4float
+         %29 = OpConstantNull %v4int
+         %34 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_f1e6d3 = OpFunction %void None %13
          %16 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v3uint Function %19
-      %arg_2 = OpVariable %_ptr_Function_v4int Function %23
-               OpStore %arg_1 %19
-               OpStore %arg_2 %23
-         %27 = OpLoad %11 %arg_0
-         %28 = OpLoad %v3uint %arg_1
-         %29 = OpLoad %v4int %arg_2
-               OpImageWrite %27 %28 %29
+      %arg_1 = OpVariable %_ptr_Function_v3uint Function %23
+      %arg_2 = OpVariable %_ptr_Function_v4int Function %29
+               OpStore %arg_1 %20
+               OpStore %arg_2 %26
+         %31 = OpLoad %11 %arg_0
+         %32 = OpLoad %v3uint %arg_1
+         %33 = OpLoad %v4int %arg_2
+               OpImageWrite %31 %32 %33
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %30
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_f1e6d3
+%vertex_main_inner = OpFunction %v4float None %34
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureStore_f1e6d3
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %36
+         %39 = OpLabel
+         %40 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %40
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_f1e6d3
+         %43 = OpLabel
+         %44 = OpFunctionCall %void %textureStore_f1e6d3
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_f1e6d3
+         %46 = OpLabel
+         %47 = OpFunctionCall %void %textureStore_f1e6d3
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/f1e6d3.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/f1e6d3.wgsl.expected.wgsl
index 3fe60f3..2f64952 100644
--- a/test/tint/builtins/gen/var/textureStore/f1e6d3.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/f1e6d3.wgsl.expected.wgsl
@@ -1,8 +1,8 @@
 @group(1) @binding(0) var arg_0 : texture_storage_3d<r32sint, write>;
 
 fn textureStore_f1e6d3() {
-  var arg_1 = vec3<u32>();
-  var arg_2 = vec4<i32>();
+  var arg_1 = vec3<u32>(1u);
+  var arg_2 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/f8dead.wgsl b/test/tint/builtins/gen/var/textureStore/f8dead.wgsl
index b58c3ff..8068cf5 100644
--- a/test/tint/builtins/gen/var/textureStore/f8dead.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/f8dead.wgsl
@@ -24,8 +24,8 @@
 
 // fn textureStore(texture: texture_storage_3d<rgba8uint, write>, coords: vec3<i32>, value: vec4<u32>)
 fn textureStore_f8dead() {
-  var arg_1 = vec3<i32>();
-  var arg_2 = vec4<u32>();
+  var arg_1 = vec3<i32>(1i);
+  var arg_2 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/f8dead.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/f8dead.wgsl.expected.dxc.hlsl
index 94111fb..5ada5ff 100644
--- a/test/tint/builtins/gen/var/textureStore/f8dead.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/f8dead.wgsl.expected.dxc.hlsl
@@ -1,8 +1,8 @@
 RWTexture3D<uint4> arg_0 : register(u0, space1);
 
 void textureStore_f8dead() {
-  int3 arg_1 = (0).xxx;
-  uint4 arg_2 = (0u).xxxx;
+  int3 arg_1 = (1).xxx;
+  uint4 arg_2 = (1u).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/f8dead.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/f8dead.wgsl.expected.fxc.hlsl
index 94111fb..5ada5ff 100644
--- a/test/tint/builtins/gen/var/textureStore/f8dead.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/f8dead.wgsl.expected.fxc.hlsl
@@ -1,8 +1,8 @@
 RWTexture3D<uint4> arg_0 : register(u0, space1);
 
 void textureStore_f8dead() {
-  int3 arg_1 = (0).xxx;
-  uint4 arg_2 = (0u).xxxx;
+  int3 arg_1 = (1).xxx;
+  uint4 arg_2 = (1u).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/f8dead.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/f8dead.wgsl.expected.glsl
index 3583671..c0607a9 100644
--- a/test/tint/builtins/gen/var/textureStore/f8dead.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/f8dead.wgsl.expected.glsl
@@ -2,8 +2,8 @@
 
 layout(rgba8ui) uniform highp writeonly uimage3D arg_0;
 void textureStore_f8dead() {
-  ivec3 arg_1 = ivec3(0);
-  uvec4 arg_2 = uvec4(0u);
+  ivec3 arg_1 = ivec3(1);
+  uvec4 arg_2 = uvec4(1u);
   imageStore(arg_0, arg_1, arg_2);
 }
 
@@ -25,8 +25,8 @@
 
 layout(rgba8ui) uniform highp writeonly uimage3D arg_0;
 void textureStore_f8dead() {
-  ivec3 arg_1 = ivec3(0);
-  uvec4 arg_2 = uvec4(0u);
+  ivec3 arg_1 = ivec3(1);
+  uvec4 arg_2 = uvec4(1u);
   imageStore(arg_0, arg_1, arg_2);
 }
 
@@ -42,8 +42,8 @@
 
 layout(rgba8ui) uniform highp writeonly uimage3D arg_0;
 void textureStore_f8dead() {
-  ivec3 arg_1 = ivec3(0);
-  uvec4 arg_2 = uvec4(0u);
+  ivec3 arg_1 = ivec3(1);
+  uvec4 arg_2 = uvec4(1u);
   imageStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/f8dead.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/f8dead.wgsl.expected.msl
index 4e6da98..735272b 100644
--- a/test/tint/builtins/gen/var/textureStore/f8dead.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/f8dead.wgsl.expected.msl
@@ -2,8 +2,8 @@
 
 using namespace metal;
 void textureStore_f8dead(texture3d<uint, access::write> tint_symbol_1) {
-  int3 arg_1 = int3(0);
-  uint4 arg_2 = uint4(0u);
+  int3 arg_1 = int3(1);
+  uint4 arg_2 = uint4(1u);
   tint_symbol_1.write(arg_2, uint3(arg_1));
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/f8dead.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/f8dead.wgsl.expected.spvasm
index 2a9e3e8..a125397 100644
--- a/test/tint/builtins/gen/var/textureStore/f8dead.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/f8dead.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 48
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -41,44 +41,48 @@
          %13 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
-         %19 = OpConstantNull %v3int
+      %int_1 = OpConstant %int 1
+         %20 = OpConstantComposite %v3int %int_1 %int_1 %int_1
 %_ptr_Function_v3int = OpTypePointer Function %v3int
+         %23 = OpConstantNull %v3int
      %v4uint = OpTypeVector %uint 4
-         %23 = OpConstantNull %v4uint
+     %uint_1 = OpConstant %uint 1
+         %26 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %30 = OpTypeFunction %v4float
+         %29 = OpConstantNull %v4uint
+         %34 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_f8dead = OpFunction %void None %13
          %16 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v3int Function %19
-      %arg_2 = OpVariable %_ptr_Function_v4uint Function %23
-               OpStore %arg_1 %19
-               OpStore %arg_2 %23
-         %27 = OpLoad %11 %arg_0
-         %28 = OpLoad %v3int %arg_1
-         %29 = OpLoad %v4uint %arg_2
-               OpImageWrite %27 %28 %29
+      %arg_1 = OpVariable %_ptr_Function_v3int Function %23
+      %arg_2 = OpVariable %_ptr_Function_v4uint Function %29
+               OpStore %arg_1 %20
+               OpStore %arg_2 %26
+         %31 = OpLoad %11 %arg_0
+         %32 = OpLoad %v3int %arg_1
+         %33 = OpLoad %v4uint %arg_2
+               OpImageWrite %31 %32 %33
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %30
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_f8dead
+%vertex_main_inner = OpFunction %v4float None %34
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureStore_f8dead
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %36
+         %39 = OpLabel
+         %40 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %40
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_f8dead
+         %43 = OpLabel
+         %44 = OpFunctionCall %void %textureStore_f8dead
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_f8dead
+         %46 = OpLabel
+         %47 = OpFunctionCall %void %textureStore_f8dead
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/f8dead.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/f8dead.wgsl.expected.wgsl
index 52a1d3e..b510b95 100644
--- a/test/tint/builtins/gen/var/textureStore/f8dead.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/f8dead.wgsl.expected.wgsl
@@ -1,8 +1,8 @@
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rgba8uint, write>;
 
 fn textureStore_f8dead() {
-  var arg_1 = vec3<i32>();
-  var arg_2 = vec4<u32>();
+  var arg_1 = vec3<i32>(1i);
+  var arg_2 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/f9be83.wgsl b/test/tint/builtins/gen/var/textureStore/f9be83.wgsl
index d1d2815..101ef88 100644
--- a/test/tint/builtins/gen/var/textureStore/f9be83.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/f9be83.wgsl
@@ -24,9 +24,9 @@
 
 // fn textureStore(texture: texture_storage_2d_array<rg32sint, write>, coords: vec2<i32>, array_index: i32, value: vec4<i32>)
 fn textureStore_f9be83() {
-  var arg_1 = vec2<i32>();
+  var arg_1 = vec2<i32>(1i);
   var arg_2 = 1i;
-  var arg_3 = vec4<i32>();
+  var arg_3 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/f9be83.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/f9be83.wgsl.expected.dxc.hlsl
index 129bfb8..4b36d74 100644
--- a/test/tint/builtins/gen/var/textureStore/f9be83.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/f9be83.wgsl.expected.dxc.hlsl
@@ -1,9 +1,9 @@
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 void textureStore_f9be83() {
-  int2 arg_1 = (0).xx;
+  int2 arg_1 = (1).xx;
   int arg_2 = 1;
-  int4 arg_3 = (0).xxxx;
+  int4 arg_3 = (1).xxxx;
   arg_0[int3(arg_1, arg_2)] = arg_3;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/f9be83.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/f9be83.wgsl.expected.fxc.hlsl
index 129bfb8..4b36d74 100644
--- a/test/tint/builtins/gen/var/textureStore/f9be83.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/f9be83.wgsl.expected.fxc.hlsl
@@ -1,9 +1,9 @@
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 void textureStore_f9be83() {
-  int2 arg_1 = (0).xx;
+  int2 arg_1 = (1).xx;
   int arg_2 = 1;
-  int4 arg_3 = (0).xxxx;
+  int4 arg_3 = (1).xxxx;
   arg_0[int3(arg_1, arg_2)] = arg_3;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/f9be83.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/f9be83.wgsl.expected.msl
index 0217d28..07cbf5c 100644
--- a/test/tint/builtins/gen/var/textureStore/f9be83.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/f9be83.wgsl.expected.msl
@@ -2,9 +2,9 @@
 
 using namespace metal;
 void textureStore_f9be83(texture2d_array<int, access::write> tint_symbol_1) {
-  int2 arg_1 = int2(0);
+  int2 arg_1 = int2(1);
   int arg_2 = 1;
-  int4 arg_3 = int4(0);
+  int4 arg_3 = int4(1);
   tint_symbol_1.write(arg_3, uint2(arg_1), arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/f9be83.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/f9be83.wgsl.expected.spvasm
index c7ee036..4f8bbfb 100644
--- a/test/tint/builtins/gen/var/textureStore/f9be83.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/f9be83.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 52
+; Bound: 54
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
@@ -42,54 +42,56 @@
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
       %v2int = OpTypeVector %int 2
-         %18 = OpConstantNull %v2int
-%_ptr_Function_v2int = OpTypePointer Function %v2int
       %int_1 = OpConstant %int 1
+         %19 = OpConstantComposite %v2int %int_1 %int_1
+%_ptr_Function_v2int = OpTypePointer Function %v2int
+         %22 = OpConstantNull %v2int
 %_ptr_Function_int = OpTypePointer Function %int
-         %24 = OpConstantNull %int
+         %25 = OpConstantNull %int
       %v4int = OpTypeVector %int 4
-         %26 = OpConstantNull %v4int
+         %27 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
+         %30 = OpConstantNull %v4int
       %v3int = OpTypeVector %int 3
-         %38 = OpTypeFunction %v4float
+         %40 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_f9be83 = OpFunction %void None %13
          %16 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2int Function %18
-      %arg_2 = OpVariable %_ptr_Function_int Function %24
-      %arg_3 = OpVariable %_ptr_Function_v4int Function %26
-               OpStore %arg_1 %18
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %22
+      %arg_2 = OpVariable %_ptr_Function_int Function %25
+      %arg_3 = OpVariable %_ptr_Function_v4int Function %30
+               OpStore %arg_1 %19
                OpStore %arg_2 %int_1
-               OpStore %arg_3 %26
-         %30 = OpLoad %11 %arg_0
-         %32 = OpLoad %v2int %arg_1
-         %33 = OpCompositeExtract %int %32 0
-         %34 = OpCompositeExtract %int %32 1
-         %35 = OpLoad %int %arg_2
-         %36 = OpCompositeConstruct %v3int %33 %34 %35
-         %37 = OpLoad %v4int %arg_3
-               OpImageWrite %30 %36 %37
+               OpStore %arg_3 %27
+         %32 = OpLoad %11 %arg_0
+         %34 = OpLoad %v2int %arg_1
+         %35 = OpCompositeExtract %int %34 0
+         %36 = OpCompositeExtract %int %34 1
+         %37 = OpLoad %int %arg_2
+         %38 = OpCompositeConstruct %v3int %35 %36 %37
+         %39 = OpLoad %v4int %arg_3
+               OpImageWrite %32 %38 %39
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %38
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureStore_f9be83
+%vertex_main_inner = OpFunction %v4float None %40
+         %42 = OpLabel
+         %43 = OpFunctionCall %void %textureStore_f9be83
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %43 = OpLabel
-         %44 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %44
+         %45 = OpLabel
+         %46 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %46
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %47 = OpLabel
-         %48 = OpFunctionCall %void %textureStore_f9be83
+         %49 = OpLabel
+         %50 = OpFunctionCall %void %textureStore_f9be83
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %50 = OpLabel
-         %51 = OpFunctionCall %void %textureStore_f9be83
+         %52 = OpLabel
+         %53 = OpFunctionCall %void %textureStore_f9be83
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/f9be83.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/f9be83.wgsl.expected.wgsl
index 3e9226e..d7ad8ba 100644
--- a/test/tint/builtins/gen/var/textureStore/f9be83.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/f9be83.wgsl.expected.wgsl
@@ -1,9 +1,9 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rg32sint, write>;
 
 fn textureStore_f9be83() {
-  var arg_1 = vec2<i32>();
+  var arg_1 = vec2<i32>(1i);
   var arg_2 = 1i;
-  var arg_3 = vec4<i32>();
+  var arg_3 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/fb9a8f.wgsl b/test/tint/builtins/gen/var/textureStore/fb9a8f.wgsl
index 7b6b6af..2b020b6 100644
--- a/test/tint/builtins/gen/var/textureStore/fb9a8f.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/fb9a8f.wgsl
@@ -25,7 +25,7 @@
 // fn textureStore(texture: texture_storage_1d<rgba32uint, write>, coords: i32, value: vec4<u32>)
 fn textureStore_fb9a8f() {
   var arg_1 = 1i;
-  var arg_2 = vec4<u32>();
+  var arg_2 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/fb9a8f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/fb9a8f.wgsl.expected.dxc.hlsl
index 7e5b23d..2809d9d 100644
--- a/test/tint/builtins/gen/var/textureStore/fb9a8f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/fb9a8f.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
 
 void textureStore_fb9a8f() {
   int arg_1 = 1;
-  uint4 arg_2 = (0u).xxxx;
+  uint4 arg_2 = (1u).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/fb9a8f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/fb9a8f.wgsl.expected.fxc.hlsl
index 7e5b23d..2809d9d 100644
--- a/test/tint/builtins/gen/var/textureStore/fb9a8f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/fb9a8f.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
 
 void textureStore_fb9a8f() {
   int arg_1 = 1;
-  uint4 arg_2 = (0u).xxxx;
+  uint4 arg_2 = (1u).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/fb9a8f.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/fb9a8f.wgsl.expected.msl
index a808ba3..9e3b7d1 100644
--- a/test/tint/builtins/gen/var/textureStore/fb9a8f.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/fb9a8f.wgsl.expected.msl
@@ -3,7 +3,7 @@
 using namespace metal;
 void textureStore_fb9a8f(texture1d<uint, access::write> tint_symbol_1) {
   int arg_1 = 1;
-  uint4 arg_2 = uint4(0u);
+  uint4 arg_2 = uint4(1u);
   tint_symbol_1.write(arg_2, uint(arg_1));
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/fb9a8f.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/fb9a8f.wgsl.expected.spvasm
index 708e239..9b76cd8 100644
--- a/test/tint/builtins/gen/var/textureStore/fb9a8f.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/fb9a8f.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 46
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
@@ -45,41 +45,43 @@
 %_ptr_Function_int = OpTypePointer Function %int
          %21 = OpConstantNull %int
      %v4uint = OpTypeVector %uint 4
-         %23 = OpConstantNull %v4uint
+     %uint_1 = OpConstant %uint 1
+         %24 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %30 = OpTypeFunction %v4float
+         %27 = OpConstantNull %v4uint
+         %32 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_fb9a8f = OpFunction %void None %13
          %16 = OpLabel
       %arg_1 = OpVariable %_ptr_Function_int Function %21
-      %arg_2 = OpVariable %_ptr_Function_v4uint Function %23
+      %arg_2 = OpVariable %_ptr_Function_v4uint Function %27
                OpStore %arg_1 %int_1
-               OpStore %arg_2 %23
-         %27 = OpLoad %11 %arg_0
-         %28 = OpLoad %int %arg_1
-         %29 = OpLoad %v4uint %arg_2
-               OpImageWrite %27 %28 %29
+               OpStore %arg_2 %24
+         %29 = OpLoad %11 %arg_0
+         %30 = OpLoad %int %arg_1
+         %31 = OpLoad %v4uint %arg_2
+               OpImageWrite %29 %30 %31
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %30
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureStore_fb9a8f
+%vertex_main_inner = OpFunction %v4float None %32
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %textureStore_fb9a8f
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %36
+         %37 = OpLabel
+         %38 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %38
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_fb9a8f
+         %41 = OpLabel
+         %42 = OpFunctionCall %void %textureStore_fb9a8f
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_fb9a8f
+         %44 = OpLabel
+         %45 = OpFunctionCall %void %textureStore_fb9a8f
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/fb9a8f.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/fb9a8f.wgsl.expected.wgsl
index aaeb8f9..35389e1 100644
--- a/test/tint/builtins/gen/var/textureStore/fb9a8f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/fb9a8f.wgsl.expected.wgsl
@@ -2,7 +2,7 @@
 
 fn textureStore_fb9a8f() {
   var arg_1 = 1i;
-  var arg_2 = vec4<u32>();
+  var arg_2 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/fbf53f.wgsl b/test/tint/builtins/gen/var/textureStore/fbf53f.wgsl
index b3a551b..6ef2bed 100644
--- a/test/tint/builtins/gen/var/textureStore/fbf53f.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/fbf53f.wgsl
@@ -24,9 +24,9 @@
 
 // fn textureStore(texture: texture_storage_2d_array<rgba8sint, write>, coords: vec2<i32>, array_index: i32, value: vec4<i32>)
 fn textureStore_fbf53f() {
-  var arg_1 = vec2<i32>();
+  var arg_1 = vec2<i32>(1i);
   var arg_2 = 1i;
-  var arg_3 = vec4<i32>();
+  var arg_3 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/fbf53f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/fbf53f.wgsl.expected.dxc.hlsl
index 46a154d..b90466e 100644
--- a/test/tint/builtins/gen/var/textureStore/fbf53f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/fbf53f.wgsl.expected.dxc.hlsl
@@ -1,9 +1,9 @@
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 void textureStore_fbf53f() {
-  int2 arg_1 = (0).xx;
+  int2 arg_1 = (1).xx;
   int arg_2 = 1;
-  int4 arg_3 = (0).xxxx;
+  int4 arg_3 = (1).xxxx;
   arg_0[int3(arg_1, arg_2)] = arg_3;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/fbf53f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/fbf53f.wgsl.expected.fxc.hlsl
index 46a154d..b90466e 100644
--- a/test/tint/builtins/gen/var/textureStore/fbf53f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/fbf53f.wgsl.expected.fxc.hlsl
@@ -1,9 +1,9 @@
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 void textureStore_fbf53f() {
-  int2 arg_1 = (0).xx;
+  int2 arg_1 = (1).xx;
   int arg_2 = 1;
-  int4 arg_3 = (0).xxxx;
+  int4 arg_3 = (1).xxxx;
   arg_0[int3(arg_1, arg_2)] = arg_3;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/fbf53f.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/fbf53f.wgsl.expected.glsl
index c36d495..7e5516f 100644
--- a/test/tint/builtins/gen/var/textureStore/fbf53f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/fbf53f.wgsl.expected.glsl
@@ -2,9 +2,9 @@
 
 layout(rgba8i) uniform highp writeonly iimage2DArray arg_0;
 void textureStore_fbf53f() {
-  ivec2 arg_1 = ivec2(0);
+  ivec2 arg_1 = ivec2(1);
   int arg_2 = 1;
-  ivec4 arg_3 = ivec4(0);
+  ivec4 arg_3 = ivec4(1);
   imageStore(arg_0, ivec3(arg_1, arg_2), arg_3);
 }
 
@@ -26,9 +26,9 @@
 
 layout(rgba8i) uniform highp writeonly iimage2DArray arg_0;
 void textureStore_fbf53f() {
-  ivec2 arg_1 = ivec2(0);
+  ivec2 arg_1 = ivec2(1);
   int arg_2 = 1;
-  ivec4 arg_3 = ivec4(0);
+  ivec4 arg_3 = ivec4(1);
   imageStore(arg_0, ivec3(arg_1, arg_2), arg_3);
 }
 
@@ -44,9 +44,9 @@
 
 layout(rgba8i) uniform highp writeonly iimage2DArray arg_0;
 void textureStore_fbf53f() {
-  ivec2 arg_1 = ivec2(0);
+  ivec2 arg_1 = ivec2(1);
   int arg_2 = 1;
-  ivec4 arg_3 = ivec4(0);
+  ivec4 arg_3 = ivec4(1);
   imageStore(arg_0, ivec3(arg_1, arg_2), arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/fbf53f.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/fbf53f.wgsl.expected.msl
index 7d00e81..9a5b5d0 100644
--- a/test/tint/builtins/gen/var/textureStore/fbf53f.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/fbf53f.wgsl.expected.msl
@@ -2,9 +2,9 @@
 
 using namespace metal;
 void textureStore_fbf53f(texture2d_array<int, access::write> tint_symbol_1) {
-  int2 arg_1 = int2(0);
+  int2 arg_1 = int2(1);
   int arg_2 = 1;
-  int4 arg_3 = int4(0);
+  int4 arg_3 = int4(1);
   tint_symbol_1.write(arg_3, uint2(arg_1), arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/fbf53f.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/fbf53f.wgsl.expected.spvasm
index 037b3ee..a1a0556 100644
--- a/test/tint/builtins/gen/var/textureStore/fbf53f.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/fbf53f.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 52
+; Bound: 54
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -41,54 +41,56 @@
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
       %v2int = OpTypeVector %int 2
-         %18 = OpConstantNull %v2int
-%_ptr_Function_v2int = OpTypePointer Function %v2int
       %int_1 = OpConstant %int 1
+         %19 = OpConstantComposite %v2int %int_1 %int_1
+%_ptr_Function_v2int = OpTypePointer Function %v2int
+         %22 = OpConstantNull %v2int
 %_ptr_Function_int = OpTypePointer Function %int
-         %24 = OpConstantNull %int
+         %25 = OpConstantNull %int
       %v4int = OpTypeVector %int 4
-         %26 = OpConstantNull %v4int
+         %27 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
+         %30 = OpConstantNull %v4int
       %v3int = OpTypeVector %int 3
-         %38 = OpTypeFunction %v4float
+         %40 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_fbf53f = OpFunction %void None %13
          %16 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2int Function %18
-      %arg_2 = OpVariable %_ptr_Function_int Function %24
-      %arg_3 = OpVariable %_ptr_Function_v4int Function %26
-               OpStore %arg_1 %18
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %22
+      %arg_2 = OpVariable %_ptr_Function_int Function %25
+      %arg_3 = OpVariable %_ptr_Function_v4int Function %30
+               OpStore %arg_1 %19
                OpStore %arg_2 %int_1
-               OpStore %arg_3 %26
-         %30 = OpLoad %11 %arg_0
-         %32 = OpLoad %v2int %arg_1
-         %33 = OpCompositeExtract %int %32 0
-         %34 = OpCompositeExtract %int %32 1
-         %35 = OpLoad %int %arg_2
-         %36 = OpCompositeConstruct %v3int %33 %34 %35
-         %37 = OpLoad %v4int %arg_3
-               OpImageWrite %30 %36 %37
+               OpStore %arg_3 %27
+         %32 = OpLoad %11 %arg_0
+         %34 = OpLoad %v2int %arg_1
+         %35 = OpCompositeExtract %int %34 0
+         %36 = OpCompositeExtract %int %34 1
+         %37 = OpLoad %int %arg_2
+         %38 = OpCompositeConstruct %v3int %35 %36 %37
+         %39 = OpLoad %v4int %arg_3
+               OpImageWrite %32 %38 %39
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %38
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureStore_fbf53f
+%vertex_main_inner = OpFunction %v4float None %40
+         %42 = OpLabel
+         %43 = OpFunctionCall %void %textureStore_fbf53f
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %43 = OpLabel
-         %44 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %44
+         %45 = OpLabel
+         %46 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %46
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %47 = OpLabel
-         %48 = OpFunctionCall %void %textureStore_fbf53f
+         %49 = OpLabel
+         %50 = OpFunctionCall %void %textureStore_fbf53f
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %50 = OpLabel
-         %51 = OpFunctionCall %void %textureStore_fbf53f
+         %52 = OpLabel
+         %53 = OpFunctionCall %void %textureStore_fbf53f
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/fbf53f.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/fbf53f.wgsl.expected.wgsl
index e9c201c..3b54b98 100644
--- a/test/tint/builtins/gen/var/textureStore/fbf53f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/fbf53f.wgsl.expected.wgsl
@@ -1,9 +1,9 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba8sint, write>;
 
 fn textureStore_fbf53f() {
-  var arg_1 = vec2<i32>();
+  var arg_1 = vec2<i32>(1i);
   var arg_2 = 1i;
-  var arg_3 = vec4<i32>();
+  var arg_3 = vec4<i32>(1i);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/fcbe66.wgsl b/test/tint/builtins/gen/var/textureStore/fcbe66.wgsl
index 808c43b..775b39a 100644
--- a/test/tint/builtins/gen/var/textureStore/fcbe66.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/fcbe66.wgsl
@@ -24,8 +24,8 @@
 
 // fn textureStore(texture: texture_storage_3d<rg32float, write>, coords: vec3<u32>, value: vec4<f32>)
 fn textureStore_fcbe66() {
-  var arg_1 = vec3<u32>();
-  var arg_2 = vec4<f32>();
+  var arg_1 = vec3<u32>(1u);
+  var arg_2 = vec4<f32>(1.f);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/fcbe66.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/fcbe66.wgsl.expected.dxc.hlsl
index 2f4a6da..ed3218d 100644
--- a/test/tint/builtins/gen/var/textureStore/fcbe66.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/fcbe66.wgsl.expected.dxc.hlsl
@@ -1,8 +1,8 @@
 RWTexture3D<float4> arg_0 : register(u0, space1);
 
 void textureStore_fcbe66() {
-  uint3 arg_1 = (0u).xxx;
-  float4 arg_2 = (0.0f).xxxx;
+  uint3 arg_1 = (1u).xxx;
+  float4 arg_2 = (1.0f).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/fcbe66.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/fcbe66.wgsl.expected.fxc.hlsl
index 2f4a6da..ed3218d 100644
--- a/test/tint/builtins/gen/var/textureStore/fcbe66.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/fcbe66.wgsl.expected.fxc.hlsl
@@ -1,8 +1,8 @@
 RWTexture3D<float4> arg_0 : register(u0, space1);
 
 void textureStore_fcbe66() {
-  uint3 arg_1 = (0u).xxx;
-  float4 arg_2 = (0.0f).xxxx;
+  uint3 arg_1 = (1u).xxx;
+  float4 arg_2 = (1.0f).xxxx;
   arg_0[arg_1] = arg_2;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/fcbe66.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/fcbe66.wgsl.expected.msl
index e370bf5..036ba38 100644
--- a/test/tint/builtins/gen/var/textureStore/fcbe66.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/fcbe66.wgsl.expected.msl
@@ -2,8 +2,8 @@
 
 using namespace metal;
 void textureStore_fcbe66(texture3d<float, access::write> tint_symbol_1) {
-  uint3 arg_1 = uint3(0u);
-  float4 arg_2 = float4(0.0f);
+  uint3 arg_1 = uint3(1u);
+  float4 arg_2 = float4(1.0f);
   tint_symbol_1.write(arg_2, uint3(arg_1));
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/fcbe66.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/fcbe66.wgsl.expected.spvasm
index e40ac5d..250f4de 100644
--- a/test/tint/builtins/gen/var/textureStore/fcbe66.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/fcbe66.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 41
+; Bound: 44
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
@@ -41,42 +41,45 @@
          %12 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
-         %18 = OpConstantNull %v3uint
+     %uint_1 = OpConstant %uint 1
+         %19 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
 %_ptr_Function_v3uint = OpTypePointer Function %v3uint
-%_ptr_Function_v4float = OpTypePointer Function %v4float
-         %27 = OpTypeFunction %v4float
+         %22 = OpConstantNull %v3uint
     %float_1 = OpConstant %float 1
+         %24 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%_ptr_Function_v4float = OpTypePointer Function %v4float
+         %31 = OpTypeFunction %v4float
 %textureStore_fcbe66 = OpFunction %void None %12
          %15 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v3uint Function %18
+      %arg_1 = OpVariable %_ptr_Function_v3uint Function %22
       %arg_2 = OpVariable %_ptr_Function_v4float Function %5
-               OpStore %arg_1 %18
-               OpStore %arg_2 %5
-         %24 = OpLoad %11 %arg_0
-         %25 = OpLoad %v3uint %arg_1
-         %26 = OpLoad %v4float %arg_2
-               OpImageWrite %24 %25 %26
+               OpStore %arg_1 %19
+               OpStore %arg_2 %24
+         %28 = OpLoad %11 %arg_0
+         %29 = OpLoad %v3uint %arg_1
+         %30 = OpLoad %v4float %arg_2
+               OpImageWrite %28 %29 %30
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %27
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %textureStore_fcbe66
+%vertex_main_inner = OpFunction %v4float None %31
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureStore_fcbe66
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
-         %32 = OpLabel
-         %33 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %33
+         %36 = OpLabel
+         %37 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %37
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureStore_fcbe66
+         %39 = OpLabel
+         %40 = OpFunctionCall %void %textureStore_fcbe66
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureStore_fcbe66
+         %42 = OpLabel
+         %43 = OpFunctionCall %void %textureStore_fcbe66
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/fcbe66.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/fcbe66.wgsl.expected.wgsl
index 8401058..580017e 100644
--- a/test/tint/builtins/gen/var/textureStore/fcbe66.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/fcbe66.wgsl.expected.wgsl
@@ -1,8 +1,8 @@
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rg32float, write>;
 
 fn textureStore_fcbe66() {
-  var arg_1 = vec3<u32>();
-  var arg_2 = vec4<f32>();
+  var arg_1 = vec3<u32>(1u);
+  var arg_2 = vec4<f32>(1.0f);
   textureStore(arg_0, arg_1, arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/fd350c.wgsl b/test/tint/builtins/gen/var/textureStore/fd350c.wgsl
index 9126e10..8c61c4e 100644
--- a/test/tint/builtins/gen/var/textureStore/fd350c.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/fd350c.wgsl
@@ -24,9 +24,9 @@
 
 // fn textureStore(texture: texture_storage_2d_array<rgba16uint, write>, coords: vec2<i32>, array_index: u32, value: vec4<u32>)
 fn textureStore_fd350c() {
-  var arg_1 = vec2<i32>();
+  var arg_1 = vec2<i32>(1i);
   var arg_2 = 1u;
-  var arg_3 = vec4<u32>();
+  var arg_3 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/fd350c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/fd350c.wgsl.expected.dxc.hlsl
index d932e87..fb441fd 100644
--- a/test/tint/builtins/gen/var/textureStore/fd350c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/fd350c.wgsl.expected.dxc.hlsl
@@ -1,9 +1,9 @@
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 void textureStore_fd350c() {
-  int2 arg_1 = (0).xx;
+  int2 arg_1 = (1).xx;
   uint arg_2 = 1u;
-  uint4 arg_3 = (0u).xxxx;
+  uint4 arg_3 = (1u).xxxx;
   arg_0[int3(arg_1, int(arg_2))] = arg_3;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/fd350c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/fd350c.wgsl.expected.fxc.hlsl
index d932e87..fb441fd 100644
--- a/test/tint/builtins/gen/var/textureStore/fd350c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/fd350c.wgsl.expected.fxc.hlsl
@@ -1,9 +1,9 @@
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 void textureStore_fd350c() {
-  int2 arg_1 = (0).xx;
+  int2 arg_1 = (1).xx;
   uint arg_2 = 1u;
-  uint4 arg_3 = (0u).xxxx;
+  uint4 arg_3 = (1u).xxxx;
   arg_0[int3(arg_1, int(arg_2))] = arg_3;
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/fd350c.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureStore/fd350c.wgsl.expected.glsl
index 6b1fe61..aa4132a 100644
--- a/test/tint/builtins/gen/var/textureStore/fd350c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureStore/fd350c.wgsl.expected.glsl
@@ -2,9 +2,9 @@
 
 layout(rgba16ui) uniform highp writeonly uimage2DArray arg_0;
 void textureStore_fd350c() {
-  ivec2 arg_1 = ivec2(0);
+  ivec2 arg_1 = ivec2(1);
   uint arg_2 = 1u;
-  uvec4 arg_3 = uvec4(0u);
+  uvec4 arg_3 = uvec4(1u);
   imageStore(arg_0, ivec3(arg_1, int(arg_2)), arg_3);
 }
 
@@ -26,9 +26,9 @@
 
 layout(rgba16ui) uniform highp writeonly uimage2DArray arg_0;
 void textureStore_fd350c() {
-  ivec2 arg_1 = ivec2(0);
+  ivec2 arg_1 = ivec2(1);
   uint arg_2 = 1u;
-  uvec4 arg_3 = uvec4(0u);
+  uvec4 arg_3 = uvec4(1u);
   imageStore(arg_0, ivec3(arg_1, int(arg_2)), arg_3);
 }
 
@@ -44,9 +44,9 @@
 
 layout(rgba16ui) uniform highp writeonly uimage2DArray arg_0;
 void textureStore_fd350c() {
-  ivec2 arg_1 = ivec2(0);
+  ivec2 arg_1 = ivec2(1);
   uint arg_2 = 1u;
-  uvec4 arg_3 = uvec4(0u);
+  uvec4 arg_3 = uvec4(1u);
   imageStore(arg_0, ivec3(arg_1, int(arg_2)), arg_3);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/fd350c.wgsl.expected.msl b/test/tint/builtins/gen/var/textureStore/fd350c.wgsl.expected.msl
index a35e4c8..242dda3 100644
--- a/test/tint/builtins/gen/var/textureStore/fd350c.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/textureStore/fd350c.wgsl.expected.msl
@@ -2,9 +2,9 @@
 
 using namespace metal;
 void textureStore_fd350c(texture2d_array<uint, access::write> tint_symbol_1) {
-  int2 arg_1 = int2(0);
+  int2 arg_1 = int2(1);
   uint arg_2 = 1u;
-  uint4 arg_3 = uint4(0u);
+  uint4 arg_3 = uint4(1u);
   tint_symbol_1.write(arg_3, uint2(arg_1), arg_2);
 }
 
diff --git a/test/tint/builtins/gen/var/textureStore/fd350c.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/fd350c.wgsl.expected.spvasm
index 1dcd751..054cd16 100644
--- a/test/tint/builtins/gen/var/textureStore/fd350c.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/fd350c.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 54
+; Bound: 57
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -42,55 +42,58 @@
          %13 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
-         %19 = OpConstantNull %v2int
+      %int_1 = OpConstant %int 1
+         %20 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_v2int = OpTypePointer Function %v2int
+         %23 = OpConstantNull %v2int
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %25 = OpConstantNull %uint
+         %27 = OpConstantNull %uint
      %v4uint = OpTypeVector %uint 4
-         %27 = OpConstantNull %v4uint
+         %29 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
+         %32 = OpConstantNull %v4uint
       %v3int = OpTypeVector %int 3
-         %40 = OpTypeFunction %v4float
+         %43 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_fd350c = OpFunction %void None %13
          %16 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v2int Function %19
-      %arg_2 = OpVariable %_ptr_Function_uint Function %25
-      %arg_3 = OpVariable %_ptr_Function_v4uint Function %27
-               OpStore %arg_1 %19
+      %arg_1 = OpVariable %_ptr_Function_v2int Function %23
+      %arg_2 = OpVariable %_ptr_Function_uint Function %27
+      %arg_3 = OpVariable %_ptr_Function_v4uint Function %32
+               OpStore %arg_1 %20
                OpStore %arg_2 %uint_1
-               OpStore %arg_3 %27
-         %31 = OpLoad %11 %arg_0
-         %33 = OpLoad %v2int %arg_1
-         %34 = OpCompositeExtract %int %33 0
-         %35 = OpCompositeExtract %int %33 1
-         %37 = OpLoad %uint %arg_2
-         %36 = OpBitcast %int %37
-         %38 = OpCompositeConstruct %v3int %34 %35 %36
-         %39 = OpLoad %v4uint %arg_3
-               OpImageWrite %31 %38 %39
+               OpStore %arg_3 %29
+         %34 = OpLoad %11 %arg_0
+         %36 = OpLoad %v2int %arg_1
+         %37 = OpCompositeExtract %int %36 0
+         %38 = OpCompositeExtract %int %36 1
+         %40 = OpLoad %uint %arg_2
+         %39 = OpBitcast %int %40
+         %41 = OpCompositeConstruct %v3int %37 %38 %39
+         %42 = OpLoad %v4uint %arg_3
+               OpImageWrite %34 %41 %42
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %40
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureStore_fd350c
+%vertex_main_inner = OpFunction %v4float None %43
+         %45 = OpLabel
+         %46 = OpFunctionCall %void %textureStore_fd350c
                OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
-         %45 = OpLabel
-         %46 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %46
+         %48 = OpLabel
+         %49 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %49
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %49 = OpLabel
-         %50 = OpFunctionCall %void %textureStore_fd350c
+         %52 = OpLabel
+         %53 = OpFunctionCall %void %textureStore_fd350c
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %52 = OpLabel
-         %53 = OpFunctionCall %void %textureStore_fd350c
+         %55 = OpLabel
+         %56 = OpFunctionCall %void %textureStore_fd350c
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/fd350c.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureStore/fd350c.wgsl.expected.wgsl
index 6e3a293..1a03bcc 100644
--- a/test/tint/builtins/gen/var/textureStore/fd350c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureStore/fd350c.wgsl.expected.wgsl
@@ -1,9 +1,9 @@
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba16uint, write>;
 
 fn textureStore_fd350c() {
-  var arg_1 = vec2<i32>();
+  var arg_1 = vec2<i32>(1i);
   var arg_2 = 1u;
-  var arg_3 = vec4<u32>();
+  var arg_3 = vec4<u32>(1u);
   textureStore(arg_0, arg_1, arg_2, arg_3);
 }